k8s-bootstrap.yaml 1.46 KB
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: k8s-bootstrap
  namespace: kube-system
data:
  clone-start-of-day: |
    #!/bin/sh
    set -ex
    GIT_SSH_COMMAND="ssh -i /tmp/cluster-ssh-key/ssh-private-key"
---
apiVersion: batch/v1
kind: Job
metadata:
  name: k8s-bootstrap
  namespace: kube-system
spec:
  template:
    spec:
      restartPolicy: OnFailure
      securityContext:
        runAsUser: 1234
        runAsGroup: 1234
        fsGroup: 1234

      tolerations:
      - effect: NoSchedule
        key: node-role.kubernetes.io/master

      volumes:
        - name: k8s-bootstrap
          configMap:
            name: k8s-bootstrap
            defaultMode: 755
        - name: git-storage
          emptyDir: {}
        - name: cluster-ssh-key
          secret:
            secretName: cluster-ssh-key
            defaultMode: 0600

      initContainers:
        - name: clone-k8s-start-of-day
          image: bitnami/git
          volumeMounts:
            - name: k8s-bootstrap
              mountPath: /tmp/k8s-bootstrap
            - name: cluster-ssh-key
              mountPath: /tmp/cluster-ssh-key
            - name: git-storage
              mountPath: /tmp/git-storage
          command: ["/tmp/k8s-bootstrap/clone-start-of-day"]

      containers:
        - name: show-status
          image: bash
          command: ["bash", "-ex", "ls -l /tmp/git-storage"]
          volumeMounts:
            - name: git-storage
              mountPath: /tmp/git-storage
---