apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:8.0.30 env: - name: MYSQL_USER value: storyteller - name: MYSQL_PASSWORD value: password - name: MYSQL_DATABASE value: storyteller - name: MYSQL_ROOT_PASSWORD value: password ports: - containerPort: 3306 --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ssd-hostpath provisioner: microk8s.io/hostpath reclaimPolicy: Retain volumeBindingMode: WaitForFirstConsumer parameters: pvDir: /home/kasisnu/microk8s/hostpath-provisioner --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: test-pvc spec: storageClassName: ssd-hostpath accessModes: - ReadWriteOnce resources: requests: storage: 10Gi --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ml-support-pvc spec: storageClassName: ssd-hostpath accessModes: - ReadWriteOnce resources: requests: storage: 100Gi --- apiVersion: v1 kind: ConfigMap metadata: name: storyteller-config data: buckets.vocodes_bucket_region: us-east1 buckets.vocodes_private_bucket_name: kasisnu-test-area-private buckets.vocodes_public_bucket_name: kasisnu-test-area-public buckets.vocodes_ephemeral_bucket_name: kasisnu-test-area-ephemeral-public --- apiVersion: apps/v1 kind: Deployment metadata: name: redis spec: replicas: 1 selector: matchLabels: app: redis template: metadata: labels: app: redis spec: containers: - name: redis image: redis:7.0.4 ports: - containerPort: 6379 --- apiVersion: apps/v1 kind: Deployment metadata: name: storyteller-web spec: replicas: 1 strategy: rollingUpdate: maxSurge: 5 maxUnavailable: 2 type: RollingUpdate selector: matchLabels: app: storyteller-web template: metadata: labels: app: storyteller-web spec: runtimeClassName: nvidia containers: - name: gpt-sovitsdir # image: localhost:32000/some-gpt-sovits:latest image: localhost:32000/some-comfy:latest imagePullPolicy: Always command: ["sleep", "infinity"] resources: limits: nvidia.com/gpu: "1" requests: nvidia.com/gpu: "1" volumeMounts: - mountPath: /application-dir name: application-dir - mountPath: /ml-support name: ml-support-dir - name: storyteller-web image: storyteller-web:latest imagePullPolicy: Always env: - name: MYSQL_URL value: mysql://storyteller:password@mysql/storyteller - name: REDIS_0_URL value: redis://redisd@redis/0 - name: REDIS_1_URL value: redis://redisd@redis/1 - name: ACCESS_KEY valueFrom: secretKeyRef: name: bucket-secrets key: access-key - name: SECRET_KEY valueFrom: secretKeyRef: name: bucket-secrets key: secret-key - name: REGION_NAME valueFrom: configMapKeyRef: name: storyteller-config key: buckets.vocodes_bucket_region - name: GC_ENABLED_PUBLIC_BUCKET_NAME valueFrom: configMapKeyRef: name: storyteller-config key: buckets.vocodes_ephemeral_bucket_name - name: W2L_PRIVATE_DOWNLOAD_BUCKET_NAME valueFrom: configMapKeyRef: name: storyteller-config key: buckets.vocodes_private_bucket_name - name: W2L_PUBLIC_DOWNLOAD_BUCKET_NAME valueFrom: configMapKeyRef: name: storyteller-config key: buckets.vocodes_public_bucket_name - name: AUDIO_UPLOADS_BUCKET_ROOT value: /user_uploaded_w2l_audio - name: TWITCH_USERNAME value: garbage - name: TWITCH_STREAM_KEY value: garbage - name: TWITCH_APP_CLIENT_ID value: garbage - name: TWITCH_APP_CLIENT_SECRET value: garbage ports: - containerPort: 12345 volumeMounts: - mountPath: /storyteller-rust name: storyteller-rust-folder - mountPath: /application-dir name: application-dir volumes: - name: storyteller-rust-folder persistentVolumeClaim: claimName: test-pvc - name: application-dir emptyDir: {} - name: ml-support-dir persistentVolumeClaim: claimName: ml-support-pvc --- apiVersion: v1 kind: Service metadata: name: mysql spec: type: NodePort ports: - name: mysql port: 3306 nodePort: 32206 selector: app: mysql --- apiVersion: v1 kind: Service metadata: name: redis spec: type: NodePort ports: - name: redis port: 6379 nodePort: 32379 selector: app: redis --- apiVersion: v1 kind: Service metadata: name: storyteller-web spec: type: NodePort ports: - name: storyteller-web port: 12345 nodePort: 32345 selector: app: storyteller-web