apiVersion: v1 kind: ServiceAccount metadata: namespace: kube-system name: pve-csr-approver --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: system:pve-csr-approver rules: - apiGroups: ["certificates.k8s.io"] resources: ["signers"] resourceNames: - "kubernetes.io/legacy-unknown" - "kubernetes.io/kubelet-serving" verbs: ["approve"] - apiGroups: ["certificates.k8s.io"] resources: ["certificatesigningrequests"] verbs: - get - list - watch - apiGroups: ["certificates.k8s.io"] resources: ["certificatesigningrequests/approval"] verbs: - create - update - apiGroups: [""] resources: ["events"] verbs: - create - patch - apiGroups: ["coordination.k8s.io"] resources: ["leases"] verbs: ["create"] - apiGroups: ["coordination.k8s.io"] resources: ["leases"] resourceNames: ["pve-csr-approver-manager"] verbs: - get - update --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: system:pve-csr-approver roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: system:pve-csr-approver subjects: - kind: ServiceAccount namespace: kube-system name: pve-csr-approver --- apiVersion: apps/v1 kind: DaemonSet metadata: name: pve-csr-approver-manager namespace: kube-system labels: app: pve-csr-approver-manager spec: selector: matchLabels: app: pve-csr-approver-manager template: metadata: labels: app: pve-csr-approver-manager spec: priorityClassName: system-node-critical containers: - args: - --cloud-config=/etc/kubernetes/pve.json - --leader-elect=true name: manager image: reg.k8s.giftfish.de/library/pve-csr-approver-manager-amd64:dev imagePullPolicy: Always livenessProbe: httpGet: path: /healthz port: 9449 initialDelaySeconds: 3 periodSeconds: 3 resources: requests: cpu: 100m memory: 50Mi volumeMounts: - name: config mountPath: /etc/kubernetes/pve.json readOnly: true - name: ca-certs mountPath: /etc/ssl/certs readOnly: true volumes: - name: config hostPath: path: /etc/kubernetes/pve.json type: File - name: ca-certs hostPath: path: /etc/ssl/certs type: Directory dnsPolicy: Default serviceAccountName: pve-csr-approver nodeSelector: node-role.kubernetes.io/master: "" node-role.kubernetes.io/control-plane: "" tolerations: - key: node.cloudprovider.kubernetes.io/uninitialized effect: NoSchedule value: "true" - key: node-role.kubernetes.io/master effect: NoSchedule - key: node.kubernetes.io/not-ready effect: NoSchedule - key: node-role.kubernetes.io/control-plane effect: NoSchedule operator: Exists - key: CriticalAddonsOnly operator: Exists