Skip to content

Commit 45e9b38

Browse files
authored
sourcegraph: add allowedTopologies support to storageclass (#188)
* sourcegraph: add `allowedTopologies` support to storageclass * update changelog
1 parent 12f2f62 commit 45e9b38

File tree

5 files changed

+33
-0
lines changed

5 files changed

+33
-0
lines changed

charts/sourcegraph/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ Use `**BREAKING**:` to denote a breaking change
88

99
## Unreleased
1010

11+
### Added
12+
13+
- Added `allowedTopologies` support to storageclass [#188](https://github.com/sourcegraph/deploy-sourcegraph-helm/pull/188). This is useful to restrict provisioning of PV in specific zones or regions. In some cloud providers (e.g. GCP), this can be used to provision regional disks with only one worker node present.
14+
1115
## 4.0.1
1216

1317
Sourcegraph 4.0.1 is now available!

charts/sourcegraph/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ In addition to the documented values, all services also support the following va
296296
| sourcegraph.revisionHistoryLimit | int | `10` | Global deployment clean up policy, learn more from the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy) |
297297
| sourcegraph.serviceLabels | object | `{}` | Add extra labels to all services |
298298
| sourcegraph.tolerations | list | `[]` | Global Tolerations, learn more from the [Kubernetes documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) |
299+
| storageClass.allowedTopologies | object | `{}` | Persistent volumes topology configuration, learn more from the [Kubernetes documentation](https://kubernetes.io/docs/concepts/storage/storage-classes/#allowed-topologies) |
299300
| storageClass.create | bool | `true` | Enable creation of storageClass. Disable if you have your own existing storage class |
300301
| storageClass.name | string | `"sourcegraph"` | Name of the storageClass. Use to customize to the existing storage class name |
301302
| storageClass.parameters | object | `{}` | Extra parameters of storageClass, consult your cloud provider persistent storage documentation |

charts/sourcegraph/templates/storageclass.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,8 @@ parameters:
2121
allowVolumeExpansion: {{ default true .Values.storageClass.allowVolumeExpansion }}
2222
reclaimPolicy: {{ default "Retain" .Values.storageClass.reclaimPolicy }}
2323
volumeBindingMode: {{ default "Immediate" .Values.storageClass.volumeBindingMode }}
24+
{{- if .Values.storageClass.allowedTopologies }}
25+
allowedTopologies:
26+
{{- toYaml .Values.storageClass.allowedTopologies | nindent 2 }}
27+
{{- end }}
2428
{{- end -}}

charts/sourcegraph/tests/storageClass_test.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,24 @@ tests:
2020
asserts:
2121
- isNull:
2222
path: parameters
23+
- it: should have 'allowedTopologies` when storageClass.allowedTopologies is set
24+
set:
25+
storageClass:
26+
create: true
27+
allowedTopologies:
28+
- matchLabelExpressions:
29+
- key: topology.gke.io/zone
30+
values:
31+
- us-central1-a
32+
- us-central1-b
33+
- us-central1-f
34+
asserts:
35+
- equal:
36+
path: allowedTopologies[0]
37+
value:
38+
matchLabelExpressions:
39+
- key: topology.gke.io/zone
40+
values:
41+
- us-central1-a
42+
- us-central1-b
43+
- us-central1-f

charts/sourcegraph/values.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,6 +1038,9 @@ storageClass:
10381038
# -- Extra parameters of storageClass,
10391039
# consult your cloud provider persistent storage documentation
10401040
parameters: {}
1041+
# -- Persistent volumes topology configuration,
1042+
# learn more from the [Kubernetes documentation](https://kubernetes.io/docs/concepts/storage/storage-classes/#allowed-topologies)
1043+
allowedTopologies: {}
10411044

10421045
symbols:
10431046
image:

0 commit comments

Comments
 (0)