zotregistry.io/zot@v1.4.4-0.20231124084042-02a8ed785457/examples/metrics/kind_setup.sh (about) 1 #!/bin/bash 2 3 #set -x 4 set -e 5 6 CLUSTER_NAME=zot 7 8 # Script tested with below kubectl & kind versions 9 KUBECTL_VERSION=v1.27.3 10 KIND_VERSION=v0.20.0 11 12 function install_bin() { 13 if [ "$EUID" -ne 0 ] 14 then echo "Please run as root/sudo" 15 exit 1 16 fi 17 curl -Lo ./$2 $1 18 chmod +x ./$2 19 yes | mv ./$2 /usr/local/bin/$2 20 } 21 22 ## Install kubectl & kind if not available on the system 23 24 # Kubectl 25 kubectl > /dev/null 2>&1 || install_bin https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_VERSION}/bin/`uname | awk '{print tolower($0)}'`/amd64/kubectl kubectl 26 27 # Kind 28 kind version || install_bin https://kind.sigs.k8s.io/dl/${KIND_VERSION}/kind-$(uname)-amd64 kind 29 30 ## Delete the cluster if it already exist 31 kind get clusters | grep ${CLUSTER_NAME} && kind delete cluster --name ${CLUSTER_NAME} 32 33 kind create cluster --name ${CLUSTER_NAME} 34 35 docker pull quay.io/prometheus-operator/prometheus-operator:v0.51.2 36 docker pull quay.io/prometheus-operator/prometheus-config-reloader:v0.51.2 37 docker pull quay.io/prometheus/prometheus:v2.22.1 38 39 kind load docker-image quay.io/prometheus-operator/prometheus-operator:v0.51.2 --name ${CLUSTER_NAME} 40 kind load docker-image quay.io/prometheus-operator/prometheus-config-reloader:v0.51.2 --name ${CLUSTER_NAME} 41 kind load docker-image quay.io/prometheus/prometheus:v2.22.1 --name ${CLUSTER_NAME} 42 43 ## Build zot & zxp images 44 make -C ../../ binary-container 45 make -C ../../ binary-minimal-container 46 make -C ../../ binary-exporter-container 47 48 kind load docker-image zot-build:latest --name ${CLUSTER_NAME} 49 kind load docker-image zot-minimal:latest --name ${CLUSTER_NAME} 50 kind load docker-image zxp:latest --name ${CLUSTER_NAME} 51 52 ## Deploy prometheus operator 53 kubectl create -f kubernetes/prometheus/bundle.yaml 54 55 ## Deploy the Kubernetes objects for RBAC, prometheus CRD and deploy the service 56 kubectl apply -f kubernetes/prometheus/prom_rbac.yaml 57 kubectl apply -f kubernetes/prometheus/prometheus.yaml 58 kubectl apply -f kubernetes/prometheus/prom_service.yaml 59 60 sleep 10 61 ## Deploy zot extended & minimal in 2 separate deployments 62 ## Deploy Prometheus operator servicemonitor CRD instances for prometheus to be able to scrape metrics from zot extended & the node exporter 63 kubectl apply -f kubernetes/zot-extended/deployment.yaml 64 kubectl apply -f kubernetes/zot-extended/service.yaml 65 kubectl apply -f kubernetes/zot-extended/servicemonitor.yaml 66 67 kubectl apply -f kubernetes/zot-minimal/deployment.yaml 68 kubectl apply -f kubernetes/zot-minimal/service.yaml 69 kubectl apply -f kubernetes/zot-minimal/exporter-service.yaml 70 kubectl apply -f kubernetes/zot-minimal/exporter-servicemonitor.yaml 71 72 sleep 10 73 ## For being able to access prometheus, zot & exporter on localhost ports 74 kubectl port-forward svc/prometheus 9090 --address='0.0.0.0' & 75 kubectl port-forward svc/zot-extended 5000 --address='0.0.0.0' & 76 kubectl port-forward svc/zot-minimal 5050 --address='0.0.0.0' & 77 kubectl port-forward svc/zot-exporter 5051 --address='0.0.0.0' & 78