forked from knrc/registry-puller
-
Notifications
You must be signed in to change notification settings - Fork 0
/
registry-puller-3.11.yaml
155 lines (155 loc) · 3.76 KB
/
registry-puller-3.11.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
apiVersion: v1
kind: ServiceAccount
metadata:
name: registry-puller
namespace: registry-puller
labels:
app: registry-puller
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: registry-puller
labels:
app: registry-puller
rules:
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["get", "list", "watch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["mutatingwebhookconfigurations"]
verbs: ["*"]
- apiGroups: ["extensions","apps"]
resources: ["deployments"]
resourceNames: ["registry-puller"]
verbs: ["get"]
- apiGroups: ["extensions"]
resources: ["deployments/finalizers"]
resourceNames: ["registry-puller"]
verbs: ["update"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "list", "watch", "create"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: registry-puller
labels:
app: registry-puller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: registry-puller
subjects:
- kind: ServiceAccount
name: registry-puller
namespace: registry-puller
---
apiVersion: v1
kind: ConfigMap
metadata:
name: registry-puller
namespace: registry-puller
labels:
app: registry-puller
data:
mutatingwebhookconfiguration.yaml: |-
apiVersion: admissionregistration.k8s.io/v1beta1
kind: MutatingWebhookConfiguration
metadata:
name: registry-puller
labels:
app: registry-puller
webhooks:
- name: registry-puller.kevinconner.io
clientConfig:
service:
name: registry-puller
namespace: registry-puller
path: "/webhook"
caBundle: ""
rules:
- operations: [ "CREATE", "UPDATE" ]
apiGroups: [""]
apiVersions: ["v1"]
resources: ["serviceaccounts"]
failurePolicy: Fail
#namespaceSelector:
---
apiVersion: v1
kind: Service
metadata:
name: registry-puller
namespace: registry-puller
labels:
app: registry-puller
annotations:
service.alpha.openshift.io/serving-cert-secret-name: webhook-certificate
spec:
ports:
- port: 443
targetPort: webhook
name: webhook
selector:
app: registry-puller
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: registry-puller
namespace: registry-puller
labels:
app: registry-puller
spec:
replicas: 1
template:
metadata:
labels:
app: registry-puller
spec:
serviceAccountName: registry-puller
containers:
- name: registry-puller
image: "knrc/registry-puller:1.0"
imagePullPolicy: IfNotPresent
ports:
- name: webhook
containerPort: 8443
command:
- /usr/local/bin/registry-puller
- webhook
- --webhook-config-file
- /etc/config/mutatingwebhookconfiguration.yaml
- --registry-secret-file
- /etc/registry-secret/secret.yaml
- --port=8443
- --tlsCertFile
- /etc/certs/tls.crt
- --tlsKeyFile
- /etc/certs/tls.key
- --caCertFile
- /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
volumeMounts:
- name: certs
mountPath: /etc/certs
readOnly: true
- name: config
mountPath: /etc/config
readOnly: true
- name: registry-secret
mountPath: /etc/registry-secret
readOnly: true
resources:
requests:
cpu: 10m
volumes:
- name: certs
secret:
secretName: webhook-certificate
- name: registry-secret
configMap:
name: registry-secret
- name: config
configMap:
name: registry-puller