2 open besluiten1414 voorstellen

Onderwerp

Het portaal en de ontwikkelomgeving

Het portaal, Red Hat Developer Hub, dient voorstellen in en toont de voortgang, maar voert niets uit. Het draait met de ontwikkelomgeving op een eigen gehost portaalcluster, met rechten per team en begrensd verkeer.

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

Domein
Volgt uit
Functies
Producten
Verwant

Wat het is

Het portaal is de webingang van de dienstverlening: teams kiezen er een dienst uit de catalogus, dienen een aanvraag in en volgen de levering. Het draait als Red Hat Developer Hub op een eigen gehost applicatiecluster, het portaalcluster, samen met de ontwikkelomgeving Red Hat Dev Spaces.

Dit onderwerp legt de rol en plaats van het portaal vast, zijn inrichting, rollen en identiteiten, zijn ingang en verbindingen, de begrenzing van de werkruimten en de producten en versies.

Waarom zo

Het portaal is van buiten het platform bereikbaar en daardoor een aanvalsvlak. Doordat het alleen voorstellen doet en op een eigen cluster staat, raakt een storing of misbruik alleen het indienen van voorstellen, die daarna opnieuw worden getoetst. Omdat de status in versiebeheer staat en teams ook rechtstreeks kunnen indienen, loopt het leverpad door als het portaal uitvalt; één portaal voor de vloot volstaat daarom.

De inrichting, de netwerkplaats, de hersteltijd en de productversies zijn een voorstel.

Uitspraken

3 vastgesteld17 voorstellen

Alle 17 voorstellen vaststellen

Rol en plaats van het portaal

VastgesteldOntwerpbesluit#

Het portaal dient de dienstbeschrijving in als wijzigingsvoorstel en toont de voortgang, maar voert zelf niets uit: zijn technische identiteit kan alleen voorstellen doen, niet samenvoegen of uitrollen. Omdat de uitvoerende voorzieningen de goedgekeurde beschrijving uit het versiebeheer halen, blijft het versiebeheer de enige bron en loopt een levering door als het portaal uitvalt.

Toelichting

Afgewezen: een portaal dat clusters rechtstreeks via de API aanmaakt; dat is een tweede weg zonder herleidbaar spoor in het versiebeheer.

VastgesteldOntwerpbesluit#

Red Hat Developer Hub draait op een eigen gehost applicatiecluster, het portaalcluster, gescheiden van de platformclusters en van de bouwtaken. Een storing of kwetsbaarheid in het portaal blijft zo beperkt tot dat cluster en tot het indienen van voorstellen.

Toelichting

Het portaal is bereikbaar van buiten het platform en hoort daarom niet op een platformcluster. Afgewezen: het portaal op het basisdienstencluster, waar een kwetsbaarheid in het portaal de basisdiensten raakt. Het portaalcluster neemt een van de plaatsen op het clusterbeheer van cel 1 in.

VastgesteldOntwerpbesluit#

De ontwikkelomgeving in de browser, Red Hat Dev Spaces, draait op het portaalcluster, voor het ontwikkelteam en voor teams zonder lokale hulpmiddelen. Zo blijft RWS-code binnen het platform.

Toelichting

Afgewezen: een eigen cluster voor werkruimten in een afnemerszone; dat kost een van de plaatsen voor applicatieclusters in cel 1. Het past alsnog als er plaatsen bijkomen, of als de negatieve proef met de begrensde werkruimten faalt.

VoorstelOntwerpbesluit#

Er is één portaal voor de hele vloot, op het portaalcluster portaal-prd-c1-01 in cel 1. Het houdt geen gezaghebbende gegevens en is voor geen cel een voorwaarde om te werken of te herstellen. Na verlies van cel 1 wordt het in cel 2 herbouwd, na het versiebeheer, met namen onder het domein van cel 2; het herstel duurt ten hoogste 8 uur.

Toelichting

Het portaal volgt het vlootbrede versiebeheer. Afgewezen: een portaal per cel; een tweede portaal kan bij uitval van cel 1 niets indienen en kost in iedere cel een plaats. Dat past alsnog als het versiebeheer per cel wordt ingericht. Tot het herstel dienen teams rechtstreeks in.

Inrichting, rollen en identiteiten

VoorstelWaarde#

Developer Hub draait met twee exemplaren op verschillende werkers, geïnstalleerd met de operator en een Backstage-resource, met de app-configuratie in ConfigMaps. Het heeft een eigen database op CloudNativePG met drie exemplaren en de waarden van een beheerde database voor reguliere productie; die database is niet gezaghebbend. Het portaalcluster heeft drie tot zes virtuele werkers van maat M, in verschillende rekken.

Toelichting

Uitval van één werker onderbreekt het portaal zo niet. Het portaalcluster krijgt het beleidspakket voor gehoste clusters met een platformfunctie.

VoorstelOntwerpbesluit#

App-configuratie en rolbeleid komen als bestanden uit de opslagplaats Platform; de interface van het portaal kan geen rollen wijzigen. De RBAC-plug-in staat aan met beleid per rol voor teamontwikkelaar, teameigenaar en platformbeheerder. Die rollen komen als groepen uit de toegangsvoorziening; het portaal controleert ze aan de serverzijde, en de toetsing doet dat opnieuw.

Toelichting

Zonder rolbeleid krijgt een aangemelde gebruiker te veel rechten. Zo verandert niets buiten versiebeheer.

VoorstelRegel#

Aanmelding bij portaal en ontwikkelomgeving loopt via de toegangsvoorziening met meerfactoraanmelding, met OIDC naar Keycloak; ook gebruikers en groepen in de catalogus komen uit Keycloak. Sessies verlopen na 15 minuten inactiviteit en na 8 uur, en een intrekking werkt binnen 1 uur. Platformbeheer beheert het portaalcluster via de beheerwerkplek met tijdelijk verhoogde rechten.

Toelichting

Toegang volgt uit identiteit. De toets Beheertoegang en noodtoegang toont het aan; zie het domein identiteit en beheertoegang.

VoorstelRegel#

Het portaal toont en wijzigt alleen gegevens van het eigen team, ook via de API; de status toont alleen de diensten van het eigen team.

Toelichting

Zo blijven afnemers gescheiden. Een negatieve proef toont het aan, ook met rechtstreekse aanroepen van de sjabloonfunctie.

VoorstelRegel#

Iedere technische identiteit van portaal, toetsing en leverwerkstroom heeft een eigenaar, één taak en geen interactieve aanmelding. Het portaal heeft een repositorygebonden token dat leest in Catalogus en Afnemers en voorstellen maakt in Afnemers, en een leesidentiteit op het vlootcluster voor de statusplug-in; het kan niet samenvoegen, de takbeveiliging niet wijzigen en niets uitvoeren.

Toelichting

Zo blijft misbruik beperkt. De tokens komen via External Secrets uit het geheimenbeheer. De rechten van de runner horen bij de basisdiensten.

VoorstelRegel#

Dienstbeschrijvingen, sjablonen en portaal bevatten geen geheimen. De langlevende geheimen van het portaal, dus de twee tokens, het clientgeheim bij de toegangsvoorziening en het databasewachtwoord, zijn geregistreerd als beheerde langlevende geheimen: ze komen via External Secrets uit het geheimenbeheer en worden iedere 30 dagen vervangen, met overlap of binnen een gedateerde onderbrekingsuitzondering, waarbij de exemplaren na elkaar herstarten.

Toelichting

Geheimen staan alleen in het geheimenbeheer; de geheimencontrole en het register van geheimen tonen dat aan. Zie het domein geheimen.

VoorstelOntwerpbesluit#

Developer Hub heeft geen ondersteunde koppeling met Forgejo. Een sjabloon haalt daarom de dienstbeschrijving op met de stap fetch:template en maakt dan met een eigen sjabloonstap via de API van Forgejo een tak, de vastlegging en een pull request in Afnemers. De catalogus leest de locaties uit de opslagplaats Catalogus via de Gitea-integratie van Backstage, met regels per soort.

Toelichting

De upstreammodule publish:gitea maakt alleen nieuwe opslagplaatsen aan. De Gitea-integratie is een upstreamonderdeel: haar werking met Forgejo wordt in de leeromgeving aangetoond, en na een sjabloonwijziging wordt de locatie vernieuwd. Werkt zij niet, dan komen de catalogusbestanden bij iedere publicatie als lokale locaties in de inrichting van het portaal, uitgerold uit de opslagplaats Platform. De eigen sjabloonstap en de statuskoppeling zijn eigen software: het pijplijnsjabloon bouwt en ondertekent ze, en Developer Hub laadt ze als dynamische plug-in uit de containerregistry. Sjabloonstap, statusplug-in en controles moeten nog worden gebouwd en beproefd tegen de vastgelegde contracten.

VoorstelWerking#

Het portaal toont de voortgang uit de leverstatus en de toestand uit het vlootbeheer, elk met het tijdstip van de laatste bijwerking, en daarnaast documentatie en het scanrapport van de softwarelevering. De clusterstatus komt via een statusplug-in met een leesidentiteit op het vlootcluster.

Toelichting

Dat Red Hat de statusplug-in ondersteunt, is een voorwaarde bij de acceptatie; anders toont het portaal alleen de leverstatus, met de melding van het vlootbeheer dat de standaardinrichting voldoet.

VoorstelWaarde#

Catalogus, portaal en leverpad hebben deze interfaces.

InterfaceAfnemerIsolatieGrensBijzonderheden
Portaal (webinterface)Teamleden en platformbeheerRol aan de serverzijde; alleen diensten en status van het eigen teamSessieduur van de baselineVoert niets uit; toont leverstatus, clusterstatus, documentatie en scanrapport
API van het portaal (sjabloonfunctie)Teams die vanuit software aanvragenZelfde rolbeleid als de webinterfaceAlleen gepubliceerde sjabloonversiesRechtstreekse aanroep beproefd
Opslagplaats AfnemersAangesloten teams, als terugvaloptie en voor aansturing vanuit softwareLezen voor aangesloten teams; indienen via een eigen takAlleen de eigen teammap is een standaardwijzigingZelfde toetsing en beoordeling
CatalogusIedere aangemelde gebruikerAlleen gepubliceerde versiesStatus per profielDocumentatie per sjabloonversie
LeverstatusTeam van de dienst; platformbeheerPer teamTijdstip van de laatste bijwerkingBron voor de maatstaven
OntwikkelomgevingOntwikkelteam; teams zonder lokale hulpmiddelenNaamruimte per team met het striktste profiel; netwerkbeleidQuotum per teamnaamruimte; één actieve werkruimte per gebruikerUitgaand verkeer alleen naar de vastgelegde bestemmingen
Toelichting

De digitale assistent en de API-catalogus staan bij de catalogus.

Netwerk en werkruimten

VoorstelOntwerpbesluit#

Het portaalcluster is een gehost cluster met een platformfunctie. Werkers en ingang staan in het routeringsdomein platform (vrf-platform), met het werkernetwerk op een eigen segment uit VLAN 700–709 (L2-VNI 10700–10709), MTU 9000 en een /26 uit de platformreeks; de werkers krijgen hun adres via DHCP-doorgifte naar Infoblox. Het portaal is bereikbaar vanuit kantoor en WAN, alleen binnen het RWS-netwerk, onder interne namen van de cel.

Toelichting

De afnemers zijn RWS-medewerkers. Netwerkbeheer wijst het VLAN toe en registreert het in NetBox bij het maken van het cluster. Bij herbouw in cel 2 geldt hetzelfde VLAN, met een /26 van cel 2.

VoorstelRegel#

Het portaal is alleen bereikbaar via doorgifte door het gemeenschappelijke paar van de externe verkeersverdeling: TCP 443, zonder TLS-afsluiting, naar een eigen ingangsshard die alleen portaal en ontwikkelomgeving bedient en de console en andere routes niet. De ingangsshard sluit zelf TLS af, met het TLS-profiel van de baseline, een standaardcertificaat van cert-manager uit de tussen-CA van de cel en HSTS.

Toelichting

Het beleidspakket voor netwerk en ingang levert TLS-profiel, certificaat en HSTS. Aanmelden in de browser loopt via de toegangsvoorziening op hetzelfde paar. Een TLS-scan en een negatieve proef tonen het aan; zie het domein netwerk.

VoorstelWaarde#

Catalogus, portaal en leverpad hebben deze verbindingen; uitgaand verkeer van portaal en werkruimten gaat alleen naar de bestemmingen in deze lijst.

VanNaarPoortDoelZoneregel
Kantoor en WANPortaaladres op de externe verkeersverdelingTCP 443Portaal en ontwikkelomgevingExtern naar ingang
Externe verkeersverdelingIngangsshard van het portaalclusterTCP 443, zonder TLS-afsluitingPublicatieIngang naar platform
PortaalVersiebeheer van het platformTCP 443Lezen, voorstellen maken, status lezenBinnen vrf-platform; lijst van toegestane bestemmingen per naamruimte
PortaalToegangsvoorzieningTCP 443Aanmelding via OIDC; groepenBinnen vrf-platform; lijst per naamruimte
PortaalAPI van het vlootclusterTCP 6443Clusterstatus, alleen lezenBinnen vrf-platform; lijst per naamruimte
Anycast-gateway van het werkersegmentInfobloxUDP 67DHCP-doorgifte voor de werkersPlatform naar extern
Verzamelaar van het portaalclusterSIEM van het SOCSyslog over TLS of HECAudit- en beveiligingslogboekenAanvulling op de zonematrix voor alle clusters
WerkruimtenContainerregistry van de celTCP 443Beelden van werkruimtenBinnen vrf-platform; lijst per naamruimte
WerkruimtenVersiebeheer van toepassingen (GitLab) en zijn pakketregistryTCP 443Broncode van het eigen team; bibliotheken via de pakketspiegelAanvulling op de zonematrix: platform naar extern
Toetspijplijn (runner)Versiebeheer en datacenterregistratieTCP 443Vastleggingen en teams; zones per adresreeks, alleen lezenBinnen vrf-platform
LeverwerkstroomVersiebeheer, clusterbeheer, vlootcluster, API-adressen van applicatieclustersTCP 443 en 6443Voorstellen, status, toegangscontroleBinnen vrf-platform
LeverwerkstroomIngangsadressen van applicatieclustersTCP 443Proef langs het gebruikerspadPlatform naar afnemers
BeheerwerkplekAPI van het portaalclusterTCP 6443BeheerBeheer naar platform
Toelichting

Een weigering valt onder de detectieregel voor uitgaand verkeer naar een niet-toegestane bestemming.

VoorstelOntwerpbesluit#

Werkruimten zijn de enige werklasten op het portaalcluster die code van teams uitvoeren, en zij staan zonder firewall in het routeringsdomein van de basisdiensten. Het netwerkbeleid weigert daarom hun verkeer naar de naamruimten van het portaal, en hun lijst van toegestane bestemmingen sluit vrf-platform uit, behalve de containerregistry. Uitbreidingen komen alleen uit het vrijgegeven beeld of de spiegel. Een werkruimte stopt na 15 minuten zonder activiteit, en een gebruiker heeft één actieve werkruimte.

Toelichting

Iedere werkruimte heeft een eigen volume op normaal-blok, in een naamruimte per team met het striktste profiel, en een weigering wordt gemeld. Dat Dev Spaces de openbare uitbreidingsbron uitschakelt, is een voorwaarde bij de acceptatie; de terugvaloptie is dat de lijst van toegestane bestemmingen die bron al buiten bereik houdt, zodat een poging alleen een geweigerde en gemelde verbinding oplevert. Een negatieve proef toont aan dat een werkruimte niets buiten de vastgelegde bestemmingen bereikt.

VoorstelRegel#

Portaal, werkruimtebeelden en dynamische plug-ins komen alleen als vrijgegeven software uit de containerregistry van de cel.

Toelichting

Er komt geen software van buiten; de acceptatieproef Softwareketen toont het aan. Zie het domein softwarelevering.

Producten en versies

VoorstelWaarde#

Catalogus, portaal en leverpad gebruiken deze producten, op een gehost cluster met OpenShift 4.22 en virtuele werkers.

ProductVersieRolOndersteuningsvoorwaarde
Red Hat Developer Hub1.10 op Backstage 1.49.4; operator met de Backstage-resource rhdh.redhat.com/v1alpha5Portaal: catalogus, softwaresjablonen (scaffolder.backstage.io/v1beta3), RBAC-plug-in en statusGeen ondersteunde koppeling met Forgejo, dus een eigen sjabloonstap via de API van Forgejo; dat Red Hat de statusplug-in voor de clusterstatus ondersteunt, is een voorwaarde bij de acceptatie
Red Hat Dev Spaces3.30, voor OpenShift 4.16–4.22Ontwikkelomgeving in de browserDat Red Hat Dev Spaces op het gehoste portaalcluster ondersteunt, is een voorwaarde bij de acceptatie
Forgejo, met Forgejo Actions15.0 LTS, ondersteund tot 15 juli 2027Opslagplaatsen Catalogus en Afnemers; toetspijplijn; leverstatusEigen beheer, zonder leverancierscontract; overstap naar 19.0 LTS, gepland op 15 april 2027, vóór het einde van de ondersteuning van 15.0
Ansible Automation Platform2.7Leverwerkstroom; draaiboeken voor het netwerkpadBasisdienst per cel
OpenShift GitOps met Argo CD; Advanced Cluster Management1.21.4 met Argo CD 3.4.3; 2.17Uitvoering uit versiebeheer; standaardinrichting en clusterstatusOnderdeel van het vlootbeheer
Red Hat build of Keycloak26.6Aanmelding via OIDC; groepenBasisdienst per cel
CloudNativePG, met de Barman Cloud-plug-in1.30.1; 0.15.0Database van het portaalOverstap naar 1.31 vóór eind 2026
External Secrets Operator; cert-manager1.2.1; 1.20Geheimen uit het geheimenbeheer; certificatenKoppeling met OpenBao aangetoond in de leeromgeving
Developer Lightspeed met de LLM GatewayPlug-in van Developer Hub 1.10Digitale assistentUit in de eerste levering; alleen met een gekoppeld taalmodel en na beoordeling
Toelichting

Voor de producten van Red Hat vervangt een geslaagde proef in de leeromgeving de bevestiging van de leverancier niet, ook niet voor tussenliggende upgradecombinaties; voor Forgejo en de upstreamonderdelen, die geen leverancier hebben, is die proef het bewijs. Haalt Dev Spaces zijn voorwaarde niet, dan gaat de ontwikkelomgeving niet in gebruik en werken teams met lokale hulpmiddelen tegen het versiebeheer van toepassingen; het leverpad verandert niet. Voor de actuele versies en ondersteuningstermijnen gelden de feiten uit de publieke documentatie; de levenscycluscontrole volgt ze.

VoorstelRegel#

Upgrades volgen het bijwerken per laag, met operators op een vast kanaal en handmatige goedkeuring. Het portaalcluster krijgt een nieuwe OpenShift-versie als gehost cluster van cel 1 in golf 1, na de leeromgeving, de platformclusters en de proefgroep, en pas als Developer Hub en Dev Spaces die versie ondersteunen. Portaal en ontwikkelomgeving hebben geen exemplaar in de proefgroep: hun nieuwe versie gaat na de leeromgeving met golf 1 naar productie.

Toelichting

Een nieuwe versie van Forgejo gaat pas naar productie na een proef met sjabloonstap, Gitea-integratie, statusvermeldingen en toetspijplijn; bij een nieuwe versie van Developer Hub worden de eigen plug-ins opnieuw gebouwd.

Verwijzen hiernaar

Onderwerpen 2