Configuring the released chart
Generally the OSO applications access configuration via environment variables that are injected through ConfigMaps. These values can then be configured through the Helm values. To find out more about what Helm values individual applications expose, see their charts and docs.
The individual OSO charts should have sensible defaults for environment variables like service URLs, so that they work out of the box when deployed in the same namespace. However, some variables are more dynamic or depend on where the chart is deployed, such as the ingress host that the UIs require to access the backend APIs. See also the section on ODA deployment below.
The deploy time configuration that needs to be passed to the ska-oso-integration chart is shown below, following the
format used by the standard make targets in the Makefile. Similarly these Helm values could be overwritten in the chart,
depending on how your deployment pipeline works.
SLT_SERVICES_URL ?= $(KUBE_HOST)/$(KUBE_NAMESPACE)/slt/api/v<INSERT SLT major version>
# By default ODA_NAMESPACE == KUBE_NAMESPACE, unless you are deploying the ODA API server in a different namespace
ODA_URL ?= $(KUBE_HOST)/$(ODA_NAMESPACE)/oda/api/v<INSERT ODA major version>
ODA_SERVICE_URL ?= http://ska-db-oda-rest-$(RELEASE_NAME).$(ODA_NAMESPACE):5000/$(ODA_NAMESPACE)/oda/api/v<INSERT ODA major version>
K8S_CHART_PARAMS += --set global.tango_host=$(TANGO_HOST) \
--set global.ingress.host=$(KUBE_HOST)
K8S_CHART_PARAMS += \
--set ska-oso-integration.ska-oso-slt-ui.backendURL=$(SLT_SERVICES_URL) \
--set ska-oso-integration.ska-oso-oet-ui.backendURLODA=$(ODA_URL) \
--set ska-oso-integration.ska-oso-oet.rest.oda.url=$(ODA_SERVICE_URL) # This is needed if the ODA API server is deployed in a different namespace
Note
OSO is working towards removing the duplication of setting the URLs and just depending on the global ingress host in a future release.
Confirming the deployment
Once the chart is deployed and configured as above, the first test would be to check that all the pods are running without error.
Then each application should be accessible and usable (e.g. it should be possible to create a Project in the ODT). The URLs should be the same as those listed in SKA OSO Integration, with the namespace changed to the namespace the chart has just been deployed to, and the domain changed from https://k8s.stfc.skao.int if appropriate.
ODA Deployment and persistent data
By default the ska-oso-integration chart will deploy the ODA Postgres instance. However in most environments
the ODA data will likely require a different lifecycle from the applications, so will be deployed in a different namespace.
To achieve this, the ODA chart can be deployed separately, and the applications configured to connect to the resulting Postgres instance. The OSO applications should all make use of the same global Helm values for this, as described in the ODA docs.