Files
visor/test/kubernetes/gvisor-injection-admission-webhook.yaml.in
Adin ScannellandgVisor bot d037ff9f5a Make the webhook deterministic.
We add a simple image that will generate certificates as a init container,
and refer to this directly use the Kubernetes yaml. Note that this also fixes
the issue of versioning within the yaml file, as this will now generate a
version of this file that refers to the precise local versions.

PiperOrigin-RevId: 421671040
2022-01-13 15:20:43 -08:00

104 lines
2.4 KiB
Plaintext

# Copyright 2020 The gVisor Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
apiVersion: v1
kind: Namespace
metadata:
name: e2e
labels:
name: e2e
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: gvisor-injection-admission-webhook
namespace: e2e
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: gvisor-injection-admission-webhook
rules:
- apiGroups: [ admissionregistration.k8s.io ]
resources: [ mutatingwebhookconfigurations ]
verbs: [ create ]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: gvisor-injection-admission-webhook
namespace: e2e
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: gvisor-injection-admission-webhook
subjects:
- kind: ServiceAccount
name: gvisor-injection-admission-webhook
namespace: e2e
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: gvisor-injection-admission-webhook
namespace: e2e
labels:
app: gvisor-injection-admission-webhook
spec:
replicas: 1
selector:
matchLabels:
app: gvisor-injection-admission-webhook
template:
metadata:
labels:
app: gvisor-injection-admission-webhook
spec:
volumes:
- name: certs
emptyDir: {}
initContainers:
- name: generate-certs
image: %INIT%
workingDir: /certs
volumeMounts:
- name: certs
mountPath: /certs
containers:
- name: webhook
image: %WEBHOOK%
workingDir: /certs
volumeMounts:
- name: certs
mountPath: /certs
args:
- --log-level=debug
ports:
- containerPort: 8443
serviceAccountName: gvisor-injection-admission-webhook
---
kind: Service
apiVersion: v1
metadata:
name: gvisor-injection-admission-webhook
namespace: e2e
spec:
selector:
app: gvisor-injection-admission-webhook
ports:
- protocol: TCP
port: 443
targetPort: 8443