diff --git a/k8s/README.md b/k8s/README.md index a745c43..ae1c76b 100644 --- a/k8s/README.md +++ b/k8s/README.md @@ -14,6 +14,14 @@ Cleanup `Error` pods. kubectl get pods | grep Error | cut -d' ' -f 1 | xargs kubectl delete pod ``` +Redeploy a deployment: + +```sh +DEPLOYMENT="rstudio" +NAMESPACE="datalab" +kubectl patch deployment $DEPLOYMENT -n $NAMESPACE -p "{\"spec\": {\"template\": {\"metadata\": { \"labels\": { \"redeploy\": \"$( date +%s )\"}}}}}" +``` + # Deployment ## namespaces @@ -74,6 +82,14 @@ sudo yum install -y iscsi-initiator-utils kubectl apply -f longhorn-system/longhorn.yaml ``` +## rstudio + +Currently only for one user: + +```sh +kubectl apply -f datalab/rstudio.yaml +``` + ## auth Including: diff --git a/k8s/datalab/redeploy-corona-api.yaml b/k8s/datalab/redeploy.yaml similarity index 100% rename from k8s/datalab/redeploy-corona-api.yaml rename to k8s/datalab/redeploy.yaml diff --git a/k8s/datalab/rstudio.yaml b/k8s/datalab/rstudio.yaml new file mode 100644 index 0000000..3a5d8e2 --- /dev/null +++ b/k8s/datalab/rstudio.yaml @@ -0,0 +1,98 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: rstudio + labels: + app: rstudio + namespace: datalab +spec: + selector: + matchLabels: + app: rstudio + replicas: 1 + template: + metadata: + labels: + app: rstudio + spec: + serviceAccountName: redeploy + automountServiceAccountToken: true + imagePullSecrets: + - name: "hub-moritzgraf-de" + containers: + - image: hub.moritzgraf.de:5000/rstudio:latest + imagePullPolicy: Always + name: rstudio + resources: + limits: + cpu: "2" + memory: "2Gi" + requests: + cpu: "200m" + memory: "500Mi" + volumeMounts: + - name: work + mountPath: /home/datalab/ + env: + - name: ROOT + value: "true" + - name: USER + value: datalab + - name: PASSWORD + value: Schnitzel12 + ports: + - containerPort: 8787 + volumes: + - name: work + persistentVolumeClaim: + claimName: rstudio +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: rstudio + namespace: datalab +spec: + accessModes: + - ReadWriteOnce + storageClassName: longhorn + resources: + requests: + storage: 10Gi +--- +apiVersion: v1 +kind: Service +metadata: + name: rstudio + namespace: datalab +spec: + ports: + - port: 8787 + targetPort: 8787 + protocol: TCP + selector: + app: rstudio +--- +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: rstudio + namespace: datalab + annotations: + kubernetes.io/ingress.class: "nginx" + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + cert-manager.io/cluster-issuer: "letsencrypt-prod" +spec: + tls: + - hosts: + - "rstudio.haumdaucher.de" + secretName: rstudio-haumdaucher-de + rules: + - host: rstudio.haumdaucher.de + http: + paths: + - path: / + backend: + serviceName: rstudio + servicePort: 8787 \ No newline at end of file