Skip to content

Commit 9ddac1f

Browse files
authored
Merge pull request #7 from dsohk/rancher-2.6
Updated lab materials to be Rancher 2.6 and RKE2 based
2 parents e4813fb + 63e599f commit 9ddac1f

12 files changed

+260
-78
lines changed

setup-rke-cluster1.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ echo "Registering cluster1 as All-in-one RKE..."
2727
SSH_VM=$(<ssh-mylab-cluster1.sh)
2828
CMD="$RANCHER_REGCMD --node-name cluster1 --address $PUB_IP --internal-address $PRIV_IP --etcd --controlplane --worker"
2929
echo $CMD
30-
eval "$SSH_VM $CMD"
30+
eval "$SSH_VM \"$CMD\""
3131

setup-rke-cluster2.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ echo "Registering cluster2 as All-in-one RKE..."
2727
SSH_VM=$(<ssh-mylab-cluster2.sh)
2828
CMD="$RANCHER_REGCMD --node-name cluster2 --address $PUB_IP --internal-address $PRIV_IP --etcd --controlplane --worker"
2929
echo $CMD
30-
eval "$SSH_VM $CMD"
30+
eval "$SSH_VM \"$CMD\""
3131

setup-rke-devsecops.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ if [ -f ssh-mylab-devsecops-m1.sh ]; then
2727
SSH_VM=$(<ssh-mylab-devsecops-m1.sh)
2828
CMD="$RANCHER_REGCMD --node-name devsecops-m1 --address $PUB_IP --internal-address $PRIV_IP --etcd --controlplane"
2929
echo $CMD
30-
eval "$SSH_VM $CMD"
30+
eval "$SSH_VM \"$CMD\""
3131
sleep 10
3232
fi
3333

@@ -45,10 +45,11 @@ do
4545
SSH_VM=$(<ssh-mylab-devsecops-w$n.sh)
4646
CMD="$RANCHER_REGCMD --node-name devsecops-w$n --address $PUB_IP --internal-address $PRIV_IP --worker"
4747
echo $CMD
48-
eval "$SSH_VM $CMD"
48+
eval "$SSH_VM \"$CMD\""
4949
fi
5050
done
5151

52+
5253
echo
5354
echo "The devsecops cluster is now being provisioned by Rancher. It may take a few minutes to complete."
5455
echo "Once it's ready, please install Longhorn on it and download KUBECONFIG file into your Harbor VM. Thank you!"

setup/_awsls_functions.sh

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,8 @@
55
function create-vm() {
66

77
# Randomly choose availability zone in the selected AWS region ...
8-
if [ "ap-south-1" == $AWS_REGION ]; then
9-
export AWS_AVAIL_AZ=("a" "b")
10-
elif [ "ap-northeast-1" == $AWS_REGION ]; then
11-
export AWS_AVAIL_AZ=("a" "c" "d")
12-
elif [ "ap-northeast-2" == $AWS_REGION ]; then
13-
export AWS_AVAIL_AZ=("a" "c")
14-
else
15-
export AWS_AVAIL_AZ=("a" "b" "c")
16-
fi
17-
AWS_SELECTED_AZ=${AWS_AVAIL_AZ[$RANDOM % ${#AWS_AVAIL_AZ[@]} ]}
8+
IFS=', ' read -r -a AVAIL_AZ <<< "$AWS_AVAIL_AZ"
9+
AWS_SELECTED_AZ=${AVAIL_AZ[$RANDOM % ${#AVAIL_AZ[@]} ]}
1810
AWS_AZ=${AWS_REGION}${AWS_SELECTED_AZ}
1911

2012
aws lightsail create-instances \

setup/_awsls_locations.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# https://lightsail.aws.amazon.com/ls/docs/overview/article/understanding-regions-and-availability-zones-in-amazon-lightsail
2+
Continent | Region | Region Code | AZ | Bunddle_Suffix
3+
----------+-----------------------+----------------+-------------+---------------
4+
US | US East - N. Virginia | us-east-1 | a,b,c,d,e,f | 2_0
5+
US | US East - Ohio | us-east-2 | a,b,c | 2_0
6+
US | US West - Oregon | us-west-2 | a,b,c | 2_0
7+
US | Canada (Central) | ca-central-1 | a,b | 2_0
8+
EU | Frankfurt | eu-central-1 | a,b,c | 2_0
9+
EU | Ireland | eu-west-1 | a,b,c | 2_0
10+
EU | London | eu-west-2 | a,b,c | 2_0
11+
EU | Paris | eu-west-3 | a,b,c | 2_0
12+
EU | Stockholm | eu-north-1 | a,b,c | 2_0
13+
AP | Mumbai | ap-south-1 | a,b | 2_1
14+
AP | Seoul | ap-northeast-2 | a,c | 2_0
15+
AP | Singapore | ap-southeast-1 | a,b,c | 2_0
16+
AP | Sydney | ap-southeast-2 | a,b,c | 2_2
17+
AP | Tokyo | ap-northeast-1 | a,c,d | 2_0
18+
19+
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#! /bin/bash
2+
3+
source $HOME/myharbor.sh
4+
5+
echo "Configure containerd to access harbor instance with self-signed cert ..."
6+
sudo mkdir -p /etc/rancher/rke2
7+
8+
echo "Download Harbor CA cert into /etc/rancher/rke2/demo-harbor folder ..."
9+
sudo mkdir -p /etc/rancher/rke2/demo-harbor
10+
openssl s_client -showcerts -connect $HARBOR_URL < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ca.crt
11+
sudo mv ca.crt /etc/rancher/rke2/demo-harbor
12+
13+
export REGISTRY_YAML=/etc/rancher/rke2/registries.yaml
14+
sudo echo "configs:" > $REGISTRY_YAML
15+
sudo echo " \"${HARBOR_URL}\":" >> $REGISTRY_YAML
16+
sudo echo " auth:" >> $REGISTRY_YAML
17+
sudo echo " username: ${HARBOR_USR}" >> $REGISTRY_YAML
18+
sudo echo " password: ${HARBOR_PWD}" >> $REGISTRY_YAML
19+
sudo echo " tls:" >> $REGISTRY_YAML
20+
sudo echo " ca_file: /etc/rancher/rke2/demo-harbor/ca.crt" >> $REGISTRY_YAML
21+
sudo echo " insecure_skip_verify: true" >> $REGISTRY_YAML
22+
23+
if sudo systemctl list-units --type=service | grep rke2-server; then
24+
sudo systemctl restart rke2-server
25+
fi
26+
27+
if sudo systemctl list-units --type=service | grep rke2-agent; then
28+
sudo systemctl restart rke2-agent
29+
fi
30+

setup/jenkins/01-distribute-harbor-ca-to-other-vms.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ for vm in rancher devsecops-m1 devsecops-w1 devsecops-w2 devsecops-w3 devsecops-
44
echo
55
echo "Distribute the self-signed harbor certs to $vm ..."
66
scp $HOME/myharbor.sh $vm:~
7-
scp $HOME/04-configure-docker-client.sh $vm:~/configure-docker-client.sh
8-
ssh $vm ./configure-docker-client.sh
7+
scp $HOME/04-configure-containerd-registry.sh $vm:~/configure-containerd-node.sh
8+
ssh $vm "sudo ./configure-containerd-node.sh"
99
done
1010

setup/jenkins/99-one-step-install-jenkins.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ for vm in rancher devsecops-m1 devsecops-w1 devsecops-w2 devsecops-w3 devsecops-
44
echo
55
echo "Distribute the self-signed harbor certs to $vm ..."
66
scp $HOME/myharbor.sh $vm:~
7-
scp $HOME/04-configure-docker-client.sh $vm:~/configure-docker-client.sh
8-
ssh $vm ./configure-docker-client.sh
7+
scp $HOME/04-configure-containerd-registry.sh $vm:~/configure-containerd-node.sh
8+
ssh $vm "sudo ./configure-containerd-node.sh"
99
done
1010

1111
#! /bin/bash -e

setup/jenkins/jenkins-values-template.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ controller:
3131
# cpu: 10m
3232
# memory: 32Mi
3333
prometheus:
34-
enabled: true
34+
enabled: false
3535
# Additional labels to add to the ServiceMonitor object
3636
serviceMonitorAdditionalLabels: {}
3737
# Set a custom namespace where to deploy ServiceMonitor resource
Lines changed: 65 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,76 @@
11
#! /bin/bash -e
22

33
# install rancher server
4-
echo "Install Rancher Server ..."
4+
echo "Install Rancher Server using helm chart on RKE2 ..."
55

6-
sudo mkdir -p /opt/rancher
6+
source $HOME/mylab_rancher_version.sh
77

8-
sudo docker run -d --restart=unless-stopped \
9-
-p 80:80 -p 443:443 \
10-
--privileged \
11-
-v /opt/rancher:/var/lib/rancher \
12-
rancher/rancher:v2.5.9 \
8+
echo "Install RKE2 v1.21 ..."
9+
sudo bash -c 'curl -sfL https://get.rke2.io | INSTALL_RKE2_CHANNEL="v1.21" sh -'
10+
sudo mkdir -p /etc/rancher/rke2
11+
sudo bash -c 'echo "write-kubeconfig-mode: \"0644\"" > /etc/rancher/rke2/config.yaml'
12+
sudo systemctl enable rke2-server.service
13+
sudo systemctl start rke2-server.service
14+
15+
mkdir -p $HOME/.kube
16+
ln -s /etc/rancher/rke2/rke2.yaml $HOME/.kube/config
17+
export KUBECONFIG=$HOME/.kube/config
18+
19+
# Wait until the RKE2 is ready
20+
echo "Initializing RKE2 cluster ..."
21+
while [ `kubectl get deploy -n kube-system | grep 1/1 | wc -l` -ne 3 ]
22+
do
23+
sleep 5
24+
kubectl get po -n kube-system
25+
done
26+
echo "Your RKE2 cluster is ready!"
27+
kubectl get node
28+
29+
echo "Install Cert Manager v1.5.1 ..."
30+
kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.crds.yaml
31+
helm repo add jetstack https://charts.jetstack.io
32+
helm install \
33+
cert-manager jetstack/cert-manager \
34+
--namespace cert-manager \
35+
--version v1.5.1 \
36+
--create-namespace
37+
kubectl -n cert-manager rollout status deploy/cert-manager
38+
39+
# Wait until cert-manager deployment complete
40+
echo "Wait until cert-manager deployment finish ..."
41+
while [ `kubectl get deploy -n cert-manager | grep 1/1 | wc -l` -ne 3 ]
42+
do
43+
sleep 5
44+
kubectl get po -n cert-manager
45+
done
46+
47+
# Install Rancher with helm chart
48+
echo "Install Rancher ${RANCHER_VERSION} ..."
49+
RANCHER_IP=`curl -qs http://checkip.amazonaws.com`
50+
RANCHER_FQDN=rancher.$RANCHER_IP.sslip.io
51+
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
52+
helm install rancher rancher-latest/rancher \
53+
--namespace cattle-system \
54+
--set hostname=$RANCHER_FQDN \
55+
--set replicas=1 \
56+
--version ${RANCHER_VERSION} --devel \
57+
--create-namespace
58+
59+
echo "Wait until cattle-system deployment finish ..."
60+
while [ `kubectl get deploy -n cattle-system | grep 1/1 | wc -l` -ne 1 ]
61+
do
62+
sleep 5
63+
kubectl get po -n cattle-system
64+
done
65+
66+
RANCHER_BOOTSTRAP_PWD=`kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}{{ "\n" }}'`
1367

14-
export RANCHER_IP=`curl -qs http://checkip.amazonaws.com`
1568

1669
echo
1770
echo "---------------------------------------------------------"
18-
echo "Please wait for 5-10 mins to initializing Rancher server."
71+
echo "Your Rancher Server is ready."
1972
echo
20-
echo "Your Rancher Server URL: https://${RANCHER_IP}" > rancher-url.txt
73+
echo "Your Rancher Server URL: https://${RANCHER_FQDN}" > rancher-url.txt
74+
echo "Bootstrap Password: ${RANCHER_BOOTSTRAP_PWD}" >> rancher-url.txt
2175
cat rancher-url.txt
22-
echo
23-
76+
echo "---------------------------------------------------------"

0 commit comments

Comments
 (0)