瀏覽代碼

Add icecream daemonset and scheduler

Victor Lavaud 3 月之前
父節點
當前提交
eeea102a80
共有 3 個文件被更改,包括 98 次插入0 次删除
  1. 8 0
      icecream/Dockerfile
  2. 9 0
      icecream/Dockerfile.scheduler
  3. 81 0
      icecream/icecream.yaml

+ 8 - 0
icecream/Dockerfile

@@ -0,0 +1,8 @@
+FROM ubuntu:24.04
+
+RUN apt-get update && apt-get install -y icecc
+
+# Run icecc daemon in very verbose mode with default name `docker-compiler`
+ENTRYPOINT ["sh", "-c", "iceccd -vv --scheduler-host $SCHEDULER_HOST"]
+
+EXPOSE 10245/TCP

+ 9 - 0
icecream/Dockerfile.scheduler

@@ -0,0 +1,9 @@
+FROM ubuntu:24.04
+
+RUN apt-get update && apt-get install -y icecc
+
+# Run icecc daemon in very verbose mode with default name `docker-compiler`
+ENTRYPOINT ["icecc-scheduler","-vv"]
+
+# Expose required TCP/UDP ports
+EXPOSE 8765/TCP 8766/TCP

+ 81 - 0
icecream/icecream.yaml

@@ -0,0 +1,81 @@
+apiVersion: apps/v1
+kind: DaemonSet
+metadata:
+  name: icecream-daemonset
+spec:
+  selector:
+    matchLabels:
+      app: icecream
+  template:
+    metadata:
+      labels:
+        app: icecream
+    spec:
+      affinity:
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: kubernetes.io/arch
+                operator: In
+                values:
+                - amd64
+      containers:
+      - name: icecream
+        image: qdii/icecream
+        env:
+          - name: SCHEDULER_HOST
+            value: "icecream-scheduler.default.svc"
+        volumeMounts:
+          - name: data
+            mountPath: "/var/cache/icecream"
+        ports:
+          - containerPort: 10245
+            protocol: TCP
+            name: icecream-port
+      volumes:
+        - name: data
+          emptyDir:
+            sizeLimit: 10Gi
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: icecream-scheduler
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: icecream-scheduler
+  template:
+    metadata:
+      labels:
+        app: icecream-scheduler
+    spec:
+      containers:
+      - name: icecream-scheduler
+        image: qdii/icecream-scheduler
+        ports:
+        - containerPort: 8765
+          name: scheduler
+          protocol: TCP
+        - containerPort: 8766
+          name: telnet
+          protocol: TCP
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: icecream-scheduler
+spec:
+  selector:
+    app: icecream-scheduler
+  ports:
+  - name: scheduler
+    port: 8765
+    targetPort: scheduler
+    protocol: TCP
+  - name: telnet
+    port: 8766
+    targetPort: telnet
+    protocol: TCP