diff --git a/apps/workadventure/README.md b/apps/workadventure/README.md index e93ff37..6ea8ae5 100644 --- a/apps/workadventure/README.md +++ b/apps/workadventure/README.md @@ -23,3 +23,40 @@ ## Other TODO * Checkout whether traefik can be of help for us, too + + +## Versions + +### v1: all manifests apply in k8s + +### v2: all pods run + +Problem with the default front container: + +``` +sudo: unable to send audit message +sudo: pam_open_session: System error +sudo: policy plugin failed session initialization +``` + +A lot of sudo commands even in the root path: + +https://github.com/thecodingmachine/docker-images-nodejs/blob/master/utils/docker-entrypoint-as-root.sh + +"fixed" by running as uid 0 and running the entrypoints in container +command. + +Messages pod: + +``` +[11:38] nb3:workadventure% kubectl logs messages-6d5fd6486b-qgdjn +sudo: unable to send audit message +sudo: pam_open_session: System error +sudo: policy plugin failed session initialization +``` + +* Also has incorrect volumes +* Disable pod/pvc for the moment + + +### v3: all components work diff --git a/apps/workadventure/unused/messages-claim0-persistentvolumeclaim.yaml b/apps/workadventure/unused/messages-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..af207e6 --- /dev/null +++ b/apps/workadventure/unused/messages-claim0-persistentvolumeclaim.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + creationTimestamp: null + labels: + io.kompose.service: messages-claim0 + name: messages-claim0 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi +status: {} diff --git a/apps/workadventure/unused/messages-claim1-persistentvolumeclaim.yaml b/apps/workadventure/unused/messages-claim1-persistentvolumeclaim.yaml new file mode 100644 index 0000000..dd813a6 --- /dev/null +++ b/apps/workadventure/unused/messages-claim1-persistentvolumeclaim.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + creationTimestamp: null + labels: + io.kompose.service: messages-claim1 + name: messages-claim1 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi +status: {} diff --git a/apps/workadventure/unused/messages-claim2-persistentvolumeclaim.yaml b/apps/workadventure/unused/messages-claim2-persistentvolumeclaim.yaml new file mode 100644 index 0000000..8a2a915 --- /dev/null +++ b/apps/workadventure/unused/messages-claim2-persistentvolumeclaim.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + creationTimestamp: null + labels: + io.kompose.service: messages-claim2 + name: messages-claim2 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi +status: {} diff --git a/apps/workadventure/unused/messages-claim3-persistentvolumeclaim.yaml b/apps/workadventure/unused/messages-claim3-persistentvolumeclaim.yaml new file mode 100644 index 0000000..7fb42f9 --- /dev/null +++ b/apps/workadventure/unused/messages-claim3-persistentvolumeclaim.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + creationTimestamp: null + labels: + io.kompose.service: messages-claim3 + name: messages-claim3 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi +status: {} diff --git a/apps/workadventure/unused/messages-deployment.yaml b/apps/workadventure/unused/messages-deployment.yaml new file mode 100644 index 0000000..636b3aa --- /dev/null +++ b/apps/workadventure/unused/messages-deployment.yaml @@ -0,0 +1,51 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + io.kompose.service: messages + name: messages +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: messages + strategy: + type: Recreate + template: + metadata: + labels: + io.kompose.service: messages + spec: + containers: + - env: + - name: STARTUP_COMMAND_1 + value: yarn install + - name: STARTUP_COMMAND_2 + value: yarn run proto:watch + image: thecodingmachine/workadventure-back-base:latest + name: messages + resources: {} + volumeMounts: + - mountPath: /usr/src/app + name: messages-claim0 + - mountPath: /usr/src/back + name: messages-claim1 + - mountPath: /usr/src/front + name: messages-claim2 + - mountPath: /usr/src/pusher + name: messages-claim3 + restartPolicy: Always + volumes: + - name: messages-claim0 + persistentVolumeClaim: + claimName: messages-claim0 + - name: messages-claim1 + persistentVolumeClaim: + claimName: messages-claim1 + - name: messages-claim2 + persistentVolumeClaim: + claimName: messages-claim2 + - name: messages-claim3 + persistentVolumeClaim: + claimName: messages-claim3 +status: {} diff --git a/apps/workadventure/v2/back-claim0-persistentvolumeclaim.yaml b/apps/workadventure/v2/back-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..1eab2fb --- /dev/null +++ b/apps/workadventure/v2/back-claim0-persistentvolumeclaim.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + creationTimestamp: null + labels: + io.kompose.service: back-claim0 + name: back-claim0 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi +status: {} diff --git a/apps/workadventure/v2/back-deployment.yaml b/apps/workadventure/v2/back-deployment.yaml new file mode 100644 index 0000000..eb430dd --- /dev/null +++ b/apps/workadventure/v2/back-deployment.yaml @@ -0,0 +1,61 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + labels: + io.kompose.service: back + name: back +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: back + strategy: + type: Recreate + template: + metadata: + labels: + io.kompose.service: back + spec: + containers: + - command: + - yarn + - run + - runprod + env: + - name: ADMIN_API_TOKEN + - name: ALLOW_ARTILLERY + value: "true" + - name: DEBUG + value: '*' + - name: JITSI_ISS + - name: JITSI_URL + - name: MAX_PER_GROUP + value: MAX_PER_GROUP + - name: NODE_ENV + value: development + - name: REDIS_HOST + value: redis + - name: SECRET_JITSI_KEY + - name: SECRET_KEY + value: yourSecretKey + - name: STARTUP_COMMAND_1 + value: yarn install + - name: STARTUP_COMMAND_2 + value: while [ ! -f /usr/src/app/src/Messages/generated/messages_pb.js ]; do sleep 1; done + - name: STORE_VARIABLES_FOR_LOCAL_MAPS + value: "true" + - name: TURN_STATIC_AUTH_SECRET + value: SomeStaticAuthSecret + image: thecodingmachine/workadventure-back:v1.6.4 + name: back + resources: {} + volumeMounts: + - mountPath: /usr/src/app + name: back-claim0 + restartPolicy: Always + volumes: + - name: back-claim0 + persistentVolumeClaim: + claimName: back-claim0 +status: {} diff --git a/apps/workadventure/v2/front-claim0-persistentvolumeclaim.yaml b/apps/workadventure/v2/front-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..994f5af --- /dev/null +++ b/apps/workadventure/v2/front-claim0-persistentvolumeclaim.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + creationTimestamp: null + labels: + io.kompose.service: front-claim0 + name: front-claim0 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi +status: {} diff --git a/apps/workadventure/v2/front-deployment.yaml b/apps/workadventure/v2/front-deployment.yaml new file mode 100644 index 0000000..53955a5 --- /dev/null +++ b/apps/workadventure/v2/front-deployment.yaml @@ -0,0 +1,70 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + io.kompose.service: front + name: front +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: front + strategy: + type: Recreate + template: + metadata: + labels: + io.kompose.service: front + spec: + containers: + - env: + - name: DEBUG_MODE + - name: DISABLE_ANONYMOUS + - name: DISABLE_NOTIFICATIONS + - name: HOST + value: 0.0.0.0 + - name: ICON_URL + value: //icon.workadventure.localhost + - name: JITSI_PRIVATE_MODE + - name: JITSI_URL + - name: LIVE_RELOAD + value: "true" + - name: MAX_PER_GROUP + - name: MAX_USERNAME_LENGTH + - name: NODE_ENV + value: development + - name: OPID_LOGIN_SCREEN_PROVIDER + - name: PUSHER_URL + value: //pusher.workadventure.localhost + - name: SKIP_RENDER_OPTIMIZATIONS + - name: STARTUP_COMMAND_1 + value: ./templater.sh + - name: STARTUP_COMMAND_2 + value: yarn install + - name: START_ROOM_URL + - name: STUN_SERVER + value: stun:stun.l.google.com:19302 + - name: TURN_PASSWORD + - name: TURN_SERVER + value: turn:coturn.workadventure.localhost:3478,turns:coturn.workadventure.localhost:5349 + - name: TURN_USER + - name: UPLOADER_URL + value: //uploader.workadventure.localhost + securityContext: + runAsUser: 0 + image: thecodingmachine/workadventure-front:v1.6.4 + name: front + command: + - sh + - -c + - "./templater.sh; yarn install; node /usr/local/bin/enable_apache_mods.js | bash; node /usr/local/bin/startup_commands.js | bash ; /usr/local/bin/apache-expose-envvars.sh; apache2-foreground" + resources: {} + volumeMounts: + - mountPath: /usr/src/app + name: front-claim0 + restartPolicy: Always + volumes: + - name: front-claim0 + persistentVolumeClaim: + claimName: front-claim0 +status: {} diff --git a/apps/workadventure/v2/icon-deployment.yaml b/apps/workadventure/v2/icon-deployment.yaml new file mode 100644 index 0000000..9f2130a --- /dev/null +++ b/apps/workadventure/v2/icon-deployment.yaml @@ -0,0 +1,25 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + labels: + io.kompose.service: icon + name: icon +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: icon + strategy: {} + template: + metadata: + creationTimestamp: null + labels: + io.kompose.service: icon + spec: + containers: + - image: matthiasluedtke/iconserver:v3.13.0 + name: icon + resources: {} + restartPolicy: Always +status: {} diff --git a/apps/workadventure/v2/maps-claim0-persistentvolumeclaim.yaml b/apps/workadventure/v2/maps-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..455f632 --- /dev/null +++ b/apps/workadventure/v2/maps-claim0-persistentvolumeclaim.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + creationTimestamp: null + labels: + io.kompose.service: maps-claim0 + name: maps-claim0 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi +status: {} diff --git a/apps/workadventure/v2/maps-deployment.yaml b/apps/workadventure/v2/maps-deployment.yaml new file mode 100644 index 0000000..eae3944 --- /dev/null +++ b/apps/workadventure/v2/maps-deployment.yaml @@ -0,0 +1,46 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + labels: + io.kompose.service: maps + name: maps +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: maps + strategy: + type: Recreate + template: + metadata: + labels: + io.kompose.service: maps + spec: + containers: + - env: + - name: DEBUG_MODE + - name: FRONT_URL + value: http://play.workadventure.localhost + - name: HOST + value: 0.0.0.0 + - name: NODE_ENV + value: development + - name: STARTUP_COMMAND_0 + value: sudo a2enmod headers + - name: STARTUP_COMMAND_1 + value: yarn install + - name: STARTUP_COMMAND_2 + value: yarn run dev & + image: thecodingmachine/php:8.1-v4-apache-node12 + name: maps + resources: {} + volumeMounts: + - mountPath: /var/www/html + name: maps-claim0 + restartPolicy: Always + volumes: + - name: maps-claim0 + persistentVolumeClaim: + claimName: maps-claim0 +status: {} diff --git a/apps/workadventure/v2/pusher-claim0-persistentvolumeclaim.yaml b/apps/workadventure/v2/pusher-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..a04aa23 --- /dev/null +++ b/apps/workadventure/v2/pusher-claim0-persistentvolumeclaim.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + creationTimestamp: null + labels: + io.kompose.service: pusher-claim0 + name: pusher-claim0 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi +status: {} diff --git a/apps/workadventure/v2/pusher-deployment.yaml b/apps/workadventure/v2/pusher-deployment.yaml new file mode 100644 index 0000000..60aaa0f --- /dev/null +++ b/apps/workadventure/v2/pusher-deployment.yaml @@ -0,0 +1,59 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + labels: + io.kompose.service: pusher + name: pusher +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: pusher + strategy: + type: Recreate + template: + metadata: + labels: + io.kompose.service: pusher + spec: + containers: + - command: + - yarn + - run + - runprod + env: + - name: ADMIN_API_TOKEN + - name: API_URL + value: back:50051 + - name: DEBUG + value: socket:* + - name: DISABLE_ANONYMOUS + - name: FRONT_URL + value: http://play.workadventure.localhost + - name: JITSI_ISS + - name: JITSI_URL + - name: OPID_CLIENT_ID + - name: OPID_CLIENT_ISSUER + - name: OPID_CLIENT_REDIRECT_URL + - name: OPID_CLIENT_SECRET + - name: OPID_PROFILE_SCREEN_PROVIDER + - name: SECRET_JITSI_KEY + - name: SECRET_KEY + value: yourSecretKey + - name: STARTUP_COMMAND_1 + value: yarn install + - name: STARTUP_COMMAND_2 + value: while [ ! -f /usr/src/app/src/Messages/generated/messages_pb.js ]; do sleep 1; done + image: thecodingmachine/workadventure-pusher:v1.6.4 + name: pusher + resources: {} + volumeMounts: + - mountPath: /usr/src/app + name: pusher-claim0 + restartPolicy: Always + volumes: + - name: pusher-claim0 + persistentVolumeClaim: + claimName: pusher-claim0 +status: {} diff --git a/apps/workadventure/v2/redis-deployment.yaml b/apps/workadventure/v2/redis-deployment.yaml new file mode 100644 index 0000000..0f5da39 --- /dev/null +++ b/apps/workadventure/v2/redis-deployment.yaml @@ -0,0 +1,37 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + io.kompose.service: redis + name: redis +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: redis + strategy: {} + template: + metadata: + labels: + io.kompose.service: redis + spec: + containers: + - image: redis:6.2.6-alpine + name: redis + resources: {} + ports: + - containerPort: 6379 + restartPolicy: Always +status: {} +--- +apiVersion: v1 +kind: Service +metadata: + name: redis +spec: + ports: + - port: 6379 + protocol: TCP + selector: + io.kompose.service: redis +--- diff --git a/apps/workadventure/v2/uploader-claim0-persistentvolumeclaim.yaml b/apps/workadventure/v2/uploader-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..32dc001 --- /dev/null +++ b/apps/workadventure/v2/uploader-claim0-persistentvolumeclaim.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + creationTimestamp: null + labels: + io.kompose.service: uploader-claim0 + name: uploader-claim0 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi +status: {} diff --git a/apps/workadventure/v2/uploader-deployment.yaml b/apps/workadventure/v2/uploader-deployment.yaml new file mode 100644 index 0000000..3960e10 --- /dev/null +++ b/apps/workadventure/v2/uploader-deployment.yaml @@ -0,0 +1,40 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + io.kompose.service: uploader + name: uploader +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: uploader + strategy: + type: Recreate + template: + metadata: + labels: + io.kompose.service: uploader + spec: + containers: + - command: + - yarn + - run + - runprod + env: + - name: DEBUG + value: '*' + - name: STARTUP_COMMAND_1 + value: yarn install + image: thecodingmachine/workadventure-uploader:v1.6.4 + name: uploader + resources: {} + volumeMounts: + - mountPath: /usr/src/app + name: uploader-claim0 + restartPolicy: Always + volumes: + - name: uploader-claim0 + persistentVolumeClaim: + claimName: uploader-claim0 +status: {}