diff --git a/EdgeGallery_online_install/EdgeGallery_online_installation_guide.md b/EdgeGallery_online_install/EdgeGallery_online_installation_guide.md index 48a2808d7e28e2a93ced5d9a9e2635c961d8a821..a775b879abc35ae3270c244eaee9a97e2fe434ba 100644 --- a/EdgeGallery_online_install/EdgeGallery_online_installation_guide.md +++ b/EdgeGallery_online_install/EdgeGallery_online_installation_guide.md @@ -15,23 +15,28 @@ INFO: in this guide "All Nodes" refers to "Deploy, Master and Worker nodes" ## 1. Download required gitee repositories on Deploy Node ``` cd /root -git clone -b Release-v1.5 https://gitee.com/edgegallery/helm-charts.git -git clone -b Release-v1.5 https://gitee.com/edgegallery/installer.git +git clone -b Release-v1.5.2 https://gitee.com/edgegallery/helm-charts.git +git clone -b Release-v1.5.2 https://gitee.com/edgegallery/installer.git ``` ## 2. Docker Installation on All Nodes - #### Uninstall old versions: ``` +sudo -s + apt-get remove docker docker-engine docker.io containerd runc ``` #### Install docker 20.10.7 version: ``` apt-get update + apt-get install ca-certificates curl gnupg lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update + apt-get install -y docker-ce=5:20.10.7~3-0~ubuntu-bionic docker-ce-cli=5:20.10.7~3-0~ubuntu-bionic containerd.io ``` @@ -49,18 +54,25 @@ EOF sysctl --system apt-get update + apt-get install -y apt-transport-https ca-certificates curl + curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg + echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list apt-get update + apt-get install -y kubeadm=1.23.4-00 kubelet=1.23.4-00 kubectl=1.23.4-00 + apt-mark hold kubelet kubeadm kubectl apt-get update && apt-get upgrade #MAY BE THIS COMMAND IS upgrading docker + apt-get install docker-ce=5:20.10.7~3-0~ubuntu-bionic docker-ce-cli=5:20.10.7~3-0~ubuntu-bionic containerd.io -sudo mkdir /etc/docker +sudo mkdir /etc/docker #Folder might already be created + cat <:$HOME/.kube/config $HOME/.kube + chown $(id -u):$(id -g) /root/.kube/config ``` ## 7. Docker Compose Installation on Deploy Node ``` curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose + chmod +x /usr/local/bin/docker-compose ``` ## 8. Harbor Installation on Deploy Node - ``` +cd /root + +#param 'insecure-registries'= Master Node IP. cat < http port:80 -certificate: /root/harbor/cert/ca.crt #line number: 17 -private_key: /root/harbor/cert/ca.key #line number: 18 -harbor_admin_password: Harbor12345 -data_volume: /root/harbor/data_volume/ +Line 05 » hostname: 192.168.1.11 #Master Node IP +Line 17 » certificate: /root/harbor/cert/ca.crt +Line 18 » private_key: /root/harbor/cert/ca.key +Line 47 » data_volume: /root/harbor/data_volume/ ``` - ### install harbor ``` cd /root/harbor/ + ./install.sh -docker login -uadmin -pHarbor@12345 192.168.17.108 -kubectl create secret docker-registry harbor --docker-server=https://192.168.17.108 --docker-username=admin --docker-password=Harbor@12345 + +docker login -u admin -p Harbor12345 192.168.17.108 #Master Node IP. + +#param 'docker-server'= Master Node IP. +kubectl create secret docker-registry harbor --docker-server=https://192.168.17.108 --docker-username=admin --docker-password=Harbor12345 + kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "harbor"}]}' ``` ## 9. Harbor Configuration on Worker Nodes ``` +#param 'insecure-registries'= Master Node IP. cat <&1 >/dev/null + openssl req -new -key ca.key -subj /C=CN/ST=Beijing/L=Beijing/O=edgegallery/CN=edgegallery -out ca.csr 2>&1 >/dev/null + openssl x509 -req -days 365 -in ca.csr -extensions v3_ca -signkey ca.key -out ca.crt 2>&1 >/dev/null kubectl create ns mep + openssl genrsa -out mepserver_tls.key 2048 2>&1 >/dev/null + openssl rsa -in mepserver_tls.key -aes256 -passout pass:te9Fmv%qaq -out mepserver_encryptedtls.key 2>&1 >/dev/null + echo -n te9Fmv%qaq > mepserver_cert_pwd 2>&1 >/dev/null + openssl req -new -key mepserver_tls.key -subj /C=CN/ST=Beijing/L=Beijing/O=edgegallery/CN=edgegallery -out mepserver_tls.csr 2>&1 >/dev/null + openssl x509 -req -days 365 -in mepserver_tls.csr -extensions v3_req -CA ca.crt -CAkey ca.key -CAcreateserial -out mepserver_tls.crt 2>&1 >/dev/null + openssl genrsa -out jwt_privatekey 2048 2>&1 >/dev/null + openssl rsa -in jwt_privatekey -pubout -out jwt_publickey 2>&1 >/dev/null + openssl rsa -in jwt_privatekey -aes256 -passout pass:te9Fmv%qaq -out jwt_encrypted_privatekey 2>&1 >/dev/null kubectl -n mep create secret generic pg-secret --from-literal=pg_admin_pwd=admin-Pass123 --from-literal=kong_pg_pwd=kong-Pass123 --from-file=server.key=mepserver_tls.key --from-file=server.crt=mepserver_tls.crt @@ -258,56 +337,70 @@ kubectl create ns metallb-system kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)" ``` + ## 15 Update EdgeGallery values.yaml on Deploy Node ``` cd /root + cp /root/installer/EdgeGallery_online_install/edgegallery-values.yaml /root + +#Use Master Node IP. sed -i 's/192.168.1.11/192.168.17.108/g' /root/edgegallery-values.yaml ``` ## 16 Deploy Controller components from Deploy Node ``` -helm install service-center-edgegallery helm-charts/service-center -f edgegallery-values.yaml +cd /root + +helm install service-center-edgegallery /root/helm-charts/service-center -f /root/edgegallery-values.yaml + +helm install user-mgmt-edgegallery /root/helm-charts/user-mgmt -f /root/edgegallery-values.yaml --set global.oauth2.clients.appstore.clientSecret=te9Fmv%qaq --set global.oauth2.clients.developer.clientSecret=te9Fmv%qaq --set global.oauth2.clients.mecm.clientSecret=te9Fmv%qaq --set global.oauth2.clients.atp.clientSecret=te9Fmv%qaq --set global.oauth2.clients.edgegallery.clientSecret=te9Fmv%qaq --set postgres.password=te9Fmv%qaq --set redis.password=te9Fmv%qaq + +#Use Param 'appstoreBe.dockerRepo.endpoint' and 'appstoreBe.fileSystemAddress' = Master Node IP. +helm install appstore-edgegallery /root/helm-charts/appstore --set global.oauth2.clients.appstore.clientSecret=te9Fmv%qaq --set appstoreBe.secretName=edgegallery-signature-secret --set appstoreBe.dockerRepo.endpoint=192.168.17.108 --set appstoreBe.dockerRepo.appstore.password=Harbor@12345 --set appstoreBe.dockerRepo.appstore.username=admin --set appstoreBe.dockerRepo.developer.password=Harbor@12345 --set appstoreBe.dockerRepo.developer.username=admin --set appstoreBe.hostPackagesPath=/edgegallery/appstore/packages --set appstoreBe.appdtranstool.enabled=true --set appstoreBe.fileSystemAddress=http://192.168.17.108:30090 --set postgres.password=te9Fmv%qaq -f /root/edgegallery-values.yaml + +#Use Param 'developer.dockerRepo.endpoint', 'developer.developerBeIp' and 'developer.vmImage.fileSystemAddress' = Master Node IP. +helm install developer-edgegallery /root/helm-charts/developer --set global.oauth2.clients.developer.clientSecret=te9Fmv%qaq --set develop-er.dockerRepo.endpoint=192.168.17.108 --set developer.dockerRepo.password=Harbor@12345 --set developer.dockerRepo.username=admin --set postgres.password=te9Fmv%qaq --set developer.developerBeIp=192.168.17.108 --set developer.vmImage.fileSystemAddress=http://192.168.17.108:30090 --set develop-er.toolChain.enabled=false --set developer.ssl.certName=developer-ssl-cert -f /root/edgegallery-values.yaml + +kubectl apply -f /root/installer/ansible_package/roles/k8s/files/metric-server.yaml -helm install user-mgmt-edgegallery helm-charts/user-mgmt -f edgegallery-values.yaml --set global.oauth2.clients.appstore.clientSecret=te9Fmv%qaq --set global.oauth2.clients.developer.clientSecret=te9Fmv%qaq --set global.oauth2.clients.mecm.clientSecret=te9Fmv%qaq --set global.oauth2.clients.atp.clientSecret=te9Fmv%qaq --set global.oauth2.clients.edgegallery.clientSecret=te9Fmv%qaq --set postgres.password=te9Fmv%qaq --set redis.password=te9Fmv%qaq +#Use Param 'mecm.repository.dockerRepoEndpoint' and 'mecm.repository.sourceRepos' = Master Node IP. +helm install mecm-meo-edgegallery /root/helm-charts/mecm-meo --set global.oauth2.clients.mecm.clientSecret=te9Fmv%qaq --set mecm.docker.fsgroup=$(getent group docker | cut -d: -f3) --set mecm.docker.dockerRepoUserName=admin --set mecm.docker.dockerRepopassword=Harbor@12345 --set mecm.repository.dockerRepoEndpoint=192.168.17.108 --set mecm.repository.sourceRepos="repo=192.168.17.108 userName=admin pass-word=Harbor@12345" --set mecm.postgres.postgresPass=te9Fmv%qaq --set mecm.postgres.inventoryDbPass=te9Fmv%qaq --set mecm.postgres.northDbPass=te9Fmv%qaq --set mecm.postgres.appoDbPass=te9Fmv%qaq --set mecm.postgres.apmDbPass=te9Fmv%qaq -f /root/edgegallery-values.yaml -helm install appstore-edgegallery helm-charts/appstore -f edgegallery-values.yaml --set global.oauth2.clients.appstore.clientSecret=te9Fmv%qaq --set appstoreBe.secretName=edgegallery-signature-secret --set appstoreBe.dockerRepo.endpoint=192.168.17.108 --set appstoreBe.dockerRepo.appstore.password=Harbor@12345 --set appstoreBe.dockerRepo.appstore.username=admin --set appstoreBe.dockerRepo.developer.password=Harbor@12345 --set appstoreBe.dockerRepo.developer.username=admin --set appstoreBe.hostPackagesPath=/edgegallery/appstore/packages --set appstoreBe.appdtranstool.enabled=true --set appstoreBe.fileSystemAddress=http://192.168.17.108:30090 --set postgres.password=te9Fmv%qaq +helm install atp-edgegallery /root/helm-charts/atp --set global.oauth2.clients.atp.clientSecret=te9Fmv%qaq --set postgres.password=te9Fmv%qaq -f /root/edgegallery-values.yaml -helm install developer-edgegallery helm-charts/developer -f edgegallery-values.yaml --set global.oauth2.clients.developer.clientSecret=te9Fmv%qaq --set developer.dockerRepo.endpoint=192.168.17.108 --set developer.dockerRepo.password=Harbor@12345 --set developer.dockerRepo.username=admin --set postgres.password=te9Fmv%qaq --set developer.developerBeIp=192.168.17.108 --set developer.vmImage.fileSystemAddress=http://192.168.17.108:30090 --set developer.toolChain.enabled=false --set developer.ssl.certName=developer-ssl-cert +helm install file-system-edgegallery /root/helm-charts/file-system --set filesystem.hostVMImagePath=/edgegallery/filesystem/images --set postgres.password=te9Fmv%qaq -f /root/edgegallery-values.yaml -kubectl apply -f installer/ansible_package/roles/k8s/files/metric-server.yaml +helm install healthcheck-edgegallery /root/helm-charts/healthcheck --set healthcheck.localIp=192.168.17.108 -f /root/edgegallery-values.yaml -helm install mecm-meo-edgegallery helm-charts/mecm-meo -f edgegallery-values.yaml --set global.oauth2.clients.mecm.clientSecret=te9Fmv%qaq --set mecm.docker.fsgroup=$(getent group docker | cut -d: -f3) --set mecm.docker.dockerRepoUserName=admin --set mecm.docker.dockerRepopassword=Harbor@12345 --set mecm.repository.dockerRepoEndpoint=192.168.17.108 --set mecm.repository.sourceRepos="repo=192.168.17.108 userName=admin password=Harbor@12345" --set mecm.postgres.postgresPass=te9Fmv%qaq --set mecm.postgres.inventoryDbPass=te9Fmv%qaq --set mecm.postgres.northDbPass=te9Fmv%qaq --set mecm.postgres.appoDbPass=te9Fmv%qaq --set mecm.postgres.apmDbPass=te9Fmv%qaq +helm install healthcheck-m-edgegallery /root/helm-charts/healthcheck-m --set healthcheckm.localIp=192.168.17.108 -f /root/edgegallery-values.yaml -helm install atp-edgegallery helm-charts/atp -f edgegallery-values.yaml --set global.oauth2.clients.atp.clientSecret=te9Fmv%qaq --set postgres.password=te9Fmv%qaq -helm install file-system-edgegallery helm-charts/file-system --set filesystem.hostVMImagePath=/edgegallery/filesystem/images --set postgres.password=te9Fmv%qaq -f edgegallery-values.yaml -helm install healthcheck-edgegallery helm-charts/healthcheck --set healthcheck.localIp=192.168.17.108 -f edgegallery-values.yaml -helm install healthcheck-m-edgegallery helm-charts/healthcheck-m --set healthcheckm.localIp=192.168.17.108 -f edgegallery-values.yaml -helm install edgegallery-fe helm-charts/edgegallery-fe --set global.oauth2.clients.edgegalleryFe.clientSecret=te9Fmv%qaq -f edgegallery-values.yaml -helm install third-system-edgegallery helm-charts/third-system --set postgres.password=te9Fmv%qaq -f edgegallery-values.yaml +helm install edgegallery-fe /root/helm-charts/edgegallery-fe --set global.oauth2.clients.edgegalleryFe.clientSecret=te9Fmv%qaq -f /root/edgegallery-values.yaml + +helm install third-system-edgegallery /root/helm-charts/third-system --set postgres.password=te9Fmv%qaq -f /root/edgegallery-values.yaml ``` ## 17 Deploy Edge components from Deploy Node ``` -kubectl apply -f installer/ansible_package/roles/init/files/conf/manifest/mepm/mepm-service-account.yaml - cd /root + wget https://github.com/kubernetes/ingress-nginx/releases/download/helm-chart-4.0.17/ingress-nginx-4.0.17.tgz -kubectl apply -f installer/ansible_package/roles/init/files/conf/manifest/mepm/mepm-service-account.yaml +helm install eg-ingress ingress-nginx-4.0.17.tgz --set controller.service.type=NodePort --set controller.service.nodePorts.http=30102 --set controller.service.nodePorts.https=31252 -f /root/installer/ansible_install/roles/mecm-mepm/files/ingress.yaml -helm install eg-ingress ingress-nginx-4.0.17.tgz --set controller.service.type=NodePort --set controller.service.nodePorts.http=30102 --set controller.service.nodePorts.https=31252 -f installer/ansible_install/roles/mecm-mepm/files/ingress.yaml +#Use Param 'mepm.filesystem.imagePushUrl' = Master Node IP. +helm install mecm-mepm-edgegallery /root/helm-charts/mecm-mepm --set jwt.publicKeySecretName=mecm-mepm-jwt-public-secret --set global.ssl.secretName=mecm-mepm-ssl-secret --set mepm.postgres.postgresPass=te9Fmv%qaq --set mepm.postgres.lcmcontrollerDbPass=te9Fmv%qaq --set mepm.postgres.k8spluginDbPass=te9Fmv%qaq --set mepm.postgres.ospluginDbPass=te9Fmv%qaq --set mepm.postgres.apprulemgrDbPass=te9Fmv%qaq --set mepm.postgres.mepmtoolsDbPass=te9Fmv%qaq --set mepm.filesystem.imagePushUrl=http://192.168.17.108:30090/image-management/v1/images --set images.commonWebssh.tag=latest -f /root/edgegallery-values.yaml -Handle below points in helm-charts/mecm-mepm/templates/mepm-ingress/mepm-ingress.yaml -v1 - service name port number -pathType: Prefix +kubectl apply -f /root/installer/EdgeGallery_online_install/metallb/namespace.yaml -helm install mecm-mepm-edgegallery helm-charts/mecm-mepm -f edgegallery-values.yaml --set jwt.publicKeySecretName=mecm-mepm-jwt-public-secret --set ssl.secretName=mecm-mepm-ssl-secret --set mepm.postgres.postgresPass=te9Fmv%qaq --set mepm.postgres.lcmcontrollerDbPass=te9Fmv%qaq --set mepm.postgres.k8spluginDbPass=te9Fmv%qaq --set mepm.postgres.ospluginDbPass=te9Fmv%qaq --set mepm.postgres.apprulemgrDbPass=te9Fmv%qaq --set mepm.postgres.mepmtoolsDbPass=te9Fmv%qaq --set mepm.filesystem.imagePushUrl=http://192.168.17.108:30090/image-management/v1/images --set images.commonWebssh.tag=latest +``` +### Update below lines in /root/installer/EdgeGallery_online_install/metallb/metallb.yaml +``` +Line 350 and 401 » Remove text "beta." +``` +kubectl apply -f /root/installer/EdgeGallery_online_install/metallb/metallb.yaml -kubectl apply -f installer/EdgeGallery_online_install/metallb/namespace.yaml -kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)" -kubectl apply -f installer/EdgeGallery_online_install/metallb/metallb.yaml -kubectl apply -f installer/EdgeGallery_online_install/metallb/config-map.yaml +kubectl apply -f /root/installer/EdgeGallery_online_install/metallb/config-map.yaml ip link add eg-mp1 link ens3 type macvlan mode bridge ip addr add 200.1.1.2/24 dev eg-mp1 @@ -317,24 +410,37 @@ ip addr add 100.1.1.2/24 dev eg-mm5 ip link set dev eg-mm5 up mkdir -p /etc/network/interfaces.d/ + cp installer/EdgeGallery_online_install/eg-if.cfg /etc/network/interfaces.d/ + cd installer/ansible_package/roles/init/files/conf/edge/network-isolation -Modify the image name: -swr.cn-north-4.myhuaweicloud.com/eg-common/nfvpe/multus:stable +``` +### Update below lines in multus.yaml +``` +Line 190 and 257 » change image name to: swr.cn-north-4.myhuaweicloud.com/eg-common/nfvpe/multus:stable +``` kubectl apply -f multus.yaml + kubectl apply -f eg-sp-rbac.yaml sed -i 's?image: edgegallery/edgegallery-secondary-ep-controller:latest?image: swr.cn-north-4.myhuaweicloud.com/edgegallery/edgegallery-secondary-ep-controller:v1.3.0?g' eg-sp-controller.yaml + kubectl apply -f eg-sp-controller.yaml mkdir -p /root/cni + cd /root/cni + curl -LO https://github.com/containernetworking/plugins/releases/download/v0.8.7/cni-plugins-linux-amd64-v0.8.7.tgz + tar -xzvf cni-plugins-linux-amd64-v0.8.7.tgz + cp macvlan /opt/cni/bin + cp host-local /opt/cni/bin cd /root -helm install mep-edgegallery helm-charts/mep -f edgegallery-values.yaml --set networkIsolation.ipamType=host-local --set networkIsolation.phyInterface.mp1=ens3 --set networkIsolation.phyInterface.mm5=ens3 --set ssl.secretName=mep-ssl --set postgres.kongPass=te9Fmv%qaq --set mepauthProperties.jwtPrivateKey=te9Fmv%qaq --set postgres.kongPass=kong-Pass123 + +helm install mep-edgegallery /root/helm-charts/mep --set networkIsolation.ipamType=host-local --set networkIsolation.phyInterface.mp1=ens3 --set networkIsolation.phyInterface.mm5=ens3 --set global.ssl.secretName=mep-ssl --set mepauthProperties.jwtPrivateKey=te9Fmv%qaq --set postgres.kongPass=kong-Pass123 -f /root/edgegallery-values.yaml ```