apiVersion: apps/v1 kind: Deployment metadata: name: dynamic-runner-controller namespace: dynamic-runner spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app.kubernetes.io/name: dynamic-runner-controller template: metadata: labels: app.kubernetes.io/name: dynamic-runner-controller spec: serviceAccountName: dynamic-runner-controller initContainers: - name: fetch-internal-ca image: curlimages/curl:8.16.0@sha256:463eaf6072688fe96ac64fa623fe73e1dbe25d8ad6c34404a669ad3ce1f104b6 args: [--fail, --silent, --show-error, --output, /trust/ca.pem, https://bao.ad.ddupan.top:8200/v1/pki/ca/pem] securityContext: allowPrivilegeEscalation: false capabilities: drop: [ALL] readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 101 runAsGroup: 102 seccompProfile: type: RuntimeDefault volumeMounts: - name: trust mountPath: /trust containers: - name: controller image: zot.ad.ddupan.top/panxiao81/gitea-dynamic-runner-controller@sha256:83ac5dc53116d5f60692709b5e5f585ff3e3c52487083db02ec66af1e2fb8eba imagePullPolicy: IfNotPresent args: [controller] env: - name: COMPONENTS value: scheduler,pod-worker - name: GITEA_INSTANCE_URL value: https://git.ddupan.top - name: GITEA_RUNNER_UUID_FILE value: /run/dynamic-runner-secrets/scheduler-uuid - name: GITEA_RUNNER_TOKEN_FILE value: /run/dynamic-runner-secrets/scheduler-token - name: NATS_URL value: tls://nats.ad.ddupan.top:4222 - name: NATS_CA_FILE value: /run/trust/ca.pem - name: NATS_PRODUCER_PASSWORD_FILE value: /run/dynamic-runner-secrets/nats-password - name: NATS_WORKER_PASSWORD_FILE value: /run/dynamic-runner-secrets/nats-worker-password - name: RUNNER_FACADE_CAPABILITY_KEY_FILE value: /run/dynamic-runner-secrets/facade-capability-key - name: RUNNER_FACADE_LISTEN value: :8443 - name: RUNNER_FACADE_URL value: https://dynamic-runner-controller.dynamic-runner.svc:8443 - name: RUNNER_FACADE_SPIFFE_ID value: spiffe://ddupan.top/ns/dynamic-runner/sa/dynamic-runner-controller - name: SPIFFE_ENDPOINT_SOCKET value: unix:///run/spire/agent-sockets/spire-agent.sock - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: POD_EXECUTOR_IMAGE value: zot.ad.ddupan.top/panxiao81/gitea-dynamic-runner-runner@sha256:59bdc035b9372a6ff16337e11a5c6c64db6b7ab3664ca07b85f3a060ad238a4a - name: POD_SERVICE_ACCOUNT value: gitea-dynamic-runner - name: POD_EXECUTOR_UID value: "2000" - name: POD_CAPACITY value: "1" - name: SPIRE_CLUSTER value: homelab - name: SPIRE_CLASS value: spire-mgmt-spire - name: SSL_CERT_FILE value: /run/trust/ca.pem ports: - name: facade containerPort: 8443 readinessProbe: httpGet: null tcpSocket: port: facade periodSeconds: 5 livenessProbe: httpGet: null tcpSocket: port: facade initialDelaySeconds: 15 periodSeconds: 10 resources: requests: cpu: 50m memory: 64Mi limits: cpu: 500m memory: 256Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: [ALL] readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 65532 runAsGroup: 65532 seccompProfile: type: RuntimeDefault volumeMounts: - name: secret mountPath: /run/dynamic-runner-secrets readOnly: true - name: trust mountPath: /run/trust readOnly: true - name: spire-agent-socket mountPath: /run/spire/agent-sockets readOnly: true securityContext: fsGroup: 65532 fsGroupChangePolicy: OnRootMismatch seccompProfile: type: RuntimeDefault volumes: - name: secret secret: secretName: dynamic-runner defaultMode: 0400 - name: trust emptyDir: sizeLimit: 1Mi - name: spire-agent-socket csi: driver: csi.spiffe.io readOnly: true