1 open besluit1414 voorstellen

Onderwerp

Uitrol van de gewenste inrichting

Het vlootbeheer rolt alleen ondertekende, beoordeelde inrichting uit Platform en Beleid uit, met één Argo CD in het pushmodel, begrensde projecten en identiteiten, en zet afwijkingen terug.

Nog niet bevestigd door een mens. Eigenaar: vdo89. Bron in de atlas

Domein
Volgt uit
Functies
Producten
Verwant

Wat het is

Het vlootbeheer haalt de gewenste inrichting uit de opslagplaatsen Platform en Beleid en past haar met één Argo CD toe op de geselecteerde clusters. Alleen ondertekende, beoordeelde vastleggingen worden uitgerold. Projecten en een per cluster beperkte uitrolidentiteit begrenzen wat de uitrol mag wijzigen, en afwijkingen worden gemeld en teruggezet.

Waarom zo

Eén bron en één uitrol geven één overzicht van golven en afwijkingen. De keerzijde is een uitrolidentiteit die alle clusters bereikt; daarom zijn de rechten per project en per cluster begrensd en controleert Argo CD de handtekening van de auteur, als tweede controle naast de takbeveiliging.

De instellingen en termijnen zijn een voorstel; waar een productfunctie nog niet is bevestigd, staat de terugvaloptie erbij.

Uitspraken

0 vastgesteld15 voorstellen

Alle 15 voorstellen vaststellen

Eén bron

VoorstelRegel#

Het vlootbeheer past alleen inrichting en beleid toe uit de opslagplaatsen Platform en Beleid; een handmatige stap is een gedocumenteerde uitzondering. Catalogus, Afnemers, Draaiboeken en de opslagplaatsen van teams leest het vlootbeheer niet.

Toelichting

Eén bron. Gecontroleerd met het nalevingsoverzicht.

VoorstelWaarde#

De bronnen van het vlootbeheer zijn zo ingedeeld.

Plaats in de opslagplaatsInhoud
vloot/ in PlatformClustersets, plaatsingen en golven
basis/ en operators/<product>/ in PlatformProductinstellingen
cellen/<cel>/ in PlatformCelwaarden
clusters/<cluster>/ in PlatformClusterdefinities: HostedCluster en NodePool op het clusterbeheer
beleid/<domein>/ in BeleidBeleidspakketten, met het uitzonderingsregister
VoorstelOntwerpbesluit#

De standaardinrichting van applicatieclusters bestaat uit beleidspakketten in Beleid, met hun productinstellingen in basis/ en operators/; Catalogus publiceert de vrijgegeven versie waarnaar de dienstbeschrijving verwijst. Zo is er één bron voor wat het vlootbeheer uitrolt.

Toelichting

Overwogen: de standaardinrichting in Catalogus of alleen in basis/. Gekozen is Beleid, zodat de dienstbeschrijving naar een vrijgegeven versie verwijst en het vlootbeheer Catalogus niet hoeft te lezen.

VoorstelRegel#

Op alle beheerde clusters, ook gehoste clusters met een platformfunctie en het vlootcluster zelf, gelden twee pakketten: netwerk en ingang (het standaardcertificaat van de ingang via cert-manager uit de tussen-CA van de cel, het TLS-profiel en HSTS op routes) en het dienstennetwerk (de nalevingsinstelling voor quantumveilige sleuteluitwisseling, vanaf de ingebruikname).

VoorstelRegel#

De inrichting staat als Kubernetes-objecten in versiebeheer volgens de OpenGitOps-principes; de objectsoorten van Advanced Cluster Management zijn een vastgelegde leveranciersuitbreiding.

Pushmodel met één Argo CD

VoorstelOntwerpbesluit#

Eén Argo CD op het vlootcluster haalt de gewenste inrichting uit versiebeheer en past haar toe op de clusters die de plaatsingsregels selecteren (pushmodel). Dat geeft één overzicht van golven en afwijkingen. Een webhook van Forgejo meldt een nieuwe vastlegging; zonder webhook peilt Argo CD iedere 3 minuten.

Toelichting

Afgewezen: een Argo CD per cluster die zelf ophaalt, of de Argo CD Agent. Dat geeft tientallen exemplaren en geen overzicht van de golven op één plek, en de integratie met de agent is in Advanced Cluster Management 2.17 een Technology Preview; een eigen exemplaar past alsnog voor een zwaar cluster, na een ontwerpbesluit. Gevolg: de uitrolidentiteit heeft rechten op alle clusters. De webhook is een voorwaarde bij de ingebruikname; het peilen is de terugvaloptie.

VoorstelWaarde#

De uitrol en de bevoegdheden hebben deze instellingen.

OnderdeelInstellingToelichting
UitrolEén Argo CD op het vlootcluster; GitOpsCluster koppelt de plaatsing; ApplicationSets met de generator clusterDecisionResource (acm-placement); applicationsSync create-update en preserveResourcesOnDeletion; toepassingen zonder verwijderfinalizerPushmodel; de GitOps-add-on is niet ingeschakeld, omdat zij het pushmodel kan uitschakelen
OpslagplaatsenRepository-verbinding per opslagplaats naar Forgejo via HTTPS, met een repositorygebonden leestoken uit OpenBao en de CA van de interne PKI; webhook van Forgejo naar Argo CDZonder webhook peilt Argo CD iedere drie minuten: een instelbare peilperiode, binnen de termijn van vijf minuten voor de evaluatie van beleid
ProjectenAppProject per opslagplaats met toegestane bronnen, bestemmingen en objectsoortenBeperkt de rechten per project, niet die van de applicatiecontroller zelf
Aanmelding Argo CDoidcConfig rechtstreeks naar Keycloak; RBAC met defaultPolicy role:readonlyNiet tegelijk sso en oidcConfig; de door de operator beheerde Keycloak is vervallen. Met role:readonly ziet iedere aangemelde gebruiker alle toepassingen, projecten en clusters in Argo CD
BeleidPolicyGenerator als kustomize-plug-in in Argo CD; policyDefaults met remediationAction inform; ClusterRole openshift-gitops-policy-admin voor de applicatiecontroller; pruneObjectBehavior NonePer uitrolgolf naar enforce
Operators op beheerde clustersOperatorPolicy (v1beta1) met upgradeApprovalinstallPlanApproval niet in het abonnement opnemen

Beoordeelde en ondertekende wijzigingen

VoorstelRegel#

Wijzigingen in Platform en Beleid lopen via een beschermde hoofdtak, ondertekend en met twee beoordelaars naast de auteur; vloot/, basis/ en beleid worden nooit automatisch samengevoegd.

Toelichting

Een wijziging daar raakt alle clusters. Gecontroleerd met de instellingen van de hoofdtak.

VoorstelOntwerpbesluit#

Argo CD rolt alleen een vastlegging uit die met een vertrouwde sleutel is ondertekend; in Platform en Beleid wordt samengevoegd zonder eigen samenvoegvastlegging, zodat de handtekening van de auteur behouden blijft. Argo CD vertrouwt alleen de persoonlijke ondertekensleutels van de auteurs en de sleutel waarmee het leverpad clusterdefinities vastlegt, geen sleutel van het versiebeheer zelf; de lijst staat in versiebeheer en volgt vertrek in het identiteitsbeheer.

Toelichting

Een tweede controle naast de takbeveiliging. Afgewezen: alleen de takbeveiliging van het versiebeheer, één plek die bij misbruik van beheerrechten op het versiebeheer alles doorlaat. Voorwaarde bij de ingebruikname: Argo CD controleert de SSH-handtekeningen en Forgejo voegt op deze manier samen; lukt dat niet, dan blijft de takbeveiliging met ondertekende vastleggingen en twee beoordelaars de enige controle. Een negatieve proef toont aan dat een vastlegging zonder vertrouwde handtekening niet wordt uitgerold.

Begrensde rechten

VoorstelRegel#

Ieder project mag alleen zijn eigen bronnen, bestemmingen, naamruimten en objectsoorten wijzigen. Projecten beperken de rechten per project, niet die van de applicatiecontroller zelf; die heeft rechten op alle clusters en valt daarom onder de maatregelen voor vlootbrede rollen.

Toelichting

Een negatieve proef toont aan dat een project niet buiten zijn naamruimten en objectsoorten schrijft.

VoorstelOntwerpbesluit#

Iedere technische identiteit heeft alleen de rechten voor haar taak: uitrol, repository-verbindingen, klusterlet, hubback-up en objectopslag hebben elk een eigen identiteit. De uitrolidentiteit is per cluster beperkt tot de objectsoorten van de projecten, zodat er geen centrale identiteit met onbeperkte rechten is.

Toelichting

Voorwaarde bij de ingebruikname. Lukt dat niet, dan houdt de uitrolidentiteit de rechten van de agent en begrenzen de projecten wat Argo CD toepast; in beide gevallen gelden de maatregelen voor vlootbrede rollen. Gecontroleerd met het rechtenrapport.

Dragende basisdiensten

VoorstelWaarde#

Het versiebeheer en de automatisering, de basisdiensten waar de uitrol direct op steunt, zijn zo ingericht.

BasisdienstInstallatie en opslagAanmelding, geheimen en back-up
Versiebeheer van het platformForgejo 15.0 LTS via de Helm-chart, met het rootless beeld uit de containerregistry en de OpenShift-compatibiliteit van de chart; één exemplaar met strategie Recreate. Opslagplaatsen op een RBD-volume; bijlagen, LFS en pakketten in de objectopslag van de cel; PostgreSQL 17 op CloudNativePG. Web via een route, SSH via een adres van MetalLB. De runner voor Forgejo Actions als virtuele machine met rootless Podman.OIDC-bron naar Keycloak met groepsclaim, groepen gekoppeld aan teams; lokale aanmelding uit. SSH-sleutels per persoon, ook voor ondertekening; repositorygebonden tokens uit OpenBao voor Argo CD, automatisering en portaal. Dagelijkse dump en doorlopende databaseback-up.
AutomatiseringAnsible Automation Platform 2.7 via de operator; databases op CloudNativePG (PostgreSQL 15 tot en met 17, de hub met hstore); hubopslag op CephFS.Aanmelding via Keycloak; projecten uit de opslagplaats Draaiboeken in Forgejo met een leestoken; inloggegevens uit OpenBao via de credential-plug-in, die in de leeromgeving wordt beproefd; een goedkeuringsstap in de werkstromen voor productie.

Afwijkingen en terugdraaien

VoorstelRegel#

Een wijziging aan een beheerd object buiten versiebeheer wordt binnen 5 minuten gemeld en, waar het beleid wordt afgedwongen, teruggezet.

Toelichting

De detectieregel voor een wijziging van beleid of inrichting buiten versiebeheer meldt haar ook bij het SOC; de tijd tot herstel wordt gemeten.

VoorstelRegel#

Een noodwijziging schort de zelfcorrectie voor één object geregistreerd en met einddatum op: met een synchronisatievenster in Argo CD, voor beleid met een uitzondering. Binnen 1 werkdag staat de wijziging in code of is zij teruggedraaid. Zo sluiten de zelfcorrectie en de noodroute op elkaar aan.

Toelichting

Gecontroleerd met het register van noodwijzigingen en geoefend met de noodroute.

VoorstelWerking#

Een wijziging wordt teruggedraaid door de vorige versie in versiebeheer terug te zetten, eerst bij de proefgroep. Dat herstelt de gewenste inrichting, maar geen verwijderde gegevens en geen update die de leverancier niet laat terugdraaien; daarvoor is herstel uit de back-up nodig.

Verwijzen hiernaar

Onderwerpen 4