Source code for the web app for users of the PaaS.
- Uses AngularJS 1.5 as the main framework
- Runs fully client side (served as static assets)
- Talks to the backend API via
/api
calls in the browser - A local development and build stack is used for easy development, testing and building of the static assets
keycloak-proxy sits in front of the API server and handles authentication using Keycloak.
All /api
requests go through this and keycloak-proxy takes care of proxying upstream to the API server when authenticated (or whitelisted).
The folder in this repo only provides scripts to manage a local keycloak-proxy (in a container), not for production environments.
Source code for the backend API server – handling most of the business logic and persistence for the hub, and communicating with other backend and external services.
- Provides a mainly JSON based API
- Uses Ruby on Rails 5.0 (in API-only mode)
- Authentication credentials are expected to be provided by the keycloak-proxy (where needed)
- Handles all the authorisation business logic
… is used as the persistence store.
See the pipeline for all the steps involved in the various build pipelines.
All services/components provided by this repo are currently versioned together using the same version identifier on every release, determined by Git tags and corresponding Docker image tags.
Creating and pushing a Git tag in this repo will trigger a drone pipeline that builds Docker images tagged with the same tag value, and pushes them to the relevant Quay.io repositories.
The general process to prepare a new release of Docker images:
- Switch to / pull the latest
master
branch (ensuring this has previously built successfully) - Find the latest version using
git tag
- Tag a new incremental version (either major, minor or patch)
- e.g.
git tag -a v0.5.1 -m "v0.5.1"
- e.g.
- Push tags using
git push --tags
$ export DRONE_SERVER=https://drone-gh.acp.homeoffice.gov.uk
$ export DRONE_TOKEN=xxxxxxxxxxx
$ drone build promote UKHomeOffice/kube-platform-hub <build-no> acp-ops