apiVersion: v1 kind: ServiceAccount metadata: name: user-cert-generator labels: kiamol: ch17 --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: create-approve-csr labels: kiamol: ch17 rules: - apiGroups: ["certificates.k8s.io"] resources: ["certificatesigningrequests"] verbs: ["create", "get", "list", "watch", "patch"] - apiGroups: ["certificates.k8s.io"] resources: ["certificatesigningrequests/approval"] verbs: ["update"] - apiGroups: ["certificates.k8s.io"] resources: ["signers"] resourceNames: ["kubernetes.io/kube-apiserver-client", "kubernetes.io/legacy-unknown"] verbs: ["approve"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: user-cert-generator labels: kiamol: ch17 subjects: - kind: ServiceAccount name: user-cert-generator namespace: default roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: create-approve-csr --- apiVersion: v1 kind: Pod metadata: name: user-cert-generator labels: kiamol: ch17 spec: serviceAccountName: user-cert-generator containers: - name: user-cert-generator image: kiamol/ch17-user-cert-generator