kubelet-csr-approver: Initial commit
The [kubelet-csr-approver][0] is a controller that automatically approves CSRs for Kublets that match certain criteria. I've had it deployed in the cluster for a while, but apparently never committed the resources. These manifest files are taken from the [k8s deployment example][1] in the upstream repository. [0]: https://github.com/postfinance/kubelet-csr-approver [1]: https://github.com/postfinance/kubelet-csr-approver/tree/v1.2.10/deploy/k8spull/74/head
parent
da2b1e60cd
commit
717f9244e7
|
@ -0,0 +1,42 @@
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: kubelet-csr-approver
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- certificates.k8s.io
|
||||||
|
resources:
|
||||||
|
- certificatesigningrequests
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- coordination.k8s.io
|
||||||
|
resources:
|
||||||
|
- leases
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- certificates.k8s.io
|
||||||
|
resources:
|
||||||
|
- certificatesigningrequests/approval
|
||||||
|
verbs:
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- certificates.k8s.io
|
||||||
|
resourceNames:
|
||||||
|
- kubernetes.io/kubelet-serving
|
||||||
|
resources:
|
||||||
|
- signers
|
||||||
|
verbs:
|
||||||
|
- approve
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- create
|
|
@ -0,0 +1,53 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: kubelet-csr-approver
|
||||||
|
namespace: kube-system
|
||||||
|
spec:
|
||||||
|
replicas: 2
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: kubelet-csr-approver
|
||||||
|
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
prometheus.io/port: '8080'
|
||||||
|
prometheus.io/scrape: 'true'
|
||||||
|
labels:
|
||||||
|
app: kubelet-csr-approver
|
||||||
|
|
||||||
|
spec:
|
||||||
|
serviceAccountName: kubelet-csr-approver
|
||||||
|
containers:
|
||||||
|
- name: kubelet-csr-approver
|
||||||
|
image: postfinance/kubelet-csr-approver:latest
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "500m"
|
||||||
|
|
||||||
|
args:
|
||||||
|
- -metrics-bind-address
|
||||||
|
- ":8080"
|
||||||
|
- -health-probe-bind-address
|
||||||
|
- ":8081"
|
||||||
|
- -leader-election
|
||||||
|
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 8081
|
||||||
|
|
||||||
|
env:
|
||||||
|
- name: PROVIDER_REGEX
|
||||||
|
value: ^[abcdef]\.test\.ch$
|
||||||
|
- name: PROVIDER_IP_PREFIXES
|
||||||
|
value: "0.0.0.0/0,::/0"
|
||||||
|
- name: MAX_EXPIRATION_SEC
|
||||||
|
value: "31622400" # 366 days
|
||||||
|
|
||||||
|
tolerations:
|
||||||
|
- effect: NoSchedule
|
||||||
|
key: node-role.kubernetes.io/control-plane
|
||||||
|
operator: Equal
|
|
@ -0,0 +1,42 @@
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
labels:
|
||||||
|
- pairs:
|
||||||
|
app.kubernetes.io/instance: kubelet-csr-approver
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- clusterrole.yaml
|
||||||
|
- deployment.yaml
|
||||||
|
- rolebinding.yaml
|
||||||
|
- serviceaccount.yaml
|
||||||
|
|
||||||
|
patches:
|
||||||
|
- patch: |-
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: kubelet-csr-approver
|
||||||
|
namespace: kube-system
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: kubelet-csr-approver
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
env:
|
||||||
|
- name: PROVIDER_REGEX
|
||||||
|
value: ^(i-[a-z0-9]+\.[a-z0-9-]+\.compute\.internal|k8s-[a-z0-9-]+\.pyrocufflink\.blue|[a-z0-9-]+\.k8s\.pyrocufflink\.black)$
|
||||||
|
- name: PROVIDER_IP_PREFIXES
|
||||||
|
value: 172.30.0.0/16
|
||||||
|
- name: BYPASS_DNS_RESOLUTION
|
||||||
|
value: 'true'
|
||||||
|
|
||||||
|
replicas:
|
||||||
|
- name: kubelet-csr-approver
|
||||||
|
count: 1
|
||||||
|
|
||||||
|
images:
|
||||||
|
- name: postfinance/kubelet-csr-approver
|
||||||
|
newName: ghcr.io/postfinance/kubelet-csr-approver
|
||||||
|
newTag: v1.2.10
|
|
@ -0,0 +1,13 @@
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: kubelet-csr-approver
|
||||||
|
namespace: kube-system
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: kubelet-csr-approver
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: kubelet-csr-approver
|
||||||
|
namespace: kube-system
|
|
@ -0,0 +1,5 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: kubelet-csr-approver
|
||||||
|
namespace: kube-system
|
Loading…
Reference in New Issue