mirror of
https://github.com/project-zot/zot.git
synced 2024-12-16 21:56:37 -05:00
12227b4484
Signed-off-by: Alexei Dodon <adodon@cisco.com>
78 lines
2.9 KiB
Bash
Executable file
78 lines
2.9 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
#set -x
|
|
set -e
|
|
|
|
CLUSTER_NAME=zot
|
|
|
|
# Script tested with below kubectl & kind versions
|
|
KUBECTL_VERSION=v1.27.3
|
|
KIND_VERSION=v0.20.0
|
|
|
|
function install_bin() {
|
|
if [ "$EUID" -ne 0 ]
|
|
then echo "Please run as root/sudo"
|
|
exit 1
|
|
fi
|
|
curl -Lo ./$2 $1
|
|
chmod +x ./$2
|
|
yes | mv ./$2 /usr/local/bin/$2
|
|
}
|
|
|
|
## Install kubectl & kind if not available on the system
|
|
|
|
# Kubectl
|
|
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
|
|
|
|
# Kind
|
|
kind version || install_bin https://kind.sigs.k8s.io/dl/${KIND_VERSION}/kind-$(uname)-amd64 kind
|
|
|
|
## Delete the cluster if it already exist
|
|
kind get clusters | grep ${CLUSTER_NAME} && kind delete cluster --name ${CLUSTER_NAME}
|
|
|
|
kind create cluster --name ${CLUSTER_NAME}
|
|
|
|
docker pull quay.io/prometheus-operator/prometheus-operator:v0.51.2
|
|
docker pull quay.io/prometheus-operator/prometheus-config-reloader:v0.51.2
|
|
docker pull quay.io/prometheus/prometheus:v2.22.1
|
|
|
|
kind load docker-image quay.io/prometheus-operator/prometheus-operator:v0.51.2 --name ${CLUSTER_NAME}
|
|
kind load docker-image quay.io/prometheus-operator/prometheus-config-reloader:v0.51.2 --name ${CLUSTER_NAME}
|
|
kind load docker-image quay.io/prometheus/prometheus:v2.22.1 --name ${CLUSTER_NAME}
|
|
|
|
## Build zot & zxp images
|
|
make -C ../../ binary-container
|
|
make -C ../../ binary-minimal-container
|
|
make -C ../../ binary-exporter-container
|
|
|
|
kind load docker-image zot-build:latest --name ${CLUSTER_NAME}
|
|
kind load docker-image zot-minimal:latest --name ${CLUSTER_NAME}
|
|
kind load docker-image zxp:latest --name ${CLUSTER_NAME}
|
|
|
|
## Deploy prometheus operator
|
|
kubectl create -f kubernetes/prometheus/bundle.yaml
|
|
|
|
## Deploy the Kubernetes objects for RBAC, prometheus CRD and deploy the service
|
|
kubectl apply -f kubernetes/prometheus/prom_rbac.yaml
|
|
kubectl apply -f kubernetes/prometheus/prometheus.yaml
|
|
kubectl apply -f kubernetes/prometheus/prom_service.yaml
|
|
|
|
sleep 10
|
|
## Deploy zot extended & minimal in 2 separate deployments
|
|
## Deploy Prometheus operator servicemonitor CRD instances for prometheus to be able to scrape metrics from zot extended & the node exporter
|
|
kubectl apply -f kubernetes/zot-extended/deployment.yaml
|
|
kubectl apply -f kubernetes/zot-extended/service.yaml
|
|
kubectl apply -f kubernetes/zot-extended/servicemonitor.yaml
|
|
|
|
kubectl apply -f kubernetes/zot-minimal/deployment.yaml
|
|
kubectl apply -f kubernetes/zot-minimal/service.yaml
|
|
kubectl apply -f kubernetes/zot-minimal/exporter-service.yaml
|
|
kubectl apply -f kubernetes/zot-minimal/exporter-servicemonitor.yaml
|
|
|
|
sleep 10
|
|
## For being able to access prometheus, zot & exporter on localhost ports
|
|
kubectl port-forward svc/prometheus 9090 --address='0.0.0.0' &
|
|
kubectl port-forward svc/zot-extended 5000 --address='0.0.0.0' &
|
|
kubectl port-forward svc/zot-minimal 5050 --address='0.0.0.0' &
|
|
kubectl port-forward svc/zot-exporter 5051 --address='0.0.0.0' &
|
|
|