Prerequisites
- A Kubernetes cluster with cluster-admin (or equivalent) access
kubectl
andhelm
installed (Helm 3+)awscli
installed and the AWS access key/secret we provide- Permission to create Kubernetes secrets and install Helm releases
- (Optional) Istio or your preferred Ingress/Gateway if you plan to expose the service externally
1) Configure AWS credentials (for ECR)
Use the credentials we share with you to set up a dedicated profile (example:6sense-ecr-pull
):
2) Retrieve the ECR password
Get a short-lived registry token (you’ll paste this as the Docker password in the next step):3) Create the Kubernetes image-pull secret
Create a pull secret in the namespace where you’ll install the chart (use-n <namespace>
if needed):
Tip: If you’re deploying into a non-default namespace, create the secret in that same namespace or mark it as imagePullSecrets in your ServiceAccount.
4) Install the Adopt API Service Helm chart
Install from our OCI registry:Verify:
helm list
and kubectl get pods,svc
in your target namespace to confirm resources are running.5) Configure environment variables (values.yaml)
Set your runtime configuration via the chart’svalues.yaml
(or --set
flags). At minimum:
6) Upgrading to a new image version
When we provide a new image tag, you can roll forward without changing other values:<NEW_IMAGE_TAG>
with the version we share.
7) Networking & routing (example with Istio)
The chart deploys the Adopt API Service inside your cluster. Exposing it externally (DNS, TLS, routing) is your responsibility. If you use Istio, here’s a minimalVirtualService
pattern you can adapt:
Note: Names (Gateway, host, service) may differ in your cluster. Adjust accordingly.
8) Common checks & troubleshooting
- Image pull errors (
ImagePullBackOff
)- Ensure the imagePullSecret (
adoptai-image-pull-secret
) exists in the same namespace as the workload. - Re-run Step 2 to refresh the ECR password and recreate the secret if needed.
- Ensure the imagePullSecret (
- Can’t reach service externally
- Verify your Ingress/Gateway/VirtualService or equivalent and DNS records.
- Confirm the service
type
, ports, and the targetport: 8000
(example above).
- Helm release issues
helm status adopt-api-service
andkubectl describe pod/<name>
for events and logs.
- Database / env config
- Double-check
SINGLESTORE_*
variables and network policies/firewalls to your DB host.
- Double-check
9) Rollback & uninstall (optional)
-
Rollback to previous revision:
-
Uninstall:
Support
If you get stuck, share:helm status adopt-api-service
kubectl get pods -o wide
andkubectl logs
for failing pods- Your sanitized
values.yaml
(without secrets)