Files
artcraft/_develop/localdev/kubernetes.yml
T

247 lines
5.4 KiB
YAML

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