diff --git a/clr-k8s-examples/8-kata/deploy/kata-cleanup.yaml b/clr-k8s-examples/8-kata/deploy/kata-cleanup.yaml new file mode 100644 index 0000000..6fce410 --- /dev/null +++ b/clr-k8s-examples/8-kata/deploy/kata-cleanup.yaml @@ -0,0 +1,46 @@ +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: kubelet-kata-cleanup + namespace: kube-system +spec: + selector: + matchLabels: + name: kubelet-kata-cleanup + template: + metadata: + labels: + name: kubelet-kata-cleanup + spec: + serviceAccountName: kata-label-node + nodeSelector: + katacontainers.io/kata-runtime: cleanup + containers: + - name: kube-kata-cleanup + image: katadocker/kata-deploy + imagePullPolicy: Always + command: ["/bin/bash", "-c", "/opt/kata-artifacts/scripts/kata-deploy.sh reset"] + env: + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + securityContext: + privileged: false + volumeMounts: + - name: dbus + mountPath: /var/run/dbus + - name: systemd + mountPath: /run/systemd + volumes: + - name: dbus + hostPath: + path: /var/run/dbus + - name: systemd + hostPath: + path: /run/systemd + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate diff --git a/clr-k8s-examples/8-kata/deploy/kata-deploy.yaml b/clr-k8s-examples/8-kata/deploy/kata-deploy.yaml new file mode 100644 index 0000000..0346c3b --- /dev/null +++ b/clr-k8s-examples/8-kata/deploy/kata-deploy.yaml @@ -0,0 +1,64 @@ +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: kata-deploy + namespace: kube-system +spec: + selector: + matchLabels: + name: kata-deploy + template: + metadata: + labels: + name: kata-deploy + spec: + serviceAccountName: kata-label-node + containers: + - name: kube-kata + image: katadocker/kata-deploy + imagePullPolicy: Always + lifecycle: + preStop: + exec: + command: ["/bin/bash", "-c", "/opt/kata-artifacts/scripts/kata-deploy.sh cleanup"] + command: ["/bin/bash", "-c", "/opt/kata-artifacts/scripts/kata-deploy.sh install"] + env: + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + securityContext: + privileged: false + volumeMounts: + - name: crio-conf + mountPath: /etc/crio/ + - name: containerd-conf + mountPath: /etc/containerd/ + - name: kata-artifacts + mountPath: /opt/kata/ + - name: dbus + mountPath: /var/run/dbus + - name: systemd + mountPath: /run/systemd + volumes: + - name: crio-conf + hostPath: + path: /etc/crio/ + - name: containerd-conf + hostPath: + path: /etc/containerd/ + - name: kata-artifacts + hostPath: + path: /opt/kata/ + type: DirectoryOrCreate + - name: dbus + hostPath: + path: /var/run/dbus + - name: systemd + hostPath: + path: /run/systemd + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate diff --git a/clr-k8s-examples/8-kata/deploy/kata-rbac.yaml b/clr-k8s-examples/8-kata/deploy/kata-rbac.yaml new file mode 100644 index 0000000..408b5be --- /dev/null +++ b/clr-k8s-examples/8-kata/deploy/kata-rbac.yaml @@ -0,0 +1,29 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: kata-label-node + namespace: kube-system +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: node-labeler +rules: +- apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "patch"] +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: kata-label-node-rb +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: node-labeler +subjects: +- kind: ServiceAccount + name: kata-label-node + namespace: kube-system + diff --git a/clr-k8s-examples/create_stack.sh b/clr-k8s-examples/create_stack.sh index 86887ef..0260cc7 100755 --- a/clr-k8s-examples/create_stack.sh +++ b/clr-k8s-examples/create_stack.sh @@ -38,7 +38,11 @@ function cluster_init() { fi } -function runtimeclass_kata() { +function kata() { + # Install kata artifacts using kata-deploy + kubectl apply -f 8-kata/deploy/kata-rbac.yaml + kubectl apply -f 8-kata/deploy/kata-deploy.yaml + #Add support for kata runtime kubectl apply -f 8-kata/runtimeclass_crd.yaml while [[ $(kubectl get crd runtimeclasses.node.k8s.io >/dev/null 2>&1) || $? -ne 0 ]]; do @@ -100,8 +104,8 @@ function miscellaneous() { function minimal() { cluster_init - runtimeclass_kata cni + kata metrics } diff --git a/clr-k8s-examples/setup_kata_firecracker.sh b/clr-k8s-examples/setup_kata_firecracker.sh index 76062d7..573a070 100755 --- a/clr-k8s-examples/setup_kata_firecracker.sh +++ b/clr-k8s-examples/setup_kata_firecracker.sh @@ -33,27 +33,6 @@ EOT sudo systemctl daemon-reload sudo systemctl enable --now devicemapper -# For now till we address https://github.com/kubernetes-sigs/cri-o/issues/1991 -# use a shell script to expose firecracker through kata -cat <