Helm/Harbor: Difference between revisions
Jump to navigation
Jump to search
| Line 47: | Line 47: | ||
cat <<'EXE'| sudo bash | cat <<'EXE'| sudo bash | ||
mkdir -p /var/minikube/pvc/harbor/data-harbor-0/ | mkdir -p /var/minikube/pvc/harbor/data-harbor-0/ | ||
chown -R | chown -R root:root /var/minikube/pvc/harbor/ | ||
# chown -R 1000: | # chown -R 1000:1000 /var/minikube/pvc/harbor/ | ||
EXE | EXE | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 05:57, 12 July 2025
|
Helm » Repo » Manage |
|---|
helm repo add harbor https://helm.goharbor.io
helm repo update && helm repo list
|
Helm » K8s » Config
|
Helm » K8s » Config | |
|---|---|
export KUBECONFIG=${HOME}/.kube/eks-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/gke-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/lke-kubeconfig.yaml
|
export KUBECONFIG=${HOME}/.kube/shahed-aa-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/shahed-ab-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/shahed-ac-kubeconfig.yaml
|
export KUBECONFIG=${HOME}/.kube/shahed-ae-kubeconfig.yaml
kubectl config get-contexts
kubectl config view
| |
Helm » K8s » Storage
|
Helm » K8s » Storage | |
|---|---|
cat <<'EXE'| sudo bash
mkdir -p /var/minikube/pvc/harbor/data-harbor-0/
chown -R root:root /var/minikube/pvc/harbor/
# chown -R 1000:1000 /var/minikube/pvc/harbor/
EXE
| |
cat <<'YML'| kubectl apply -f -
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: harbor-data-harbor-0
spec:
capacity:
storage: 50Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: hostpath
hostPath:
path: /var/hostpath_pv/harbor/data-harbor-0
type: DirectoryOrCreate
YML
|
|
Helm » Harbor » Database
|
Helm » Harbor » Database |
|---|
ssh -qt shahed@shahed-ae.local.or.tunnel.ip bash
echo -n 'Password: ';read -s HARBOR_PASSWORD;export HARBOR_PASSWORD;echo
# Password: sadaqah!
cat << DDL | sudo -i -u postgres psql
\! printf '\n'
SELECT 'CREATE DATABASE shahed_harbor_registry'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'shahed_harbor_registry')\gexec
CREATE USER shahed_harbor WITH ENCRYPTED PASSWORD '${HARBOR_PASSWORD}';
GRANT ALL PRIVILEGES ON DATABASE shahed_harbor_registry TO shahed_harbor;
ALTER DATABASE shahed_harbor_registry OWNER TO shahed_harbor;
DDL
|
echo -n 'Password: ';read -s PGBOUNCER_PASSWORD;export PGBOUNCER_PASSWORD;echo
# Password: sadaqah!
cat << DDL | sudo -i -u postgres psql
\! printf '\n'
SELECT 'CREATE DATABASE bouncer'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'bouncer')\gexec
CREATE USER bouncer WITH ENCRYPTED PASSWORD '${PGBOUNCER_PASSWORD}';
GRANT ALL PRIVILEGES ON DATABASE bouncer TO bouncer;
ALTER DATABASE bouncer OWNER TO bouncer;
DDL
echo -n 'Password: ';read -s PGPASSWORD; export PGPASSWORD; echo
# Password: sadaqah!
psql -U shahed_harbor -d shahed_harbor_registry -p 5432 -h 192.168.49.103
psql -U shahed_harbor -d shahed_harbor_registry -p 5432 -h localhost
psql -U bouncer -d bouncer -p 5432 -h 192.168.49.103
psql -U bouncer -d bouncer -p 5432 -h localhost
|
Helm » Install
|
Helm » Install | |
|---|---|
helm show values harbor/harbor --version=1.17.0|less
helm show values harbor/harbor --version=1.17.1|less
|
kubectl create ns harbor
kubectl get ns|grep harbor
|
cat <<ENV | kubectl -n harbor create secret generic harbor-admin --from-env-file=/dev/stdin
password=sadaqah!
ENV
cat <<ENV | kubectl -n harbor create secret generic harbor-database --from-env-file=/dev/stdin
password=sadaqah!
ENV
| |
cat <<'YML'| kubectl apply -n harbor -f -
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data-harbor-0
namespace: harbor
labels:
app.kubernetes.io/name: harbor
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/instance: harbor
app.kubernetes.io/managed-by: kubectl
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
storageClassName: hostpath
volumeName: harbor-data-harbor-0
YML
|
Find More 👉 Storage » Class » Hostpath Find More 👉 Storage » Persistent Volume |
cat <<YML | helm -n harbor install harbor harbor/harbor --version=1.17.1 -f -
---
expose:
type: ingress
tls:
enabled: false
ingress:
enabled: true
className: nginx
hosts:
core: harbor.shahed.biz
externalURL: https://harbor.shahed.biz
existingSecretAdminPassword: harbor-admin
existingSecretAdminPasswordKey: password
persistence:
enabled: true
storageClass: hostpath
persistentVolumeClaim:
registry:
size: 5Gi
subPath: registry
accessMode: ReadWriteOnce
existingClaim: data-harbor-0
jobservice:
jobLog:
size: 1Gi
subPath: jobservice
accessMode: ReadWriteOnce
existingClaim: data-harbor-0
redis:
size: 1G
subPath: redis
accessMode: ReadWriteOnce
existingClaim: data-harbor-0
trivy:
size: 1G
subPath: trivy
accessMode: ReadWriteOnce
existingClaim: data-harbor-0
database:
type: external
external:
port: 5432
maxIdleConns: 5
maxOpenConns: 10
sslmode: disable
username: shahed_harbor
host: pgbouncer.pgbouncer
existingSecret: harbor-database
coreDatabase: shahed_harbor_registry
cache:
enabled: false
expireHours: 24
YML
| |
Helm » Uninstall
|
Helm » Uninstall | |
|---|---|
helm uninstall harbor -n harbor
kubectl delete pvc --all -n harbor
kubectl delete pv harbor-data-harbor-0
|
kubectl delete deploy --all -n harbor
kubectl delete all --all -n harbor
kubectl delete namespace harbor
|
Playground
|
Playground | |
|---|---|
helm -n harbor install harbor harbor/harbor --version=1.17.0
helm -n harbor upgrade -i harbor harbor/harbor --version=1.17.1
helm show values harbor/harbor --version=1.17.1|less
kubectl -n harbor get secret harbor-database -o json|jq -r '.data.password'|base64 -d;echo
kubectl -n harbor get secret harbor-admin -o json|jq -r '.data.password'|base64 -d;echo
kubectl -n harbor exec -it svc/harbor-jobservice -c harbor-jobservice -- bash
kubectl -n harbor exec -it svc/harbor-trivy -c harbor-trivy -- bash
kubectl -n harbor exec -it svc/harbor-core -c harbor-core -- bash
kubectl -n harbor logs -f svc/harbor-jobservice -c harbor-jobservice
kubectl -n harbor logs -f svc/harbor-trivy -c harbor-trivy
kubectl -n harbor logs -f svc/harbor-core -c harbor-core
kubectl -n harbor exec -it svc/harbor-registry -- bash
kubectl -n harbor exec -it svc/harbor-portal -- bash
kubectl -n harbor exec -it svc/harbor-redis -- bash
| |
kubectl -n harbor delete all --all
kubectl -n harbor delete ing --all
kubectl -n harbor delete sts --all
|
kubectl delete pv harbor-data-harbor-0
kubectl -n harbor delete svc --all
kubectl -n harbor delete pvc --all
|
kubectl -n harbor rollout history sts harbor-core
kubectl -n harbor rollout restart sts harbor-core
kubectl -n harbor rollout status sts harbor-core
|
kubectl -n harbor logs -f svc/harbor-registry
kubectl -n harbor logs -f svc/harbor-portal
kubectl -n harbor logs -f svc/harbor-redis
|
References
|
References | ||
|---|---|---|