Deploying Coder
Guide to Deploying Your Own Coder Instance on Nautilus
This guide walks you through deploying a Coder instance in your own namespace on Nautilus, where you can have admin control, customize templates, and manage users. The instructions here are based on Coder’s official Kubernetes installation guide with some adjustments for Nautilus.
NOTE: You will need to request an exception for your namespace from admins for the gatekeeper ingress wildcard rule, and the deployment run time (otherwise your coder deployment will be killed after two weeks)
1. Choose Your Project Name
Your project will be accessible at https://your_name.nrp-nautilus.io
.
2. Create the Namespace
Log into the Nautilus portal to create a namespace for your project and ensure it’s annotated with any required information.
3. Install Helm and Download the Coder Helm Chart
If Helm is not already installed, follow the official Helm installation guide to set it up.
4. Set Up PostgreSQL
Create a PostgreSQL instance in your namespace by following the PostgreSQL setup guide.
- Requirements:
- Namespace: Your project namespace
- Username:
coder
- Database:
coder
- Storage: 10Gi
5. Create the PostgreSQL Secret
After PostgreSQL setup, create a Kubernetes secret for Coder’s database connection.
Replace my-postgres-cluster.default.svc.cluster.local
with the endpoint for your PostgreSQL instance.
kubectl create secret generic coder-db-url -n your_namespace \
6. Install Coder with Helm
Add the Coder Helm repository:
helm repo add coder-v2 https://helm.coder.com/v2
7. Configure Your Deployment (values.yaml)
Create a values.yaml
file with the configuration settings:
coder: env: - name: CODER_ACCESS_URL value: https://your_name.nrp-nautilus.io - name: CODER_WILDCARD_ACCESS_URL value: '*.your_name.nrp-nautilus.io' - name: CODER_PG_CONNECTION_URL valueFrom: secretKeyRef: key: url name: coder-db-url# - name: CODER_OIDC_ISSUER_URL# value: https://cilogon.org# - name: CODER_OIDC_CLIENT_ID# valueFrom:# secretKeyRef:# key: client# name: coder-cilogon# - name: CODER_OIDC_CLIENT_SECRET# valueFrom:# secretKeyRef:# key: secret# name: coder-cilogon# - name: CODER_GITAUTH_0_ID# value: gitlab# - name: CODER_GITAUTH_0_TYPE# value: gitlab# - name: CODER_GITAUTH_0_CLIENT_ID# valueFrom:# secretKeyRef:# key: client# name: coder-gitlab# - name: CODER_GITAUTH_0_CLIENT_SECRET# valueFrom:# secretKeyRef:# key: secret# name: coder-gitlab# - name: CODER_GITAUTH_0_AUTH_URL# value: https://gitlab.nrp-nautilus.io/oauth/authorize# - name: CODER_GITAUTH_0_TOKEN_URL# value: https://gitlab.nrp-nautilus.io/oauth/token# - name: CODER_GITAUTH_0_VALIDATE_URL# value: https://gitlab.nrp-nautilus.io/oauth/token/info# - name: CODER_OIDC_ALLOW_SIGNUPS# value: "false" ingress: className: haproxy enable: true host: your_name.nrp-nautilus.io tls: enable: true secretName: ssl-key wildcardSecretName: ssl-key wildcardHost: '*.your_name.nrp-nautilus.io' resources: limits: cpu: 6 memory: 4Gi requests: cpu: 6 memory: 4Gi service: sessionAffinity: None type: ClusterIP
For OAuth integration, uncomment and configure the OAuth settings as needed.
8. Deploy Coder
Use Helm to deploy Coder:
helm install coder coder-v2/coder \ --namespace your_namespace \ --values values.yaml \ --version 2.15.1
9. Log in to Coder 🎉
Visit https://your_name.nrp-nautilus.io
to access your Coder instance.
10. Add Custom Templates
You can add your own templates or use the examples we have at NRP Coder Templates.
You’re all set to use your customized Coder instance!