/konfigurator

NestJS-baserad webbtjänst för att konfigurera OpenShift-miljöer

Primary LanguageTypeScriptThe UnlicenseUnlicense

konfigurator – Ordning och reda i OpenShift

En webbtjänst för att spåra och rekonfigurera vad som körs i dina OpenShift-miljöer.

Gitpod ready-to-code Docker Repository on Quay

Ramverk

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Coverage Discord Backers on Open Collective Sponsors on Open Collective Support us

Installera beroenden

$ npm install

Starta applikationen

# create development env and start in watch mode
$ cp -v .env.template .env.development
$ NODE_ENV=development npm run start:dev

# create prod env and start in production mode
$ cp -v .env.template .env.production
$ NODE_ENV=production npm run start:prod

Lokal demo-deployment

Starta applikationen, exportera den biljett/JWT som applikationen autogenerer, och kör sedan Bash-scriptet som innehåller cURL-kommandon för setup av demo-miljön:

$ export ACCESS_TOKEN=$(cat ./tmp/access_token.txt)  # Default OAUTH2_LOCAL_ACCESS_TOKEN path.
$ bash scripts/setup-all.sh

Därefter behöver applikationen startas om en första gång, sedan kan man gå vidare med att öppna http://localhost:3000/ i Chrome och verifiera att man omdirigeras till en översiktssida som visar fyra komplexa matriser med miljöinformation.

Skapa nya databasmigrationer

  1. Starta appen i development-läge så att utvecklingsdatabas-schemat är up-to-date, stoppa sedan appen igen
  2. Backa upp utvecklingsdatabasen, cp -v ./tmp/konfigurator.db ./tmp/pre-migrate-backup.db
  3. Inför ändringarna i de entiteter som ska uppdateras och auto-generera en databas-migration:
    npx ts-node ./node_modules/typeorm/cli.js migration:generate --name NamnPaNyMigr
    npm run format
  4. Öppna ./src/migrations/<langt timestamp>-NamnPaNyMigr.ts och granska/städa upp innehållet
  5. Starta appen i development-läge igen och testa igenom, kör igenom enhets- och end-2-end-testerna, o.s.v.
  6. Sälj in en vacker PR

Kör testerna

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

Bygg och publicera

Installera Source-to-Image (S2I) och bygg senaste master-grenen:

$ s2i build https://github.com/mkdevops-se/konfigurator \
  quay.io/centos7/nodejs-12-centos7 quay.io/mkdevops/konfigurator

Publicera Docker-imagen:

docker push quay.io/mkdevops/konfigurator

Starta via Docker Compose

För mer permanent bruk kan Konfigurator deployas som en Docker-container:

$ docker-compose up -d konfigurator

Changelog

v0.5.0 – Rikare Environment-modell

  • Environment-entiteten uppdaterad med en rad nya attribut:
    • Index-namn i OpenShift-plattformens loggarkiv (Kibana)
    • Multipla inloggning-URL:er
    • Stöd för att dölja en miljö från översiktssidan
  • Deployment-entiteten uppdaterad med ett nytt build_info_api_path-attribut som defaultar till /bygginfo

v0.4.0 – Databasmigrering och uppstädade modeller

  • Stöd för databas-migrationer via TypeORM och en README-instruktion för hur de skapas
  • Användargränssnitt uppdaterat för att dölja tilltänkt framtida funktionalitet
  • Miljööversikt uppdaterad med stöd för att uppdatera fritextkommentar om miljöstatus

v0.3.0 – Grundläggande säkerhet med autentiseringskrav

  • API-endpoints som tillhandahåller skriv-access begränsade till klienter med en giltig biljett i Authorization-headern eller en inloggad OpenID Connect-session med Auth0
  • README-instruktionen för Lokal demo-deployment uppdaterad med nytt förfarande
  • Refaktorerad konfigurationshantering för utveckling och produktion

v0.2.0 – Inkrementella förbättringar

  • /health-endpoint tillagd
  • Översiktssida för kända byggen från OpenShift under /builds
  • Översiktssida med Konfiguratorns historik av bakgrundsjobb under /tasks

v0.1.1 – Buggfixar för Docker-deployment

  • S2I-stöd tillagt och dokumenterat tillsammans med publiceringssteg
  • package.json-dependencies rättade för produktions-runtime
  • Docker Compose-fil för enkel deployment på hq.mkdevops.se

v0.1.0 – Initial implementation

  • Första version redo för integrering via OpenShift CI/CD pipeline och deployment i testkluster
  • Fullt fungerande bakgrundsinläsning av mockad bygginfo för demo-deployments