From 726d2b5504d86a845b0e298ac6f67e54448dcfa6 Mon Sep 17 00:00:00 2001 From: Chris Grimmett Date: Fri, 15 Mar 2024 19:48:24 -0800 Subject: [PATCH] link2cid is k8s-ified --- .envrc | 2 + ARCHITECHTURE.md | 7 +- README.md | 4 + Tiltfile | 22 +++++ charts/fp/Chart.yaml | 9 ++ charts/fp/README.md | 9 ++ .../bot-claim0-persistentvolumeclaim.yaml | 14 +++ .../bot-claim1-persistentvolumeclaim.yaml | 14 +++ charts/fp/templates-old/bot-pod.yaml | 38 ++++++++ charts/fp/templates-old/bot-service.yaml | 19 ++++ charts/fp/templates-old/chisel-pod.yaml | 22 +++++ charts/fp/templates-old/chisel-service.yaml | 19 ++++ ...cluster0-claim0-persistentvolumeclaim.yaml | 14 +++ charts/fp/templates-old/cluster0-pod.yaml | 39 +++++++++ charts/fp/templates-old/cluster0-service.yaml | 19 ++++ .../db-claim0-persistentvolumeclaim.yaml | 14 +++ charts/fp/templates-old/db-pod.yaml | 33 +++++++ charts/fp/templates-old/db-service.yaml | 19 ++++ charts/fp/templates-old/external-dns.yaml | 25 ++++++ charts/fp/templates-old/httpd-pod.yaml.noexec | 15 ++++ .../ipfs0-claim0-persistentvolumeclaim.yaml | 14 +++ charts/fp/templates-old/ipfs0-pod.yaml | 26 ++++++ charts/fp/templates-old/ipfs0-service.yaml | 19 ++++ ...link2cid-claim0-persistentvolumeclaim.yaml | 14 +++ charts/fp/templates-old/link2cid-pod.yaml | 41 +++++++++ charts/fp/templates-old/link2cid-pv.yaml | 14 +++ charts/fp/templates-old/link2cid-service.yaml | 19 ++++ .../next-claim0-persistentvolumeclaim.yaml | 14 +++ charts/fp/templates-old/next-pod.yaml | 29 +++++++ charts/fp/templates-old/next-service.yaml | 19 ++++ .../templates-old/org-chart-deployment.yaml | 26 ++++++ charts/fp/templates-old/pgadmin-pod.yaml | 26 ++++++ charts/fp/templates-old/pgadmin-service.yaml | 19 ++++ .../strapi-claim0-persistentvolumeclaim.yaml | 13 +++ charts/fp/templates-old/strapi-pod.yaml | 64 ++++++++++++++ charts/fp/templates-old/strapi-service.yaml | 19 ++++ .../uppy-claim0-persistentvolumeclaim.yaml | 14 +++ charts/fp/templates-old/uppy-pod.yaml | 47 ++++++++++ charts/fp/templates-old/uppy-service.yaml | 19 ++++ charts/fp/templates/link2cid-pod.yaml | 23 +++++ charts/fp/templates/link2cid-pvc.yaml | 14 +++ charts/fp/templates/link2cid-service.yaml | 11 +++ charts/fp/values-dev.yaml | 1 + charts/fp/values.prod.yaml | 1 + charts/windmill/README.md | 3 + charts/windmill/values.yaml | 87 +++++++++++++++++++ helmfile.yaml | 14 +++ packages/link2cid/.npmrc | 1 + packages/link2cid/.nvmrc | 1 + packages/link2cid/index.js | 2 +- 50 files changed, 966 insertions(+), 5 deletions(-) create mode 100644 .envrc create mode 100644 Tiltfile create mode 100644 charts/fp/Chart.yaml create mode 100644 charts/fp/README.md create mode 100644 charts/fp/templates-old/bot-claim0-persistentvolumeclaim.yaml create mode 100644 charts/fp/templates-old/bot-claim1-persistentvolumeclaim.yaml create mode 100644 charts/fp/templates-old/bot-pod.yaml create mode 100644 charts/fp/templates-old/bot-service.yaml create mode 100644 charts/fp/templates-old/chisel-pod.yaml create mode 100644 charts/fp/templates-old/chisel-service.yaml create mode 100644 charts/fp/templates-old/cluster0-claim0-persistentvolumeclaim.yaml create mode 100644 charts/fp/templates-old/cluster0-pod.yaml create mode 100644 charts/fp/templates-old/cluster0-service.yaml create mode 100644 charts/fp/templates-old/db-claim0-persistentvolumeclaim.yaml create mode 100644 charts/fp/templates-old/db-pod.yaml create mode 100644 charts/fp/templates-old/db-service.yaml create mode 100644 charts/fp/templates-old/external-dns.yaml create mode 100644 charts/fp/templates-old/httpd-pod.yaml.noexec create mode 100644 charts/fp/templates-old/ipfs0-claim0-persistentvolumeclaim.yaml create mode 100644 charts/fp/templates-old/ipfs0-pod.yaml create mode 100644 charts/fp/templates-old/ipfs0-service.yaml create mode 100644 charts/fp/templates-old/link2cid-claim0-persistentvolumeclaim.yaml create mode 100644 charts/fp/templates-old/link2cid-pod.yaml create mode 100644 charts/fp/templates-old/link2cid-pv.yaml create mode 100644 charts/fp/templates-old/link2cid-service.yaml create mode 100644 charts/fp/templates-old/next-claim0-persistentvolumeclaim.yaml create mode 100644 charts/fp/templates-old/next-pod.yaml create mode 100644 charts/fp/templates-old/next-service.yaml create mode 100644 charts/fp/templates-old/org-chart-deployment.yaml create mode 100644 charts/fp/templates-old/pgadmin-pod.yaml create mode 100644 charts/fp/templates-old/pgadmin-service.yaml create mode 100644 charts/fp/templates-old/strapi-claim0-persistentvolumeclaim.yaml create mode 100644 charts/fp/templates-old/strapi-pod.yaml create mode 100644 charts/fp/templates-old/strapi-service.yaml create mode 100644 charts/fp/templates-old/uppy-claim0-persistentvolumeclaim.yaml create mode 100644 charts/fp/templates-old/uppy-pod.yaml create mode 100644 charts/fp/templates-old/uppy-service.yaml create mode 100644 charts/fp/templates/link2cid-pod.yaml create mode 100644 charts/fp/templates/link2cid-pvc.yaml create mode 100644 charts/fp/templates/link2cid-service.yaml create mode 100644 charts/fp/values-dev.yaml create mode 100644 charts/fp/values.prod.yaml create mode 100644 charts/windmill/README.md create mode 100644 charts/windmill/values.yaml create mode 100644 helmfile.yaml create mode 100644 packages/link2cid/.npmrc create mode 100644 packages/link2cid/.nvmrc diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..2a2b86c --- /dev/null +++ b/.envrc @@ -0,0 +1,2 @@ +export FOO=barbazfooblahblah +export KUBECONFIG=/home/chris/.kube/vke.yaml diff --git a/ARCHITECHTURE.md b/ARCHITECHTURE.md index db37e59..5e8c871 100644 --- a/ARCHITECHTURE.md +++ b/ARCHITECHTURE.md @@ -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 diff --git a/README.md b/README.md index 4ad60b2..324fdb0 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ # futureporn-monorepo +## minikube setup + +minikube addons enable volumesnapshots +minikube addons enable csi-hostpath-driver \ No newline at end of file diff --git a/Tiltfile b/Tiltfile new file mode 100644 index 0000000..b83204e --- /dev/null +++ b/Tiltfile @@ -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')) diff --git a/charts/fp/Chart.yaml b/charts/fp/Chart.yaml new file mode 100644 index 0000000..f4f2995 --- /dev/null +++ b/charts/fp/Chart.yaml @@ -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' diff --git a/charts/fp/README.md b/charts/fp/README.md new file mode 100644 index 0000000..a1eab55 --- /dev/null +++ b/charts/fp/README.md @@ -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. \ No newline at end of file diff --git a/charts/fp/templates-old/bot-claim0-persistentvolumeclaim.yaml b/charts/fp/templates-old/bot-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..2dfdd2e --- /dev/null +++ b/charts/fp/templates-old/bot-claim0-persistentvolumeclaim.yaml @@ -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: {} diff --git a/charts/fp/templates-old/bot-claim1-persistentvolumeclaim.yaml b/charts/fp/templates-old/bot-claim1-persistentvolumeclaim.yaml new file mode 100644 index 0000000..3b14cdf --- /dev/null +++ b/charts/fp/templates-old/bot-claim1-persistentvolumeclaim.yaml @@ -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: {} diff --git a/charts/fp/templates-old/bot-pod.yaml b/charts/fp/templates-old/bot-pod.yaml new file mode 100644 index 0000000..35399c5 --- /dev/null +++ b/charts/fp/templates-old/bot-pod.yaml @@ -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: {} diff --git a/charts/fp/templates-old/bot-service.yaml b/charts/fp/templates-old/bot-service.yaml new file mode 100644 index 0000000..117aff1 --- /dev/null +++ b/charts/fp/templates-old/bot-service.yaml @@ -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: {} diff --git a/charts/fp/templates-old/chisel-pod.yaml b/charts/fp/templates-old/chisel-pod.yaml new file mode 100644 index 0000000..69126df --- /dev/null +++ b/charts/fp/templates-old/chisel-pod.yaml @@ -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: {} diff --git a/charts/fp/templates-old/chisel-service.yaml b/charts/fp/templates-old/chisel-service.yaml new file mode 100644 index 0000000..b05d43f --- /dev/null +++ b/charts/fp/templates-old/chisel-service.yaml @@ -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: {} diff --git a/charts/fp/templates-old/cluster0-claim0-persistentvolumeclaim.yaml b/charts/fp/templates-old/cluster0-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..f198327 --- /dev/null +++ b/charts/fp/templates-old/cluster0-claim0-persistentvolumeclaim.yaml @@ -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: {} diff --git a/charts/fp/templates-old/cluster0-pod.yaml b/charts/fp/templates-old/cluster0-pod.yaml new file mode 100644 index 0000000..f80f54c --- /dev/null +++ b/charts/fp/templates-old/cluster0-pod.yaml @@ -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: {} diff --git a/charts/fp/templates-old/cluster0-service.yaml b/charts/fp/templates-old/cluster0-service.yaml new file mode 100644 index 0000000..7059bfb --- /dev/null +++ b/charts/fp/templates-old/cluster0-service.yaml @@ -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: {} diff --git a/charts/fp/templates-old/db-claim0-persistentvolumeclaim.yaml b/charts/fp/templates-old/db-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..bb6e149 --- /dev/null +++ b/charts/fp/templates-old/db-claim0-persistentvolumeclaim.yaml @@ -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: {} diff --git a/charts/fp/templates-old/db-pod.yaml b/charts/fp/templates-old/db-pod.yaml new file mode 100644 index 0000000..7f7951b --- /dev/null +++ b/charts/fp/templates-old/db-pod.yaml @@ -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: {} diff --git a/charts/fp/templates-old/db-service.yaml b/charts/fp/templates-old/db-service.yaml new file mode 100644 index 0000000..96b6790 --- /dev/null +++ b/charts/fp/templates-old/db-service.yaml @@ -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: {} diff --git a/charts/fp/templates-old/external-dns.yaml b/charts/fp/templates-old/external-dns.yaml new file mode 100644 index 0000000..e7f8728 --- /dev/null +++ b/charts/fp/templates-old/external-dns.yaml @@ -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" \ No newline at end of file diff --git a/charts/fp/templates-old/httpd-pod.yaml.noexec b/charts/fp/templates-old/httpd-pod.yaml.noexec new file mode 100644 index 0000000..51d79f3 --- /dev/null +++ b/charts/fp/templates-old/httpd-pod.yaml.noexec @@ -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 diff --git a/charts/fp/templates-old/ipfs0-claim0-persistentvolumeclaim.yaml b/charts/fp/templates-old/ipfs0-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..ca71625 --- /dev/null +++ b/charts/fp/templates-old/ipfs0-claim0-persistentvolumeclaim.yaml @@ -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: {} diff --git a/charts/fp/templates-old/ipfs0-pod.yaml b/charts/fp/templates-old/ipfs0-pod.yaml new file mode 100644 index 0000000..aa1e6de --- /dev/null +++ b/charts/fp/templates-old/ipfs0-pod.yaml @@ -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: {} diff --git a/charts/fp/templates-old/ipfs0-service.yaml b/charts/fp/templates-old/ipfs0-service.yaml new file mode 100644 index 0000000..5c4677e --- /dev/null +++ b/charts/fp/templates-old/ipfs0-service.yaml @@ -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: {} diff --git a/charts/fp/templates-old/link2cid-claim0-persistentvolumeclaim.yaml b/charts/fp/templates-old/link2cid-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..0961e51 --- /dev/null +++ b/charts/fp/templates-old/link2cid-claim0-persistentvolumeclaim.yaml @@ -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: {} diff --git a/charts/fp/templates-old/link2cid-pod.yaml b/charts/fp/templates-old/link2cid-pod.yaml new file mode 100644 index 0000000..9c1c563 --- /dev/null +++ b/charts/fp/templates-old/link2cid-pod.yaml @@ -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: {} diff --git a/charts/fp/templates-old/link2cid-pv.yaml b/charts/fp/templates-old/link2cid-pv.yaml new file mode 100644 index 0000000..c22e386 --- /dev/null +++ b/charts/fp/templates-old/link2cid-pv.yaml @@ -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 diff --git a/charts/fp/templates-old/link2cid-service.yaml b/charts/fp/templates-old/link2cid-service.yaml new file mode 100644 index 0000000..6ded651 --- /dev/null +++ b/charts/fp/templates-old/link2cid-service.yaml @@ -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: {} diff --git a/charts/fp/templates-old/next-claim0-persistentvolumeclaim.yaml b/charts/fp/templates-old/next-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..807404c --- /dev/null +++ b/charts/fp/templates-old/next-claim0-persistentvolumeclaim.yaml @@ -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: {} diff --git a/charts/fp/templates-old/next-pod.yaml b/charts/fp/templates-old/next-pod.yaml new file mode 100644 index 0000000..e41f70e --- /dev/null +++ b/charts/fp/templates-old/next-pod.yaml @@ -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: {} diff --git a/charts/fp/templates-old/next-service.yaml b/charts/fp/templates-old/next-service.yaml new file mode 100644 index 0000000..51fbf85 --- /dev/null +++ b/charts/fp/templates-old/next-service.yaml @@ -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: {} diff --git a/charts/fp/templates-old/org-chart-deployment.yaml b/charts/fp/templates-old/org-chart-deployment.yaml new file mode 100644 index 0000000..c22e063 --- /dev/null +++ b/charts/fp/templates-old/org-chart-deployment.yaml @@ -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 diff --git a/charts/fp/templates-old/pgadmin-pod.yaml b/charts/fp/templates-old/pgadmin-pod.yaml new file mode 100644 index 0000000..c05fdfd --- /dev/null +++ b/charts/fp/templates-old/pgadmin-pod.yaml @@ -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: {} diff --git a/charts/fp/templates-old/pgadmin-service.yaml b/charts/fp/templates-old/pgadmin-service.yaml new file mode 100644 index 0000000..157549a --- /dev/null +++ b/charts/fp/templates-old/pgadmin-service.yaml @@ -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: {} diff --git a/charts/fp/templates-old/strapi-claim0-persistentvolumeclaim.yaml b/charts/fp/templates-old/strapi-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..3a6add6 --- /dev/null +++ b/charts/fp/templates-old/strapi-claim0-persistentvolumeclaim.yaml @@ -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: {} diff --git a/charts/fp/templates-old/strapi-pod.yaml b/charts/fp/templates-old/strapi-pod.yaml new file mode 100644 index 0000000..678fbb8 --- /dev/null +++ b/charts/fp/templates-old/strapi-pod.yaml @@ -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: {} diff --git a/charts/fp/templates-old/strapi-service.yaml b/charts/fp/templates-old/strapi-service.yaml new file mode 100644 index 0000000..484b0ea --- /dev/null +++ b/charts/fp/templates-old/strapi-service.yaml @@ -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: {} diff --git a/charts/fp/templates-old/uppy-claim0-persistentvolumeclaim.yaml b/charts/fp/templates-old/uppy-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..c096181 --- /dev/null +++ b/charts/fp/templates-old/uppy-claim0-persistentvolumeclaim.yaml @@ -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: {} diff --git a/charts/fp/templates-old/uppy-pod.yaml b/charts/fp/templates-old/uppy-pod.yaml new file mode 100644 index 0000000..c301de4 --- /dev/null +++ b/charts/fp/templates-old/uppy-pod.yaml @@ -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: {} diff --git a/charts/fp/templates-old/uppy-service.yaml b/charts/fp/templates-old/uppy-service.yaml new file mode 100644 index 0000000..cb56b8b --- /dev/null +++ b/charts/fp/templates-old/uppy-service.yaml @@ -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: {} diff --git a/charts/fp/templates/link2cid-pod.yaml b/charts/fp/templates/link2cid-pod.yaml new file mode 100644 index 0000000..3552b0b --- /dev/null +++ b/charts/fp/templates/link2cid-pod.yaml @@ -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 diff --git a/charts/fp/templates/link2cid-pvc.yaml b/charts/fp/templates/link2cid-pvc.yaml new file mode 100644 index 0000000..afad54a --- /dev/null +++ b/charts/fp/templates/link2cid-pvc.yaml @@ -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: {} + diff --git a/charts/fp/templates/link2cid-service.yaml b/charts/fp/templates/link2cid-service.yaml new file mode 100644 index 0000000..547ce30 --- /dev/null +++ b/charts/fp/templates/link2cid-service.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: link2cid-service +spec: + ports: + - name: "3939" + port: 3939 + targetPort: 3939 +status: + loadBalancer: {} diff --git a/charts/fp/values-dev.yaml b/charts/fp/values-dev.yaml new file mode 100644 index 0000000..61aca95 --- /dev/null +++ b/charts/fp/values-dev.yaml @@ -0,0 +1 @@ +storageClassName: csi-hostpath-sc \ No newline at end of file diff --git a/charts/fp/values.prod.yaml b/charts/fp/values.prod.yaml new file mode 100644 index 0000000..f976bb8 --- /dev/null +++ b/charts/fp/values.prod.yaml @@ -0,0 +1 @@ +storageClassName: vultr-block-storage-hdd \ No newline at end of file diff --git a/charts/windmill/README.md b/charts/windmill/README.md new file mode 100644 index 0000000..3d18cd1 --- /dev/null +++ b/charts/windmill/README.md @@ -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. \ No newline at end of file diff --git a/charts/windmill/values.yaml b/charts/windmill/values.yaml new file mode 100644 index 0000000..8171617 --- /dev/null +++ b/charts/windmill/values.yaml @@ -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 \ No newline at end of file diff --git a/helmfile.yaml b/helmfile.yaml new file mode 100644 index 0000000..ad06b34 --- /dev/null +++ b/helmfile.yaml @@ -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 diff --git a/packages/link2cid/.npmrc b/packages/link2cid/.npmrc new file mode 100644 index 0000000..4fd0219 --- /dev/null +++ b/packages/link2cid/.npmrc @@ -0,0 +1 @@ +engine-strict=true \ No newline at end of file diff --git a/packages/link2cid/.nvmrc b/packages/link2cid/.nvmrc new file mode 100644 index 0000000..9de2256 --- /dev/null +++ b/packages/link2cid/.nvmrc @@ -0,0 +1 @@ +lts/iron diff --git a/packages/link2cid/index.js b/packages/link2cid/index.js index a66c15f..a4bc311 100644 --- a/packages/link2cid/index.js +++ b/packages/link2cid/index.js @@ -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) {