Skip to content

Commit 841db91

Browse files
committed
fix(common.sh): fixed cgroupDriver configuration to ensure broad OS compatibility in quickstart example
1 parent 525e6ef commit 841db91

File tree

1 file changed

+58
-33
lines changed

1 file changed

+58
-33
lines changed

examples/common.sh

Lines changed: 58 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -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() {
9999
function 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+
110135
function 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() {
164189
function 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

173198
function 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

224249
function 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

Comments
 (0)