Katalogkällor
Publicera ditt teams egna blueprints från ett git-förråd i din boundarys katalog, håll dem synkade och ta bort dem.
Kräver: blueprints/templates/write
En katalogkälla är ett git-förråd som din boundary publicerar sina egna blueprints från. Dess
blueprints visas bara i den här boundaryns katalog, bredvid plattformens, och hålls i takt med
förrådet. För att hantera källor krävs blueprints/templates/write på boundaryn; Owner, Contributor
och Blueprints Operator har den.
Se upp
Den som kan pusha till en källas gren bestämmer vad den här boundaryns driftsättare kör. En blueprints avbilder körs med läsåtkomst till instansens valv, given med driftsättarens behörigheter. Anslut bara förråd vars skrivåtkomst du litar på för det, och granska en mall från en katalogkälla innan du driftsätter den — se Hur en driftsättning går till.
Innan du börjar
- Lägg upp förrådet med en katalog per blueprint, var och en med en
template.yaml, under en gemensam mapp — se Förrådets struktur. Validera varje mall innan du pushar den: en mall som inte går att tolka hoppas över vid varje synkning utan varning — se Validera en mall. - För ett privat förråd ansluter du först dess GitHub-, GitLab- eller Azure DevOps-konto till boundaryn — se Lägg till en källa. Ett publikt förråd hos vilken git-värd som helst behöver inget anslutet.
Lägg till en källa
- Öppna Marknadsplats i portalen på https://portal.example.com och välj Blueprint-repon. Knappen visas bara för den som får hantera källor. Panelen listar boundaryns källor.
- Välj Anslut ett repo och välj var förrådet finns:
- En ansluten distributionskälla — välj Distributionskälla (bara GitHub-, GitLab- och Azure DevOps-konton erbjuds), sedan Repo och sedan Gren, som är förifylld med förrådets standardgren. Fungerar för privata förråd: varje synkning klonar med en kortlivad token från distributionskällan, och inget sparas med katalogkällan, så en roterad inloggningsuppgift fortsätter att fungera.
- En publik repo-URL — ange Repo-URL, förrådets HTTPS-URL för kloning, och Gren
(
mainom du inte ändrar den). Förrådet klonas utan inloggningsuppgifter och måste därför vara publikt. En URL som inte börjar medhttps://eller som innehåller användarnamn eller lösenord avvisas, och likaså en vars värd är skriven som en privat eller länklokal IP-adress eller är ett klusterinternt eller lokalt namn. Kontrollen läser URL:en som den är skriven: ett namn som ser publikt ut slås inte upp, så det avvisas inte när det leder till en privat adress.
- Mapp — mappen som innehåller en katalog per blueprint,
blueprintsom du inte ändrar den. Lämna den tom när blueprint-katalogerna ligger i förrådets rot. - Välj Anslut.
Källan synkas en gång direkt. Därefter synkas den enligt plattformens schema — varje timme om inte din plattformsadministratör har ändrat det — och när du väljer Synka nu.
- En boundary kan ansluta ett förråd och en mapp bara en gång.
- Gren måste vara en gren. En tagg eller en commit går inte att klona, så varje synkning av en sådan källa misslyckas.
- När den första synkningen misslyckas läggs källan ändå till, med felet visat på den; rätta orsaken och synka igen.
Synkstatus
Varje källa visar sitt förråd, sin gren och mapp, hur många blueprints den har publicerat och resultatet av den senaste synkningen:
| Status | Betydelse |
|---|---|
| Inte synkad än | Ingen synkning har körts |
| Synkad | Varje mall i förrådet som går att tolka finns i katalogen |
| Synkad med varningar | Allt synkades utom de blueprints som meddelandet nämner — oftast en katalog vars namn redan är slug för en blueprint i plattformskatalogen eller för en annan blueprint i boundaryn. Byt namn på katalogen |
| Kunde inte nås | Förrådet kunde inte hämtas — distributionskällan är inte längre ansluten, grenen finns inte, eller värden svarade inte. Blueprints från den senaste lyckade synkningen ligger kvar som de var |
En synkning lägger till nya blueprints, uppdaterar ändrade och tar bort de som inte längre finns i
förrådet. En blueprint vars template.yaml inte går att tolka behåller versionen från den senaste
synkningen som kunde läsa den, och en ny visas inte alls.
Synka nu
Välj Synka nu på en källa. Resultatet talar om vad som lades till, uppdaterades och togs bort, Redan uppdaterad, eller Kunde inte nå repot.
Ta bort en källa
Välj Ta bort på källan och bekräfta med Ta bort. Dess blueprints försvinner ur katalogen; instanser som redan driftsatts från dem fortsätter att köra.
Med API:t
Portalen lägger till, synkar och tar bort källor. Via API:t kan du dessutom ändra en källas gren eller mapp, eller pausa synkningen:
| Metod och route | Gör |
|---|---|
GET /boundaries/{boundaryId}/resources/blueprints/sources |
Listar boundaryns källor |
POST /boundaries/{boundaryId}/resources/blueprints/sources |
Lägger till en källa: repositoryUrl, eller provider, installationId och repositoryId; med ref och path |
PATCH /boundaries/{boundaryId}/resources/blueprints/sources/{sourceId} |
Ändrar ref eller path, eller pausar och återupptar med enabled |
POST /boundaries/{boundaryId}/resources/blueprints/sources/{sourceId}/sync |
Synkar nu |
DELETE /boundaries/{boundaryId}/resources/blueprints/sources/{sourceId} |
Tar bort källan och dess blueprints |
Att lista kräver blueprints/read; allt annat kräver blueprints/templates/write. Hur du anropar
API:t beskrivs i Plattformens API.
Viktigt
Den token som en synkning klonar med utfärdas till Blueprints-tjänsten, inte till dig. När du lägger till en källa via API:t godtas vilket repo som helst från vilket konto som helst som är anslutet till boundaryn, utan kontroll av att du får läsa boundaryns distributionskällor, så
blueprints/templates/writeräcker ensamt för att publicera mallarna i ett sådant repo i boundaryns katalog.
Uppdatera plattformskatalogen
När plattformskatalogen hämtas från ett förråd namnger raden ovanför katalogen det — Katalog från
<repository> @ <branch> — och när det senast synkades. Plattformen hämtar den enligt samma schema
som katalogkällorna. Uppdatera katalogen, bredvid raden, hämtar den nu och talar om vad som lades
till, uppdaterades eller togs bort; knappen visas för den som har blueprints/templates/write.
Går förrådet inte att nå förblir katalogen som den var, och varje blueprint i den kan fortfarande driftsättas. En plattform utan katalogförråd visar bara de blueprints som levererades med dess release, och ingen rad. Din plattformsadministratör väljer förrådet — se Plattformskatalogens förråd.