Kubernetes and Helm
If your organization uses Kubernetes, you can the Helm Chart to deploy Precept quickly and easily.
Prerequisites
- Kubernetes 1.20+
- kubectl 1.20+ (pre-configured against your cluster.)
- Helm 3.0.0+
- Docker Registry Token (issued by the Precept team.)
- A valid Precept License File (issed by the Precept team.)
Docker Registry Credentials
Upon activation of your subscription agreement, your organization will be issued with a Docker Registry Token. This Token is used by the Helm CLI to fetch the Helm Chart, and the Kubernetes cluster to pull container images.
Helm CLI Authentication
Configure Helm to authenticate using the Token:
helm registry login --username precept-docker ghcr.io/precept.shPaste the Token into the
Password:prompt.Verify that Helm is able to read the chart:
helm show chart oci://ghcr.io/precept-sh/helm/precept-server
Kubernetes Image Pull Secret
Use kubectl to register the Image Pull Secret in the same namespace that Precept will be deployed to, replacing <NAMESPACE> and <TOKEN> accordingly:
kubectl -n <NAMESPACE> create secret docker-registry precept \
--docker-server=ghcr.io/precept-sh \
--docker-username=precept-docker \
--docker-password=<TOKEN>Deployment with Helm
Create a
values.yamlfile containing custom configuration parameters.touch precept-values.yamlCustomize
precept-values.yamlaccording to the Chart Values reference document. At a minimum, you must specify:imagePullSecretsmust be populated to reference the Image Pull Secret created above:
yamlimagePullSecrets: - name: preceptimage.tagmust be a specific version number as communicated by the Precept team
Use
helmto install the Precept Chart using thevalues.yamlfile created previously, replacing<NAMESPACE>accordingly:
helm install precept oci://ghci.io/precept-sh/helm/precept-server \
--namespace <NAMESPACE> \
--values precept-values.yamlVerifying Installation
The default Values configure Liveness and Readiness probes to the /health API endpoint. The status of the Precept Server deployment can be queried with the following kubectl command:
kubectl -n <NAMESPACE> get deployments