From f2d819b6174df5333334ba744e8977da289a03db Mon Sep 17 00:00:00 2001 From: Jonathan Prado Date: Thu, 3 Nov 2022 15:50:24 -0300 Subject: [PATCH 1/6] doc: Add readme for kubernetes deployment --- kubernetes/README.md | 46 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 kubernetes/README.md diff --git a/kubernetes/README.md b/kubernetes/README.md new file mode 100644 index 000000000..a5e71a38f --- /dev/null +++ b/kubernetes/README.md @@ -0,0 +1,46 @@ +# Kubernetes deployment for ubuntu-desktop-lxde-vnc + +### Info +This is usefull when you need a "virtual machine" into your cluster, to work or play with another pods. +The deploy some env vars to customize your data (user and passwords) and has a configmpa where you can configure you supervisord conf. + + +### How to deploy + kubectl apply -f k8s/k8s-deployment.yaml + +### Output + namespace/docker-ubuntu-vnc-desktop created + service/external-service-docker-ubuntu-vnc-desktop created + service/internal-service-docker-ubuntu-vnc-desktop created + configmap/supervisord-config-file created + secret/secrets-docker-ubuntu-vnc-desktop created + deployment.apps/docker-ubuntu-vnc-desktop created + + + + +### Show deployment + kubectl -n docker-desktop-app get pod,svc,cm + + NAME READY STATUS RESTARTS AGE + pod/docker-desktop-app-575fcb7994-ccmtt 1/1 Running 0 95m + + NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE + service/external-service-docker-desktop-app LoadBalancer 10.10.10.10 xxxxx.elb.aws-region.amazonaws.com 6080:31627/TCP 95m + service/internal-service-docker-desktop-app ClusterIP 11.11.11.11 6080/TCP 95m + + NAME DATA AGE + configmap/supervisord-config-file 1 95m + + NAME TYPE DATA AGE + secret/secrets-docker-ubuntu-vnc-desktop Opaque 2 95m + + +
+
+ +
+ + +### ToDo + Helm chart (pending...) From 4f3b6eddac0b0032ceeef0ed973db7dde6f579dd Mon Sep 17 00:00:00 2001 From: Jonathan Prado Date: Thu, 3 Nov 2022 15:51:29 -0300 Subject: [PATCH 2/6] doc: upload example image --- kubernetes/example-aws.png | Bin 0 -> 85121 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 kubernetes/example-aws.png diff --git a/kubernetes/example-aws.png b/kubernetes/example-aws.png new file mode 100644 index 0000000000000000000000000000000000000000..be36fcf8ee073b51f49e5287ddd7edd860c08fbe GIT binary patch literal 85121 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%0Dcd#5%p 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 Date: Thu, 3 Nov 2022 15:53:04 -0300 Subject: [PATCH 3/6] feat: add kubernetes deployment --- kubernetes/k8s-deployment.yaml | 193 +++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 kubernetes/k8s-deployment.yaml diff --git a/kubernetes/k8s-deployment.yaml b/kubernetes/k8s-deployment.yaml new file mode 100644 index 000000000..aaeffe862 --- /dev/null +++ b/kubernetes/k8s-deployment.yaml @@ -0,0 +1,193 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: docker-ubuntu-vnc-desktop + +--- +apiVersion: v1 +kind: Service +metadata: + namespace: docker-ubuntu-vnc-desktop + name: external-service-docker-ubuntu-vnc-desktop + annotations: + prometheus.io/scrape: 'true' + service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags: "environment=dev,owner=SRE,job=docker-ubuntu-vnc-desktop" + service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true" + service.beta.kubernetes.io/aws-load-balancer-type: nlb + service.beta.kubernetes.io/aws-load-balancer-healthcheck-healthy-threshold: "3" + service.beta.kubernetes.io/aws-load-balancer-healthcheck-unhealthy-threshold: "3" + service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval: "10" + service.beta.kubernetes.io/aws-load-balancer-healthcheck-timeout: "10" + service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol: "TCP" + labels: + app: docker-ubuntu-vnc-desktop +spec: + type: LoadBalancer + ports: + - name: http + port: 6080 + targetPort: 80 + selector: + app: docker-ubuntu-vnc-desktop + +--- +apiVersion: v1 +kind: Service +metadata: + namespace: docker-ubuntu-vnc-desktop + name: internal-service-docker-ubuntu-vnc-desktop +spec: + selector: + app: docker-ubuntu-vnc-desktop + ports: + - protocol: TCP + port: 6080 + targetPort: 80 + + +--- +apiVersion: v1 +kind: ConfigMap +metadata: + namespace: docker-ubuntu-vnc-desktop + name: supervisord-config-file +data: + supervisord.conf: |- + [supervisord] + redirect_stderr=true + stopsignal=QUIT + autorestart=true + directory=/root + # + [program:nginx] + priority=10 + command=nginx -c /etc/nginx/nginx.conf -g 'daemon off;' + # + [program:web] + priority=10 + directory=/usr/local/lib/web/backend + command=/usr/local/lib/web/backend/run.py + stdout_logfile=/dev/fd/1 + stdout_logfile_maxbytes=0 + stderr_logfile=/dev/fd/1 + stderr_logfile_maxbytes=0 + # + # + [group:x] + programs=xvfb,wm,lxpanel,pcmanfm,x11vnc,novnc + # + [program:wm] + priority=15 + command=/usr/bin/openbox + environment=DISPLAY=":1",HOME="/root",USER="root" + # + [program:lxpanel] + priority=15 + directory=/home/admin + command=/usr/bin/lxpanel --profile LXDE + user=admin + environment=DISPLAY=":1",HOME="/home/admin",USER="admin" + # + [program:pcmanfm] + priority=15 + directory=/home/admin + command=/usr/bin/pcmanfm --desktop --profile LXDE + user=admin + environment=DISPLAY=":1",HOME="/home/admin",USER="admin" + # + [program:xvfb] + priority=10 + command=/usr/local/bin/xvfb.sh + stopsignal=KILL + # + [program:x11vnc] + priority=20 + command=x11vnc -display :1 -xkb -forever -shared -repeat -capslock -rfbauth /.password2 + # + [program:novnc] + priority=25 + directory=/usr/local/lib/web/frontend/static/novnc + command=bash /usr/local/lib/web/frontend/static/novnc/utils/launch.sh --listen 6081 + stopasgroup=true + # + + + +--- +apiVersion: v1 +kind: Secret +metadata: + name: secrets-docker-ubuntu-vnc-desktop + namespace: docker-ubuntu-vnc-desktop +data: + username: YWRtaW4K # echo "admin"|base64 + password: c3VwZXJwYXNzd29yZAo= # echo "superpassword"|base64 + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: docker-ubuntu-vnc-desktop + namespace: docker-ubuntu-vnc-desktop + labels: + app: docker-ubuntu-vnc-desktop + annotations: + imageregistry: "public" + version: "v1" +spec: + replicas: 1 + selector: + matchLabels: + app: docker-ubuntu-vnc-desktop + template: + metadata: + labels: + app: docker-ubuntu-vnc-desktop + annotations: + imageregistry: "public" + version: "v1" + spec: + containers: + - name: docker-ubuntu-vnc-desktop-pod + image: dorowu/ubuntu-desktop-lxde-vnc + imagePullPolicy: IfNotPresent + env: + - name: RESOLUTION + value: "800x600" + - name: USER + valueFrom: + secretKeyRef: + name: secrets-docker-ubuntu-vnc-desktop + key: username + - name: VNC_PASSWORD + valueFrom: + secretKeyRef: + name: secrets-docker-ubuntu-vnc-desktop + key: password + - name: HTTP_PASSWORD + valueFrom: + secretKeyRef: + name: secrets-docker-ubuntu-vnc-desktop + key: password + - name: PASSWORD + valueFrom: + secretKeyRef: + name: secrets-docker-ubuntu-vnc-desktop + key: password + ports: + - containerPort: 80 + resources: + limits: + cpu: 512m + memory: 512Mi + requests: + cpu: 256m + memory: 256Mi + volumeMounts: + - name: config-file + mountPath: /etc/supervisor/conf.d/ + volumes: + - name: config-file + configMap: + name: supervisord-config-file From 99fc476f28690980d51ae81176112170ec50d73e Mon Sep 17 00:00:00 2001 From: Jonathan Prado Date: Thu, 3 Nov 2022 15:54:03 -0300 Subject: [PATCH 4/6] doc: fix kubectl command --- kubernetes/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubernetes/README.md b/kubernetes/README.md index a5e71a38f..8a61c84b1 100644 --- a/kubernetes/README.md +++ b/kubernetes/README.md @@ -6,7 +6,7 @@ The deploy some env vars to customize your data (user and passwords) and has a c ### How to deploy - kubectl apply -f k8s/k8s-deployment.yaml + kubectl apply -f k8s-deployment.yaml ### Output namespace/docker-ubuntu-vnc-desktop created From 51f44d6505b7c6ba62015bcb042a5513c7e68d71 Mon Sep 17 00:00:00 2001 From: Jonathan Prado Date: Thu, 3 Nov 2022 16:09:07 -0300 Subject: [PATCH 5/6] Update README.md --- README.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/README.md b/README.md index aecc4f8b1..1313025f9 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,60 @@ Dockerfile and configuration can be generated by template. Dockerfile and configuration are re-generate if they do not exist. Or you may force to re-generate by removing them with the command `make clean`. + +
+ +# Kubernetes deployment for ubuntu-desktop-lxde-vnc + +### Info +This is usefull when you need a "virtual machine" into your cluster, to work or play with another pods. +The deploy some env vars to customize your data (user and passwords) and has a configmpa where you can configure you supervisord conf. + + +### How to deploy + kubectl apply -f k8s-deployment.yaml + +### Output + namespace/docker-ubuntu-vnc-desktop created + service/external-service-docker-ubuntu-vnc-desktop created + service/internal-service-docker-ubuntu-vnc-desktop created + configmap/supervisord-config-file created + secret/secrets-docker-ubuntu-vnc-desktop created + deployment.apps/docker-ubuntu-vnc-desktop created + + + + +### Show deployment + kubectl -n docker-desktop-app get pod,svc,cm + + NAME READY STATUS RESTARTS AGE + pod/docker-desktop-app-575fcb7994-ccmtt 1/1 Running 0 95m + + NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE + service/external-service-docker-desktop-app LoadBalancer 10.10.10.10 xxxxx.elb.aws-region.amazonaws.com 6080:31627/TCP 95m + service/internal-service-docker-desktop-app ClusterIP 11.11.11.11 6080/TCP 95m + + NAME DATA AGE + configmap/supervisord-config-file 1 95m + + NAME TYPE DATA AGE + secret/secrets-docker-ubuntu-vnc-desktop Opaque 2 95m + + +
+
+ +
+ + + + +
+
+ + + ## Troubleshooting and FAQ 1. boot2docker connection issue, https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/2 From 05fd75b21db7b1dcce2974290fb6b3bb44c31e36 Mon Sep 17 00:00:00 2001 From: Jonathan Prado Date: Thu, 3 Nov 2022 16:12:31 -0300 Subject: [PATCH 6/6] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1313025f9..7801f22b5 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ docker-ubuntu-vnc-desktop is a Docker image to provide web VNC interface to acce - [Deploy to a subdirectory (relative url root)](#deploy-to-a-subdirectory-relative-url-root) - [Sound (Preview version and Linux only)](#sound-preview-version-and-linux-only) - [Generate Dockerfile from jinja template](#generate-dockerfile-from-jinja-template) +- [Kubernetes deployment](#kubernetes-deployment-for-ubuntu-desktop-lxde-vnc) - [Troubleshooting and FAQ](#troubleshooting-and-faq) - [License](#license) @@ -153,7 +154,7 @@ Dockerfile and configuration are re-generate if they do not exist. Or you may fo
-# Kubernetes deployment for ubuntu-desktop-lxde-vnc +## Kubernetes deployment for ubuntu-desktop-lxde-vnc ### Info This is usefull when you need a "virtual machine" into your cluster, to work or play with another pods.