Skip to content

Helm Chart

Helm Chart fur das Kubernetes-Deployment von Janus Home.

graph TB
    subgraph Chart ["janus-home (v0.8.0)"]
        Deploy["Deployment<br/>2 Replicas"]
        Svc["Service<br/>ClusterIP:80"]
        Ing["Ingress<br/>nginx + TLS"]
        NS["Namespace<br/>janus"]
        Secret["Registry Secret"]
    end

    subgraph Template ["Templates"]
        T1["deployment.yaml"]
        T2["service.yaml"]
        T3["ingress.yaml"]
        T4["namespace.yaml"]
        T5["registry-secret.yaml"]
        T6["_helpers.tpl"]
    end

    subgraph Values ["values.yaml"]
        V1["Image: registry.ciss.de/..."]
        V2["Replicas: 2"]
        V3["Resources: 50m/32Mi"]
        V4["Security: non-root"]
    end

    Values --> Chart
    Template --> Chart
charts/janus-home/
├── Chart.yaml # Chart-Metadaten (v0.8.0)
├── values.yaml # Default-Werte
└── templates/
├── _helpers.tpl # Label- und Registry-Helper
├── deployment.yaml # Deployment mit Security Context
├── service.yaml # ClusterIP Service
├── ingress.yaml # Ingress mit TLS
├── namespace.yaml # janus Namespace
└── registry-secret.yaml # Docker Registry Credentials
ParameterWertBeschreibung
image.repositoryregistry.ciss.de/ciss/janus/homeGitLab Registry
image.tag"" (Chart AppVersion)Image-Tag
image.pullPolicyAlwaysPull-Strategie
TypCPUMemory
Requests50m32Mi
Limits100m64Mi
EinstellungWert
runAsNonRoottrue
runAsUser101
runAsGroup101
readOnlyRootFilesystemtrue
allowPrivilegeEscalationfalse
capabilities.dropALL
seccompProfileRuntimeDefault
ParameterWert
service.typeClusterIP
service.port80
service.targetPort8080
ParameterWert
ingress.enabledtrue
ingress.classNamenginx
ingress.tls.enabledtrue
ProbeInitial DelayPeriode
Liveness5s10s
Readiness2s5s
  • 2 Replicas fur Verfügbarkeit
  • Security Context auf Pod- und Container-Ebene
  • Liveness- und Readiness-Probes
  • Image Pull Secrets fur GitLab Registry

Dynamische Host-Konstruktion:

  • Branch-basiert: <branch>.janus.ciss.digital
  • TLS uber cert-manager ClusterIssuer
  • nginx Ingress-Klasse

Helper-Templates:

  • janus-home.labels: Standard Kubernetes-Labels
  • janus-home.registry-auth: Base64-Encoded Registry Credentials

Das Chart wird uber Flux GitOps deployt:

fleet/janus-home-release.yml
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
spec:
chart:
spec:
chart: ./charts/janus-home
sourceRef:
kind: GitRepository
name: janus-home
values:
image:
tag: master
ingress:
domain: janus.ciss.digital

Flux pullt Änderungen aus dem Git-Repository und reconciled das Helm-Release automatisch.