Platform components and services
These components and services are part of the platform-base helm chart installation.
-
Manager
- Admin backend for the developer portal and orchestrating deployments
- Handles creating pipeline-runs, authorization policies, user access roles, etc.
- All writes to the master DB (both user and application writes) are handled by this service
-
Realtime
- Listen/notify implementation for the master DB
- The developer portal and deployed services subscribe to updates for the services they have access to
-
Admin Portal
- Admin user interface for managing the Platform
- Non-admin users see an "AppStore" like grid-view of the end-user applications they have access to
-
CI/CD (Tekton + Kaniko)
- Currently, resources (pipelines, tasks, etc.) are deployed to the "default" namespace
- Tekton core stack in the "tekton-pipelines" namespace
- Allows building and deploying services from source code or image registry. It is used for all of our internal services and images, and for deploying services from the manager.
- If you make custom changes to pipelines or tasks, you have to run
helm upgrade platform-basebefore changes take effect - A separate helm chart is used to define the infrastructure needed for services deployed by the CI/CD
-
Traffic management and authz (Istio)
- Istio provides a service mesh for internal and external traffic management, security, and observability.
- For external communication, it's used for JWT token checks, mapping traffic to correct services, and handling TLS certs together with cert-manager.
- For internal communication, Istio provides mutual TLS and service discovery inside the Platform
- "istio-system" namespace for Istio base resources deployment
- "istio-ingress" namespace for gateway deployment
- All namespaces with Istio-sidecar enabled will have Istio Envoy sidecar automatically deployed to enforce mTLS
-
User management and authentication (Keycloak)
- Keycloak provides a full user management and authentication service
- It uses CNPG Postgre cluster as its database
- Initialized with realm-export.json to create correct realms and clients on install
-
Reverse Proxy (oauth proxy)
- Reverse proxy for outfacing services that don't implement their own login flow (tools namespace)
- Used in combination with a custom Istio Envoy filter to provide UMA token authorization
-
Databases (Cloud Native Postgre - CNPG)
- Platform uses CNPG operator that manages the deployment of Postgre clusters
- Both the master database and Keycloak database are deployed as part of the platform-base helm chart using the operator
- Capability to deploy separate Postgre clusters for applications with pg-vector and other extensions
-
Logging, monitoring, and tracing
- Kiali (Istio traffic monitoring web UI)
- Operator at "kiali-operator" namespace (manages Kiali deployment)
- Kiali components deployed to "istio-system" namespace
- Prometheus (logging, alerts, etc.)
- Currently installed to "default" namespace
- Kiali configured to track traffic using Prometheus
- Kiali (Istio traffic monitoring web UI)
-
Cert Management (cert-manager)
- Allows automatic cert management using LetsEncrypt
- For this, the Platform needs a public IP and correct DNS setup
- Providing certificates manually is also possible
- Allows automatic cert management using LetsEncrypt