Install Axual Governance
This guide shows you how to write the Axual Governance values file, choose which governance components to enable, install the chart, confirm Self-Service is reachable, and uninstall it again.
Type |
How-to guide |
Goal |
Get the governance layer running and Self-Service reachable through the API Gateway. |
Audience |
Platform Operator with Helm access to the target namespace and credentials for the Axual registry. |
When to use |
Stage 4 of The installation order, after the streaming layer or against an existing Kafka cluster. |
The Axual Governance charts install the control plane, the components that manage and expose the platform rather than carry data:
Prerequisites
Confirm the following before you begin.
Access and permissions required
You need the following access and permissions:
-
Credentials for the Axual chart registry,
registry.axual.io. Contact Axual support if you have none. -
Permission to install Helm releases and create workloads in the target namespace.
Tools and versions required
You need the following tools:
-
helm>= 3.12, with OCI registry support. -
kubectl>= 1.28, configured for the target cluster.
Resources that must exist before starting
The following must already exist:
-
A reachable Apache Kafka cluster, either the one installed in How to Deploy Axual Kafka or an existing cluster onboarded per Kafka Cluster Onboarding Guide.
-
An ingress controller, since Self-Service and the API Gateway are reached through it. See Install an Ingress Controller.
-
The certificates and TLS Secrets the components read. See Certificates, TLS and DNS.
-
The
axualnamespace, and the image pull Secret namedaxualdockercredinside it. Both are created in Preparations. The Secret is namespaced, so a copy created for the streaming layer’skafkanamespace does not serve this one.
The examples below install into a namespace called axual, which is the convention the quick-setup guides use for the governance layer, with the streaming layer in kafka. Substitute your own namespace throughout. The two layers can share one namespace if you prefer, because Platform Manager reaches Kafka over its service address either way.
|
This chart deploys Vault as platform-manager-vault, but Vault still needs initialising and an AppRole afterwards. That is stage 6 work, covered in How to Set Up Vault for Governance.
Create a Helm values file
Create the values.yaml that configures your installation. Start with the pull Secret, so the chart can fetch the component images.
global:
# -- Globally override the list of ImagePullSecrets provided.
imagePullSecrets:
- name: axualdockercred
The name must match the Secret created in Preparations. A mismatch here fails at image pull, which surfaces as pods stuck in ImagePullBackOff rather than as a values error.
|
Enable the components
Each component is enabled independently. The two MySQL entries back Platform Manager and Keycloak respectively, and both are needed unless you point those components at an external database.
global:
platform-manager-mysql:
enabled: true
keycloak-mysql:
enabled: true
keycloak:
enabled: true
platform-manager:
enabled: true
platform-manager-vault:
enabled: true
topic-browse:
enabled: true
api-gateway:
enabled: true
platform-ui:
enabled: true
metrics-exposer:
enabled: true
| Metrics Exposer needs a Prometheus stack to read from, so leave it disabled until one exists. See How to Enable Insights and Metrics. |
Install Axual Governance
Log in to the registry, then install the chart with your values.
Replace every <VALUE> placeholder with your own value before running a command.
|
-
Log in to the Axual registry that holds the charts.
helm registry login registry.axual.io --username <YOUR_USERNAME> -
Install Axual Governance with your
values.yaml.helm install governance oci://registry.axual.io/axual-charts/axual-governance \ --version <GOVERNANCE_CHART_VERSION> -f ./values.yaml -n axual
Verify the installation
Confirm the release succeeded and every enabled component came up, then confirm Self-Service answers through the gateway. A healthy pod set with an unreachable gateway is an ingress problem, and separating the two checks tells you which you have.
helm status governance -n axual
kubectl get pods -n axual
Every pod should read Running, except the initialisation pods, which correctly finish as Completed. Keycloak and the two databases take longest.
Then open Self-Service in a browser at https://platform.<DOMAIN> and confirm the login page loads. Logging in needs the Keycloak realm, which is stage 6 work: see How to Create the Local Realm in Keycloak.
If a pod does not start, How to Inspect Kubernetes Workloads covers reading its events and logs. If the pods are healthy but nothing is reachable, Deployment Troubleshooting covers an ingress that cannot be reached and a blank Self-Service page.
Uninstall Axual Governance
Uninstalling removes the release, not the data.
helm uninstall governance -n axual
| The PersistentVolumeClaims backing the two databases and Vault survive the uninstall by design. Deleting them destroys the platform’s configuration and every secret Vault holds, so remove them only when that is what you intend. |