Bahriya Tersane

Access and credentials

A Tersane licence gives your organisation two credentials. They are separate, and each is used in a different place.

Credential Used for Used by
Chart repository Downloading the charts from tersane.maml.uk Helm, on the machine that installs and upgrades releases
Image registry Pulling the container images the charts run from 1x.ax Kubernetes, on every node, through a pull secret

Both credentials are issued in the Mamluk console when the licence starts. Each remains valid for the term of the licence and is revoked when the licence ends. A credential can be replaced in the console at any time, for example when someone who held it leaves; the old credential is revoked when the new one is issued.

The chart repository

The charts are served from a Helm repository at tersane.maml.uk. Add it once on each machine that runs Helm:

helm repo add tersane https://tersane.maml.uk \
  --username <organisation> --password <chart credential>
helm repo update

Helm stores the credential in its own repository configuration on that machine. It is never needed inside the cluster.

Each convoy is a separate repository, available to organisations that license it, under tersane.maml.uk/convoys/. The Banking Convoy is added in the same way:

helm repo add banking-convoy https://tersane.maml.uk/convoys/banking \
  --username <organisation> --password <chart credential>

A published chart version is never changed or withdrawn, so a release pinned to a version can always be reinstalled.

The image registry

The charts that run images built by Mamluk pull them from 1x.ax, which needs the image credential. Kubernetes reads it from a pull secret, which must exist in every namespace that runs such a chart:

kubectl create secret docker-registry 1x-ax \
  --namespace <namespace> \
  --docker-server=1x.ax \
  --docker-username=<organisation> \
  --docker-password=<image credential>

Then name the secret in the release’s values:

imagePullSecrets:
  - name: 1x-ax

Set imagePullSecrets explicitly in each release’s values file. The charts’ own defaults name different secrets, and a release that names a secret which does not exist leaves its pods unable to start.

Charts that run upstream images only, such as memcached and clamav, do not need the image credential.