Nimmt publish-helm-chart.yml als zweiten geteilten Baustein auf. Der Workflow
kommt aus jlab-cluster/helm-charts, wo er heute 26 dünne Hüllen bedient, und
lädt ein gepacktes Helm-Chart in eine klassische, indexbasierte Helm-Registry —
ein einzelnes HTTP-POST des .tgz, kein OCI-Push.
Dazu ein README-Abschnitt in der Struktur des vorhandenen: Zweck, Eingaben als
Tabelle, Aufrufbeispiel, Voraussetzungen im aufrufenden Repository.
Was beim Umzug anders ist als in der Vorlage
Der Eigentümer wird eine Pflichteingabe registry-owner, Typ string, ohne
Vorgabe. Bisher leitete der Workflow ihn aus ${{ github.repository_owner }}
ab. Als Eingabe wird der Wert im aufrufenden Repository ausgewertet, wo er
gemessen ist (jlab-cluster, Lauf 282 von validate-charts.yml). Dass der
Kontext auch in einem von fremd aufgerufenen Workflow der des Aufrufers bleibt,
ist dokumentiert, auf dieser Forge-Version aber nicht gemessen — und ein Chart,
das unter dem falschen Eigentümer veröffentlicht wird, ist nichts, wofür man
sich darauf verlassen müsste. Das deckt sich mit der Hausregel hier, dass ein
Eigentümer-Segment nie geraten wird.
type: string wie alle Eingaben dieses Bausteins — nach #4 kommen boolesche workflow_call-Eingaben auf 1.27.0 nicht an, bei grünem Lauf. Das steht als
Kommentar an der Eingabe, damit es beim nächsten Aufräumen nicht „korrigiert"
wird.
OP_CONNECT_HOST kommt aus einer Variablen des aufrufenden Repositories
statt fest verdrahtet aus dem Baustein. Ein geteilter Baustein trägt nicht die
Infrastruktur-Adresse eines einzelnen Mandanten. Der Preis ist eine
Voraussetzung, die man vergessen kann, und eine nicht gesetzte Variable kommt
als leere Zeichenkette an — deshalb prüft der erste Schritt sie und benennt beim
Abbruch die Einstellung samt Ort, statt zwei Schritte später an einer leeren
Adresse zu scheitern.
Der workflow_dispatch-Block ist entfallen. Ein Dispatch hier liefe gegen
dieses Repository, in dem kein Chart liegt. Die Hüllen des Aufrufers tragen ihn.
Was unverändert übernommen ist
Jede Eigenschaft des Upload-Schritts ist einmal bezahlt worden; das Shell-Skript
des Schritts ist zeichengleich mit der Vorlage, abgesehen von zwei
Fehlermeldungen, die den Eigentümer jetzt als Eingabe und nicht mehr als
abgeleiteten Wert benennen:
curl --config - statt --user, damit die Zugangsdaten nicht in der
Prozessliste stehen, dazu die Leerzeichen-Prüfung an ihnen (curl --config
schneidet einen unquotierten Wert am ersten Leerzeichen ab);
--fail-with-body — ohne das verlässt curl einen 401 mit Code 0 und die
Veröffentlichung wird grün, ohne etwas hochgeladen zu haben;
der gebaute Dateiname <chart>-<version>.tgz samt test -f, nie ein Glob;
die :?-Wächter je Wert, jeder nennt das fehlende op://-Feld;
::add-mask:: auf den Host, abgeleitet aus der rohen URL, bevor sonst etwas
läuft;
die drei Formwächter an charts-url und die Prüfung des Eigentümers auf
URL-taugliche Zeichen.
Die Kommentare, die das begründen, sind mitgewandert und in Englisch geblieben,
wie sie geschrieben wurden; neue Kommentare in der Datei folgen ihr, damit die
Datei einsprachig bleibt. Der README-Abschnitt ist Deutsch wie der Rest hier.
ci/helm-dependencies.sh läuft weiterhin vor helm package und bleibt ein
Skript des aufrufenden Repositories: Der Checkout holt den Baum des
Repositories, zu dem der Lauf gehört, also den des Aufrufers. Das ist im README
als Voraussetzung aufgeführt, und ein Wächter sagt es beim Fehlen, statt die
Shell eine fehlende Datei melden zu lassen.
Geprüft
Struktur und Verdrahtung von workflow_call (Eingaben, Ausgabe, secrets) gegen einen YAML-Parser; die Shell-Blöcke mit bash -n.
actionlint ist in der Arbeitsumgebung nicht verfügbar, die Datei ist
insoweit durch Lesen geprüft.
Es gibt keinen Verweis mehr auf ${{ github.repository_owner }} in einem
ausgewerteten Ausdruck; der Wert kommt als Eingabe.
Nach dem Merge
Tag v3 auf den Merge-Stand. Bewusst nicht Teil dieses PRs. Das README
dokumentiert dabei, dass die Nummer den Zustand des Repositories
bezeichnet und nicht die Version einer Datei: Wer künftig docker-build-push.yml ändert, erhöht auf v4, und ein Aufruf von publish-helm-chart.yml@v3 bleibt gültig, obwohl sich an dieser Datei nichts
geändert hat. v3 selbst ist additiv, Aufrufer auf @v2 bleiben unberührt.
Variable OP_CONNECT_HOST in jlab-cluster/helm-charts setzen, Wert https://op-connect.jk-dev.de — der Host, der heute in der dortigen Kopie
verdrahtet ist.
Danach erst die 26 Hüllen dort auf @v3 umstellen. Bis dahin ist nichts
kaputt: Solange die Aufrufe auf die lokale Datei zeigen, ändert dieser
Baustein nichts.
Nimmt `publish-helm-chart.yml` als zweiten geteilten Baustein auf. Der Workflow
kommt aus `jlab-cluster/helm-charts`, wo er heute 26 dünne Hüllen bedient, und
lädt ein gepacktes Helm-Chart in eine klassische, indexbasierte Helm-Registry —
ein einzelnes HTTP-`POST` des `.tgz`, kein OCI-Push.
Dazu ein README-Abschnitt in der Struktur des vorhandenen: Zweck, Eingaben als
Tabelle, Aufrufbeispiel, Voraussetzungen im aufrufenden Repository.
## Was beim Umzug anders ist als in der Vorlage
**Der Eigentümer wird eine Pflichteingabe `registry-owner`, Typ `string`, ohne
Vorgabe.** Bisher leitete der Workflow ihn aus `${{ github.repository_owner }}`
ab. Als Eingabe wird der Wert im **aufrufenden** Repository ausgewertet, wo er
gemessen ist (`jlab-cluster`, Lauf 282 von `validate-charts.yml`). Dass der
Kontext auch in einem von fremd aufgerufenen Workflow der des Aufrufers bleibt,
ist dokumentiert, auf dieser Forge-Version aber nicht gemessen — und ein Chart,
das unter dem falschen Eigentümer veröffentlicht wird, ist nichts, wofür man
sich darauf verlassen müsste. Das deckt sich mit der Hausregel hier, dass ein
Eigentümer-Segment nie geraten wird.
`type: string` wie alle Eingaben dieses Bausteins — nach #4 kommen boolesche
`workflow_call`-Eingaben auf 1.27.0 nicht an, bei grünem Lauf. Das steht als
Kommentar an der Eingabe, damit es beim nächsten Aufräumen nicht „korrigiert"
wird.
**`OP_CONNECT_HOST` kommt aus einer Variablen des aufrufenden Repositories**
statt fest verdrahtet aus dem Baustein. Ein geteilter Baustein trägt nicht die
Infrastruktur-Adresse eines einzelnen Mandanten. Der Preis ist eine
Voraussetzung, die man vergessen kann, und eine nicht gesetzte Variable kommt
als leere Zeichenkette an — deshalb prüft der erste Schritt sie und benennt beim
Abbruch die Einstellung samt Ort, statt zwei Schritte später an einer leeren
Adresse zu scheitern.
**Der `workflow_dispatch`-Block ist entfallen.** Ein Dispatch hier liefe gegen
dieses Repository, in dem kein Chart liegt. Die Hüllen des Aufrufers tragen ihn.
## Was unverändert übernommen ist
Jede Eigenschaft des Upload-Schritts ist einmal bezahlt worden; das Shell-Skript
des Schritts ist zeichengleich mit der Vorlage, abgesehen von zwei
Fehlermeldungen, die den Eigentümer jetzt als Eingabe und nicht mehr als
abgeleiteten Wert benennen:
- `curl --config -` statt `--user`, damit die Zugangsdaten nicht in der
Prozessliste stehen, dazu die Leerzeichen-Prüfung an ihnen (`curl --config`
schneidet einen unquotierten Wert am ersten Leerzeichen ab);
- `--fail-with-body` — ohne das verlässt `curl` einen 401 mit Code 0 und die
Veröffentlichung wird grün, ohne etwas hochgeladen zu haben;
- der **gebaute** Dateiname `<chart>-<version>.tgz` samt `test -f`, nie ein Glob;
- die `:?`-Wächter je Wert, jeder nennt das fehlende `op://`-Feld;
- `::add-mask::` auf den Host, abgeleitet aus der rohen URL, bevor sonst etwas
läuft;
- die drei Formwächter an `charts-url` und die Prüfung des Eigentümers auf
URL-taugliche Zeichen.
Die Kommentare, die das begründen, sind mitgewandert und in Englisch geblieben,
wie sie geschrieben wurden; neue Kommentare in der Datei folgen ihr, damit die
Datei einsprachig bleibt. Der README-Abschnitt ist Deutsch wie der Rest hier.
`ci/helm-dependencies.sh` läuft weiterhin vor `helm package` und bleibt ein
Skript des **aufrufenden** Repositories: Der Checkout holt den Baum des
Repositories, zu dem der Lauf gehört, also den des Aufrufers. Das ist im README
als Voraussetzung aufgeführt, und ein Wächter sagt es beim Fehlen, statt die
Shell eine fehlende Datei melden zu lassen.
## Geprüft
- Struktur und Verdrahtung von `workflow_call` (Eingaben, Ausgabe,
`secrets`) gegen einen YAML-Parser; die Shell-Blöcke mit `bash -n`.
- `actionlint` ist in der Arbeitsumgebung nicht verfügbar, die Datei ist
insoweit **durch Lesen** geprüft.
- Es gibt keinen Verweis mehr auf `${{ github.repository_owner }}` in einem
ausgewerteten Ausdruck; der Wert kommt als Eingabe.
## Nach dem Merge
1. **Tag `v3`** auf den Merge-Stand. Bewusst nicht Teil dieses PRs. Das README
dokumentiert dabei, dass die Nummer den Zustand des **Repositories**
bezeichnet und nicht die Version einer Datei: Wer künftig
`docker-build-push.yml` ändert, erhöht auf `v4`, und ein Aufruf von
`publish-helm-chart.yml@v3` bleibt gültig, obwohl sich an dieser Datei nichts
geändert hat. `v3` selbst ist additiv, Aufrufer auf `@v2` bleiben unberührt.
2. **Variable `OP_CONNECT_HOST`** in `jlab-cluster/helm-charts` setzen, Wert
`https://op-connect.jk-dev.de` — der Host, der heute in der dortigen Kopie
verdrahtet ist.
3. Danach erst die 26 Hüllen dort auf `@v3` umstellen. Bis dahin ist nichts
kaputt: Solange die Aufrufe auf die lokale Datei zeigen, ändert dieser
Baustein nichts.
Part of jlab-cluster/helm-charts#66
Der Workflow kommt aus jlab-cluster/helm-charts, wo er 26 duenne Huellen
bedient. Er laedt ein gepacktes Chart in eine klassische, indexbasierte
Helm-Registry: ein einzelnes HTTP-POST, kein OCI-helm-push.
Zwei Dinge sind beim Umzug anders als in der Vorlage.
Der Eigentuemer ist eine Pflichteingabe registry-owner vom Typ string, ohne
Vorgabe. Bisher wurde er aus github.repository_owner abgeleitet; als Eingabe
wird er im aufrufenden Repository ausgewertet, wo der Wert gemessen ist. Das
folgt der Hausregel, dass ein Eigentuemer-Segment nie geraten wird, und haengt
den Baustein an keine Kontext-Semantik. type: string wie alle Eingaben hier,
siehe #4.
OP_CONNECT_HOST kommt aus einer Variablen des aufrufenden Repositories statt
fest verdrahtet aus dem Baustein — ein geteilter Baustein traegt nicht die
Infrastruktur-Adresse eines einzelnen Mandanten. Ein erster Schritt prueft die
Variable und benennt sie beim Abbruch, statt zwei Schritte spaeter an einer
leeren Adresse zu scheitern.
Alles andere ist unveraendert uebernommen, samt der Kommentare, die es
begruenden: curl --config - statt --user, --fail-with-body, der gebaute
Dateiname mit test -f, die :?-Waechter je Tresor-Feld, die Leerzeichen-Pruefung
an den Zugangsdaten, das Maskieren des Hosts und die drei Formwaechter an
charts-url.
Der workflow_dispatch-Block ist entfallen: Ein Dispatch hier liefe gegen dieses
Repository, in dem kein Chart liegt. Die Huellen des Aufrufers tragen ihn.
ci/helm-dependencies.sh bleibt ein Skript des aufrufenden Repositories; der
Checkout holt dessen Baum, also laeuft es weiter aus dessen Kopie.
Part of jlab-cluster/helm-charts#66
Das Wiki dieses Repositories ist jetzt angelegt und traegt die Langform zu
beiden Bausteinen. Ohne einen Verweis von hier aus erfaehrt davon niemand, der
nur das README liest.
Die Aufteilung steht dabei gleich mit: Diese Datei bleibt die Kurzreferenz fuer
Aufrufer und wird nicht gekuerzt, das Wiki begruendet sie.
Part of jlab-cluster/helm-charts#66
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Nimmt
publish-helm-chart.ymlals zweiten geteilten Baustein auf. Der Workflowkommt aus
jlab-cluster/helm-charts, wo er heute 26 dünne Hüllen bedient, undlädt ein gepacktes Helm-Chart in eine klassische, indexbasierte Helm-Registry —
ein einzelnes HTTP-
POSTdes.tgz, kein OCI-Push.Dazu ein README-Abschnitt in der Struktur des vorhandenen: Zweck, Eingaben als
Tabelle, Aufrufbeispiel, Voraussetzungen im aufrufenden Repository.
Was beim Umzug anders ist als in der Vorlage
Der Eigentümer wird eine Pflichteingabe
registry-owner, Typstring, ohneVorgabe. Bisher leitete der Workflow ihn aus
${{ github.repository_owner }}ab. Als Eingabe wird der Wert im aufrufenden Repository ausgewertet, wo er
gemessen ist (
jlab-cluster, Lauf 282 vonvalidate-charts.yml). Dass derKontext auch in einem von fremd aufgerufenen Workflow der des Aufrufers bleibt,
ist dokumentiert, auf dieser Forge-Version aber nicht gemessen — und ein Chart,
das unter dem falschen Eigentümer veröffentlicht wird, ist nichts, wofür man
sich darauf verlassen müsste. Das deckt sich mit der Hausregel hier, dass ein
Eigentümer-Segment nie geraten wird.
type: stringwie alle Eingaben dieses Bausteins — nach #4 kommen boolescheworkflow_call-Eingaben auf 1.27.0 nicht an, bei grünem Lauf. Das steht alsKommentar an der Eingabe, damit es beim nächsten Aufräumen nicht „korrigiert"
wird.
OP_CONNECT_HOSTkommt aus einer Variablen des aufrufenden Repositoriesstatt fest verdrahtet aus dem Baustein. Ein geteilter Baustein trägt nicht die
Infrastruktur-Adresse eines einzelnen Mandanten. Der Preis ist eine
Voraussetzung, die man vergessen kann, und eine nicht gesetzte Variable kommt
als leere Zeichenkette an — deshalb prüft der erste Schritt sie und benennt beim
Abbruch die Einstellung samt Ort, statt zwei Schritte später an einer leeren
Adresse zu scheitern.
Der
workflow_dispatch-Block ist entfallen. Ein Dispatch hier liefe gegendieses Repository, in dem kein Chart liegt. Die Hüllen des Aufrufers tragen ihn.
Was unverändert übernommen ist
Jede Eigenschaft des Upload-Schritts ist einmal bezahlt worden; das Shell-Skript
des Schritts ist zeichengleich mit der Vorlage, abgesehen von zwei
Fehlermeldungen, die den Eigentümer jetzt als Eingabe und nicht mehr als
abgeleiteten Wert benennen:
curl --config -statt--user, damit die Zugangsdaten nicht in derProzessliste stehen, dazu die Leerzeichen-Prüfung an ihnen (
curl --configschneidet einen unquotierten Wert am ersten Leerzeichen ab);
--fail-with-body— ohne das verlässtcurleinen 401 mit Code 0 und dieVeröffentlichung wird grün, ohne etwas hochgeladen zu haben;
<chart>-<version>.tgzsamttest -f, nie ein Glob;:?-Wächter je Wert, jeder nennt das fehlendeop://-Feld;::add-mask::auf den Host, abgeleitet aus der rohen URL, bevor sonst etwasläuft;
charts-urlund die Prüfung des Eigentümers aufURL-taugliche Zeichen.
Die Kommentare, die das begründen, sind mitgewandert und in Englisch geblieben,
wie sie geschrieben wurden; neue Kommentare in der Datei folgen ihr, damit die
Datei einsprachig bleibt. Der README-Abschnitt ist Deutsch wie der Rest hier.
ci/helm-dependencies.shläuft weiterhin vorhelm packageund bleibt einSkript des aufrufenden Repositories: Der Checkout holt den Baum des
Repositories, zu dem der Lauf gehört, also den des Aufrufers. Das ist im README
als Voraussetzung aufgeführt, und ein Wächter sagt es beim Fehlen, statt die
Shell eine fehlende Datei melden zu lassen.
Geprüft
workflow_call(Eingaben, Ausgabe,secrets) gegen einen YAML-Parser; die Shell-Blöcke mitbash -n.actionlintist in der Arbeitsumgebung nicht verfügbar, die Datei istinsoweit durch Lesen geprüft.
${{ github.repository_owner }}in einemausgewerteten Ausdruck; der Wert kommt als Eingabe.
Nach dem Merge
v3auf den Merge-Stand. Bewusst nicht Teil dieses PRs. Das READMEdokumentiert dabei, dass die Nummer den Zustand des Repositories
bezeichnet und nicht die Version einer Datei: Wer künftig
docker-build-push.ymländert, erhöht aufv4, und ein Aufruf vonpublish-helm-chart.yml@v3bleibt gültig, obwohl sich an dieser Datei nichtsgeändert hat.
v3selbst ist additiv, Aufrufer auf@v2bleiben unberührt.OP_CONNECT_HOSTinjlab-cluster/helm-chartssetzen, Werthttps://op-connect.jk-dev.de— der Host, der heute in der dortigen Kopieverdrahtet ist.
@v3umstellen. Bis dahin ist nichtskaputt: Solange die Aufrufe auf die lokale Datei zeigen, ändert dieser
Baustein nichts.
Part of jlab-cluster/helm-charts#66