Skriv egna blueprints
Vad en blueprint-mall är, varför det är säkert att låta andra skriva mallar och hur du publicerar en.
Varje blueprint är ett enda dokument, en mall, skriven i YAML eller JSON:
apiVersion: blueprints.stackship.se/v2, kind: BlueprintTemplate. Den anger vad den som
driftsätter fyller i, vilka hanterade resurser som ska skapas och vilken containerinstans som ska
skapas. Formatet beskrivs fält för fält i Mallformat och Parametrar.
Vad en mall kan uttrycka
En mall blir en containerinstans och inget annat, i samma form som API:t för containerinstanser tar emot, plus hanterade resurser av de typer plattformen erbjuder. Det finns ingen rå Kubernetes i den: den kan inte beskriva en privilegierad pod, en sökväg på värden eller ett åtkomstkontrollobjekt, eftersom dokumentet inte har någon plats för dem. En driftsättning kontrolleras mot driftsättarens egna behörigheter för allt den skapar.
Det gör inte en mall ofarlig att driftsätta. Dess avbilder körs med åtkomst som ges med
driftsättarens behörigheter: driftsättningen ger instansens identitet Secrets Reader på instansens
valv, det enda valv en secretRef får peka ut. Den som publicerar en mall, med blueprints/templates/write,
bestämmer alltså vad driftsättarna i boundaryn exponerar för kod som de inte har skrivit — se
Hur en driftsättning går till.
Tolkningen är strikt. Ett okänt eller felstavat fält är ett fel, inte något som tyst ignoreras, så en mall som valideras betyder det den säger.
Två sorters platshållare
[%name%]-token fylls i vid driftsättningen, från parametrarna, instansnamnet och valvnamnet. Det är så en mall kan användas för många instanser.{{domain_suffix}}och{{cert_issuer}}fylls i en gång, när plattformen läser en mall från ett förråd, med plattformens appdomän och certifikatutfärdare.
Båda beskrivs i Token och Plattformsvärden.
Var mallar publiceras
| Sätt | Når | Hur |
|---|---|---|
| Ett git-förråd anslutet som katalogkälla | Boundaryn | En katalog per blueprint — Katalogkällor |
| Mall-API:t | Boundaryn | Ett dokument per anrop — Publicera mallar med API:t |
| Plattformskatalogens förråd | Varje boundary | Väljs av plattformsadministratören — Plattformskatalogens förråd |
En boundarys blueprints visas bara i den boundaryn. En slug som plattformskatalogen använder kan inte användas i en boundary. En katalogkälla kan inte publicera en slug som redan är upptagen i boundaryn; att spara en mall via API:t ersätter boundaryns blueprint med den slugen — en som en katalogkälla publicerar bara fram till källans nästa synkning.