README.md 5.0 KB
Newer Older
M
Matthew Beckett 已提交
1 2
# code-server

3
![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.11.0](https://img.shields.io/badge/AppVersion-3.11.0-informational?style=flat-square)
M
Matthew Beckett 已提交
4

M
Matthew Beckett 已提交
5 6 7
[code-server](https://github.com/cdr/code-server) code-server is VS Code running
on a remote server, accessible through the browser.

M
Matthew Beckett 已提交
8 9
This chart is community maintained by [@Matthew-Beckett](https://github.com/Matthew-Beckett) and [@alexgorbatchev](https://github.com/alexgorbatchev)

M
Matthew Beckett 已提交
10 11 12
## TL;DR;

```console
A
Anmol Sethi 已提交
13 14 15
$ git clone https://github.com/cdr/code-server
$ cd code-server
$ helm upgrade --install code-server ci/helm-chart
M
Matthew Beckett 已提交
16 17 18 19 20 21 22 23 24 25 26 27 28 29
```

## Introduction

This chart bootstraps a code-server deployment on a
[Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh)
package manager.

## Prerequisites

  - Kubernetes 1.6+

## Installing the Chart

A
Anmol Sethi 已提交
30
To install the chart with the release name `code-server`:
M
Matthew Beckett 已提交
31 32

```console
A
Anmol Sethi 已提交
33 34 35
$ git clone https://github.com/cdr/code-server
$ cd code-server
$ helm upgrade --install code-server ci/helm-chart
M
Matthew Beckett 已提交
36 37 38 39 40 41 42 43 44 45
```

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

> **Tip**: List all releases using `helm list`

## Uninstalling the Chart

A
Anmol Sethi 已提交
46
To uninstall/delete the `code-server` deployment:
M
Matthew Beckett 已提交
47 48

```console
A
Anmol Sethi 已提交
49
$ helm delete code-server
M
Matthew Beckett 已提交
50 51 52 53 54 55 56 57 58 59
```

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.

M
Matthew Beckett 已提交
60 61 62 63 64 65 66 67
## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` |  |
| extraArgs | list | `[]` |  |
| extraConfigmapMounts | list | `[]` |  |
| extraContainers | string | `""` |  |
68
| extraInitContainers | string | `""` |  |
M
Matthew Beckett 已提交
69 70 71 72 73 74 75
| extraSecretMounts | list | `[]` |  |
| extraVars | list | `[]` |  |
| extraVolumeMounts | list | `[]` |  |
| fullnameOverride | string | `""` |  |
| hostnameOverride | string | `""` |  |
| image.pullPolicy | string | `"Always"` |  |
| image.repository | string | `"codercom/code-server"` |  |
76
| image.tag | string | `"3.11.0"` |  |
M
Matthew Beckett 已提交
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
| 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` |  |
M
Matthew Beckett 已提交
99 100 101 102 103

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

```console
104
$ helm upgrade --install code-server \
A
Anmol Sethi 已提交
105 106
    ci/helm-chart \
    --set persistence.enabled=false
M
Matthew Beckett 已提交
107 108 109 110 111 112 113 114
```

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,

```console
115
$ helm upgrade --install code-server ci/helm-chart -f values.yaml
M
Matthew Beckett 已提交
116 117 118
```

> **Tip**: You can use the default [values.yaml](values.yaml)
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

# 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](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/).

Both parameters accept strings and use them as a templates

Example of using `extraInitContainers`:

``` yaml
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 

```console
$ 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.