Coder moves developer workspaces to your cloud and centralizes their creation and management. Keep developers in flow with the power of the cloud and a superior developer experience.
The Coder chart is the best way to operate Coder on Kubernetes. It contains all the required components, and can scale to large deployments.
⚠️ Warning: This repository will not represent the latest Coder release. Reference our installation docs for instructions on a tagged release.
View our docs for detailed installation instructions.
Key | Type | Description | Default |
---|---|---|---|
coderd | object | Primary service responsible for all things Coder! | {"builtinProviderServiceAccount":{"annotations":{},"labels":{}},"image":"","replica":{"enable":false,"primaryURL":""},"replicas":1,"resources":{"limits":{"cpu":"250m","memory":"512Mi"},"requests":{"cpu":"250m","memory":"512Mi"}},"securityContext":{"readOnlyRootFilesystem":true},"serviceSpec":{"externalTrafficPolicy":"Local","loadBalancerIP":"","loadBalancerSourceRanges":[],"type":"LoadBalancer"},"tls":{"devurlsHostSecretName":"","hostSecretName":""}} |
coderd.builtinProviderServiceAccount | object | Customize the built-in Kubernetes provider service account. | {"annotations":{},"labels":{}} |
coderd.builtinProviderServiceAccount.annotations | object | A KV mapping of annotations. See: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ | {} |
coderd.builtinProviderServiceAccount.labels | object | Add labels to the service account used for the built-in provider. | {} |
coderd.image | string | Injected by Coder during release. | "" |
coderd.replica | object | Deploy a replica to geodistribute access to workspaces for lower latency. | {"enable":false,"primaryURL":""} |
coderd.replica.enable | bool | Run coderd as a replica pointing to a primary deployment. Replicas enable low-latency access to workspaces all over the world. Read more: TODO: Link to docs. | false |
coderd.replica.primaryURL | string | URL of the primary deployment. eg. https://coder.myorg.com | "" |
coderd.replicas | int | The number of Kubernetes Pod replicas. | 1 |
coderd.resources | object | Kubernetes resource specification for coderd pods. To unset a value, set it to "". To unset all values, set resources to nil. | {"limits":{"cpu":"250m","memory":"512Mi"},"requests":{"cpu":"250m","memory":"512Mi"}} |
coderd.securityContext | object | Fields related to the container's security context (as opposed to the pod). | {"readOnlyRootFilesystem":true} |
coderd.serviceSpec | object | Specification to inject for the coderd service. See: https://kubernetes.io/docs/concepts/services-networking/service/ | {"externalTrafficPolicy":"Local","loadBalancerIP":"","loadBalancerSourceRanges":[],"type":"LoadBalancer"} |
coderd.serviceSpec.externalTrafficPolicy | string | Set the traffic policy for the service. See: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip | "Local" |
coderd.serviceSpec.loadBalancerIP | string | Set the external IP address of the Ingress service. | "" |
coderd.serviceSpec.loadBalancerSourceRanges | list | Traffic through the LoadBalancer will be restricted to the specified client IPs. This field will be ignored if the cloud provider does not support this feature. | [] |
coderd.serviceSpec.type | string | Set the type of Service. See: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types | "LoadBalancer" |
coderd.tls | object | TLS configuration for coderd. These options will override dashboard configuration. | {"devurlsHostSecretName":"","hostSecretName":""} |
coderd.tls.devurlsHostSecretName | string | The secret to use for DevURL TLS. | "" |
coderd.tls.hostSecretName | string | The secret to use for TLS. | "" |
envbox | object | Required for running Docker inside containers. See requirements: https://coder.com/docs/coder/v1.19/admin/workspace-management/cvms | {"image":""} |
envbox.image | string | Injected by Coder during release. | "" |
logging | object | Configures the logging format and output of Coder. | {"human":"/dev/stderr","json":"","splunk":{"channel":"","token":"","url":""},"stackdriver":""} |
logging.human | string | Location to send logs that are formatted for readability. Set to an empty string to disable. | "/dev/stderr" |
logging.json | string | Location to send logs that are formatted as JSON. Set to an empty string to disable. | "" |
logging.splunk | object | Coder can send logs directly to Splunk in addition to file-based output. | {"channel":"","token":"","url":""} |
logging.splunk.token | string | Splunk HEC collector token. | "" |
logging.splunk.url | string | Splunk HEC collector endpoint. | "" |
logging.stackdriver | string | Location to send logs that are formatted for Google Stackdriver. Set to an empty string to disable. | "" |
postgres.database | string | Name of the database that Coder will use. You must create this database first. | "" |
postgres.default | object | Configure a built-in PostgreSQL deployment. | {"enable":true,"image":"","resources":{"limits":{"cpu":"250m","memory":"1Gi"},"requests":{"cpu":"250m","memory":"1Gi","storage":"10Gi"}},"storageClassName":""} |
postgres.default.enable | bool | Deploys a PostgreSQL instance. We recommend using an external PostgreSQL instance in production. If true, all other values are ignored. | true |
postgres.default.image | string | Injected by Coder during release. | "" |
postgres.default.resources | object | Kubernetes resource specification for the PostgreSQL pod. To unset a value, set it to "". To unset all values, set resources to nil. | {"limits":{"cpu":"250m","memory":"1Gi"},"requests":{"cpu":"250m","memory":"1Gi","storage":"10Gi"}} |
postgres.default.resources.requests.storage | string | Specifies the size of the volume claim for persisting the database. | "10Gi" |
postgres.default.storageClassName | string | Set the storageClass to store the database. | "" |
postgres.host | string | Host of the external PostgreSQL instance. | "" |
postgres.passwordSecret | string | Name of an existing secret in the current namespace with the password of the PostgreSQL instance. The password must be contained in the secret field password . This should be set to an empty string if the database does not require a password to connect. |
"" |
postgres.port | string | Port of the external PostgreSQL instance. | "" |
postgres.sslMode | string | Provides variable levels of protection for the PostgreSQL connection. For acceptable values, see: https://www.postgresql.org/docs/9.1/libpq-ssl.html | "require" |
postgres.user | string | User of the external PostgreSQL instance. | "" |
services | object | Kubernetes Service configuration that applies to Coder services. | {"annotations":{},"clusterDomainSuffix":".svc.cluster.local","nodeSelector":{"kubernetes.io/arch":"amd64","kubernetes.io/os":"linux"},"tolerations":[],"type":"ClusterIP"} |
services.annotations | object | A KV mapping of annotations. See: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ | {} |
services.clusterDomainSuffix | string | Custom domain suffix for DNS resolution in your cluster. See: https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/ | ".svc.cluster.local" |
services.nodeSelector | object | See: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector | {"kubernetes.io/arch":"amd64","kubernetes.io/os":"linux"} |
services.tolerations | list | Each element is a toleration object. See: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ | [] |
services.type | string | See the following for configurable types: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types | "ClusterIP" |
Templates for Coder services live in the templates
directory.
Helm compiles templates with values.yaml
when deploying.
README.md
is generated from README.md.gotmpl
to ensure values are correct. Regenerate the readme:
$ make README.md
Deprecation notices should be added to templates/NOTES.txt
.
If you experience issues, have feedback, or want to ask a question, open an issue or pull request in this repository. Feel free to contact us instead.
Copyright (C) 2020-2021 Coder Technologies Inc.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.