code-server/docs/helm.md
Joe Previte 9ad0d9e6ad
release: 4.5.0 (#5308)
* chore(release): bump version to 4.5.0

* chore: update CHANGELOG

* chore: bump chart version

* docs: update MAINTAINING

* fix: add VSCODE_DEV=1 to e2e script

I'm not sure what changed in the latest version but without setting
VSCODE_DEV=1, code-server won't load. This fixes that.

* Revert "fix: add VSCODE_DEV=1 to e2e script"

This reverts commit 58c4826af82c12d3bc79340945204e6b7dc8cf04.

* fix: try setting VSCODE_DEV=1

* Revert "fix: try setting VSCODE_DEV=1"

This reverts commit 902f5f2f30d2e43a7c3b95decc85f82e98814145.

* refactor: remove version check e2e test

I am not sure why this is passing locally and failing CI. I need to
further investigate this since it fails depending on where you test.
2022-07-01 13:45:36 -07:00

6.7 KiB

code-server Helm Chart

Version: 1.0.0 Type: application AppVersion: 4.5.0

code-server code-server is VS Code running on a remote server, accessible through the browser.

This chart is community maintained by @Matthew-Beckett and @alexgorbatchev

Quickstart

$ git clone https://github.com/coder/code-server
$ cd code-server
$ helm upgrade --install code-server ci/helm-chart

Introduction

This chart bootstraps a code-server deployment on a Kubernetes cluster using the Helm package manager.

Prerequisites

  • Kubernetes 1.6+

Installing the Chart

To install the chart with the release name code-server:

$ git clone https://github.com/coder/code-server
$ cd code-server
$ helm upgrade --install code-server ci/helm-chart

The command deploys code-server on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.

Tip

: List all releases using helm list

Uninstalling the Chart

To uninstall/delete the code-server deployment:

$ helm delete code-server

The command removes all the Kubernetes components associated with the chart and deletes the release.

Configuration

The following table lists the configurable parameters of the code-server chart and their default values.

Values

Key Type Default
affinity object {}
extraArgs list []
extraConfigmapMounts list []
extraContainers string ""
extraInitContainers string ""
extraSecretMounts list []
extraVars list []
extraVolumeMounts list []
fullnameOverride string ""
hostnameOverride string ""
image.pullPolicy string "Always"
image.repository string "codercom/code-server"
image.tag string "4.5.0"
imagePullSecrets list []
ingress.enabled bool false
nameOverride string ""
nodeSelector object {}
persistence.accessMode string "ReadWriteOnce"
persistence.annotations object {}
persistence.enabled bool true
persistence.size string "1Gi"
podAnnotations object {}
podSecurityContext object {}
replicaCount int 1
resources object {}
securityContext.enabled bool true
securityContext.fsGroup int 1000
securityContext.runAsUser int 1000
service.port int 8443
service.type string "ClusterIP"
serviceAccount.create bool true
serviceAccount.name string nil
tolerations list []
volumePermissions.enabled bool true
volumePermissions.securityContext.runAsUser int 0

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,

$ helm upgrade --install code-server \
  ci/helm-chart \
  --set persistence.enabled=false

The above command sets the the persistence storage to false.

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,

$ helm upgrade --install code-server ci/helm-chart -f values.yaml

Tip

: You can use the default values.yaml

Extra Containers

There are two parameters which allow to add more containers to pod. Use extraContainers to add regular containers and extraInitContainers to add init containers. You can read more about init containers in k8s documentation.

Both parameters accept strings and use them as a templates

Example of using extraInitContainers:

extraInitContainers: |
  - name: customization
    image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
    imagePullPolicy: IfNotPresent
    env:
      - name: SERVICE_URL
        value: https://open-vsx.org/vscode/gallery
      - name: ITEM_URL
        value: https://open-vsx.org/vscode/item
    command:
      - sh
      - -c
      - |
        code-server --install-extension ms-python.python
        code-server --install-extension golang.Go
    volumeMounts:
      - name: data
        mountPath: /home/coder  

With this yaml in file init.yaml, you can execute

$ helm upgrade --install code-server \
  ci/helm-chart \
  --values init.yaml

to deploy code-server with python and golang extensions preinstalled before main container have started.