All Policies

Add Services

Add an SSH Service to every VirtualMachineInstance which is getting created. This Service will use a ClusterIP, thus the admin has to ensure that the IP space is large enough and ClusterIP type can be met.

Policy Definition

/kubevirt/add-services/add-services.yaml

 1apiVersion: kyverno.io/v1
 2kind: ClusterPolicy
 3metadata:
 4  name: k6t-add-services
 5  annotations:
 6    policies.kyverno.io/title: Add Services
 7    policies.kyverno.io/category: KubeVirt
 8    policies.kyverno.io/subject: VirtualMachineInstance
 9    policies.kyverno.io/description: >-
10      Add an SSH Service to every VirtualMachineInstance which is getting created.
11      This Service will use a ClusterIP, thus the admin has to ensure that the IP
12      space is large enough and ClusterIP type can be met.      
13    kyverno.io/kyverno-version: "1.8.0-rc2"
14    kyverno.io/kubernetes-version: "1.24-1.25"
15spec:
16  background: false
17  rules:
18  - name: k6t-add-service-ssh
19    match:
20      any:
21      - resources:
22          kinds:
23          - VirtualMachineInstance
24    generate:
25      apiVersion: v1
26      kind: Service
27      name: "{{request.object.metadata.name}}"
28      namespace: "{{request.object.metadata.namespace}}"
29      synchronize: true
30      data:
31        metadata:
32          ownerReferences:
33          - apiVersion: kubevirt.io/v1
34            kind: VirtualMachineInstance
35            name: "{{request.object.metadata.name}}"
36            uid: "{{request.object.metadata.uid}}"
37        spec:
38          ports:
39          - protocol: TCP
40            port: 22
41          selector:
42            kubevirt.io/domain: "{{request.object.metadata.name}}"
43          type: ClusterIP