Skip to content

Commit 2c94f3f

Browse files
Merge pull request #30 from IsaiahStapleton/dev
Add class label webhook for prod
2 parents 4cc1fd7 + 78d1e57 commit 2c94f3f

9 files changed

Lines changed: 140 additions & 0 deletions

File tree

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: cert-manager.io/v1
2+
kind: Certificate
3+
metadata:
4+
name: assign-class-label-tls
5+
spec:
6+
secretName: assign-class-label-tls
7+
issuerRef:
8+
name: assign-class-label-issuer
9+
kind: Issuer
10+
commonName: "rhods-notebooks.svc"
11+
dnsNames:
12+
- assign-class-label-webhook.rhods-notebooks.svc
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
kind: Deployment
2+
apiVersion: apps/v1
3+
metadata:
4+
name: assign-class-label-webhook
5+
spec:
6+
replicas: 2
7+
template:
8+
metadata:
9+
labels:
10+
app: assign-class-label-webhook
11+
webhook: "true"
12+
spec:
13+
containers:
14+
- name: assign-class-label
15+
image: quay.io/rh-ee-istaplet/ope-webhooks:assign-class-label-webhook
16+
imagePullPolicy: Always
17+
ports:
18+
- containerPort: 443
19+
volumeMounts:
20+
- name: tls
21+
mountPath: /certs/webhook.crt
22+
subPath: tls.crt
23+
readOnly: true
24+
- name: tls
25+
mountPath: /certs/webhook.key
26+
subPath: tls.key
27+
readOnly: true
28+
resources:
29+
limits:
30+
cpu: 500m
31+
memory: 512Mi
32+
env:
33+
# EDIT VALUE HERE BEFORE RUNNING, must be comma separated
34+
- name: RHOAI_CLASS_GROUPS
35+
value: "cs210,ds100"
36+
serviceAccountName: webhook-sa
37+
volumes:
38+
- name: tls
39+
secret:
40+
secretName: assign-class-label-tls
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: cert-manager.io/v1
2+
kind: Issuer
3+
metadata:
4+
name: assign-class-label-issuer
5+
spec:
6+
selfSigned: {}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
namespace: rhods-notebooks
4+
commonLabels:
5+
app: assign-class-label-webhook
6+
7+
resources:
8+
- issuer.yaml
9+
- certificate.yaml
10+
- deployment.yaml
11+
- service.yaml
12+
- webhook-config.yaml
13+
- serviceaccount.yaml
14+
- role.yaml
15+
- rolebinding.yaml
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRole
3+
metadata:
4+
name: ope-webhook-role
5+
rules:
6+
- apiGroups: ["user.openshift.io"]
7+
resources: ["pods", "groups"]
8+
verbs: ["get", "list", "watch", "patch"]
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRoleBinding
3+
metadata:
4+
name: ope-webhook-rolebinding
5+
roleRef:
6+
apiGroup: rbac.authorization.k8s.io
7+
kind: ClusterRole
8+
name: ope-webhook-role
9+
subjects:
10+
- kind: ServiceAccount
11+
name: webhook-sa
12+
namespace: rhods-notebooks
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: assign-class-label-webhook
5+
spec:
6+
ports:
7+
- name: https
8+
protocol: TCP
9+
port: 443
10+
targetPort: 5000
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
apiVersion: v1
2+
kind: ServiceAccount
3+
metadata:
4+
name: webhook-sa
5+
namespace: rhods-notebooks
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
apiVersion: admissionregistration.k8s.io/v1
2+
kind: MutatingWebhookConfiguration
3+
metadata:
4+
name: assign-class-label-webhook
5+
annotations:
6+
cert-manager.io/inject-ca-from: rhods-notebooks/assign-class-label-tls
7+
webhooks:
8+
- name: assign-class-label-webhook.rhods-notebooks.svc
9+
clientConfig:
10+
service:
11+
namespace: rhods-notebooks
12+
name: assign-class-label-webhook
13+
path: /mutate
14+
rules:
15+
- operations: ["CREATE"]
16+
apiGroups: [""]
17+
apiVersions: ["v1"]
18+
resources: ["pods"]
19+
namespaceSelector:
20+
matchExpressions:
21+
- key: kubernetes.io/metadata.name
22+
operator: In
23+
values:
24+
- rhods-notebooks
25+
objectSelector:
26+
matchExpressions:
27+
- key: webhook
28+
operator: NotIn
29+
values:
30+
- "true"
31+
sideEffects: None
32+
admissionReviewVersions: ["v1"]

0 commit comments

Comments
 (0)