Driftsätt en blueprint
Välj en blueprint i katalogen, namnge och placera den, fyll i dess parametrar, dimensionera dess komponenter och driftsätt den när alla kontroller går igenom.
Kräver: blueprints/read, containerinstance/write
Varje driftsättning kräver blueprints/read på boundaryn och containerinstance/write i
resursgruppen. En blueprint med hemligheter eller en databas kräver mer; guiden kontrollerar allt innan något skapas —
se Förhandskontroller, och Behörigheter för hela listan.
Hitta en blueprint
Öppna Marknadsplats i sidomenyn i portalen på https://portal.example.com. Varje kort visar
blueprintens ikon, namn, beskrivning, kategori, version, några av dess taggar, hur många komponenter
den har och en knapp Distribuera — som bara visas för den som har containerinstance/write på
boundaryn. En blueprint som publicerats från något av din boundarys förråd visar också det förrådet.
- Sök blueprints… söker i namn, beskrivningar, kategorier och taggar; varje ord du skriver måste träffa.
- Raden med taggar filtrerar katalogen. Väljer du flera taggar visas blueprints som har någon av dem; Rensa filter nollställer sökningen och taggarna.
- När katalogen har mer än en kategori finns flikar överst som begränsar den till en; Alla visar allt.
- Blueprints med taggen
stackshipvisas först under I fokus, med märket Stackship. Resten följer under Fler blueprints.
Välj Distribuera på ett kort. Guiden, Distribuera <blueprint>, har fem steg.
Översikt
Blueprintens beskrivning, kategori, version och taggar, och en länk till dess dokumentation. När blueprinten skapar hanterade resurser listar Det här skapas var och en av dem och de komponenter som läser den.
Namn och placering
Grundkonfiguration frågar efter:
- Instansnamn — 3 till 50 gemener, siffror och bindestreck. Börja namnet med en bokstav och
avsluta det med en bokstav eller siffra, även om fältet godtar en inledande siffra eller ett
bindestreck i någon av ändarna: varje komponent nås på
<instance>-<component>, som är ett Service-namn i Kubernetes och måste börja med en bokstav, och ett namn med bindestreck i någon ände går igenom kontrollerna men får driftsättningen att misslyckas när dess första resurs skapas. Namnet måste vara ledigt i resursgruppen. Det blir containerinstansens namn och prefix för allt annat blueprinten skapar —<instance>-secretsför valvet och<instance>-<resource>för varje hanterad resurs. - Boundary, Cluster och Resource group — var instansen och allt blueprinten skapar ska ligga. Varje fält fylls i åt dig när det bara finns ett val.
Se upp
Bara instansnamnet kontrolleras mot att vara ledigt. Ett valv med namnet
<instance>-secretseller en databas med namnet<instance>-<resource>som redan finns i resursgruppen används som det är, inte nekas: driftsättningen skriver sina hemligheter i det valvet som nya versioner av nycklar som redan finns där, ger den nya instansens identitet Secrets Reader på hela valvet — så att den kan läsa varje hemlighet som redan finns där, inte bara blueprintens — och ger den nya instansen den databasens anslutningsuppgifter. Kontrollera resursgruppen efter de namnen innan du driftsätter.
Parametrar
Konfiguration visar blueprintens parametrar, var och en som ett fält av sin typ:
| Typ | Fält |
|---|---|
| String | Ett textfält; platshållaren visar standardvärdet med ditt instansnamn ifyllt |
| Secret | Ett maskerat fält. När blueprinten kan generera värdet lämnar du det tomt för att få det genererat vid driftsättningen, eller väljer Generera för att skapa ett i webbläsaren |
| Boolean | En brytare |
| Select | En rullgardinslista med blueprintens alternativ; standardvärdet är märkt (rekommenderas) |
| DataSize | Ett storleksfält |
| DeploymentSource | Privat register: ett av de privata register som är anslutna till boundaryn, eller Publik avbild — inga uppgifter behövs |
| Annotations | Ett vanligt textfält |
- Ett fält du lämnar tomt får blueprintens standardvärde.
- Parametrar som blueprinten markerar som avancerade, och hemligheter den kan generera, ligger hopfällda under Avancerade inställningar. Om du inte öppnar det och anger dem gäller standardvärdena och hemligheterna genereras.
- Värden som plattformen sätter ihop själv — signerade nycklar, anslutningssträngar byggda av ett genererat lösenord — är inga fält alls. En rad under formuläret talar om hur många av dem som genereras vid driftsättningen och lagras i instansens valv.
Hemliga värden skrivs till instansens valv, aldrig in i själva containerinstansen. Alla egenskaper en parameter kan ha beskrivs i Parametrar.
Beräkning
Beräkning har en rad per komponent, med dess Beräkningsplan och Repliker förifyllda med blueprintens standardvärden. Planerna visas med sin processor och sitt minne.
- När boundaryns policy för beräkningsplaner inte tillåter en komponents standardplan börjar raden tom och säger varför; välj en av de planer policyn tillåter.
- När blueprinten anger en lägsta plan för en komponent visar raden Minst:
<plan>, och planer med mindre processor eller mindre minne visas som Under ritningens minimum och går inte att välja. Driftsättningen nekar också en mindre plan, innan den skapar något. - Repliker kan vara 0 till 10, och en komponent med en beständig volym kör högst en. Fältet stoppar inte ett högre antal; driftsättningen misslyckas då vid Create the container instance, efter att valvet och eventuell databas har skapats.
Förhandskontroller
Granska & Distribuera sammanfattar instansnamnet, resursgruppen och parametrarna. Hemligheter du angav visas som Angiven; hemligheter som kommer att genereras visas som Kommer att genereras.
Under Innan du driftsätter kontrollerar plattformen allt som driftsättningen kommer att behöva, i den ordning det behövs, utan att skapa något. Kontrollerna körs igen när du ändrar namnet eller resursgruppen, och Skicka är avstängd så länge någon av dem nekas.
| Kontroll | Nekas när | Vad du gör |
|---|---|---|
| Instance name is free | Resursgruppen har redan en containerinstans med det namnet, eller namnet kunde inte slås upp | Välj ett annat namn |
No vault named '<instance>-secrets' exists yet |
Resursgruppen har redan ett valv med instansvalvets namn — till exempel ett som behölls från en borttagen instans. Den nya instansen skulle få läsåtkomst till allt i det. Kontrolleras inte vid ett nytt försök, som återanvänder sitt eget valv | Välj ett annat namn, eller ta bort valvet |
Reads secrets only from its own vault (not '<vault>') |
Blueprinten läser hemligheter från ett annat valv än instansens valv. Det får en blueprint inte | Inget du kan ändra här; säg till blueprintens författare |
| Instance name fits its vault | Valvnamnet <instance>-secrets skulle bli längre än 63 tecken |
Använd ett namn på högst 55 tecken |
| Create the instance vault | Du saknar secretvault/write i resursgruppen |
Skaffa behörigheten, se nedan |
| Write parameters and generated secrets | Du saknar secretvault/writeSecrets på valvet |
Skaffa behörigheten |
Provision postgres '<name>' |
Du saknar postgrescluster/write i resursgruppen |
Skaffa behörigheten |
Provision <type> '<name>' (unsupported type) |
Blueprinten deklarerar en resurstyp som plattformen inte kan skapa | Inget du kan ändra här; säg till blueprintens författare |
| Use the boundary's deployment sources | Du saknar kernel/deployments/read på boundaryn. Kontrolleras bara när en container hämtar sin avbild via ett privat register |
Skaffa behörigheten |
Pull through deployment source '<id>' |
Inget privat register med det id:t är anslutet till boundaryn | Anslut det — se Privat register — eller välj ett annat under Konfiguration |
| Create the container instance | Du saknar containerinstance/write i resursgruppen |
Skaffa behörigheten |
| Grant the instance access to its vault | Du saknar rbac/members/write på valvet |
Begär tillfällig åtkomst, se nedan |
En nekad behörighet säger Be en ägare om <action> på <scope>. En Owner på den nivån kan ge
dig en roll som innehåller den, eller så kan du begära en roll för några timmar med
Just-in-time-åtkomst.
Valvbehörigheten har sin lösning på plats: Begär tillfällig åtkomst skickar en begäran om Owner på det nya valvet, och rutan följer den. När en ägare har godkänt den väljer du Aktivera åtkomst; kontrollerna körs igen och Skicka blir tillgänglig.
Viktigt
Själva behörigheten ges bara av den som har Owner eller Platform Owner på valvet eller högre, tilldelad direkt eller aktiverad via just-in-time-åtkomst. Owner via en grupp, eller en anpassad roll med
rbac/members/write, går igenom kontrollen men inte tilldelningen: driftsättningen misslyckas då vid Create the container instance eller Grant the instance access to its vault, efter att valvet, dess hemligheter och eventuell databas har skapats, och skickar Owner-begäran åt dig. Aktivera den och försök igen.
Kontrollerna gäller behörigheter och namn, inte resten av konfigurationen. Att läsa en hanterad
databas anslutningsuppgifter kräver också postgrescluster/readSecrets på den, vilket inte
kontrolleras i förväg, och containerinstansens egna regler — repliker, planer, portar — tillämpas när
den skapas. När kontrollerna inte går att köra alls visar sidan Kontrollerna kunde inte köras och
Skicka förblir tillgänglig; driftsättningen kör samma kontroller och nekar om något saknas.
En blueprints containrar läser hemligheter bara från instansens valv. En mall som pekar ut något annat valv nekas när den publiceras, och en som sparades före den regeln nekas av kontrollerna och av driftsättningen, innan något skapas.
Se upp
En blueprint från en katalogkälla eller via mall-API:t är skriven av den som kan publicera i boundaryn, och dess avbilder körs med läsåtkomst till instansens valv, given med dina behörigheter. Granska mallen innan du driftsätter den.
Driftsätt och följ förloppet
Välj Skicka. Driftsättningen tas emot direkt och du hamnar på dess sida, Distribuerar
<instance>:
- Sammanfattning — försökets nummer, Resursgrupp, Instans, vem som startade den (Startad av), när den blev Accepterad och Avslutad, och vid ett nytt försök en länk till föregående försök.
- Steg — varje steg medan det körs, uppdaterat löpande.
- Resultat — att det lyckades, eller Misslyckades vid
<step>med felet.
När driftsättningen lyckas tar Öppna instansen dig till containerinstansen. Driftsättningen registreras också bland boundaryns operationer.
Försök igen efter ett fel
Försök igen kör en misslyckad driftsättning på nytt som ett nytt försök av samma driftsättning: samma instansnamn, parametrar och beräkningsresurser, med blueprinten som den ser ut i katalogen nu. Valvet och eventuell databas som det misslyckade försöket skapade återanvänds i stället för att skapas igen. Hemligheterna skrivs på nytt: värden du angav är desamma, och värden som plattformen genererar genereras på nytt och lagras som nya versioner.
När felet var valvbehörigheten visar sidan samma ruta Begär tillfällig åtkomst som guiden, och Försök igen blir tillgänglig när din åtkomst är aktiv.
Ett nytt försök kan inte ändra indata. Vill du ändra dem driftsätter du blueprinten igen med samma instansnamn: det som det misslyckade försöket lämnade i resursgruppen återanvänds på samma sätt. Ger du upp i stället tar du bort det som blev kvar.
Viktigt
Driftsättningar listas per boundary. Alla med
blueprints/readpå boundaryn ser varje driftsättning i den, oavsett resursgrupp, med dess fel, och kan försöka igen med vilken misslyckad som helst. Ett nytt försök hoppar över kontrollerna ovan, körs med behörigheterna hos den som försöker igen och återanvänder den ursprungliga användarens parametrar — hemliga värden hen angav inräknade, som skrivs till valvet på nytt.
Med CLI:t
stsh blueprint catalog # katalogen
stsh blueprint catalog supabase # en blueprint, med dess parametrar
stsh blueprint deploy supabase my-supabase -g my-resource-group -c my-cluster --dry-run
stsh blueprint deploy pocketbase my-pocketbase -g my-resource-group -c my-cluster --set storage_size=10Gi
stsh blueprint deploys list
stsh blueprint deploys get <deployment-id>
stsh blueprint deploys retry <deployment-id>deploytar blueprintens slug och instansnamnet. Ange parametrar med--set namn=värde, upprepat, eller från ett JSON-objekt med--file. Ett värde som kan läsas som JSON skickas som JSON, medan parametrar är strängar — citera sådana värden:--set theme_enabled='"true"'.- CLI:t driftsätter varje komponent med blueprintens egna standardvärden för beräkning.
--dry-runskriver ut förhandskontrollerna och avslutar utan att skapa något. När valvbehörigheten nekas erbjuder det sig att skicka åtkomstbegäran åt dig.--wait-for-accessskickar den begäran om den behövs, väntar på att en ägare godkänner den, frågar innan den aktiveras och driftsätter sedan i samma körning.deployochdeploys retryföljer åtgärden tills den är klar;--no-waitåtervänder så snart driftsättningen har tagits emot.
deploy_not_accepted
503 vid de här rutterna:
| Rutt | I portalen och CLI:t |
|---|---|
POST /boundaries/{boundaryId}/resourcegroups/{resourceGroup}/resources/blueprints/{slug}/deploy |
Skicka, stsh blueprint deploy |
POST /boundaries/{boundaryId}/resources/blueprints/deploys/{executionId}/retry |
Försök igen, stsh blueprint deploys retry |
Varje driftsättning följs som en operation, och en driftsättning som inte går att följa startas inte: koden betyder att operationen inte kunde öppnas, så driftsättningen togs inte emot. Ingenting skapades och ingen driftsättning registrerades; vid ett nytt försök ligger den misslyckade driftsättningen kvar som den var. En torrkörning svarar aldrig med koden, och en driftsättning svarar med den först när alla förhandskontroller har gått igenom.
En plattform i produktion ersätter kroppen i varje 5xx-svar, så kroppen anger bara koden och rådet finns här i stället för i svaret:
{
"error": "An internal error occurred.",
"code": "deploy_not_accepted",
"module": "blueprints",
"correlationId": "3f2b9c1e-6d4a-4e0b-9a51-2c7d8e0f4b6a"
}Försök igen: skicka driftsättningen igen, eller gör ett nytt försök med den misslyckade
driftsättningen — se Försök igen efter ett fel. Det är säkert, eftersom ingenting
startades. Om operationen öppnades men svaret aldrig kom fram visar boundaryns
operationer en extra driftsättningsoperation för instansen, som blir
Superseded när du försöker igen. Om koden fortsätter att komma, rapportera den med
correlationId.
Nästa steg
- Efter en driftsättning — instansen, dess valv och dess databaser
- Behörigheter