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