Files
gitea-ci-library/guides/helm-registry-setup.md
T
moilanik a731b62a52
CI Git-Pages Main / Load git-pages.gitea-env.conf to pipeline env (push) Successful in 30s
CI Git-Pages Main / Report Summary (push) Successful in 4s
acc-tests Cucumber test report
CI Feature / Load example-gitea-env.conf to pipeline env (push) Successful in 24s
CI Git-Pages Main / Check existing artifact (push) Failing after 15s
CI Git-Pages Main / Build & Push Helm chart (push) Has been skipped
CI Feature / Cucumber tests (push) Successful in 1m1s
unit-tests Bats test report
CI Feature / Bats tests (push) Successful in 1m29s
CI Feature / Report Summary (push) Successful in 4s
helm chart build & push
2026-06-19 07:25:09 +03:00

4.0 KiB

Helm Registry Setup (OCI)

Pipeline paketoi Helm chartin OCI-artefaktiksi ja pushee sen OCI-rekisteriin.


1. Konfiguroi gitea-env.conf

# HELM_REGISTRY on muotoa:  registry.example.com/org
#
#   host+org:              registry.example.com/org
#
# Pipeline rakentaa OCI-refin:  oci://${HELM_REGISTRY}/<chart-name>:${VERSION}
# (chart-name tulee Chart.yaml:n name-kentästä)

HELM_REGISTRY=gitea.app.keskikuja.site/niko                     # PAKOLLINEN — tyhjä ei käy
HELM_UI_URL=                                                    # valinnainen — tarkista Giteasta kontin oma UI-osoite, workflow liittää perään /chart-name/VERSION
GIT_TAG_PREFIX=git-pages/                                        # valinnainen — monorepo-tägäys
VERSION_FILE=git-pages/Chart.yaml                                # valinnainen — jos Chart.yaml ei rootissa
Kenttä Pakollinen Kuvaus
HELM_REGISTRY kyllä Registry host + owner (esim. gitea.app.site/niko). Tyhjä pysäyttää workflow'n.
HELM_UI_URL ei Base-URL OCI-paketin UI-sivulle (ilman chart-nimeä ja versiota). Osoite riippuu onko paketti linkitetty repoon vai ei — tarkista Giteasta. Workflow liittää perään /chart-name/VERSION. Jos tyhjä, commit-statusia ei erikseen aseteta.
GIT_TAG_PREFIX ei Etuliite git-tägille. Pakollinen monorepossa, jotta tagit eivät sekoitu muihin komponentteihin.
VERSION_FILE ei Polku version lähteeseen (Chart.yaml, package.json, VERSION). Oletus: juuren Chart.yaml.

OCI-ref = oci://${HELM_REGISTRY}/<chart-name>:${VERSION} Esim. oci://gitea.app.keskikuja.site/niko/git-pages:1.2.3

Chartin nimi (<chart-name>) määräytyy Chart.yaml-tiedoston name-kentästä.


2. Luo PAT (Personal Access Token) Giteassa

Gitea → oma profiili (oikea yläkulma) → Settings → Applications → Manage Access Tokens → Generate New Token

Valitse scope:

Scope Pääsy
package Read and Write

Tämä token toimii salasanana helm registry login -komennossa. Muut scopet (kuten repository) eivät riitä — konttirekisteri vaatii nimenomaan package-scopen.

Tokenin arvo näytetään vain kerran luomisen yhteydessä. Kopioi se talteen.


3. Tallenna PAT repositoryn Secretsiin

Nämä ovat kaksi eri paikkaa:

  • Access Tokenit (User Settings) = missä luot tokenin
  • Repository Secrets (Repository Settings) = minne talletat sen workflow'n käyttöön

Repository → Settings → Actions → Secrets → Add new secret

Secret Arvo
HELM_PASSWORD Edellisessä vaiheessa luotu PAT

HELM_USER-secretiä ei tarvita. Workflow käyttää automaattisesti ${{ github.actor }} (workflowin käynnistäjä).

Jos registry vaatii eri käyttäjätunnuksen kuin github.actor (esim. Harbor, Artifactory), lisää myös:

Secret Arvo
HELM_USER Registryn käyttäjätunnus

4. Tarkistuslista ennen ajoa

  • HELM_REGISTRY asetettu gitea-env.confissa
  • (tarvittaessa) HELM_UI_URL asetettu — ilman tätä commit-statusia ei erikseen aseteta
  • PAT luotu Giteassa scopella package Read and Write
  • HELM_PASSWORD-secret tallennettu repositoryn Secretsiin (se PAT)
  • (tarvittaessa) HELM_USER-secret — oletus github.actor

5. Esimerkkejä eri polkurakenteista

5a. Hosti + org — Gitea user-taso

HELM_REGISTRY=gitea.app.keskikuja.site/niko
  • OCI-ref: oci://gitea.app.keskikuja.site/niko/git-pages:1.2.3
  • Paketti käyttäjän niko alla. Linkitys repoon tehdään Gitean UI:sta: paketin sivulta (Package → Settings) → linkitä repositoryyn.
  • HELM_PASSWORD = Gitea PAT scopella package

5b. Hosti + org — Harbor

HELM_REGISTRY=harbor.example.com/projekti
  • HELM_USER = Harbor-käyttäjä
  • HELM_PASSWORD = Harbor-token

5c. Artifactory

HELM_REGISTRY=artifactory.example.com/helm-local
  • HELM_USER = service account
  • HELM_PASSWORD = API-token