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.
|
pnpm required for workspaces.
|
||||||
|
|
||||||
Yarn required for packages/strapi
|
Yarn required for packages/strapi.
|
||||||
|
|
||||||
Development uses docker compose with dotenv.
|
Kubernetes for Development using Tiltfile
|
||||||
|
|
||||||
Production uses dokku.
|
|
||||||
|
|
||||||
|
Kubernetes for Production, deployed using Helm/helmfile
|
||||||
|
|
|
@ -1,2 +1,6 @@
|
||||||
# futureporn-monorepo
|
# 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 port = process.env.PORT || 3000;
|
||||||
const ipfsUrl = process.env.IPFS_URL || 'http://localhost:5001';
|
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.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
|
// greetz https://stackoverflow.com/a/51302466/1004931
|
||||||
async function downloadFile(url, filePath, sse) {
|
async function downloadFile(url, filePath, sse) {
|
||||||
|
|
Loading…
Reference in New Issue