Helm Charts¶
Referenční příručka konfigurace Helm chartů MazeVault
Verze dokumentu: 1.0.46
Poslední aktualizace: 2026-06-08
Licenční úroveň: Enterprise
1. Přehled¶
MazeVault poskytuje customer Helm chart jako OCI artifact publikovaný do GHCR při každém release tagu vX.Y.Z.
Primární distribuční kanál:
oci://ghcr.io/mazevault/charts/mazevault-customer
Zdrojový chart zůstává v repozitáři maze-release v adresáři helm/mazevault-customer.
echo "$GITHUB_TOKEN" | helm registry login ghcr.io -u YOUR_GITHUB_USER --password-stdin
helm show chart oci://ghcr.io/mazevault/charts/mazevault-customer --version 1.2.3
helm upgrade --install mazevault oci://ghcr.io/mazevault/charts/mazevault-customer \
--version 1.2.3 \
-n mazevault \
--create-namespace \
-f values.customer.yaml
Začněte z helm/mazevault-customer/values.yaml a zákaznické hodnoty ukládejte do vlastního override souboru nebo GitOps repozitáře. V produkci vždy pinujte explicitní --version.
Strategie tagů image a pull preflight¶
- Pro produkční nasazení preferujte explicitní release tagy (například
v1.0.44) místolatest. - Před Helm upgradem spusťte pull preflight, aby byla dostupnost image ověřena ještě před samotným nasazením.
# Izolovaný Docker auth context bez vedlejších efektů lokálních přihlášení
TMP_DOCKER_CFG=$(mktemp -d)
# Ověření, že release tagy jsou v GHCR resolvable
DOCKER_CONFIG="$TMP_DOCKER_CFG" docker manifest inspect ghcr.io/mazevault/mazevault-backend:v1.0.44 >/dev/null
DOCKER_CONFIG="$TMP_DOCKER_CFG" docker manifest inspect ghcr.io/mazevault/mazevault-frontend:v1.0.44 >/dev/null
DOCKER_CONFIG="$TMP_DOCKER_CFG" docker manifest inspect ghcr.io/mazevault/mazevault-docs:v1.0.44 >/dev/null
DOCKER_CONFIG="$TMP_DOCKER_CFG" docker manifest inspect ghcr.io/mazevault/mazevault-ocsp:v1.0.44 >/dev/null
rm -rf "$TMP_DOCKER_CFG"
2. Reference hodnot (Values)¶
Globální nastavení¶
global:
environment: "customer"
rolloutNonce: ""
workloadIdentity:
enabled: true
clientId: ""
keyVault:
enabled: true
secretStore:
vaultUrl: https://__SET_KEYVAULT_NAME__.vault.azure.net
tenantId: ""
ingress:
enabled: true
appHost: mazevault.example.com
docsHost: docs.mazevault.example.com
Backend (API Server)¶
backend:
replicaCount: 1 # Zachovat single-writer semantiku backendu
image:
repository: "ghcr.io/mazevault/mazevault-backend"
tag: "v1.0.44" # V zákaznickém prostředí preferujte pinned release tagy
resources:
requests:
cpu: "500m"
memory: "1Gi"
limits:
cpu: "2000m"
memory: "4Gi"
config:
MAZEVAULT_CUSTOMER_NAME: __SET_CUSTOMER_NAME__
MAZEVAULT_CUSTOMER_EMAIL: __SET_CUSTOMER_EMAIL__
MAZEVAULT_COMPANY_ID: __SET_COMPANY_ID__
MAZEVAULT_ENV: production
LOG_LEVEL: info
# Databázové a Redis runtime přihlašovací údaje se promítají přes generovaný runtime secret.
# Health probes
livenessProbe:
httpGet:
path: /api/v1/health
port: 8080
initialDelaySeconds: 30
periodSeconds: 30
readinessProbe:
httpGet:
path: /api/v1/health
port: 8080
initialDelaySeconds: 10
periodSeconds: 10
Frontend (Webové rozhraní)¶
frontend:
replicaCount: 1
image:
repository: "ghcr.io/mazevault/mazevault-frontend"
tag: "v1.0.44"
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "512Mi"
urls:
docs: "https://docs.mazevault.example.com"
domain: "mazevault.example.com"
OCSP Responder¶
ocsp:
enabled: true
replicas: 1
image:
repository: "mazevault-ocsp"
tag: "1.8.0"
resources:
requests:
cpu: "200m"
memory: "256Mi"
limits:
cpu: "1000m"
memory: "1Gi"
autoscaling:
enabled: true
minReplicas: 1
maxReplicas: 5
targetCPUUtilizationPercentage: 70
Ingress¶
ingress:
enabled: true
className: "nginx"
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
hosts:
- host: vault.example.com
paths:
- path: /api
pathType: Prefix
service: backend
- path: /ocsp
pathType: Prefix
service: ocsp
- path: /
pathType: Prefix
service: frontend
tls:
- secretName: mazevault-tls
hosts:
- vault.example.com
Monitoring¶
monitoring:
serviceMonitor:
enabled: true # Requires Prometheus Operator
interval: 30s
labels:
release: prometheus
prometheusRules:
enabled: true
rules:
- alert: MazeVaultBackendDown
expr: up{job="mazevault-backend"} == 0
for: 5m
labels:
severity: critical
- alert: MazeVaultHighErrorRate
expr: rate(http_requests_total{status=~"5.."}[5m]) > 0.1
for: 10m
labels:
severity: warning
3. Příklady pro jednotlivá prostředí¶
Produkce¶
# values-production.yaml
global:
domain: "vault.company.com"
tls:
enabled: true
backend:
replicas: 1
resources:
requests:
cpu: "1000m"
memory: "2Gi"
limits:
cpu: "4000m"
memory: "8Gi"
env:
LOG_LEVEL: "warn"
frontend:
replicas: 3
autoscaling:
enabled: true
minReplicas: 3
monitoring:
serviceMonitor:
enabled: true
Staging¶
# values-staging.yaml
global:
domain: "vault-staging.company.com"
backend:
resources:
requests:
cpu: "500m"
memory: "1Gi"
limits:
cpu: "2000m"
memory: "4Gi"
frontend:
replicas: 1
autoscaling:
enabled: false
4. Postup aktualizace¶
# Kontrola cílové verze chartu
helm show chart oci://ghcr.io/mazevault/charts/mazevault-customer --version 1.2.3
# Kontrola změn
helm diff upgrade mazevault oci://ghcr.io/mazevault/charts/mazevault-customer \
--version 1.2.3 \
-n mazevault -f values-production.yaml
# Provedení upgrade (pin verze)
helm upgrade --install mazevault oci://ghcr.io/mazevault/charts/mazevault-customer \
--version 1.2.3 \
-n mazevault -f values-production.yaml \
--wait --timeout 10m
# Verify
kubectl get pods -n mazevault
kubectl exec -n mazevault deploy/mazevault-backend -- \
wget -qO- http://localhost:8080/api/v1/health
5. Partner Onboarding Checklist (zkrácená verze)¶
Při onboarding partnera i před každým customer release ověřte minimálně následující body:
- Verze a kompatibilita: chart verze odpovídá release (
vX.Y.Z->X.Y.Z), CI/CD používá pinned verzi. - ENV a secrets: povinné hodnoty jsou vyplněné, secret-only hodnoty nejsou v plaintext values.
- AKS/ESO/Ingress: externí secret management a ingress/TLS model odpovídají prostředí.
- Upgrade/rollback: partner má ověřený upgrade příkaz a rollback postup (
helm rollback). - Smoke test: health endpoint, pody, ingress a externalsecret zdroje jsou po nasazení v pořádku.
- Security: partner ověřuje původ artefaktů a checksum/signature dle interní politiky.
Detailní checklist pro release maintainery a partner handover je v repozitáři maze-release v souboru CUSTOMER_RELEASE_CHECKLIST.md.
Související¶
- Nasazení na Azure AKS — Nastavení clusteru AKS
- Systémové požadavky — Dimenzování prostředků
- Monitoring — Konfigurace monitoringu