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 (kutenrepository) eivät riitä — konttirekisteri vaatii nimenomaanpackage-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_REGISTRYasetettugitea-env.confissa- (tarvittaessa)
HELM_UI_URLasetettu — ilman tätä commit-statusia ei erikseen aseteta - PAT luotu Giteassa scopella
packageRead and Write HELM_PASSWORD-secret tallennettu repositoryn Secretsiin (se PAT)- (tarvittaessa)
HELM_USER-secret — oletusgithub.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
nikoalla. Linkitys repoon tehdään Gitean UI:sta: paketin sivulta (Package → Settings) → linkitä repositoryyn. HELM_PASSWORD= Gitea PAT scopellapackage
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 accountHELM_PASSWORD= API-token