From 03c22c3c763e80be7da172c0dd8e46d5a0a0d07b Mon Sep 17 00:00:00 2001
From: jinyuanliu <liujinyuan@inspur.com>
Date: Fri, 2 Jul 2021 13:52:56 +0800
Subject: [PATCH] Get resource_type of kubernetes cgroup

Cgroup name of Kubernetes is determined by the
cgroup driver of Docker. If cgroup driver of Docker
is systemd, there will be an error in deploying HugePages.

https: //github.com/kubernetes/kubernetes/blob/release-1.26/pkg/kubelet/cm/cgroup_manager_linux.go#L77-L81
Change-Id: If709a968dde24d01e17fef63f09ebf9d7a23fc62
---
 tools/deployment/multinode/130-libvirt.sh | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/tools/deployment/multinode/130-libvirt.sh b/tools/deployment/multinode/130-libvirt.sh
index 74cc98e05d..c1a9588990 100755
--- a/tools/deployment/multinode/130-libvirt.sh
+++ b/tools/deployment/multinode/130-libvirt.sh
@@ -27,9 +27,20 @@ fi
 #NOTE: Lint and package chart
 make -C ${OSH_INFRA_PATH} libvirt
 
+#NOTE: Get resource_type of kubernetes cgroup
+KUBERNETES_CGROUP=$(sudo docker info | grep "Cgroup Driver"  | awk -F': ' '{print $2}' | grep -q systemd && echo kubepods.slice || echo kubepods)
+
+#NOTE: Deploy libvirt
+tee /tmp/libvirt.yaml << EOF
+conf:
+  kubernetes:
+    cgroup: ${KUBERNETES_CGROUP}
+EOF
+
 #NOTE: Deploy libvirt
 helm upgrade --install libvirt ${OSH_INFRA_PATH}/libvirt \
   --namespace=openstack \
+  --values=/tmp/libvirt.yaml \
   --set conf.ceph.enabled=${CEPH_ENABLED} \
   ${OSH_EXTRA_HELM_ARGS} \
   ${OSH_EXTRA_HELM_ARGS_LIBVIRT}