diff --git a/functions/kubernetes/all-in-one.yaml b/functions/kubernetes/all-in-one.yaml new file mode 100644 index 00000000..db591402 --- /dev/null +++ b/functions/kubernetes/all-in-one.yaml @@ -0,0 +1,813 @@ +--- + +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: shuffle-data +provisioner: kubernetes.io/no-provisioner +volumeBindingMode: WaitForFirstConsumer + +--- + +apiVersion: v1 +data: + BACKEND_HOSTNAME: shuffle-backend + BACKEND_PORT: "5001" + BASE_URL: http://shuffle-backend:5001 + DATASTORE_EMULATOR_HOST: shuffle-database:8000 + DB_LOCATION: /mnt/shuffle-data/open-search + DOCKER_API_VERSION: "1.40" + ENVIRONMENT_NAME: Shuffle + FRONTEND_PORT: "3001" + FRONTEND_PORT_HTTPS: "3443" + HTTP_PROXY: "" + HTTPS_PROXY: "" + ORBORUS_CONTAINER_NAME: "\t\t\t\t" + ORG_ID: Shuffle + OUTER_HOSTNAME: shuffle-backend + SHUFFLE_APP_DOWNLOAD_LOCATION: https://github.com/shuffle/python-apps + SHUFFLE_APP_FORCE_UPDATE: "false" + SHUFFLE_APP_HOTLOAD_FOLDER: /shuffle-apps + SHUFFLE_APP_HOTLOAD_LOCATION: ./shuffle-apps + SHUFFLE_BASE_IMAGE_NAME: shuffle + SHUFFLE_BASE_IMAGE_REGISTRY: ghcr.io + SHUFFLE_BASE_IMAGE_TAG_SUFFIX: -1.0.0 + SHUFFLE_CHAT_DISABLED: "false" + SHUFFLE_CONTAINER_AUTO_CLEANUP: "false" + SHUFFLE_DEFAULT_APIKEY: "" + SHUFFLE_DEFAULT_PASSWORD: "" + SHUFFLE_DEFAULT_USERNAME: "" + SHUFFLE_DOWNLOAD_AUTH_BRANCH: "" + SHUFFLE_DOWNLOAD_AUTH_PASSWORD: "" + SHUFFLE_DOWNLOAD_AUTH_USERNAME: "" + SHUFFLE_DOWNLOAD_WORKFLOW_BRANCH: "" + SHUFFLE_DOWNLOAD_WORKFLOW_LOCATION: "" + SHUFFLE_DOWNLOAD_WORKFLOW_PASSWORD: "" + SHUFFLE_DOWNLOAD_WORKFLOW_USERNAME: "" + SHUFFLE_ELASTIC: "true" + SHUFFLE_ENCRYPTION_MODIFIER: "" + SHUFFLE_FILE_LOCATION: /shuffle-files + SHUFFLE_LOGS_DISABLED: "false" + SHUFFLE_OPENSEARCH_APIKEY: "" + SHUFFLE_OPENSEARCH_CERTIFICATE_FILE: "" + SHUFFLE_OPENSEARCH_CLOUDID: "" + SHUFFLE_OPENSEARCH_INDEX_PREFIX: "" + SHUFFLE_OPENSEARCH_PASSWORD: admin + SHUFFLE_OPENSEARCH_PROXY: "" + SHUFFLE_OPENSEARCH_SKIPSSL_VERIFY: "true" + SHUFFLE_OPENSEARCH_URL: https://opensearch:9200 + SHUFFLE_OPENSEARCH_USERNAME: admin + SHUFFLE_ORBORUS_STARTUP_DELAY: "\t\t" + SHUFFLE_PASS_APP_PROXY: "FALSE" + SHUFFLE_PASS_WORKER_PROXY: "TRUE" + SHUFFLE_RERUN_SCHEDULE: "300" + SSO_REDIRECT_URL: "" + TZ: "Europe/Amsterdam \t\t\t\t\t" + IS_KUBERNETES: "true" + REGISTRY_URL: "172.17.14.71:5000" + REGISTRY_AUTH: "false" + SHUFFLE_KUBERNETES_WORKER: "dhavald055/shuffle-k8s:shuffle-worker-kubernetes" +kind: ConfigMap +metadata: + creationTimestamp: null + labels: + io.kompose.service: backend-env + name: env + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + namespace: shuffle + name: pod-manager +rules: +- apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list", "create", "update", "delete"] +- apiGroups: ["batch"] + resources: ["jobs"] + verbs: ["create", "get", "list", "watch", "delete"] + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: pod-manager-binding + namespace: shuffle +subjects: +- kind: ServiceAccount + name: default + namespace: shuffle +roleRef: + kind: Role + name: pod-manager + apiGroup: rbac.authorization.k8s.io + +--- + +apiVersion: v1 +kind: PersistentVolume +metadata: + name: shuffle-os-pv +spec: + capacity: + storage: 10Gi # Adjust the storage size as per your requirements + accessModes: + - ReadWriteOnce # This allows read-write access to a single node + persistentVolumeReclaimPolicy: Retain # Adjust the reclaim policy as per your needs + storageClassName: shuffle-data # Set the desired storage class + hostPath: + path: /mnt/shuffle-data/open-search + +--- + +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + creationTimestamp: null + labels: + io.kompose.service: opensearch-claim0 + name: opensearch-claim0 +spec: + accessModes: + - ReadWriteOnce + storageClassName: shuffle-data + resources: + requests: + storage: 500Mi +status: {} + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + kompose.cmd: kompose convert -f docker-compose.yml + kompose.version: 1.26.0 (40646f47) + creationTimestamp: null + labels: + io.kompose.service: opensearch + name: opensearch +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: opensearch + strategy: {} + template: + metadata: + annotations: + kompose.cmd: kompose convert -f docker-compose.yml + kompose.version: 1.26.0 (40646f47) + creationTimestamp: null + labels: + io.kompose.network/shuffle: "true" + io.kompose.service: opensearch + spec: + # securityContext: + # runAsUser: 1000 # UID + # fsGroup: 1000 # GID + # nodeSelector: + # node: worker1 + initContainers: + - name: volume-permissions + image: busybox + command: ["sh", "-c", "chown -R 1000:1000 /usr/share/opensearch/data"] + volumeMounts: + - name: opensearch-claim0 + mountPath: /usr/share/opensearch/data + containers: + - env: + - name: OPENSEARCH_JAVA_OPTS + value: -Xms1024m -Xmx1024m + #- name: bootstrap.memory_lock + #value: "true" + - name: cluster.initial_master_nodes + value: shuffle-opensearch + - name: cluster.name + value: shuffle-cluster + - name: cluster.routing.allocation.disk.threshold_enabled + value: "false" + - name: discovery.seed_hosts + value: shuffle-opensearch + - name: node.name + value: shuffle-opensearch + - name: node.store.allow_mmap + value: "false" + - name: DB_LOCATION + valueFrom: + configMapKeyRef: + name: env + key: DB_LOCATION + image: opensearchproject/opensearch:2.5.0 + name: shuffle-opensearch + ports: + - containerPort: 9200 + resources: {} + volumeMounts: + - mountPath: /usr/share/opensearch/data + name: opensearch-claim0 + hostname: shuffle-opensearch + restartPolicy: Always + volumes: + - name: opensearch-claim0 + persistentVolumeClaim: + claimName: opensearch-claim0 +status: {} + +--- + +apiVersion: v1 +kind: Service +metadata: + annotations: + kompose.cmd: kompose convert -f docker-compose.yml + kompose.version: 1.26.0 (40646f47) + creationTimestamp: null + labels: + io.kompose.service: opensearch + name: opensearch +spec: + type: NodePort + ports: + - name: "9200" + port: 9200 + targetPort: 9200 + nodePort: 31001 + selector: + io.kompose.service: opensearch +status: + loadBalancer: {} + + +--- + +apiVersion: v1 +kind: PersistentVolume +metadata: + name: shuffle-apps-pv +spec: + capacity: + storage: 10Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + storageClassName: shuffle-data + hostPath: + path: /mnt/shuffle-data/backend + +## --- + +# apiVersion: v1 +# kind: PersistentVolume +# metadata: +# name: shuffle-files-pv +# spec: +# capacity: +# storage: 5Gi +# accessModes: +# - ReadWriteOnce +# persistentVolumeReclaimPolicy: Retain +# storageClassName: fast +# hostPath: +# path: /mnt/shuffle-data/backend + +# --- + +# apiVersion: v1 +# kind: PersistentVolumeClaim +# metadata: +# creationTimestamp: null +# labels: +# io.kompose.service: backend-files-claim +# name: backend-files-claim +# spec: +# accessModes: +# - ReadWriteOnce +# storageClassName: fast +# resources: +# requests: +# storage: 1Gi +# status: {} + +--- + +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + creationTimestamp: null + labels: + io.kompose.service: backend-apps-claim + name: backend-apps-claim +spec: + accessModes: + - ReadWriteOnce + storageClassName: shuffle-data + resources: + requests: + storage: 1Gi +# status: {} + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + kompose.cmd: kompose convert -f docker-compose.yml + kompose.version: 1.26.0 (40646f47) + creationTimestamp: null + labels: + io.kompose.service: backend + name: backend +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: backend + strategy: + type: Recreate + template: + metadata: + annotations: + kompose.cmd: kompose convert -f docker-compose.yml + kompose.version: 1.26.0 (40646f47) + creationTimestamp: null + labels: + io.kompose.network/shuffle: "true" + io.kompose.service: backend + app: shuffle-backend + name: shuffle-backend + spec: + volumes: + # - name: shuffle-files + # persistentVolumeClaim: + # claimName: backend-files-claim + # - name: shuffle-apps + # hostPath: + # path: /mnt/shuffle-data/backend + # type: DirectoryOrCreate + - name: shuffle-apps + persistentVolumeClaim: + claimName: backend-apps-claim + # - name: docker-socket + # hostPath: + # path: /var/run/docker.sock +# nodeSelector: +# node: master + containers: + - env: + - name: BACKEND_HOSTNAME + valueFrom: + configMapKeyRef: + key: BACKEND_HOSTNAME + name: env + - name: BACKEND_PORT + valueFrom: + configMapKeyRef: + key: BACKEND_PORT + name: env + - name: BASE_URL + valueFrom: + configMapKeyRef: + key: BASE_URL + name: env + - name: DATASTORE_EMULATOR_HOST + valueFrom: + configMapKeyRef: + key: DATASTORE_EMULATOR_HOST + name: env + - name: DB_LOCATION + valueFrom: + configMapKeyRef: + key: DB_LOCATION + name: env + - name: DOCKER_API_VERSION + valueFrom: + configMapKeyRef: + key: DOCKER_API_VERSION + name: env + - name: ENVIRONMENT_NAME + valueFrom: + configMapKeyRef: + key: ENVIRONMENT_NAME + name: env + - name: FRONTEND_PORT + valueFrom: + configMapKeyRef: + key: FRONTEND_PORT + name: env + - name: FRONTEND_PORT_HTTPS + valueFrom: + configMapKeyRef: + key: FRONTEND_PORT_HTTPS + name: env + - name: HTTPS_PROXY + valueFrom: + configMapKeyRef: + key: HTTPS_PROXY + name: env + - name: HTTP_PROXY + valueFrom: + configMapKeyRef: + key: HTTP_PROXY + name: env + - name: ORBORUS_CONTAINER_NAME + valueFrom: + configMapKeyRef: + key: ORBORUS_CONTAINER_NAME + name: env + - name: ORG_ID + valueFrom: + configMapKeyRef: + key: ORG_ID + name: env + - name: OUTER_HOSTNAME + valueFrom: + configMapKeyRef: + key: OUTER_HOSTNAME + name: env + - name: SHUFFLE_APP_DOWNLOAD_LOCATION + valueFrom: + configMapKeyRef: + key: SHUFFLE_APP_DOWNLOAD_LOCATION + name: env + - name: SHUFFLE_APP_FORCE_UPDATE + valueFrom: + configMapKeyRef: + key: SHUFFLE_APP_FORCE_UPDATE + name: env + - name: SHUFFLE_APP_HOTLOAD_FOLDER + valueFrom: + configMapKeyRef: + key: SHUFFLE_APP_HOTLOAD_FOLDER + name: env + - name: SHUFFLE_APP_HOTLOAD_LOCATION + valueFrom: + configMapKeyRef: + key: SHUFFLE_APP_HOTLOAD_LOCATION + name: env + - name: SHUFFLE_BASE_IMAGE_NAME + valueFrom: + configMapKeyRef: + key: SHUFFLE_BASE_IMAGE_NAME + name: env + - name: SHUFFLE_BASE_IMAGE_REGISTRY + valueFrom: + configMapKeyRef: + key: SHUFFLE_BASE_IMAGE_REGISTRY + name: env + - name: SHUFFLE_BASE_IMAGE_TAG_SUFFIX + valueFrom: + configMapKeyRef: + key: SHUFFLE_BASE_IMAGE_TAG_SUFFIX + name: env + - name: SHUFFLE_CHAT_DISABLED + valueFrom: + configMapKeyRef: + key: SHUFFLE_CHAT_DISABLED + name: env + - name: SHUFFLE_CONTAINER_AUTO_CLEANUP + valueFrom: + configMapKeyRef: + key: SHUFFLE_CONTAINER_AUTO_CLEANUP + name: env + - name: SHUFFLE_DEFAULT_APIKEY + valueFrom: + configMapKeyRef: + key: SHUFFLE_DEFAULT_APIKEY + name: env + - name: SHUFFLE_DEFAULT_PASSWORD + valueFrom: + configMapKeyRef: + key: SHUFFLE_DEFAULT_PASSWORD + name: env + - name: SHUFFLE_DEFAULT_USERNAME + valueFrom: + configMapKeyRef: + key: SHUFFLE_DEFAULT_USERNAME + name: env + - name: SHUFFLE_DOWNLOAD_AUTH_BRANCH + valueFrom: + configMapKeyRef: + key: SHUFFLE_DOWNLOAD_AUTH_BRANCH + name: env + - name: SHUFFLE_DOWNLOAD_AUTH_PASSWORD + valueFrom: + configMapKeyRef: + key: SHUFFLE_DOWNLOAD_AUTH_PASSWORD + name: env + - name: SHUFFLE_DOWNLOAD_AUTH_USERNAME + valueFrom: + configMapKeyRef: + key: SHUFFLE_DOWNLOAD_AUTH_USERNAME + name: env + - name: SHUFFLE_DOWNLOAD_WORKFLOW_BRANCH + valueFrom: + configMapKeyRef: + key: SHUFFLE_DOWNLOAD_WORKFLOW_BRANCH + name: env + - name: SHUFFLE_DOWNLOAD_WORKFLOW_LOCATION + valueFrom: + configMapKeyRef: + key: SHUFFLE_DOWNLOAD_WORKFLOW_LOCATION + name: env + - name: SHUFFLE_DOWNLOAD_WORKFLOW_PASSWORD + valueFrom: + configMapKeyRef: + key: SHUFFLE_DOWNLOAD_WORKFLOW_PASSWORD + name: env + - name: SHUFFLE_DOWNLOAD_WORKFLOW_USERNAME + valueFrom: + configMapKeyRef: + key: SHUFFLE_DOWNLOAD_WORKFLOW_USERNAME + name: env + - name: SHUFFLE_ELASTIC + valueFrom: + configMapKeyRef: + key: SHUFFLE_ELASTIC + name: env + - name: SHUFFLE_ENCRYPTION_MODIFIER + valueFrom: + configMapKeyRef: + key: SHUFFLE_ENCRYPTION_MODIFIER + name: env + - name: SHUFFLE_FILE_LOCATION + valueFrom: + configMapKeyRef: + key: SHUFFLE_FILE_LOCATION + name: env + - name: SHUFFLE_LOGS_DISABLED + valueFrom: + configMapKeyRef: + key: SHUFFLE_LOGS_DISABLED + name: env + - name: SHUFFLE_OPENSEARCH_APIKEY + valueFrom: + configMapKeyRef: + key: SHUFFLE_OPENSEARCH_APIKEY + name: env + - name: SHUFFLE_OPENSEARCH_CERTIFICATE_FILE + valueFrom: + configMapKeyRef: + key: SHUFFLE_OPENSEARCH_CERTIFICATE_FILE + name: env + - name: SHUFFLE_OPENSEARCH_CLOUDID + valueFrom: + configMapKeyRef: + key: SHUFFLE_OPENSEARCH_CLOUDID + name: env + - name: SHUFFLE_OPENSEARCH_INDEX_PREFIX + valueFrom: + configMapKeyRef: + key: SHUFFLE_OPENSEARCH_INDEX_PREFIX + name: env + - name: SHUFFLE_OPENSEARCH_PASSWORD + valueFrom: + configMapKeyRef: + key: SHUFFLE_OPENSEARCH_PASSWORD + name: env + - name: SHUFFLE_OPENSEARCH_PROXY + valueFrom: + configMapKeyRef: + key: SHUFFLE_OPENSEARCH_PROXY + name: env + - name: SHUFFLE_OPENSEARCH_SKIPSSL_VERIFY + valueFrom: + configMapKeyRef: + key: SHUFFLE_OPENSEARCH_SKIPSSL_VERIFY + name: env + - name: SHUFFLE_OPENSEARCH_URL + valueFrom: + configMapKeyRef: + key: SHUFFLE_OPENSEARCH_URL + name: env + - name: SHUFFLE_OPENSEARCH_USERNAME + valueFrom: + configMapKeyRef: + key: SHUFFLE_OPENSEARCH_USERNAME + name: env + - name: SHUFFLE_ORBORUS_STARTUP_DELAY + valueFrom: + configMapKeyRef: + key: SHUFFLE_ORBORUS_STARTUP_DELAY + name: env + - name: SHUFFLE_PASS_APP_PROXY + valueFrom: + configMapKeyRef: + key: SHUFFLE_PASS_APP_PROXY + name: env + - name: SHUFFLE_PASS_WORKER_PROXY + valueFrom: + configMapKeyRef: + key: SHUFFLE_PASS_WORKER_PROXY + name: env + - name: SHUFFLE_RERUN_SCHEDULE + valueFrom: + configMapKeyRef: + key: SHUFFLE_RERUN_SCHEDULE + name: env + - name: SSO_REDIRECT_URL + valueFrom: + configMapKeyRef: + key: SSO_REDIRECT_URL + name: env + - name: TZ + valueFrom: + configMapKeyRef: + key: TZ + name: env + - name: IS_KUBERNETES + valueFrom: + configMapKeyRef: + key: IS_KUBERNETES + name: env + - name: REGISTRY_URL + valueFrom: + configMapKeyRef: + key: REGISTRY_URL + name: env + - name: REGISTRY_AUTH + valueFrom: + configMapKeyRef: + key: REGISTRY_AUTH + name: env + image: dhavald055/shuffle-k8s:shuffle-backend-kubernetes + imagePullPolicy: Always + name: shuffle-backend + ports: + - containerPort: 5001 + resources: {} + volumeMounts: + # - name: docker-socket + # mountPath: /var/run/docker.sock + - name: shuffle-apps + mountPath: /app/generated + # - name: shuffle-files + # mountPath: /shuffle-files + restartPolicy: Always +status: {} + +--- + +apiVersion: v1 +kind: Service +metadata: + annotations: + kompose.cmd: kompose convert -f docker-compose.yml + kompose.version: 1.26.0 (40646f47) + creationTimestamp: null + labels: + io.kompose.service: backend + name: shuffle-backend +spec: + type: NodePort + ports: + - name: "50001" + port: 5001 + targetPort: 5001 + nodePort: 30009 + selector: + io.kompose.service: backend +status: + loadBalancer: {} + +--- + +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + kompose.cmd: kompose convert -f docker-compose.yml + kompose.version: 1.26.0 (40646f47) + creationTimestamp: null + labels: + io.kompose.service: frontend + name: frontend +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: frontend + strategy: {} + template: + metadata: + annotations: + kompose.cmd: kompose convert -f docker-compose.yml + kompose.version: 1.26.0 (40646f47) + creationTimestamp: null + labels: + io.kompose.network/shuffle: "true" + io.kompose.service: frontend + spec: + containers: + - env: + - name: BACKEND_HOSTNAME + image: ghcr.io/shuffle/shuffle-frontend:latest + name: shuffle-frontend + ports: + - containerPort: 80 + - containerPort: 443 + resources: {} + hostname: shuffle-frontend + restartPolicy: Always +status: {} + +--- + +apiVersion: v1 +kind: Service +metadata: + annotations: + kompose.cmd: kompose convert -f docker-compose.yml + kompose.version: 1.26.0 (40646f47) + creationTimestamp: null + labels: + io.kompose.service: frontend + name: frontend +spec: + type: NodePort + ports: + - name: "80" + port: 80 + targetPort: 80 + nodePort: 30007 + - name: "443" + port: 443 + targetPort: 443 + nodePort: 30008 + selector: + io.kompose.service: frontend +# status: +# loadBalancer: {} + +--- + +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + kompose.cmd: kompose convert -f docker-compose.yml + kompose.version: 1.26.0 (40646f47) + creationTimestamp: null + labels: + io.kompose.service: orborus + name: orborus +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: orborus + strategy: {} + template: + metadata: + annotations: + kompose.cmd: kompose convert -f docker-compose.yml + kompose.version: 1.26.0 (40646f47) + creationTimestamp: null + labels: + io.kompose.network/shuffle: "true" + io.kompose.service: orborus + spec: + containers: + - env: + - name: BASE_URL + value: "http://shuffle-backend:5001" + - name: DOCKER_API_VERSION + value: "1.40" + - name: ENVIRONMENT_NAME + value: Shuffle + - name: ORG_ID + value: Shuffle + - name: SHUFFLE_APP_SDK_VERSION + value: nightly + - name: SHUFFLE_SCALE_REPLICAS + value: "5" + #- name: SHUFFLE_SWARM_CONFIG + #value: run + - name: SHUFFLE_WORKER_VERSION + value: nightly + - name: IS_KUBERNETES + valueFrom: + configMapKeyRef: + key: IS_KUBERNETES + name: env + - name: REGISTRY_URL + valueFrom: + configMapKeyRef: + key: REGISTRY_URL + name: env + - name: SHUFFLE_KUBERNETES_WORKER + valueFrom: + configMapKeyRef: + key: SHUFFLE_KUBERNETES_WORKER + name: env + + image: dhavald055/shuffle-k8s:shuffle-orborus-kubernetes + #imagePullPolicy: Never + name: shuffle-orborus + resources: {} + hostname: shuffle-orborus + restartPolicy: Always +status: {}