link2cid is k8s-ified
This commit is contained in:
parent
044fd3c71a
commit
726d2b5504
|
@ -0,0 +1,2 @@
|
|||
export FOO=barbazfooblahblah
|
||||
export KUBECONFIG=/home/chris/.kube/vke.yaml
|
|
@ -2,9 +2,8 @@ git monorepo.
|
|||
|
||||
pnpm required for workspaces.
|
||||
|
||||
Yarn required for packages/strapi
|
||||
Yarn required for packages/strapi.
|
||||
|
||||
Development uses docker compose with dotenv.
|
||||
|
||||
Production uses dokku.
|
||||
Kubernetes for Development using Tiltfile
|
||||
|
||||
Kubernetes for Production, deployed using Helm/helmfile
|
||||
|
|
|
@ -1,2 +1,6 @@
|
|||
# futureporn-monorepo
|
||||
|
||||
## minikube setup
|
||||
|
||||
minikube addons enable volumesnapshots
|
||||
minikube addons enable csi-hostpath-driver
|
|
@ -0,0 +1,22 @@
|
|||
# load('ext://dotenv', 'dotenv')
|
||||
# dotenv()
|
||||
|
||||
k8s_yaml(helm(
|
||||
'./charts/fp',
|
||||
values=['./charts/fp/values-dev.yaml'],
|
||||
))
|
||||
|
||||
|
||||
docker_build('fp/link2cid', './packages/link2cid')
|
||||
|
||||
|
||||
k8s_resource(
|
||||
workload='link2cid-pod',
|
||||
port_forwards=3939
|
||||
)
|
||||
|
||||
# v1alpha1.extension_repo(name='default', url='https://github.com/tilt-dev/tilt-extensions')
|
||||
# v1alpha1.extension(name='ngrok', repo_name='default', repo_path='ngrok')
|
||||
|
||||
# settings = read_json('tilt_option.json', default={})
|
||||
# default_registry(settings.get('default_registry', 'sjc.vultrcr.com/fpcontainers'))
|
|
@ -0,0 +1,9 @@
|
|||
name: fp
|
||||
description: The Galaxy's Best VTuber Hentai Site
|
||||
version: 0.0.1
|
||||
apiVersion: v1
|
||||
keywords:
|
||||
- fp
|
||||
- futureporn
|
||||
sources: []
|
||||
home: 'https://gitea.futureporn.net/futureporn'
|
|
@ -0,0 +1,9 @@
|
|||
This chart was originally created by Kompose.
|
||||
|
||||
Then I realized I don't understand kubernetes.
|
||||
|
||||
It was too complex.
|
||||
|
||||
I needed to start over, understand each piece before moving on.
|
||||
|
||||
so we're starting small, incrementally migrating services to the cluster.
|
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: bot-claim0
|
||||
name: bot-claim0
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
status: {}
|
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: bot-claim1
|
||||
name: bot-claim1
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
status: {}
|
|
@ -0,0 +1,38 @@
|
|||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: bot
|
||||
name: bot
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: DISCORD_GUILD_ID
|
||||
- name: DISCORD_TOKEN
|
||||
- name: REST_HOST
|
||||
value: localhost
|
||||
- name: REST_PORT
|
||||
value: "8888"
|
||||
image: bot
|
||||
name: fp-bot
|
||||
ports:
|
||||
- containerPort: 8888
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /app/package.json
|
||||
name: bot-claim0
|
||||
- mountPath: /app/src
|
||||
name: bot-claim1
|
||||
restartPolicy: OnFailure
|
||||
volumes:
|
||||
- name: bot-claim0
|
||||
persistentVolumeClaim:
|
||||
claimName: bot-claim0
|
||||
- name: bot-claim1
|
||||
persistentVolumeClaim:
|
||||
claimName: bot-claim1
|
||||
status: {}
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: bot
|
||||
name: bot
|
||||
spec:
|
||||
ports:
|
||||
- name: "8888"
|
||||
port: 8888
|
||||
targetPort: 8888
|
||||
selector:
|
||||
io.kompose.service: bot
|
||||
status:
|
||||
loadBalancer: {}
|
|
@ -0,0 +1,22 @@
|
|||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: chisel
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- client
|
||||
- --auth=
|
||||
- R:8899:cluster0:9094
|
||||
- R:8901:link2cid:3939
|
||||
- R:8900:strapi:1337
|
||||
- R:8902:next:3000
|
||||
- R:8903:uppy:3020
|
||||
- R:8904:uppy:8888
|
||||
image: jpillora/chisel
|
||||
name: fp-chisel
|
||||
ports:
|
||||
- containerPort: 9312
|
||||
resources: {}
|
||||
restartPolicy: OnFailure
|
||||
status: {}
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: chisel
|
||||
name: chisel
|
||||
spec:
|
||||
ports:
|
||||
- name: "9312"
|
||||
port: 9312
|
||||
targetPort: 9312
|
||||
selector:
|
||||
io.kompose.service: chisel
|
||||
status:
|
||||
loadBalancer: {}
|
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: cluster0-claim0
|
||||
name: cluster0-claim0
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
status: {}
|
|
@ -0,0 +1,39 @@
|
|||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: cluster0
|
||||
name: cluster0
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: CLUSTER_CRDT_TRUSTEDPEERS
|
||||
value: '*'
|
||||
- name: CLUSTER_IPFSHTTP_NODEMULTIADDRESS
|
||||
value: /dns4/ipfs0/tcp/5001
|
||||
- name: CLUSTER_MONITORPINGINTERVAL
|
||||
value: 2s
|
||||
- name: CLUSTER_PEERNAME
|
||||
value: cluster0
|
||||
- name: CLUSTER_RESTAPI_BASICAUTHCREDENTIALS
|
||||
- name: CLUSTER_RESTAPI_HTTPLISTENMULTIADDRESS
|
||||
value: /ip4/0.0.0.0/tcp/9094
|
||||
- name: CLUSTER_SECRET
|
||||
image: ipfs/ipfs-cluster:latest
|
||||
name: fp-cluster0
|
||||
ports:
|
||||
- containerPort: 9094
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /data/ipfs-cluster
|
||||
name: cluster0-claim0
|
||||
restartPolicy: OnFailure
|
||||
volumes:
|
||||
- name: cluster0-claim0
|
||||
persistentVolumeClaim:
|
||||
claimName: cluster0-claim0
|
||||
status: {}
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: cluster0
|
||||
name: cluster0
|
||||
spec:
|
||||
ports:
|
||||
- name: "9094"
|
||||
port: 9094
|
||||
targetPort: 9094
|
||||
selector:
|
||||
io.kompose.service: cluster0
|
||||
status:
|
||||
loadBalancer: {}
|
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: db-claim0
|
||||
name: db-claim0
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
status: {}
|
|
@ -0,0 +1,33 @@
|
|||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: db
|
||||
name: db
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: PGDATA
|
||||
value: /var/lib/postgresql/data
|
||||
- name: PGPORT
|
||||
- name: POSTGRES_DB
|
||||
- name: POSTGRES_PASSWORD
|
||||
- name: POSTGRES_USER
|
||||
image: postgres:16
|
||||
name: fp-db
|
||||
ports:
|
||||
- containerPort: 15432
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /var/lib/postgresql/data
|
||||
name: db-claim0
|
||||
restartPolicy: OnFailure
|
||||
volumes:
|
||||
- name: db-claim0
|
||||
persistentVolumeClaim:
|
||||
claimName: db-claim0
|
||||
status: {}
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: db
|
||||
name: db
|
||||
spec:
|
||||
ports:
|
||||
- name: "15432"
|
||||
port: 15432
|
||||
targetPort: 15432
|
||||
selector:
|
||||
io.kompose.service: db
|
||||
status:
|
||||
loadBalancer: {}
|
|
@ -0,0 +1,25 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: external-dns
|
||||
spec:
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
app: external-dns
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: external-dns
|
||||
spec:
|
||||
containers:
|
||||
- name: external-dns
|
||||
image: registry.k8s.io/external-dns/external-dns:v0.14.0
|
||||
args:
|
||||
- --source=service # ingress is also possible
|
||||
- --domain-filter=futureporn.net # (optional) limit to only example.com domains; change to match the zone created above.
|
||||
- --provider=vultr
|
||||
env:
|
||||
- name: VULTR_API_KEY
|
||||
value: "YOU_VULTR_API_KEY"
|
|
@ -0,0 +1,15 @@
|
|||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: httpd-pod
|
||||
spec:
|
||||
containers:
|
||||
- name: httpd-pod
|
||||
image: httpd
|
||||
ports:
|
||||
- containerPort: 80
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 128Mi
|
||||
restartPolicy: OnFailure
|
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: ipfs0-claim0
|
||||
name: ipfs0-claim0
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
status: {}
|
|
@ -0,0 +1,26 @@
|
|||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: ipfs0
|
||||
name: ipfs0
|
||||
spec:
|
||||
containers:
|
||||
- image: ipfs/kubo:release
|
||||
name: fp-ipfs0
|
||||
ports:
|
||||
- containerPort: 5001
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /data/ipfs
|
||||
name: ipfs0-claim0
|
||||
restartPolicy: OnFailure
|
||||
volumes:
|
||||
- name: ipfs0-claim0
|
||||
persistentVolumeClaim:
|
||||
claimName: ipfs0-claim0
|
||||
status: {}
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: ipfs0
|
||||
name: ipfs0
|
||||
spec:
|
||||
ports:
|
||||
- name: "5001"
|
||||
port: 5001
|
||||
targetPort: 5001
|
||||
selector:
|
||||
io.kompose.service: ipfs0
|
||||
status:
|
||||
loadBalancer: {}
|
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: link2cid-claim0
|
||||
name: link2cid-claim0
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
status: {}
|
|
@ -0,0 +1,41 @@
|
|||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
labels:
|
||||
io.kompose.service: link2cid
|
||||
name: link2cid
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: API_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: link2cid
|
||||
key: apiKey
|
||||
- name: IPFS_URL
|
||||
value: http://ipfs0:5001
|
||||
- name: PORT
|
||||
value: "3939"
|
||||
image: link2cid
|
||||
name: fp-link2cid
|
||||
ports:
|
||||
- containerPort: 3939
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 2048Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 2048Gi
|
||||
volumeMounts:
|
||||
- mountPath: /app/index.js
|
||||
name: link2cid-claim0
|
||||
restartPolicy: OnFailure
|
||||
volumes:
|
||||
- name: link2cid-claim0
|
||||
persistentVolumeClaim:
|
||||
claimName: link2cid-claim0
|
||||
status: {}
|
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: link2cid-pv
|
||||
spec:
|
||||
type:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
storageClassName: {{ .Values.storageClassName }}
|
||||
capacity:
|
||||
storage: 40Gi
|
||||
claimRef:
|
||||
name: link2cid-pvc
|
||||
namespace: default
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: link2cid
|
||||
name: link2cid
|
||||
spec:
|
||||
ports:
|
||||
- name: "3939"
|
||||
port: 3939
|
||||
targetPort: 3939
|
||||
selector:
|
||||
io.kompose.service: link2cid
|
||||
status:
|
||||
loadBalancer: {}
|
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: next-claim0
|
||||
name: next-claim0
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
status: {}
|
|
@ -0,0 +1,29 @@
|
|||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: next
|
||||
name: next
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: NEXT_PUBLIC_SITE_URL
|
||||
- name: NEXT_PUBLIC_STRAPI_URL
|
||||
- name: NEXT_PUBLIC_UPPY_COMPANION_URL
|
||||
- name: NODE_ENV
|
||||
value: development
|
||||
- name: REVALIDATION_TOKEN
|
||||
image: next
|
||||
name: fp-next
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /app/app
|
||||
name: next-claim0
|
||||
restartPolicy: OnFailure
|
||||
volumes:
|
||||
- name: next-claim0
|
||||
persistentVolumeClaim:
|
||||
claimName: next-claim0
|
||||
status: {}
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: next
|
||||
name: next
|
||||
spec:
|
||||
ports:
|
||||
- name: "3000"
|
||||
port: 3000
|
||||
targetPort: 3000
|
||||
selector:
|
||||
io.kompose.service: next
|
||||
status:
|
||||
loadBalancer: {}
|
|
@ -0,0 +1,26 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: orgchart
|
||||
labels:
|
||||
app: orgchart
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: orgchart
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
vault.hashicorp.com/agent-inject: "true"
|
||||
vault.hashicorp.com/agent-inject-status: 'update'
|
||||
vault.hashicorp.com/role: "internal-app"
|
||||
vault.hashicorp.com/agent-inject-secret-database-config.txt: "internal/data/database/config"
|
||||
|
||||
labels:
|
||||
app: orgchart
|
||||
spec:
|
||||
serviceAccountName: internal-app
|
||||
containers:
|
||||
- name: orgchart
|
||||
image: jweissig/app:0.0.1
|
|
@ -0,0 +1,26 @@
|
|||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: pgadmin
|
||||
name: pgadmin
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: GUNICORN_ACCESS_LOGFILE
|
||||
value: /tmp/pgadmin-gunicorn-access.log
|
||||
- name: PGADMIN_DEFAULT_EMAIL
|
||||
- name: PGADMIN_DEFAULT_PASSWORD
|
||||
- name: PGADMIN_DISABLE_POSTFIX
|
||||
value: yessir
|
||||
image: dpage/pgadmin4:8
|
||||
name: fp-pgadmin
|
||||
ports:
|
||||
- containerPort: 80
|
||||
resources: {}
|
||||
restartPolicy: OnFailure
|
||||
status: {}
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: pgadmin
|
||||
name: pgadmin
|
||||
spec:
|
||||
ports:
|
||||
- name: "5050"
|
||||
port: 5050
|
||||
targetPort: 80
|
||||
selector:
|
||||
io.kompose.service: pgadmin
|
||||
status:
|
||||
loadBalancer: {}
|
|
@ -0,0 +1,13 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: strapi-claim0
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 40Gi
|
||||
storageClassName: vultr-block-storage-hdd
|
||||
status: {}
|
|
@ -0,0 +1,64 @@
|
|||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: strapi
|
||||
name: strapi
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: ADMIN_JWT_SECRET
|
||||
- name: API_TOKEN_SALT
|
||||
- name: APP_KEYS
|
||||
- name: AWS_ACCESS_KEY_ID
|
||||
- name: AWS_SECRET_ACCESS_KEY
|
||||
- name: BASE_URL
|
||||
- name: CDN_BUCKET_URL
|
||||
- name: CDN_BUCKET_USC_URL
|
||||
- name: DATABASE_CLIENT
|
||||
value: postgres
|
||||
- name: DATABASE_HOST
|
||||
value: db
|
||||
- name: DATABASE_NAME
|
||||
- name: DATABASE_PASSWORD
|
||||
- name: DATABASE_PORT
|
||||
- name: DATABASE_USERNAME
|
||||
- name: JWT_SECRET
|
||||
- name: MUX_PLAYBACK_RESTRICTION_ID
|
||||
- name: MUX_SIGNING_KEY_ID
|
||||
- name: MUX_SIGNING_KEY_PRIVATE_KEY
|
||||
- name: NODE_ENV
|
||||
- name: S3_USC_BUCKET_APPLICATION_KEY
|
||||
- name: S3_USC_BUCKET_ENDPOINT
|
||||
- name: S3_USC_BUCKET_KEY_ID
|
||||
- name: S3_USC_BUCKET_NAME
|
||||
- name: S3_USC_BUCKET_REGION
|
||||
- name: SENDGRID_API_KEY
|
||||
- name: SMTP_AUTH_STRATEGY
|
||||
value: NONE
|
||||
- name: SMTP_FROM_EMAIL
|
||||
value: sender@example.com
|
||||
- name: SMTP_HOST
|
||||
value: 172.17.0.1
|
||||
- name: SMTP_PORT
|
||||
value: "25"
|
||||
- name: STRAPI_URL
|
||||
- name: TRANSFER_TOKEN_SALT
|
||||
image: fp-strapi:14
|
||||
name: fp-strapi
|
||||
ports:
|
||||
- containerPort: 1337
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /opt/app
|
||||
name: strapi-claim0
|
||||
restartPolicy: OnFailure
|
||||
volumes:
|
||||
- name: strapi-claim0
|
||||
persistentVolumeClaim:
|
||||
claimName: strapi-claim0
|
||||
status: {}
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: strapi
|
||||
name: strapi
|
||||
spec:
|
||||
ports:
|
||||
- name: "1337"
|
||||
port: 1337
|
||||
targetPort: 1337
|
||||
selector:
|
||||
io.kompose.service: strapi
|
||||
status:
|
||||
loadBalancer: {}
|
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: uppy-claim0
|
||||
name: uppy-claim0
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
status: {}
|
|
@ -0,0 +1,47 @@
|
|||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: uppy
|
||||
name: uppy
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: B2_BUCKET
|
||||
- name: B2_ENDPOINT
|
||||
- name: B2_KEY
|
||||
- name: B2_REGION
|
||||
- name: B2_SECRET
|
||||
- name: DRIVE_KEY
|
||||
- name: DRIVE_SECRET
|
||||
- name: DROPBOX_KEY
|
||||
- name: DROPBOX_SECRET
|
||||
- name: FILEPATH
|
||||
- name: HOST
|
||||
- name: JWT_SECRET
|
||||
- name: NEXT_PUBLIC_SITE_URL
|
||||
- name: PORT
|
||||
- name: SECRET
|
||||
- name: SERVER_BASE_URL
|
||||
- name: SESSION_SECRET
|
||||
- name: STRAPI_API_KEY
|
||||
- name: STRAPI_URL
|
||||
- name: UPLOAD_URLS
|
||||
image: uppy
|
||||
name: fp-uppy
|
||||
ports:
|
||||
- containerPort: 3020
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /app/index.js
|
||||
name: uppy-claim0
|
||||
restartPolicy: OnFailure
|
||||
volumes:
|
||||
- name: uppy-claim0
|
||||
persistentVolumeClaim:
|
||||
claimName: uppy-claim0
|
||||
status: {}
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert --file compose.yml -c --out ./charts
|
||||
kompose.version: 1.26.0 (40646f47)
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: uppy
|
||||
name: uppy
|
||||
spec:
|
||||
ports:
|
||||
- name: "3020"
|
||||
port: 3020
|
||||
targetPort: 3020
|
||||
selector:
|
||||
io.kompose.service: uppy
|
||||
status:
|
||||
loadBalancer: {}
|
|
@ -0,0 +1,23 @@
|
|||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: link2cid-pod
|
||||
spec:
|
||||
containers:
|
||||
- name: link2cid-pod
|
||||
image: fp/link2cid
|
||||
ports:
|
||||
- containerPort: 3939
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3939'
|
||||
- name: API_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: link2cid
|
||||
key: apiKey
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 1024Mi
|
||||
restartPolicy: OnFailure
|
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: link2cid-pvc
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 40Gi
|
||||
allowVolumeExpansion: true
|
||||
storageClassName: {{ .Values.storageClassName }}
|
||||
status: {}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: link2cid-service
|
||||
spec:
|
||||
ports:
|
||||
- name: "3939"
|
||||
port: 3939
|
||||
targetPort: 3939
|
||||
status:
|
||||
loadBalancer: {}
|
|
@ -0,0 +1 @@
|
|||
storageClassName: csi-hostpath-sc
|
|
@ -0,0 +1 @@
|
|||
storageClassName: vultr-block-storage-hdd
|
|
@ -0,0 +1,3 @@
|
|||
windmill helm chart is pulled in via ../../helmfile.yaml.
|
||||
|
||||
This folder is here just to hold our values.yaml file for configuring windmill.
|
|
@ -0,0 +1,87 @@
|
|||
# windmill root values block
|
||||
windmill:
|
||||
# domain as shown in browser, this is used together with `baseProtocol` as part of the BASE_URL environment variable in app and worker container and in the ingress resource, if enabled
|
||||
baseDomain: windmill
|
||||
baseProtocol: http
|
||||
# postgres URI, pods will crashloop if database is unreachable, sets DATABASE_URL environment variable in app and worker container
|
||||
databaseUrl: postgres://postgres:windmill@windmill-postgresql/windmill?sslmode=disable
|
||||
# replica for the application app
|
||||
appReplicas: 2
|
||||
# replicas for the workers, jobs are executed on the workers
|
||||
lspReplicas: 2
|
||||
workerGroups:
|
||||
# The default worker group is the one that will execute jobs with any taggs except the native ones. Windmill has a default worker group configuration for it
|
||||
- name: "default"
|
||||
replicas: 2
|
||||
# -- Annotations to apply to the pods
|
||||
annotations: {}
|
||||
|
||||
# -- Labels to apply to the pods
|
||||
labels: {}
|
||||
|
||||
# -- Node selector to use for scheduling the pods
|
||||
nodeSelector: {}
|
||||
|
||||
# -- Tolerations to apply to the pods
|
||||
tolerations: []
|
||||
|
||||
# -- Affinity rules to apply to the pods
|
||||
affinity: {}
|
||||
|
||||
# -- Resource limits and requests for the pods
|
||||
resources:
|
||||
requests:
|
||||
memory: "1028Mi"
|
||||
cpu: "500m"
|
||||
limits:
|
||||
memory: "2048Mi"
|
||||
cpu: "1000m"
|
||||
|
||||
# -- Extra environment variables to apply to the pods
|
||||
extraEnv: []
|
||||
|
||||
# -- Extra sidecar containers
|
||||
extraContainers: []
|
||||
|
||||
# Thenative worker group will only execute native jobs. Windmill has a default worker group configuration for it
|
||||
- name: "native"
|
||||
replicas: 3
|
||||
# -- Resource limits and requests for the pods
|
||||
resources:
|
||||
requests:
|
||||
memory: "128Mi"
|
||||
cpu: "100m"
|
||||
limits:
|
||||
memory: "256Mi"
|
||||
cpu: "200m"
|
||||
|
||||
# -- Extra environment variables to apply to the pods
|
||||
extraEnv: []
|
||||
|
||||
# -- Extra sidecar containers
|
||||
extraContainers: []
|
||||
|
||||
- name: "gpu"
|
||||
replicas: 0
|
||||
|
||||
# Use those to override the tag or image used for the app and worker containers. Windmill uses the same image for both.
|
||||
# By default, if enterprise is enable, the image is set to ghcr.io/windmill-labs/windmill-ee, otherwise the image is set to ghcr.io/windmill-labs/windmill
|
||||
#tag: "mytag"
|
||||
#image: "ghcr.io/windmill-labs/windmill"
|
||||
|
||||
# enable postgres (bitnami) on kubernetes
|
||||
postgresql:
|
||||
enabled: true
|
||||
|
||||
# enable minio (bitnami) on kubernetes
|
||||
minio:
|
||||
enabled: false
|
||||
|
||||
# Configure Ingress
|
||||
# ingress:
|
||||
# className: ""
|
||||
|
||||
# enable enterprise features
|
||||
enterprise:
|
||||
# -- enable windmill enterprise, requires license key.
|
||||
enabled: false
|
|
@ -0,0 +1,14 @@
|
|||
# repositories:
|
||||
# - name: windmill
|
||||
# url: https://windmill-labs.github.io/windmill-helm-charts
|
||||
|
||||
releases:
|
||||
# - name: windmill
|
||||
# namespace: windmill
|
||||
# chart: windmill/windmill
|
||||
# values:
|
||||
# - ./charts/windmill/values.yaml
|
||||
|
||||
- name: fp
|
||||
namespace: default
|
||||
chart: charts/fp
|
|
@ -0,0 +1 @@
|
|||
engine-strict=true
|
|
@ -0,0 +1 @@
|
|||
lts/iron
|
|
@ -25,7 +25,7 @@ app.use(bodyParser.urlencoded({ extended: false }));
|
|||
const port = process.env.PORT || 3000;
|
||||
const ipfsUrl = process.env.IPFS_URL || 'http://localhost:5001';
|
||||
if (!process.env.API_KEY) throw new Error('API_KEY was missing in env');
|
||||
|
||||
if (!process.env.PORT) throw new Error('PORT is missing in env');
|
||||
|
||||
// greetz https://stackoverflow.com/a/51302466/1004931
|
||||
async function downloadFile(url, filePath, sse) {
|
||||
|
|
Loading…
Reference in New Issue