@@ -53,31 +53,31 @@ function check_requirements() {
5353 error " Docker engine could not be found on your system. Please install docker engine to continue: https://docs.docker.com/get-docker/"
5454 exit 1
5555 fi
56-
56+
5757 if ! docker info & > /dev/null;
5858 then
5959 error " Docker is not running. Please start it to continue."
6060 exit 1
6161 fi
62-
62+
6363 if ! command -v kubectl & > /dev/null;
6464 then
6565 error " Kubectl could not be found on your system. Please install kubectl to continue: https://kubernetes.io/docs/tasks/tools/#kubectl"
6666 exit 1
6767 fi
68-
68+
6969 if ! command -v kind & > /dev/null;
7070 then
7171 error " Kind could not be found on your system. Please install kind to continue: https://kind.sigs.k8s.io/docs/user/quick-start/#installation"
7272 exit 1
7373 fi
74-
74+
7575 if ! command -v liqoctl & > /dev/null;
7676 then
7777 error " Liqoctl could not be found on your system. Please install liqoctl to continue"
7878 exit 1
7979 fi
80-
80+
8181 # check for extra requirements
8282 for cmd in " $@ " ; do
8383 if ! command -v " $cmd " & > /dev/null;
@@ -99,23 +99,48 @@ function delete_clusters() {
9999function create_cluster() {
100100 local name=" $1 "
101101 local kubeconfig=" $2 "
102- local config=" $3 "
103-
104- info " Creating cluster \" $name \" ..."
105- fail_on_error " kind create cluster --name $name \
106- --kubeconfig $kubeconfig --config $config --wait 5m" " Failed to create cluster \" $name \" "
102+ local cgroup_driver=" ${CGROUP_DRIVER:- systemd} "
103+
104+ info " Creating cluster \" $name \" (cgroupDriver: $cgroup_driver )..."
105+
106+ local config_file
107+ config_file=$( mktemp)
108+
109+ cat << EOF > "$config_file "
110+ kind: Cluster
111+ apiVersion: kind.x-k8s.io/v1alpha4
112+ name: ${name}
113+ nodes:
114+ - role: control-plane
115+ kubeadmConfigPatches:
116+ - |
117+ kind: KubeletConfiguration
118+ apiVersion: kubelet.config.k8s.io/v1beta1
119+ cgroupDriver: ${cgroup_driver}
120+ containerdConfigPatches:
121+ - |-
122+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
123+ SystemdCgroup = $( [[ " $cgroup_driver " == " systemd" ]] && echo true || echo false)
124+ EOF
125+
126+ fail_on_error " kind create cluster --name $name --kubeconfig $kubeconfig --config $config_file --wait 5m" \
127+ " Failed to create cluster \" $name \" "
128+
129+ rm -f " $config_file "
107130 success_clear_line " Cluster \" $name \" has been created."
108131}
109132
133+
134+
110135function install_liqo() {
111136 local cluster_name=" $1 "
112137 local kubeconfig=" $2 "
113-
138+
114139 info " Installing liqo on cluster \" $cluster_name \" ..."
115-
140+
116141 shift 2
117142 labels=" $* "
118-
143+
119144 fail_on_error " liqoctl install kind --cluster-id $cluster_name \
120145 --cluster-labels=$( join_by , " ${labels[@]} " ) \
121146 --kubeconfig $kubeconfig " " Failed to install liqo on cluster \" $cluster_name \" "
@@ -144,12 +169,12 @@ function install_liqo_k3d() {
144169 api_server_address=$( kubectl get nodes --kubeconfig " $kubeconfig " --selector=node-role.kubernetes.io/master -o jsonpath=' {$.items[*].status.addresses[?(@.type=="InternalIP")].address}' )
145170
146171 fail_on_error " liqoctl install k3s --cluster-id $cluster_name \
147- --cluster-labels=$( join_by , " ${labels[@]} " ) \
148- --pod-cidr $pod_cidr \
149- --service-cidr $service_cidr \
150- --api-server-url https://$api_server_address :6443 \
151- --kubeconfig $kubeconfig " " Failed to install liqo on cluster \" ${cluster_name} \" "
152-
172+ --cluster-labels=$( join_by , " ${labels[@]} " ) \
173+ --pod-cidr $pod_cidr \
174+ --service-cidr $service_cidr \
175+ --api-server-url https://$api_server_address :6443 \
176+ --kubeconfig $kubeconfig " " Failed to install liqo on cluster \" ${cluster_name} \" "
177+
153178 success_clear_line " Liqo has been installed on cluster \" $cluster_name \" ."
154179}
155180
@@ -164,15 +189,15 @@ function delete_k3d_clusters() {
164189function create_k3d_cluster() {
165190 local name=" $1 "
166191 local config=" $2 "
167-
192+
168193 info " Creating cluster \" $name \" ..."
169194 fail_on_error " k3d cluster create -c $config --kubeconfig-update-default=false" " Failure to create cluster \" ${name} \" "
170195 success_clear_line " Cluster \" $name \" has been created."
171196}
172197
173198function get_k3d_kubeconfig() {
174199 local name=" $1 "
175-
200+
176201 k3d kubeconfig write " $name "
177202}
178203
@@ -181,12 +206,12 @@ function install_k8gb() {
181206 local cluster_geo_tag=" $2 "
182207 local cluster_ext_geo_tag=" $3 "
183208 local dns_ip=" $4 "
184-
209+
185210 info " Installing k8gb on cluster..."
186-
211+
187212 fail_on_error " kubectl create namespace k8gb --kubeconfig $kubeconfig " " Failed to create namespace k8gb"
188213 fail_on_error " kubectl -n k8gb create secret generic rfc2136 --kubeconfig $kubeconfig --from-literal=secret=96Ah/a2g0/nLeFGK+d/0tzQcccf9hCEIy34PoXX2Qg8=" " Failed to create secret"
189-
214+
190215 fail_on_error " helm -n k8gb upgrade -i k8gb k8gb/k8gb --kubeconfig $kubeconfig \
191216 --set k8gb.clusterGeoTag=$cluster_geo_tag \
192217 --set k8gb.extGslbClustersGeoTags=$cluster_ext_geo_tag \
@@ -198,8 +223,8 @@ function install_k8gb() {
198223 --set rfc2136.enabled=true \
199224 --set k8gb.edgeDNSServers[0]=${dns_ip} :30053 \
200225 --set externaldns.image=absaoss/external-dns:rfc-ns1 \
201- --wait --timeout=2m0s" " Failed to install k8gb"
202-
226+ --wait --timeout=2m0s" " Failed to install k8gb"
227+
203228 success_clear_line " K8gb has been installed on cluster."
204229}
205230
@@ -208,23 +233,23 @@ function install_ingress_nginx() {
208233 local namespace=" $2 "
209234 local values=" $3 "
210235 local version=" $4 "
211-
236+
212237 if [ -z " $version " ]; then
213238 version=" 4.0.15"
214239 fi
215-
240+
216241 info " Installing ingress-nginx on cluster..."
217-
242+
218243 fail_on_error " helm -n $namespace upgrade --kubeconfig $kubeconfig -i nginx-ingress nginx-stable/ingress-nginx \
219- --version $version -f $values " " Failed to install ingress-nginx"
220-
244+ --version $version -f $values " " Failed to install ingress-nginx"
245+
221246 success_clear_line " Ingress-nginx has been installed on cluster."
222247}
223248
224249function fail_on_error() {
225250 local cmd=" $1 "
226251 local msg=" $2 "
227-
252+
228253 set +e
229254 output=$( $cmd 2>&1 )
230255 # shellcheck disable=SC2181
@@ -242,4 +267,4 @@ function join_by() {
242267 echo " $* "
243268}
244269
245- setup_colors
270+ setup_colors
0 commit comments