Skip to content

Commit 2c32339

Browse files
authored
Merge pull request #656 from MetaCell/release/2.1.0
Release/2.1.0
2 parents 0b64cce + 897c550 commit 2c32339

97 files changed

Lines changed: 7902 additions & 8954 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

application-templates/webapp/frontend/package-lock.json

Lines changed: 0 additions & 8800 deletions
This file was deleted.

applications/jupyterhub/deploy/resources/hub/z2jh.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from collections import Mapping
77
from functools import lru_cache
88
import os
9+
import re
910

1011
import yaml
1112

@@ -115,6 +116,18 @@ def get_config(key, default=None):
115116
return default
116117
else:
117118
value = value[level]
119+
120+
121+
if value and isinstance(value, str):
122+
replace_var = re.search("{{.*?}}", value)
123+
if replace_var:
124+
variable = replace_var.group(0)[2:-2].strip()
125+
126+
repl = get_config(variable)
127+
128+
if repl:
129+
print("replace", variable, "in", value, ":", repl)
130+
value = re.sub("{{.*?}}", repl, value)
118131
return value
119132

120133

@@ -124,5 +137,6 @@ def set_config_if_not_none(cparent, name, key):
124137
configuration item if not None
125138
"""
126139
data = get_config(key)
140+
127141
if data is not None:
128142
setattr(cparent, name, data)

applications/nfsserver/.gitignore

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Compiled Object files, Static and Dynamic libs (Shared Objects)
2+
*.o
3+
*.a
4+
*.so
5+
6+
# Folders
7+
_obj
8+
_test
9+
10+
# Architecture specific extensions/prefixes
11+
*.[568vq]
12+
[568vq].out
13+
14+
*.cgo1.go
15+
*.cgo2.c
16+
_cgo_defun.c
17+
_cgo_gotypes.go
18+
_cgo_export.*
19+
20+
_testmain.go
21+
22+
*.exe
23+
*.test
24+
*.prof
25+
26+
nfs-client-provisioner

applications/nfsserver/Dockerfile

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# compile provisioner
2+
FROM golang:1.18.8 as provisioner
3+
4+
WORKDIR /usr/src/app
5+
COPY nfs-subdir-external-provisioner ./
6+
7+
RUN make
8+
9+
#
10+
FROM k8s.gcr.io/volume-nfs:0.8
11+
12+
RUN yum install -y e4fsprogs rpcbind nfs-utils nfs-utils-lib sysvinit-tools
13+
14+
COPY --from=provisioner /usr/src/app/bin/nfs-subdir-external-provisioner /usr/local/bin/nfs-subdir-external-provisioner
15+
16+
COPY resources/*.sh /usr/local/bin/
17+
RUN chmod +x /usr/local/bin/*.sh
18+
19+
RUN echo "/exports *(rw,fsid=0,insecure,no_subtree_check,no_root_squash,crossmnt)" > /etc/exports
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
{{/* vim: set filetype=mustache: */}}
2+
{{/*
3+
Expand the name of the chart.
4+
*/}}
5+
{{- define "nfs-subdir-external-provisioner.name" -}}
6+
{{- default .Chart.Name .Values.apps.nfsserver.nameOverride | trunc 63 | trimSuffix "-" -}}
7+
{{- end -}}
8+
9+
{{/*
10+
Create a default fully qualified app name.
11+
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12+
If release name contains chart name it will be used as a full name.
13+
*/}}
14+
{{- define "nfs-subdir-external-provisioner.fullname" -}}
15+
{{- if .Values.apps.nfsserver.fullnameOverride -}}
16+
{{- .Values.apps.nfsserver.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17+
{{- else -}}
18+
{{- $name := default .Chart.Name .Values.apps.nfsserver.nameOverride -}}
19+
{{- if contains $name .Release.Name -}}
20+
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21+
{{- else -}}
22+
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23+
{{- end -}}
24+
{{- end -}}
25+
{{- end -}}
26+
27+
{{/*
28+
Create chart name and version as used by the chart label.
29+
*/}}
30+
{{- define "nfs-subdir-external-provisioner.chart" -}}
31+
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32+
{{- end -}}
33+
34+
{{- define "nfs-subdir-external-provisioner.provisionerName" -}}
35+
{{- if .Values.apps.nfsserver.storageClass.provisionerName -}}
36+
{{- printf .Values.apps.nfsserver.storageClass.provisionerName -}}
37+
{{- else -}}
38+
{{ template "nfs-subdir-external-provisioner.fullname" . -}}
39+
{{- end -}}
40+
{{- end -}}
41+
42+
{{/*
43+
Create the name of the service account to use
44+
*/}}
45+
{{- define "nfs-subdir-external-provisioner.serviceAccountName" -}}
46+
{{- if .Values.apps.nfsserver.serviceAccount.create -}}
47+
{{ default (include "nfs-subdir-external-provisioner.fullname" .) .Values.apps.nfsserver.serviceAccount.name }}
48+
{{- else -}}
49+
{{ default "default" .Values.apps.nfsserver.serviceAccount.name }}
50+
{{- end -}}
51+
{{- end -}}
52+
53+
{{/*
54+
Return the appropriate apiVersion for podSecurityPolicy.
55+
*/}}
56+
{{- define "podSecurityPolicy.apiVersion" -}}
57+
{{- if semverCompare ">=1.10-0" .Capabilities.KubeVersion.GitVersion -}}
58+
{{- print "policy/v1beta1" -}}
59+
{{- else -}}
60+
{{- print "extensions/v1beta1" -}}
61+
{{- end -}}
62+
{{- end -}}
63+
64+
{{/*
65+
Common labels
66+
*/}}
67+
{{- define "nfs-subdir-external-provisioner.labels" -}}
68+
chart: {{ template "nfs-subdir-external-provisioner.chart" . }}
69+
heritage: {{ .Release.Service }}
70+
{{ include "nfs-subdir-external-provisioner.selectorLabels" . }}
71+
{{- with .Values.apps.nfsserver.labels }}
72+
{{- toYaml . | nindent 0 }}
73+
{{- end }}
74+
{{- end }}
75+
76+
{{/*
77+
Pod template labels
78+
*/}}
79+
{{- define "nfs-subdir-external-provisioner.podLabels" -}}
80+
{{ include "nfs-subdir-external-provisioner.selectorLabels" . }}
81+
{{- with .Values.apps.nfsserver.labels }}
82+
{{- toYaml . | nindent 0 }}
83+
{{- end }}
84+
{{- end }}
85+
86+
{{/*
87+
Selector labels
88+
*/}}
89+
{{- define "nfs-subdir-external-provisioner.selectorLabels" -}}
90+
app: {{ template "nfs-subdir-external-provisioner.name" . }}
91+
release: {{ .Release.Name }}
92+
{{- end }}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{{- if .Values.apps.nfsserver.rbac.create }}
2+
kind: ClusterRole
3+
apiVersion: rbac.authorization.k8s.io/v1
4+
metadata:
5+
labels:
6+
{{- include "nfs-subdir-external-provisioner.labels" . | nindent 4 }}
7+
name: {{ template "nfs-subdir-external-provisioner.fullname" . }}-runner
8+
rules:
9+
- apiGroups: [""]
10+
resources: ["nodes"]
11+
verbs: ["get", "list", "watch"]
12+
- apiGroups: [""]
13+
resources: ["persistentvolumes"]
14+
verbs: ["get", "list", "watch", "create", "delete"]
15+
- apiGroups: [""]
16+
resources: ["persistentvolumeclaims"]
17+
verbs: ["get", "list", "watch", "update"]
18+
- apiGroups: ["storage.k8s.io"]
19+
resources: ["storageclasses"]
20+
verbs: ["get", "list", "watch"]
21+
- apiGroups: [""]
22+
resources: ["events"]
23+
verbs: ["create", "update", "patch"]
24+
{{- if .Values.apps.nfsserver.podSecurityPolicy.enabled }}
25+
- apiGroups: ['extensions']
26+
resources: ['podsecuritypolicies']
27+
verbs: ['use']
28+
resourceNames: [{{ template "nfs-subdir-external-provisioner.fullname" . }}]
29+
{{- end }}
30+
{{- end }}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{{- if .Values.apps.nfsserver.rbac.create }}
2+
kind: ClusterRoleBinding
3+
apiVersion: rbac.authorization.k8s.io/v1
4+
metadata:
5+
labels:
6+
{{- include "nfs-subdir-external-provisioner.labels" . | nindent 4 }}
7+
name: run-{{ template "nfs-subdir-external-provisioner.fullname" . }}
8+
subjects:
9+
- kind: ServiceAccount
10+
name: {{ template "nfs-subdir-external-provisioner.serviceAccountName" . }}
11+
namespace: {{ .Release.Namespace }}
12+
roleRef:
13+
kind: ClusterRole
14+
name: {{ template "nfs-subdir-external-provisioner.fullname" . }}-runner
15+
apiGroup: rbac.authorization.k8s.io
16+
{{- end }}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
apiVersion: v1
2+
kind: PersistentVolumeClaim
3+
metadata:
4+
name: nfs-exports
5+
labels:
6+
app: nfs-server
7+
spec:
8+
accessModes:
9+
- ReadWriteOnce
10+
resources:
11+
requests:
12+
storage: {{ .Values.apps.nfsserver.server.diskSize }}
13+
---
14+
apiVersion: apps/v1
15+
kind: Deployment
16+
metadata:
17+
name: nfs-server
18+
labels:
19+
app: nfs-server
20+
usesvolume: nfs-exports
21+
spec:
22+
selector:
23+
matchLabels:
24+
app: nfs-server
25+
template:
26+
27+
metadata:
28+
labels:
29+
app: nfs-server
30+
usesvolume: nfs-exports
31+
spec:
32+
affinity:
33+
podAffinity:
34+
requiredDuringSchedulingIgnoredDuringExecution:
35+
- labelSelector:
36+
matchExpressions:
37+
- key: usesvolume
38+
operator: In
39+
values:
40+
- nfs-exports
41+
topologyKey: "kubernetes.io/hostname"
42+
containers:
43+
- name: nfs-server
44+
image: {{ .Values.apps.nfsserver.harness.deployment.image }}
45+
imagePullPolicy: IfNotPresent
46+
env:
47+
# NFS useDNS {{ .Values.apps.nfsserver.nfs.useDNS }}
48+
{{- if .Values.apps.nfsserver.nfs.useDNS }}
49+
- name: NFS_SERVER
50+
value: {{ printf "nfs-server.%s.svc.cluster.local" .Values.namespace }}
51+
{{- end }}
52+
- name: NFS_PATH
53+
value: {{ .Values.apps.nfsserver.nfs.path }}
54+
- name: PROVISIONER_NAME
55+
value: {{ printf "%s-nfs-provisioner" .Values.namespace }}
56+
ports:
57+
- name: nfs
58+
containerPort: 2049
59+
- name: mountd
60+
containerPort: 20048
61+
- name: rpcbind
62+
containerPort: 111
63+
securityContext:
64+
privileged: true
65+
volumeMounts:
66+
- name: storage
67+
mountPath: /exports
68+
volumes:
69+
- name: storage
70+
persistentVolumeClaim:
71+
claimName: nfs-exports
72+
---
73+
apiVersion: v1
74+
kind: Service
75+
metadata:
76+
name: nfs-server
77+
labels:
78+
app: nfs-server
79+
spec:
80+
ports:
81+
- name: nfs
82+
port: 2049
83+
- name: mountd
84+
port: 20048
85+
- name: rpcbind
86+
port: 111
87+
selector:
88+
app: nfs-server
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{{- if .Values.apps.nfsserver.podSecurityPolicy.enabled }}
2+
apiVersion: {{ template "podSecurityPolicy.apiVersion" . }}
3+
kind: PodSecurityPolicy
4+
metadata:
5+
name: {{ template "nfs-subdir-external-provisioner.fullname" . }}
6+
labels:
7+
{{- include "nfs-subdir-external-provisioner.labels" . | nindent 4 }}
8+
spec:
9+
privileged: false
10+
allowPrivilegeEscalation: false
11+
requiredDropCapabilities:
12+
- ALL
13+
volumes:
14+
- 'secret'
15+
- 'nfs'
16+
- 'persistentVolumeClaim'
17+
hostNetwork: false
18+
hostIPC: false
19+
hostPID: false
20+
runAsUser:
21+
rule: 'RunAsAny'
22+
seLinux:
23+
rule: 'RunAsAny'
24+
supplementalGroups:
25+
rule: 'RunAsAny'
26+
fsGroup:
27+
rule: 'RunAsAny'
28+
readOnlyRootFilesystem: false
29+
{{- end }}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{{- if .Values.apps.nfsserver.rbac.create }}
2+
kind: Role
3+
apiVersion: rbac.authorization.k8s.io/v1
4+
metadata:
5+
labels:
6+
{{- include "nfs-subdir-external-provisioner.labels" . | nindent 4 }}
7+
name: leader-locking-{{ template "nfs-subdir-external-provisioner.fullname" . }}
8+
rules:
9+
- apiGroups: [""]
10+
resources: ["endpoints"]
11+
verbs: ["get", "list", "watch", "create", "update", "patch"]
12+
{{- if .Values.apps.nfsserver.podSecurityPolicy.enabled }}
13+
- apiGroups: ['extensions']
14+
resources: ['podsecuritypolicies']
15+
verbs: ['use']
16+
resourceNames: [{{ template "nfs-subdir-external-provisioner.fullname" . }}]
17+
{{- end }}
18+
{{- end }}

0 commit comments

Comments
 (0)