remove cert manager in favor of traefik
ci / build (push) Has been cancelled
Details
ci / build (push) Has been cancelled
Details
This commit is contained in:
parent
4186f915e7
commit
ace373283b
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"yaml.schemas": {
|
||||||
|
"https://json.schemastore.org/yamllint.json": [
|
||||||
|
"file:///home/cj/Documents/futureporn-monorepo/charts/fp/templates/next.yaml",
|
||||||
|
"file:///home/cj/Documents/futureporn-monorepo/charts/fp/templates/strapi.yaml"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
42
Makefile
42
Makefile
|
@ -1,23 +1,22 @@
|
||||||
include .env
|
ifeq ($(ENV),)
|
||||||
|
$(error ENV variable is not defined. Please set it to one of development|staging|production)
|
||||||
|
endif
|
||||||
|
|
||||||
namespaces:
|
namespaces:
|
||||||
./scripts/k8s-namespaces.sh
|
./scripts/k8s-namespaces.sh
|
||||||
|
|
||||||
secrets:
|
secrets:
|
||||||
./scripts/k8s-secrets.sh
|
dotenvx run -f .env.$(ENV) -- ./scripts/k8s-secrets.sh
|
||||||
|
|
||||||
flux-prod:
|
|
||||||
./scripts/flux-bootstrap-prod.sh
|
|
||||||
|
|
||||||
flux-staging:
|
flux:
|
||||||
(cd ./scripts; ./flux-bootstrap-staging.expect)
|
./scripts/flux-bootstrap.sh
|
||||||
|
|
||||||
dev: kind namespaces secrets chisel velero
|
dev: kind namespaces secrets chisel velero
|
||||||
|
|
||||||
prod: namespaces secrets velero chisel flux-prod
|
prod: export ENV=production namespaces secrets velero chisel flux
|
||||||
|
|
||||||
staging: namespaces secrets velero chisel flux-staging
|
staging: export ENV=staging namespaces secrets velero chisel flux
|
||||||
|
|
||||||
velero:
|
velero:
|
||||||
./scripts/velero-create.sh
|
./scripts/velero-create.sh
|
||||||
|
@ -26,23 +25,6 @@ tilt:
|
||||||
kind get kubeconfig > ~/.kube/kind.yaml
|
kind get kubeconfig > ~/.kube/kind.yaml
|
||||||
KUBECONFIG=~/.kube/kind.yaml tilt up -f ./t.wip.tiltfile
|
KUBECONFIG=~/.kube/kind.yaml tilt up -f ./t.wip.tiltfile
|
||||||
|
|
||||||
|
|
||||||
define _script
|
|
||||||
cat <<'EOF' | ctlptl apply -f -
|
|
||||||
apiVersion: ctlptl.dev/v1alpha1
|
|
||||||
kind: Cluster
|
|
||||||
product: minikube
|
|
||||||
registry: ctlptl-registry
|
|
||||||
kubernetesVersion: v1.28.3
|
|
||||||
EOF
|
|
||||||
endef
|
|
||||||
export script = $(value _script)
|
|
||||||
minikube:
|
|
||||||
@ eval "$$script"
|
|
||||||
minikube addons enable volumesnapshots
|
|
||||||
minikube addons enable csi-hostpath-driver
|
|
||||||
minikube addons enable metrics-server
|
|
||||||
|
|
||||||
kind:
|
kind:
|
||||||
./scripts/kind-with-local-registry.sh
|
./scripts/kind-with-local-registry.sh
|
||||||
|
|
||||||
|
@ -50,10 +32,12 @@ chisel:
|
||||||
./scripts/k8s-chisel-operator.sh
|
./scripts/k8s-chisel-operator.sh
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
./packages/infra/vultr-delete-orphaned-resources.js
|
kind delete cluster
|
||||||
|
dotenvx run -f .env.$(ENV) -- node ./packages/infra/vultr-delete-orphaned-resources.js
|
||||||
|
|
||||||
deps:
|
deps:
|
||||||
sudo pamac install make entr nvm minikube kubectl docker helm expect
|
echo "Some of the install methods for these dependencies are not cross-platform compatible. Some of the install methods are not well-tested. Expect this to fail. Please consult the Makefile for URLs to project sources."
|
||||||
|
sudo pamac install make entr nvm kubectl docker helm expect
|
||||||
curl -fsSL https://raw.githubusercontent.com/tilt-dev/tilt/master/scripts/install.sh | bash
|
curl -fsSL https://raw.githubusercontent.com/tilt-dev/tilt/master/scripts/install.sh | bash
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
||||||
echo "go to https://github.com/txn2/kubefwd/releases/latest to get kubefwd"
|
echo "go to https://github.com/txn2/kubefwd/releases/latest to get kubefwd"
|
||||||
|
@ -63,6 +47,8 @@ deps:
|
||||||
usermod -aG docker cj
|
usermod -aG docker cj
|
||||||
newgrp docker
|
newgrp docker
|
||||||
curl -OL 'https://github.com/vmware-tanzu/velero/releases/download/v1.13.2/velero-v1.13.2-linux-amd64.tar.gz'
|
curl -OL 'https://github.com/vmware-tanzu/velero/releases/download/v1.13.2/velero-v1.13.2-linux-amd64.tar.gz'
|
||||||
|
npm install -g @dotenvx/dotenvx
|
||||||
|
|
||||||
|
|
||||||
# A gitea act runner which runs locally
|
# A gitea act runner which runs locally
|
||||||
# https://docs.gitea.com/next/usage/actions/overview
|
# https://docs.gitea.com/next/usage/actions/overview
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
# futureporn.net
|
# futureporn.net
|
||||||
|
|
||||||
|
Source Code for https://futureporn.net
|
||||||
|
|
||||||
See ./ARCHITECTURE.md for overview
|
See ./ARCHITECTURE.md for overview
|
||||||
|
|
||||||
Code for https://futureporn.net
|
|
||||||
|
|
||||||
## Jun update todo list
|
## Jun update todo list
|
||||||
|
|
||||||
* [ ] bunny support for external-dns
|
* [x] external-dns gameplan
|
||||||
* [ ] traefik well understood
|
* [ ] traefik well understood
|
||||||
* [ ] staging test with *.futureporn.net domains
|
* [ ] staging test with *.futureporn.net domains
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
|
apiVersion: v1
|
||||||
name: fp
|
name: fp
|
||||||
description: The Galaxy's Best VTuber Hentai Site
|
description: The Galaxy's Best VTuber Hentai Site
|
||||||
version: 0.0.3
|
version: 0.0.4
|
||||||
apiVersion: v1
|
|
||||||
keywords:
|
keywords:
|
||||||
- fp
|
- fp
|
||||||
- futureporn
|
- futureporn
|
||||||
|
- hentai
|
||||||
|
- porn
|
||||||
|
- r18
|
||||||
sources: []
|
sources: []
|
||||||
home: 'https://gitea.futureporn.net/futureporn'
|
home: 'https://gitea.futureporn.net/futureporn'
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
# acme.caserver: "{{ .Values.letsencrypt.caServer }}"
|
|
||||||
|
|
||||||
|
|
||||||
## traefik certresolver
|
|
||||||
---
|
|
||||||
|
|
||||||
# acme.caserver: "{{ .Values.letsencrypt.caServer }}"
|
|
||||||
## staging
|
|
||||||
https://acme-staging-v02.api.letsencrypt.org/directory
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
## production
|
|
||||||
https://acme-v02.api.letsencrypt.org/directory
|
|
|
@ -0,0 +1,88 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: echo
|
||||||
|
namespace: futureporn
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: echo
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: echo
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: hashicorp/http-echo
|
||||||
|
name: echo
|
||||||
|
ports:
|
||||||
|
- containerPort: 5678
|
||||||
|
args:
|
||||||
|
- -text="Hello, choom!"
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: echo
|
||||||
|
namespace: futureporn
|
||||||
|
annotations:
|
||||||
|
external-dns.alpha.kubernetes.io/hostname: "{{ .Values.echo.hostname }}"
|
||||||
|
# chisel-operator.io/exit-node-name: "echo-exit-node"
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: echo
|
||||||
|
type: LoadBalancer
|
||||||
|
ports:
|
||||||
|
- protocol: TCP
|
||||||
|
port: 8001
|
||||||
|
targetPort: 5678
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: chisel-operator.io/v1
|
||||||
|
kind: ExitNode
|
||||||
|
metadata:
|
||||||
|
name: echo-exit-node
|
||||||
|
namespace: futureporn
|
||||||
|
spec:
|
||||||
|
host: "{{ .Values.chisel.exitNodeIp }}"
|
||||||
|
port: 9090
|
||||||
|
auth: chisel
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: echo
|
||||||
|
namespace: futureporn
|
||||||
|
annotations:
|
||||||
|
traefik.ingress.kubernetes.io/router.entrypoints: web
|
||||||
|
traefik.ingress.kubernetes.io/router.tls: "false"
|
||||||
|
traefik.ingress.kubernetes.io/router.tls.certresolver: le
|
||||||
|
spec:
|
||||||
|
rules:
|
||||||
|
- host: "{{ .Values.echo.hostname }}"
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: echo
|
||||||
|
port:
|
||||||
|
number: 8001
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# apiVersion: traefik.io/v1alpha1
|
||||||
|
# kind: IngressRoute
|
||||||
|
# metadata:
|
||||||
|
# name: echo
|
||||||
|
# namespace: futureporn
|
||||||
|
# spec:
|
||||||
|
# routes:
|
||||||
|
# - match: Host(`echo.sbtp.xyz`)
|
||||||
|
# kind: Rule
|
||||||
|
# services:
|
||||||
|
# - name: echo
|
||||||
|
# port: 8001
|
|
@ -0,0 +1,82 @@
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: external-dns
|
||||||
|
namespace: futureporn
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: external-dns
|
||||||
|
rules:
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["services","endpoints","pods"]
|
||||||
|
verbs: ["get","watch","list"]
|
||||||
|
- apiGroups: ["extensions","networking.k8s.io"]
|
||||||
|
resources: ["ingresses"]
|
||||||
|
verbs: ["get","watch","list"]
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["nodes"]
|
||||||
|
verbs: ["list"]
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: external-dns-viewer
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: external-dns
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: external-dns
|
||||||
|
namespace: futureporn
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: external-dns
|
||||||
|
namespace: futureporn
|
||||||
|
spec:
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: external-dns
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: external-dns
|
||||||
|
spec:
|
||||||
|
serviceAccountName: external-dns
|
||||||
|
containers:
|
||||||
|
- name: external-dns
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
image: registry.k8s.io/external-dns/external-dns:v0.14.1
|
||||||
|
args:
|
||||||
|
- --source=service
|
||||||
|
- --source=ingress
|
||||||
|
- --provider=exoscale
|
||||||
|
- --domain-filter=.sbtp.xyz
|
||||||
|
- --policy=sync # if you want DNS entries to get deleted as well
|
||||||
|
- --txt-owner-id=futureporn
|
||||||
|
- --exoscale-apizone=de-fra-1
|
||||||
|
- --exoscale-apienv=api
|
||||||
|
env:
|
||||||
|
- name: EXTERNAL_DNS_EXOSCALE_APIKEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: exoscale
|
||||||
|
key: apiKey
|
||||||
|
- name: EXTERNAL_DNS_EXOSCALE_APISECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: exoscale
|
||||||
|
key: apiSecret
|
|
@ -1,4 +1,4 @@
|
||||||
{{ if eq .Release.Service "Helm" }}
|
{{ if ne .Values.environment "production" }}
|
||||||
apiVersion: cert-manager.io/v1
|
apiVersion: cert-manager.io/v1
|
||||||
kind: ClusterIssuer
|
kind: ClusterIssuer
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -22,8 +22,9 @@ spec:
|
||||||
apiKeySecretRef:
|
apiKeySecretRef:
|
||||||
key: apiKey
|
key: apiKey
|
||||||
name: vultr
|
name: vultr
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if eq .Values.environment "production" }}
|
||||||
---
|
---
|
||||||
apiVersion: cert-manager.io/v1
|
apiVersion: cert-manager.io/v1
|
||||||
kind: ClusterIssuer
|
kind: ClusterIssuer
|
||||||
|
@ -45,5 +46,4 @@ spec:
|
||||||
apiKeySecretRef:
|
apiKeySecretRef:
|
||||||
key: apiKey
|
key: apiKey
|
||||||
name: vultr
|
name: vultr
|
||||||
|
|
||||||
{{ end }}
|
{{ end }}
|
|
@ -1,39 +1,3 @@
|
||||||
{{ if eq .Values.managedBy "tilt" }}
|
|
||||||
---
|
|
||||||
apiVersion: chisel-operator.io/v1
|
|
||||||
kind: ExitNode
|
|
||||||
metadata:
|
|
||||||
name: next-exit-node
|
|
||||||
namespace: futureporn
|
|
||||||
spec:
|
|
||||||
host: "{{ .Values.chisel.exitNodeIp }}"
|
|
||||||
port: 9090
|
|
||||||
auth: chisel
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: next
|
|
||||||
namespace: futureporn
|
|
||||||
{{ if eq .Values.managedBy "tilt" }}
|
|
||||||
# create a tunnel to chisel-exit-node (chisel server)
|
|
||||||
# this allows us to have SSL in development
|
|
||||||
annotations:
|
|
||||||
chisel-operator.io/exit-node-name: "next-exit-node"
|
|
||||||
{{ end }}
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: next
|
|
||||||
ports:
|
|
||||||
- name: web
|
|
||||||
port: 3000
|
|
||||||
targetPort: web
|
|
||||||
protocol: TCP
|
|
||||||
type: LoadBalancer
|
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Pod
|
kind: Pod
|
||||||
|
@ -56,7 +20,28 @@ spec:
|
||||||
restartPolicy: OnFailure
|
restartPolicy: OnFailure
|
||||||
|
|
||||||
|
|
||||||
{{ if eq .Release.Service "Helm" }}
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: next
|
||||||
|
namespace: futureporn
|
||||||
|
annotations:
|
||||||
|
external-dns.alpha.kubernetes.io/hostname: "{{ .Values.next.hostname }}"
|
||||||
|
chisel-operator.io/exit-node-name: "next-exit-node"
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: next
|
||||||
|
ports:
|
||||||
|
- name: web
|
||||||
|
port: 3000
|
||||||
|
targetPort: web
|
||||||
|
protocol: TCP
|
||||||
|
type: LoadBalancer
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{{ if eq .Values.environment "production" }}
|
||||||
---
|
---
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
|
@ -66,11 +51,11 @@ metadata:
|
||||||
annotations:
|
annotations:
|
||||||
traefik.ingress.kubernetes.io/router.entrypoints: http
|
traefik.ingress.kubernetes.io/router.entrypoints: http
|
||||||
traefik.ingress.kubernetes.io/router.tls: "true"
|
traefik.ingress.kubernetes.io/router.tls: "true"
|
||||||
traefik.ingress.kubernetes.io/tls.certresolver: "{{ .Values.next.certResolver }}"
|
traefik.ingress.kubernetes.io/tls.certresolver: le
|
||||||
kubernetes.io/ingress.class: traefik
|
kubernetes.io/ingress.class: traefik
|
||||||
cert-manager.io/cluster-issuer: "{{ .Values.next.certIssuer }}"
|
external-dns.alpha.kubernetes.io/hostname: "{{ .Values.next.hostname }}"
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: "{{ .Values.next.ingressClassName }}"
|
ingressClassName: traefik
|
||||||
backend:
|
backend:
|
||||||
serviceName: next
|
serviceName: next
|
||||||
servicePort: 3000
|
servicePort: 3000
|
||||||
|
@ -90,3 +75,40 @@ spec:
|
||||||
port:
|
port:
|
||||||
number: 3000
|
number: 3000
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if eq .Values.environment "development" }}
|
||||||
|
---
|
||||||
|
apiVersion: chisel-operator.io/v1
|
||||||
|
kind: ExitNode
|
||||||
|
metadata:
|
||||||
|
name: next-exit-node
|
||||||
|
namespace: futureporn
|
||||||
|
spec:
|
||||||
|
host: "{{ .Values.chisel.exitNodeIp }}"
|
||||||
|
port: 9090
|
||||||
|
auth: chisel
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: next
|
||||||
|
namespace: futureporn
|
||||||
|
annotations:
|
||||||
|
traefik.ingress.kubernetes.io/router.entrypoints: web
|
||||||
|
traefik.ingress.kubernetes.io/router.tls: "false"
|
||||||
|
traefik.ingress.kubernetes.io/router.tls.certresolver: le
|
||||||
|
spec:
|
||||||
|
rules:
|
||||||
|
- host: next.fp.sbtp.xyz
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: next
|
||||||
|
port:
|
||||||
|
number: 3000
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{{ if eq .Release.Service "Helm" }}
|
{{ if eq .Values.environment "development" }}
|
||||||
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
|
|
|
@ -1,28 +1,12 @@
|
||||||
{{ if eq .Values.managedBy "tilt" }}
|
|
||||||
---
|
|
||||||
apiVersion: chisel-operator.io/v1
|
|
||||||
kind: ExitNode
|
|
||||||
metadata:
|
|
||||||
name: strapi-exit-node
|
|
||||||
namespace: futureporn
|
|
||||||
spec:
|
|
||||||
host: "{{ .Values.chisel.exitNodeIp }}"
|
|
||||||
port: 9090
|
|
||||||
auth: chisel
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: strapi
|
name: strapi
|
||||||
namespace: futureporn
|
namespace: futureporn
|
||||||
{{ if eq .Values.managedBy "tilt" }}
|
|
||||||
# create a tunnel to chisel-exit-node (chisel server)
|
|
||||||
# this allows us to have SSL in development
|
|
||||||
annotations:
|
annotations:
|
||||||
|
external-dns.alpha.kubernetes.io/hostname: "{{ .Values.strapi.hostname }}"
|
||||||
chisel-operator.io/exit-node-name: "strapi-exit-node"
|
chisel-operator.io/exit-node-name: "strapi-exit-node"
|
||||||
{{ end }}
|
|
||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
app.kubernetes.io/name: strapi
|
app.kubernetes.io/name: strapi
|
||||||
|
@ -170,7 +154,6 @@ spec:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{{ if eq .Release.Service "Helm" }}
|
|
||||||
---
|
---
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
|
@ -178,18 +161,19 @@ metadata:
|
||||||
name: strapi
|
name: strapi
|
||||||
namespace: futureporn
|
namespace: futureporn
|
||||||
annotations:
|
annotations:
|
||||||
sbtp.xyz/managed-by: "{{ .Values.managedBy }}"
|
|
||||||
kubernetes.io/ingress.class: traefik
|
kubernetes.io/ingress.class: traefik
|
||||||
cert-manager.io/cluster-issuer: "{{ .Values.strapi.certIssuer }}"
|
traefik.ingress.kubernetes.io/router.entrypoints: web
|
||||||
|
traefik.ingress.kubernetes.io/router.tls: "false"
|
||||||
|
traefik.ingress.kubernetes.io/router.tls.certresolver: le
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: "{{ .Values.strapi.ingressClassName }}"
|
ingressClassName: "{{ .Values.strapi.ingressClassName }}"
|
||||||
backend:
|
backend:
|
||||||
serviceName: strapi
|
serviceName: strapi
|
||||||
servicePort: 1339
|
servicePort: 1339
|
||||||
tls:
|
# tls:
|
||||||
- secretName: strapi-tls
|
# - secretName: strapi-tls
|
||||||
hosts:
|
# hosts:
|
||||||
- "{{ .Values.strapi.hostname }}"
|
# - "{{ .Values.strapi.hostname }}"
|
||||||
rules:
|
rules:
|
||||||
- host: "{{ .Values.strapi.hostname }}"
|
- host: "{{ .Values.strapi.hostname }}"
|
||||||
http:
|
http:
|
||||||
|
@ -201,4 +185,31 @@ spec:
|
||||||
name: strapi
|
name: strapi
|
||||||
port:
|
port:
|
||||||
number: 1339
|
number: 1339
|
||||||
|
|
||||||
|
{{ if eq .Values.environment "development" }}
|
||||||
|
---
|
||||||
|
apiVersion: chisel-operator.io/v1
|
||||||
|
kind: ExitNode
|
||||||
|
metadata:
|
||||||
|
name: strapi-exit-node
|
||||||
|
namespace: futureporn
|
||||||
|
spec:
|
||||||
|
host: "{{ .Values.chisel.exitNodeIp }}"
|
||||||
|
port: 9090
|
||||||
|
auth: chisel
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
|
# annotations:
|
||||||
|
|
||||||
|
# spec:
|
||||||
|
# rules:
|
||||||
|
# - host: echo.sbtp.xyz
|
||||||
|
# http:
|
||||||
|
# paths:
|
||||||
|
# - path: /
|
||||||
|
# pathType: Prefix
|
||||||
|
# backend:
|
||||||
|
# service:
|
||||||
|
# name: echo
|
||||||
|
# port:
|
||||||
|
# number: 8001
|
|
@ -0,0 +1,40 @@
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
{{ if eq .Values.environment "development" }}
|
||||||
|
chisel-operator.io/exit-node-name: "traefik-exit-node"
|
||||||
|
{{ end }}
|
||||||
|
name: traefik
|
||||||
|
namespace: futureporn
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: web
|
||||||
|
port: 80
|
||||||
|
targetPort: web
|
||||||
|
protocol: TCP
|
||||||
|
- name: websecure
|
||||||
|
port: 443
|
||||||
|
protocol: TCP
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: traefik
|
||||||
|
app.kubernetes.io/instance: traefik-futureporn
|
||||||
|
type: LoadBalancer
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{{ if eq .Values.environment "development" }}
|
||||||
|
---
|
||||||
|
apiVersion: chisel-operator.io/v1
|
||||||
|
kind: ExitNode
|
||||||
|
metadata:
|
||||||
|
name: traefik-exit-node
|
||||||
|
namespace: futureporn
|
||||||
|
spec:
|
||||||
|
host: "{{ .Values.chisel.exitNodeIp }}"
|
||||||
|
port: 9090
|
||||||
|
auth: chisel
|
||||||
|
|
||||||
|
{{ end }}
|
|
@ -1,12 +1,12 @@
|
||||||
|
environment: development
|
||||||
# storageClassName: csi-hostpath-sc # used by minikube
|
# storageClassName: csi-hostpath-sc # used by minikube
|
||||||
storageClassName: standard # used by Kind
|
storageClassName: standard # used by Kind
|
||||||
managedBy: tilt
|
|
||||||
link2cid:
|
link2cid:
|
||||||
imageName: fp/link2cid
|
imageName: fp/link2cid
|
||||||
next:
|
next:
|
||||||
imageName: fp/next
|
imageName: fp/next
|
||||||
certIssuer: letsencrypt-staging
|
certIssuer: letsencrypt-staging
|
||||||
hostname: next.futureporn.svc.cluster.local
|
hostname: next.fp.sbtp.xyz
|
||||||
ingressClassName: traefik
|
ingressClassName: traefik
|
||||||
capture:
|
capture:
|
||||||
imageName: fp/capture
|
imageName: fp/capture
|
||||||
|
@ -24,9 +24,9 @@ scout:
|
||||||
strapi:
|
strapi:
|
||||||
imageName: fp/strapi
|
imageName: fp/strapi
|
||||||
port: 1339
|
port: 1339
|
||||||
url: https://strapi.piko.sbtp.xyz
|
url: https://strapi.fp.sbtp.xyz
|
||||||
certIssuer: letsencrypt-staging
|
certIssuer: letsencrypt-staging
|
||||||
hostname: strapi.futureporn.svc.cluster.local
|
hostname: strapi.fp.sbtp.xyz
|
||||||
ingressClassName: traefik
|
ingressClassName: traefik
|
||||||
ngrok:
|
ngrok:
|
||||||
hostname: grateful-engaging-cicada.ngrok-free.app
|
hostname: grateful-engaging-cicada.ngrok-free.app
|
||||||
|
@ -35,3 +35,5 @@ realtime:
|
||||||
adminEmail: cj@futureporn.net
|
adminEmail: cj@futureporn.net
|
||||||
chisel:
|
chisel:
|
||||||
exitNodeIp: "155.138.254.201"
|
exitNodeIp: "155.138.254.201"
|
||||||
|
echo:
|
||||||
|
hostname: echo.fp.sbtp.xyz
|
|
@ -1,3 +1,4 @@
|
||||||
|
environment: production
|
||||||
storageClassName: vultr-block-storage-hdd
|
storageClassName: vultr-block-storage-hdd
|
||||||
link2cid:
|
link2cid:
|
||||||
imageName: gitea.futureporn.net/futureporn/link2cid:latest
|
imageName: gitea.futureporn.net/futureporn/link2cid:latest
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
## DEPRECATED. We are using traefik to get certs
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Namespace
|
kind: Namespace
|
|
@ -55,7 +55,7 @@ spec:
|
||||||
service:
|
service:
|
||||||
|
|
||||||
annotations:
|
annotations:
|
||||||
chisel-operator.io/exit-node-name: "grafana-exit-node"
|
# chisel-operator.io/exit-node-name: "grafana-exit-node"
|
||||||
|
|
||||||
admin:
|
admin:
|
||||||
existingSecret: grafana
|
existingSecret: grafana
|
||||||
|
|
|
@ -2,7 +2,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- external-dns.yaml
|
- external-dns.yaml
|
||||||
- cert-manager.yaml
|
# - cert-manager.yaml
|
||||||
- ingress-traefik.yaml
|
- ingress-traefik.yaml
|
||||||
- grafana-k8s-dashboards.yaml
|
- grafana-k8s-dashboards.yaml
|
||||||
- kube-prometheus-stack.yaml
|
- kube-prometheus-stack.yaml
|
|
@ -34,10 +34,11 @@
|
||||||
"imapflow": "^1.0.160",
|
"imapflow": "^1.0.160",
|
||||||
"limiter": "2.0.1",
|
"limiter": "2.0.1",
|
||||||
"mailparser": "^3.7.1",
|
"mailparser": "^3.7.1",
|
||||||
|
"next": "workspace:*",
|
||||||
"node-fetch": "^3.3.0",
|
"node-fetch": "^3.3.0",
|
||||||
"nodemon": "^3.1.3",
|
"nodemon": "^3.1.3",
|
||||||
"p-retry": "^5.1.2",
|
"p-retry": "^5.1.2",
|
||||||
"next": "workspace:*",
|
"prevvy": "^7.0.1",
|
||||||
"qs": "^6.12.1",
|
"qs": "^6.12.1",
|
||||||
"sharp": "^0.33.4",
|
"sharp": "^0.33.4",
|
||||||
"slugify": "^1.6.6",
|
"slugify": "^1.6.6",
|
||||||
|
|
|
@ -77,6 +77,9 @@ importers:
|
||||||
p-retry:
|
p-retry:
|
||||||
specifier: ^5.1.2
|
specifier: ^5.1.2
|
||||||
version: 5.1.2
|
version: 5.1.2
|
||||||
|
prevvy:
|
||||||
|
specifier: ^7.0.1
|
||||||
|
version: 7.0.1
|
||||||
qs:
|
qs:
|
||||||
specifier: ^6.12.1
|
specifier: ^6.12.1
|
||||||
version: 6.12.1
|
version: 6.12.1
|
||||||
|
@ -88,7 +91,7 @@ importers:
|
||||||
version: 1.6.6
|
version: 1.6.6
|
||||||
ts-node:
|
ts-node:
|
||||||
specifier: ^10.9.2
|
specifier: ^10.9.2
|
||||||
version: 10.9.2(@swc/core@1.5.25)(@types/node@16.9.1)(typescript@5.4.5)
|
version: 10.9.2(@swc/core@1.5.25)(@types/node@20.14.8)(typescript@5.4.5)
|
||||||
tsx:
|
tsx:
|
||||||
specifier: ^4.7.2
|
specifier: ^4.7.2
|
||||||
version: 4.15.1
|
version: 4.15.1
|
||||||
|
@ -968,6 +971,9 @@ packages:
|
||||||
'@types/node@16.9.1':
|
'@types/node@16.9.1':
|
||||||
resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==}
|
resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==}
|
||||||
|
|
||||||
|
'@types/node@20.14.8':
|
||||||
|
resolution: {integrity: sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==}
|
||||||
|
|
||||||
'@types/retry@0.12.1':
|
'@types/retry@0.12.1':
|
||||||
resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==}
|
resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==}
|
||||||
|
|
||||||
|
@ -1080,6 +1086,9 @@ packages:
|
||||||
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
|
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
|
async@0.2.10:
|
||||||
|
resolution: {integrity: sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==}
|
||||||
|
|
||||||
atomic-sleep@1.0.0:
|
atomic-sleep@1.0.0:
|
||||||
resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
|
resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
|
||||||
engines: {node: '>=8.0.0'}
|
engines: {node: '>=8.0.0'}
|
||||||
|
@ -1094,6 +1103,9 @@ packages:
|
||||||
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
|
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
bluebird@3.7.2:
|
||||||
|
resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
|
||||||
|
|
||||||
boolbase@1.0.0:
|
boolbase@1.0.0:
|
||||||
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
|
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
|
||||||
|
|
||||||
|
@ -1204,6 +1216,10 @@ packages:
|
||||||
create-require@1.1.1:
|
create-require@1.1.1:
|
||||||
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
|
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
|
||||||
|
|
||||||
|
cross-spawn@6.0.5:
|
||||||
|
resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==}
|
||||||
|
engines: {node: '>=4.8'}
|
||||||
|
|
||||||
csprng@0.1.2:
|
csprng@0.1.2:
|
||||||
resolution: {integrity: sha512-D3WAbvvgUVIqSxUfdvLeGjuotsB32bvfVPd+AaaTWMtyUeC9zgCnw5xs94no89yFLVsafvY9dMZEhTwsY/ZecA==}
|
resolution: {integrity: sha512-D3WAbvvgUVIqSxUfdvLeGjuotsB32bvfVPd+AaaTWMtyUeC9zgCnw5xs94no89yFLVsafvY9dMZEhTwsY/ZecA==}
|
||||||
engines: {node: '>=0.6.0'}
|
engines: {node: '>=0.6.0'}
|
||||||
|
@ -1350,6 +1366,10 @@ packages:
|
||||||
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
|
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
|
||||||
engines: {node: '>=0.8.x'}
|
engines: {node: '>=0.8.x'}
|
||||||
|
|
||||||
|
execa@0.10.0:
|
||||||
|
resolution: {integrity: sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==}
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
|
||||||
fast-deep-equal@3.1.3:
|
fast-deep-equal@3.1.3:
|
||||||
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
|
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
|
||||||
|
|
||||||
|
@ -1391,6 +1411,10 @@ packages:
|
||||||
resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
|
resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
fluent-ffmpeg@2.1.3:
|
||||||
|
resolution: {integrity: sha512-Be3narBNt2s6bsaqP6Jzq91heDgOEaDCJAXcE3qcma/EJBSy5FB4cvO31XBInuAuKBx8Kptf8dkhjK0IOru39Q==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
formdata-polyfill@4.0.10:
|
formdata-polyfill@4.0.10:
|
||||||
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
|
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
|
||||||
engines: {node: '>=12.20.0'}
|
engines: {node: '>=12.20.0'}
|
||||||
|
@ -1420,6 +1444,10 @@ packages:
|
||||||
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
|
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
|
||||||
|
get-stream@3.0.0:
|
||||||
|
resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==}
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
|
||||||
get-tsconfig@4.7.5:
|
get-tsconfig@4.7.5:
|
||||||
resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==}
|
resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==}
|
||||||
|
|
||||||
|
@ -1539,10 +1567,17 @@ packages:
|
||||||
resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
|
resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
is-stream@1.1.0:
|
||||||
|
resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
is-unicode-supported@0.1.0:
|
is-unicode-supported@0.1.0:
|
||||||
resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
|
resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
|
isexe@2.0.0:
|
||||||
|
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
|
||||||
|
|
||||||
isexe@3.1.1:
|
isexe@3.1.1:
|
||||||
resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==}
|
resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==}
|
||||||
engines: {node: '>=16'}
|
engines: {node: '>=16'}
|
||||||
|
@ -1618,6 +1653,9 @@ packages:
|
||||||
loupe@3.1.1:
|
loupe@3.1.1:
|
||||||
resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==}
|
resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==}
|
||||||
|
|
||||||
|
luxon@1.28.1:
|
||||||
|
resolution: {integrity: sha512-gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw==}
|
||||||
|
|
||||||
mailparser@3.7.1:
|
mailparser@3.7.1:
|
||||||
resolution: {integrity: sha512-RCnBhy5q8XtB3mXzxcAfT1huNqN93HTYYyL6XawlIKycfxM/rXPg9tXoZ7D46+SgCS1zxKzw+BayDQSvncSTTw==}
|
resolution: {integrity: sha512-RCnBhy5q8XtB3mXzxcAfT1huNqN93HTYYyL6XawlIKycfxM/rXPg9tXoZ7D46+SgCS1zxKzw+BayDQSvncSTTw==}
|
||||||
|
|
||||||
|
@ -1667,6 +1705,9 @@ packages:
|
||||||
neo-async@2.6.2:
|
neo-async@2.6.2:
|
||||||
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
|
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
|
||||||
|
|
||||||
|
nice-try@1.0.5:
|
||||||
|
resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
|
||||||
|
|
||||||
node-domexception@1.0.0:
|
node-domexception@1.0.0:
|
||||||
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
|
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
|
||||||
engines: {node: '>=10.5.0'}
|
engines: {node: '>=10.5.0'}
|
||||||
|
@ -1691,6 +1732,10 @@ packages:
|
||||||
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
|
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
|
npm-run-path@2.0.2:
|
||||||
|
resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==}
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
|
||||||
nth-check@2.1.1:
|
nth-check@2.1.1:
|
||||||
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
|
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
|
||||||
|
|
||||||
|
@ -1704,6 +1749,10 @@ packages:
|
||||||
once@1.4.0:
|
once@1.4.0:
|
||||||
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
|
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
|
||||||
|
|
||||||
|
p-finally@1.0.0:
|
||||||
|
resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
|
||||||
p-limit@3.1.0:
|
p-limit@3.1.0:
|
||||||
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
|
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
@ -1729,6 +1778,10 @@ packages:
|
||||||
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
path-key@2.0.1:
|
||||||
|
resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
|
||||||
pathval@2.0.0:
|
pathval@2.0.0:
|
||||||
resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
|
resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
|
||||||
engines: {node: '>= 14.16'}
|
engines: {node: '>= 14.16'}
|
||||||
|
@ -1753,6 +1806,9 @@ packages:
|
||||||
resolution: {integrity: sha512-uI1ThkzTShNSwvsUM6b4ND8ANzWURk9zTELMztFkmnCQeR/4wkomJ+echHee5GMWGovoSfjwdeu80DsFIt7mbA==}
|
resolution: {integrity: sha512-uI1ThkzTShNSwvsUM6b4ND8ANzWURk9zTELMztFkmnCQeR/4wkomJ+echHee5GMWGovoSfjwdeu80DsFIt7mbA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
prevvy@7.0.1:
|
||||||
|
resolution: {integrity: sha512-SYkduORxa08l8UNQEn6FE0XDSOeNyVqMLhvWkHJ4Q+77HvY8Db8TKCMUnt0K0Xzm6h3lVMWXGuUScpAPBCxFHg==}
|
||||||
|
|
||||||
process-warning@3.0.0:
|
process-warning@3.0.0:
|
||||||
resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==}
|
resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==}
|
||||||
|
|
||||||
|
@ -1852,6 +1908,10 @@ packages:
|
||||||
selderee@0.11.0:
|
selderee@0.11.0:
|
||||||
resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==}
|
resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==}
|
||||||
|
|
||||||
|
semver@5.7.2:
|
||||||
|
resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
semver@7.6.2:
|
semver@7.6.2:
|
||||||
resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==}
|
resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
@ -1875,6 +1935,14 @@ packages:
|
||||||
resolution: {integrity: sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==}
|
resolution: {integrity: sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==}
|
||||||
engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||||
|
|
||||||
|
shebang-command@1.2.0:
|
||||||
|
resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
|
shebang-regex@1.0.0:
|
||||||
|
resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
shell-quote@1.8.1:
|
shell-quote@1.8.1:
|
||||||
resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
|
resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
|
||||||
|
|
||||||
|
@ -1882,6 +1950,9 @@ packages:
|
||||||
resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
|
resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
|
||||||
|
signal-exit@3.0.7:
|
||||||
|
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
|
||||||
|
|
||||||
simple-swizzle@0.2.2:
|
simple-swizzle@0.2.2:
|
||||||
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
|
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
|
||||||
|
|
||||||
|
@ -1955,6 +2026,10 @@ packages:
|
||||||
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
|
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
strip-eof@1.0.0:
|
||||||
|
resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
strip-json-comments@3.1.1:
|
strip-json-comments@3.1.1:
|
||||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
@ -2079,6 +2154,9 @@ packages:
|
||||||
undefsafe@2.0.5:
|
undefsafe@2.0.5:
|
||||||
resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
|
resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
|
||||||
|
|
||||||
|
undici-types@5.26.5:
|
||||||
|
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
|
||||||
|
|
||||||
unionfs@4.5.4:
|
unionfs@4.5.4:
|
||||||
resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==}
|
resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==}
|
||||||
|
|
||||||
|
@ -2138,6 +2216,10 @@ packages:
|
||||||
resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
|
resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
|
||||||
engines: {node: '>=0.8.0'}
|
engines: {node: '>=0.8.0'}
|
||||||
|
|
||||||
|
which@1.3.1:
|
||||||
|
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
which@4.0.0:
|
which@4.0.0:
|
||||||
resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==}
|
resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==}
|
||||||
engines: {node: ^16.13.0 || >=18.0.0}
|
engines: {node: ^16.13.0 || >=18.0.0}
|
||||||
|
@ -3432,6 +3514,10 @@ snapshots:
|
||||||
|
|
||||||
'@types/node@16.9.1': {}
|
'@types/node@16.9.1': {}
|
||||||
|
|
||||||
|
'@types/node@20.14.8':
|
||||||
|
dependencies:
|
||||||
|
undici-types: 5.26.5
|
||||||
|
|
||||||
'@types/retry@0.12.1': {}
|
'@types/retry@0.12.1': {}
|
||||||
|
|
||||||
'@webassemblyjs/ast@1.12.1':
|
'@webassemblyjs/ast@1.12.1':
|
||||||
|
@ -3560,6 +3646,8 @@ snapshots:
|
||||||
|
|
||||||
assertion-error@2.0.1: {}
|
assertion-error@2.0.1: {}
|
||||||
|
|
||||||
|
async@0.2.10: {}
|
||||||
|
|
||||||
atomic-sleep@1.0.0: {}
|
atomic-sleep@1.0.0: {}
|
||||||
|
|
||||||
balanced-match@1.0.2: {}
|
balanced-match@1.0.2: {}
|
||||||
|
@ -3568,6 +3656,8 @@ snapshots:
|
||||||
|
|
||||||
binary-extensions@2.3.0: {}
|
binary-extensions@2.3.0: {}
|
||||||
|
|
||||||
|
bluebird@3.7.2: {}
|
||||||
|
|
||||||
boolbase@1.0.0: {}
|
boolbase@1.0.0: {}
|
||||||
|
|
||||||
bowser@2.11.0: {}
|
bowser@2.11.0: {}
|
||||||
|
@ -3714,6 +3804,14 @@ snapshots:
|
||||||
|
|
||||||
create-require@1.1.1: {}
|
create-require@1.1.1: {}
|
||||||
|
|
||||||
|
cross-spawn@6.0.5:
|
||||||
|
dependencies:
|
||||||
|
nice-try: 1.0.5
|
||||||
|
path-key: 2.0.1
|
||||||
|
semver: 5.7.2
|
||||||
|
shebang-command: 1.2.0
|
||||||
|
which: 1.3.1
|
||||||
|
|
||||||
csprng@0.1.2:
|
csprng@0.1.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
sequin: 0.1.1
|
sequin: 0.1.1
|
||||||
|
@ -3856,6 +3954,16 @@ snapshots:
|
||||||
|
|
||||||
events@3.3.0: {}
|
events@3.3.0: {}
|
||||||
|
|
||||||
|
execa@0.10.0:
|
||||||
|
dependencies:
|
||||||
|
cross-spawn: 6.0.5
|
||||||
|
get-stream: 3.0.0
|
||||||
|
is-stream: 1.1.0
|
||||||
|
npm-run-path: 2.0.2
|
||||||
|
p-finally: 1.0.0
|
||||||
|
signal-exit: 3.0.7
|
||||||
|
strip-eof: 1.0.0
|
||||||
|
|
||||||
fast-deep-equal@3.1.3: {}
|
fast-deep-equal@3.1.3: {}
|
||||||
|
|
||||||
fast-json-stable-stringify@2.1.0: {}
|
fast-json-stable-stringify@2.1.0: {}
|
||||||
|
@ -3899,6 +4007,11 @@ snapshots:
|
||||||
|
|
||||||
flat@5.0.2: {}
|
flat@5.0.2: {}
|
||||||
|
|
||||||
|
fluent-ffmpeg@2.1.3:
|
||||||
|
dependencies:
|
||||||
|
async: 0.2.10
|
||||||
|
which: 1.3.1
|
||||||
|
|
||||||
formdata-polyfill@4.0.10:
|
formdata-polyfill@4.0.10:
|
||||||
dependencies:
|
dependencies:
|
||||||
fetch-blob: 3.2.0
|
fetch-blob: 3.2.0
|
||||||
|
@ -3924,6 +4037,8 @@ snapshots:
|
||||||
has-symbols: 1.0.3
|
has-symbols: 1.0.3
|
||||||
hasown: 2.0.2
|
hasown: 2.0.2
|
||||||
|
|
||||||
|
get-stream@3.0.0: {}
|
||||||
|
|
||||||
get-tsconfig@4.7.5:
|
get-tsconfig@4.7.5:
|
||||||
dependencies:
|
dependencies:
|
||||||
resolve-pkg-maps: 1.0.0
|
resolve-pkg-maps: 1.0.0
|
||||||
|
@ -4044,8 +4159,12 @@ snapshots:
|
||||||
|
|
||||||
is-plain-obj@2.1.0: {}
|
is-plain-obj@2.1.0: {}
|
||||||
|
|
||||||
|
is-stream@1.1.0: {}
|
||||||
|
|
||||||
is-unicode-supported@0.1.0: {}
|
is-unicode-supported@0.1.0: {}
|
||||||
|
|
||||||
|
isexe@2.0.0: {}
|
||||||
|
|
||||||
isexe@3.1.1: {}
|
isexe@3.1.1: {}
|
||||||
|
|
||||||
jest-worker@27.5.1:
|
jest-worker@27.5.1:
|
||||||
|
@ -4119,6 +4238,8 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
get-func-name: 2.0.2
|
get-func-name: 2.0.2
|
||||||
|
|
||||||
|
luxon@1.28.1: {}
|
||||||
|
|
||||||
mailparser@3.7.1:
|
mailparser@3.7.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
encoding-japanese: 2.1.0
|
encoding-japanese: 2.1.0
|
||||||
|
@ -4194,6 +4315,8 @@ snapshots:
|
||||||
|
|
||||||
neo-async@2.6.2: {}
|
neo-async@2.6.2: {}
|
||||||
|
|
||||||
|
nice-try@1.0.5: {}
|
||||||
|
|
||||||
node-domexception@1.0.0: {}
|
node-domexception@1.0.0: {}
|
||||||
|
|
||||||
node-fetch@3.3.2:
|
node-fetch@3.3.2:
|
||||||
|
@ -4221,6 +4344,10 @@ snapshots:
|
||||||
|
|
||||||
normalize-path@3.0.0: {}
|
normalize-path@3.0.0: {}
|
||||||
|
|
||||||
|
npm-run-path@2.0.2:
|
||||||
|
dependencies:
|
||||||
|
path-key: 2.0.1
|
||||||
|
|
||||||
nth-check@2.1.1:
|
nth-check@2.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
boolbase: 1.0.0
|
boolbase: 1.0.0
|
||||||
|
@ -4233,6 +4360,8 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
wrappy: 1.0.2
|
wrappy: 1.0.2
|
||||||
|
|
||||||
|
p-finally@1.0.0: {}
|
||||||
|
|
||||||
p-limit@3.1.0:
|
p-limit@3.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
yocto-queue: 0.1.0
|
yocto-queue: 0.1.0
|
||||||
|
@ -4262,6 +4391,8 @@ snapshots:
|
||||||
|
|
||||||
path-exists@4.0.0: {}
|
path-exists@4.0.0: {}
|
||||||
|
|
||||||
|
path-key@2.0.1: {}
|
||||||
|
|
||||||
pathval@2.0.0: {}
|
pathval@2.0.0: {}
|
||||||
|
|
||||||
peberminta@0.9.0: {}
|
peberminta@0.9.0: {}
|
||||||
|
@ -4291,6 +4422,16 @@ snapshots:
|
||||||
sonic-boom: 3.8.1
|
sonic-boom: 3.8.1
|
||||||
thread-stream: 2.7.0
|
thread-stream: 2.7.0
|
||||||
|
|
||||||
|
prevvy@7.0.1:
|
||||||
|
dependencies:
|
||||||
|
bluebird: 3.7.2
|
||||||
|
debug: 4.3.4(supports-color@5.5.0)
|
||||||
|
execa: 0.10.0
|
||||||
|
fluent-ffmpeg: 2.1.3
|
||||||
|
luxon: 1.28.1
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
process-warning@3.0.0: {}
|
process-warning@3.0.0: {}
|
||||||
|
|
||||||
process@0.11.10: {}
|
process@0.11.10: {}
|
||||||
|
@ -4386,6 +4527,8 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
parseley: 0.12.1
|
parseley: 0.12.1
|
||||||
|
|
||||||
|
semver@5.7.2: {}
|
||||||
|
|
||||||
semver@7.6.2: {}
|
semver@7.6.2: {}
|
||||||
|
|
||||||
sequin@0.1.1: {}
|
sequin@0.1.1: {}
|
||||||
|
@ -4433,6 +4576,12 @@ snapshots:
|
||||||
'@img/sharp-win32-ia32': 0.33.4
|
'@img/sharp-win32-ia32': 0.33.4
|
||||||
'@img/sharp-win32-x64': 0.33.4
|
'@img/sharp-win32-x64': 0.33.4
|
||||||
|
|
||||||
|
shebang-command@1.2.0:
|
||||||
|
dependencies:
|
||||||
|
shebang-regex: 1.0.0
|
||||||
|
|
||||||
|
shebang-regex@1.0.0: {}
|
||||||
|
|
||||||
shell-quote@1.8.1: {}
|
shell-quote@1.8.1: {}
|
||||||
|
|
||||||
side-channel@1.0.6:
|
side-channel@1.0.6:
|
||||||
|
@ -4442,6 +4591,8 @@ snapshots:
|
||||||
get-intrinsic: 1.2.4
|
get-intrinsic: 1.2.4
|
||||||
object-inspect: 1.13.1
|
object-inspect: 1.13.1
|
||||||
|
|
||||||
|
signal-exit@3.0.7: {}
|
||||||
|
|
||||||
simple-swizzle@0.2.2:
|
simple-swizzle@0.2.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
is-arrayish: 0.3.2
|
is-arrayish: 0.3.2
|
||||||
|
@ -4510,6 +4661,8 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
ansi-regex: 5.0.1
|
ansi-regex: 5.0.1
|
||||||
|
|
||||||
|
strip-eof@1.0.0: {}
|
||||||
|
|
||||||
strip-json-comments@3.1.1: {}
|
strip-json-comments@3.1.1: {}
|
||||||
|
|
||||||
strnum@1.0.5: {}
|
strnum@1.0.5: {}
|
||||||
|
@ -4581,14 +4734,14 @@ snapshots:
|
||||||
|
|
||||||
tree-kill@1.2.2: {}
|
tree-kill@1.2.2: {}
|
||||||
|
|
||||||
ts-node@10.9.2(@swc/core@1.5.25)(@types/node@16.9.1)(typescript@5.4.5):
|
ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.14.8)(typescript@5.4.5):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@cspotcode/source-map-support': 0.8.1
|
'@cspotcode/source-map-support': 0.8.1
|
||||||
'@tsconfig/node10': 1.0.11
|
'@tsconfig/node10': 1.0.11
|
||||||
'@tsconfig/node12': 1.0.11
|
'@tsconfig/node12': 1.0.11
|
||||||
'@tsconfig/node14': 1.0.3
|
'@tsconfig/node14': 1.0.3
|
||||||
'@tsconfig/node16': 1.0.4
|
'@tsconfig/node16': 1.0.4
|
||||||
'@types/node': 16.9.1
|
'@types/node': 20.14.8
|
||||||
acorn: 8.11.3
|
acorn: 8.11.3
|
||||||
acorn-walk: 8.3.2
|
acorn-walk: 8.3.2
|
||||||
arg: 4.1.3
|
arg: 4.1.3
|
||||||
|
@ -4622,6 +4775,8 @@ snapshots:
|
||||||
|
|
||||||
undefsafe@2.0.5: {}
|
undefsafe@2.0.5: {}
|
||||||
|
|
||||||
|
undici-types@5.26.5: {}
|
||||||
|
|
||||||
unionfs@4.5.4:
|
unionfs@4.5.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
fs-monkey: 1.0.6
|
fs-monkey: 1.0.6
|
||||||
|
@ -4697,6 +4852,10 @@ snapshots:
|
||||||
|
|
||||||
websocket-extensions@0.1.4: {}
|
websocket-extensions@0.1.4: {}
|
||||||
|
|
||||||
|
which@1.3.1:
|
||||||
|
dependencies:
|
||||||
|
isexe: 2.0.0
|
||||||
|
|
||||||
which@4.0.0:
|
which@4.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
isexe: 3.1.1
|
isexe: 3.1.1
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
// import ColorThief from 'colorthief'
|
// import ColorThief from 'colorthief'
|
||||||
import sharp from 'sharp'
|
import sharp from 'sharp'
|
||||||
|
import Prevvy from 'prevvy'
|
||||||
|
import path from 'path'
|
||||||
|
import { getTmpFile } from './utils.js';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,3 +15,19 @@ export async function getProminentColor(imageFile) {
|
||||||
export function rgbToHex(r, g, b) {
|
export function rgbToHex(r, g, b) {
|
||||||
return "#" + (1 << 24 | r << 16 | g << 8 | b).toString(16).slice(1);
|
return "#" + (1 << 24 | r << 16 | g << 8 | b).toString(16).slice(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export async function getStoryboard(imageFileOrUrl) {
|
||||||
|
let base = path.basename(imageFileOrUrl)
|
||||||
|
let outputImagePath = getTmpFile(base)
|
||||||
|
let options = {
|
||||||
|
input: imageFileOrUrl,
|
||||||
|
output: outputImagePath,
|
||||||
|
width: 265,
|
||||||
|
cols: 5,
|
||||||
|
rows: 5
|
||||||
|
};
|
||||||
|
let prevvy = new Prevvy(options)
|
||||||
|
await prevvy.generate()
|
||||||
|
return outputImagePath
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
import { getProminentColor, rgbToHex } from './image.js'
|
import { getProminentColor, rgbToHex, getStoryboard } from './image.js'
|
||||||
import { expect } from 'chai'
|
import { expect } from 'chai'
|
||||||
import { describe } from 'mocha'
|
import { describe } from 'mocha'
|
||||||
import path from 'node:path'
|
import path from 'node:path'
|
||||||
|
@ -22,4 +22,12 @@ describe('image', function () {
|
||||||
expect(rgbToHex(...amaranth)).to.equal('#e34051')
|
expect(rgbToHex(...amaranth)).to.equal('#e34051')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
describe('getStoryboard', function () {
|
||||||
|
this.timeout(1000*60*15)
|
||||||
|
it('should accept a URL and return a path to image on disk', async function () {
|
||||||
|
const url = 'https://futureporn-b2.b-cdn.net/projektmelody-chaturbate-2024-06-25.mp4'
|
||||||
|
const imagePath = await getStoryboard(url)
|
||||||
|
expect(imagePath).to.match(/\.png/)
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
|
@ -65,3 +65,5 @@ export async function download({ url, filePath }) {
|
||||||
|
|
||||||
|
|
||||||
export const tmpFileRegex = /^\/tmp\/.*\.jpg$/
|
export const tmpFileRegex = /^\/tmp\/.*\.jpg$/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. .env
|
|
||||||
|
|
||||||
# Check if the containers already exist
|
# Check if the containers already exist
|
||||||
pgadmin_exists=$(docker ps -a --filter "name=pgadmin" --format '{{.Names}}')
|
pgadmin_exists=$(docker ps -a --filter "name=pgadmin" --format '{{.Names}}')
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
#!/usr/bin/sh
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## this way is annoying because deployment asks for git password
|
|
||||||
# flux bootstrap git \
|
|
||||||
# --kubeconfig /home/cj/.kube/vke.yaml \
|
|
||||||
# --url=https://gitea.futureporn.net/futureporn/fp.git \
|
|
||||||
# --branch=main \
|
|
||||||
# --username=cj_clippy \
|
|
||||||
# --token-auth=true \
|
|
||||||
# --path=clusters/staging
|
|
||||||
|
|
||||||
|
|
||||||
## this way is more automatic although it does ask for yes/no confirmation that the ssh key has repo access
|
|
||||||
flux bootstrap git \
|
|
||||||
--url="ssh://git@gitea.futureporn.net:2222/futureporn/fp" \
|
|
||||||
--branch=main \
|
|
||||||
--path="clusters/staging" \
|
|
||||||
--private-key-file=/home/cj/.ssh/fp-flux
|
|
|
@ -1,5 +1,9 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ -z "$(ENV)" ]; then \
|
||||||
|
echo "Error: ENV variable is not defined. Please set to one of development|staging|production"; exit 1; \
|
||||||
|
fi
|
||||||
|
|
||||||
## this way is annoying because deployment asks for git password
|
## this way is annoying because deployment asks for git password
|
||||||
# flux bootstrap git \
|
# flux bootstrap git \
|
||||||
# --kubeconfig /home/cj/.kube/vke.yaml \
|
# --kubeconfig /home/cj/.kube/vke.yaml \
|
||||||
|
@ -11,7 +15,8 @@
|
||||||
|
|
||||||
## this way is more automatic although it does ask for yes/no confirmation that the ssh key has repo access
|
## this way is more automatic although it does ask for yes/no confirmation that the ssh key has repo access
|
||||||
flux bootstrap git \
|
flux bootstrap git \
|
||||||
|
--yes \
|
||||||
--url="ssh://git@gitea.futureporn.net:2222/futureporn/fp" \
|
--url="ssh://git@gitea.futureporn.net:2222/futureporn/fp" \
|
||||||
--branch=main \
|
--branch=main \
|
||||||
--path="clusters/production" \
|
--path="clusters/$ENV" \
|
||||||
--private-key-file=/home/cj/.ssh/fp-flux
|
--private-key-file=/home/cj/.ssh/fp-flux
|
|
@ -1,7 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
source .env
|
|
||||||
|
|
||||||
kubectl create namespace cert-manager
|
kubectl create namespace cert-manager
|
||||||
kubectl create namespace futureporn
|
kubectl create namespace futureporn
|
||||||
kubectl create namespace velero
|
kubectl create namespace velero
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
source .env
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
kubectl --namespace=velero delete secret velero --ignore-not-found
|
kubectl --namespace=velero delete secret velero --ignore-not-found
|
||||||
## we do this so helm can adopt our pre-made secret @see https://github.com/helm/helm/pull/7649
|
## we do this so helm can adopt our pre-made secret @see https://github.com/helm/helm/pull/7649
|
||||||
|
@ -23,6 +20,11 @@ data:
|
||||||
aws_secret_access_key: $(echo -n $VELERO_S3_ACCESS_KEY | base64)
|
aws_secret_access_key: $(echo -n $VELERO_S3_ACCESS_KEY | base64)
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
# kubectl --namespace futureporn delete secret traefik --ignore-not-found
|
||||||
|
# kubectl --namespace futureporn create secret generic traefik \
|
||||||
|
# --from-literal=username=${TRAEFIK_USERNAME} \
|
||||||
|
# --from-literal=password=${TRAEFIK_PASSWORD}
|
||||||
|
|
||||||
kubectl --namespace futureporn delete secret exoscale --ignore-not-found
|
kubectl --namespace futureporn delete secret exoscale --ignore-not-found
|
||||||
kubectl --namespace futureporn create secret generic exoscale \
|
kubectl --namespace futureporn create secret generic exoscale \
|
||||||
--from-literal=apiKey=${EXOSCALE_API_KEY} \
|
--from-literal=apiKey=${EXOSCALE_API_KEY} \
|
||||||
|
|
231
t.wip.tiltfile
231
t.wip.tiltfile
|
@ -1,12 +1,16 @@
|
||||||
# Tiltfile for working with Next and Strapi locally
|
# Tiltfile for working with Next and Strapi locally
|
||||||
|
|
||||||
|
## cert-manager slows down Tilt updates so I prefer to keep it commented unless I specifically need to test certs
|
||||||
# load('ext://cert_manager', 'deploy_cert_manager')
|
# load('ext://cert_manager', 'deploy_cert_manager')
|
||||||
# deploy_cert_manager()
|
# deploy_cert_manager(
|
||||||
load('ext://dotenv', 'dotenv')
|
# load_to_kind=True,
|
||||||
dotenv(fn='.env')
|
# # registry='localhost:5001'
|
||||||
|
# )
|
||||||
|
|
||||||
default_registry('localhost:5001')
|
default_registry('localhost:5001')
|
||||||
load('ext://helm_remote', 'helm_remote')
|
load('ext://helm_remote', 'helm_remote')
|
||||||
|
# load('ext://dotenv', 'dotenv')
|
||||||
|
# dotenv(fn='.env')
|
||||||
|
|
||||||
# allow_k8s_contexts('vke-e41885d3-7f93-4f01-bfaa-426f20bf9f3f')
|
# allow_k8s_contexts('vke-e41885d3-7f93-4f01-bfaa-426f20bf9f3f')
|
||||||
|
|
||||||
|
@ -41,34 +45,23 @@ load('ext://helm_remote', 'helm_remote')
|
||||||
# )
|
# )
|
||||||
|
|
||||||
helm_remote(
|
helm_remote(
|
||||||
'temporal',
|
'traefik',
|
||||||
repo_name='temporal',
|
repo_name='traefik',
|
||||||
repo_url='https://charts.lemontech.engineering',
|
repo_url='https://traefik.github.io/charts',
|
||||||
namespace='futureporn',
|
namespace='futureporn',
|
||||||
version='0.37.0',
|
version='28.3.0',
|
||||||
set=[
|
set=[
|
||||||
'admintools.image.tag=1.24.1-tctl-1.18.1-cli-0.12.0',
|
'globalArguments[0]=--global.sendanonymoususage=false',
|
||||||
'web.image.tag=2.27.2',
|
'globalArguments[1]=--certificatesresolvers.le.acme.email=cj@futureporn.net',
|
||||||
'prometheus.enabled=false',
|
'globalArguments[2]=--certificatesresolvers.le.acme.storage=/data/acme.json',
|
||||||
'grafana.enabled=false',
|
'globalArguments[3]=--certificatesresolvers.le.acme.tlschallenge=true',
|
||||||
'elasticsearch.enabled=false',
|
'globalArguments[4]=--certificatesresolvers.le.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory',
|
||||||
'web.config.auth.enabled=true',
|
'service.enabled=false',
|
||||||
'cassandra.enabled=false',
|
'logs.access.enabled=true'
|
||||||
'server.config.persistence.default.driver=sql',
|
|
||||||
'server.config.persistence.default.sql.driver=postgres12',
|
|
||||||
'server.config.persistence.default.sql.host=%s' % os.getenv('POSTGRES_HOST'),
|
|
||||||
'server.config.persistence.default.sql.port=5432',
|
|
||||||
'server.config.persistence.default.sql.user=%s' % os.getenv('POSTGRES_USER'),
|
|
||||||
'server.config.persistence.default.sql.password=%s' % os.getenv('POSTGRES_PASSWORD'),
|
|
||||||
'server.config.persistence.visibility.driver=sql',
|
|
||||||
'server.config.persistence.visibility.sql.driver=postgres12',
|
|
||||||
'server.config.persistence.visibility.sql.host=%s' % os.getenv('POSTGRES_HOST'),
|
|
||||||
'server.config.persistence.visibility.sql.port=5432',
|
|
||||||
'server.config.persistence.visibility.sql.user=%s' % os.getenv('POSTGRES_USER'),
|
|
||||||
'server.config.persistence.visibility.sql.password=%s' % os.getenv('POSTGRES_PASSWORD'),
|
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# helm_remote(
|
# helm_remote(
|
||||||
# 'nitter',
|
# 'nitter',
|
||||||
# repo_name='truecharts',
|
# repo_name='truecharts',
|
||||||
|
@ -206,7 +199,7 @@ docker_build(
|
||||||
dockerfile='d.next.dockerfile',
|
dockerfile='d.next.dockerfile',
|
||||||
target='dev',
|
target='dev',
|
||||||
build_args={
|
build_args={
|
||||||
'NEXT_PUBLIC_STRAPI_URL': 'https://strapi.piko.sbtp.xyz'
|
'NEXT_PUBLIC_STRAPI_URL': 'https://strapi.fp.sbtp.xyz'
|
||||||
},
|
},
|
||||||
live_update=[
|
live_update=[
|
||||||
sync('./packages/next', '/app')
|
sync('./packages/next', '/app')
|
||||||
|
@ -260,15 +253,15 @@ docker_build(
|
||||||
# workload='frp-operator-controller-manager',
|
# workload='frp-operator-controller-manager',
|
||||||
# labels='tunnel'
|
# labels='tunnel'
|
||||||
# )
|
# )
|
||||||
# k8s_resource(
|
k8s_resource(
|
||||||
# workload='echo-deployment',
|
workload='echo',
|
||||||
# port_forwards=['8080'],
|
port_forwards=['8080'],
|
||||||
# links=[
|
links=[
|
||||||
# link('https://echo.piko.sbtp.xyz'),
|
link('https://echo.fp.sbtp.xyz'),
|
||||||
# link('http://echo.futureporn.svc.cluster.local:8080')
|
link('http://echo.futureporn.svc.cluster.local:8001')
|
||||||
# ],
|
],
|
||||||
# labels='debug'
|
labels='debug'
|
||||||
# )
|
)
|
||||||
# k8s_resource(
|
# k8s_resource(
|
||||||
# workload='snake',
|
# workload='snake',
|
||||||
# port_forwards=['8080'],
|
# port_forwards=['8080'],
|
||||||
|
@ -284,7 +277,7 @@ k8s_resource(
|
||||||
workload='next',
|
workload='next',
|
||||||
port_forwards=['3000'],
|
port_forwards=['3000'],
|
||||||
links=[
|
links=[
|
||||||
link('https://next.piko.sbtp.xyz'),
|
link('https://next.fp.sbtp.xyz'),
|
||||||
],
|
],
|
||||||
resource_deps=['strapi', 'postgres']
|
resource_deps=['strapi', 'postgres']
|
||||||
)
|
)
|
||||||
|
@ -293,29 +286,25 @@ k8s_resource(
|
||||||
port_forwards=['1339'],
|
port_forwards=['1339'],
|
||||||
links=[
|
links=[
|
||||||
link('http://localhost:1339/admin'),
|
link('http://localhost:1339/admin'),
|
||||||
link('https://strapi.piko.sbtp.xyz'),
|
link('https://strapi.fp.sbtp.xyz'),
|
||||||
],
|
],
|
||||||
resource_deps=['postgres']
|
resource_deps=['postgres']
|
||||||
)
|
)
|
||||||
# k8s_resource(
|
|
||||||
# workload='strapi-app',
|
|
||||||
# port_forwards=['1338']
|
|
||||||
# )
|
|
||||||
|
|
||||||
k8s_resource(
|
k8s_resource(
|
||||||
workload='postgres',
|
workload='postgres',
|
||||||
port_forwards=['5432']
|
port_forwards=['5432']
|
||||||
)
|
)
|
||||||
|
|
||||||
k8s_resource(
|
# k8s_resource(
|
||||||
workload='scout-worker',
|
# workload='scout-worker',
|
||||||
resource_deps=['postgres', 'strapi', 'temporal-frontend', 'scout-manager']
|
# resource_deps=['postgres', 'strapi', 'temporal-frontend', 'scout-manager']
|
||||||
)
|
# )
|
||||||
|
|
||||||
k8s_resource(
|
# k8s_resource(
|
||||||
workload='scout-manager',
|
# workload='scout-manager',
|
||||||
resource_deps=['postgres', 'strapi', 'temporal-frontend']
|
# resource_deps=['postgres', 'strapi', 'temporal-frontend']
|
||||||
)
|
# )
|
||||||
|
|
||||||
# k8s_resource(
|
# k8s_resource(
|
||||||
# workload='pgadmin',
|
# workload='pgadmin',
|
||||||
|
@ -329,59 +318,87 @@ k8s_resource(
|
||||||
# )
|
# )
|
||||||
|
|
||||||
|
|
||||||
k8s_resource(
|
# helm_remote(
|
||||||
workload='temporal-admintools',
|
# 'temporal',
|
||||||
labels='temporal',
|
# repo_name='temporal',
|
||||||
resource_deps=[
|
# repo_url='https://charts.lemontech.engineering',
|
||||||
'postgres',
|
# namespace='futureporn',
|
||||||
'strapi'
|
# version='0.37.0',
|
||||||
])
|
# set=[
|
||||||
k8s_resource(
|
# 'admintools.image.tag=1.24.1-tctl-1.18.1-cli-0.12.0',
|
||||||
workload='temporal-frontend',
|
# 'web.image.tag=2.27.2',
|
||||||
labels='temporal', port_forwards=['7233'],
|
# 'prometheus.enabled=false',
|
||||||
resource_deps=[
|
# 'grafana.enabled=false',
|
||||||
'postgres',
|
# 'elasticsearch.enabled=false',
|
||||||
'strapi'
|
# 'web.config.auth.enabled=true',
|
||||||
])
|
# 'cassandra.enabled=false',
|
||||||
k8s_resource(
|
# 'server.config.persistence.default.driver=sql',
|
||||||
workload='temporal-history',
|
# 'server.config.persistence.default.sql.driver=postgres12',
|
||||||
labels='temporal',
|
# 'server.config.persistence.default.sql.host=%s' % os.getenv('POSTGRES_HOST'),
|
||||||
resource_deps=[
|
# 'server.config.persistence.default.sql.port=5432',
|
||||||
'postgres',
|
# 'server.config.persistence.default.sql.user=%s' % os.getenv('POSTGRES_USER'),
|
||||||
'strapi'
|
# 'server.config.persistence.default.sql.password=%s' % os.getenv('POSTGRES_PASSWORD'),
|
||||||
])
|
# 'server.config.persistence.visibility.driver=sql',
|
||||||
k8s_resource(
|
# 'server.config.persistence.visibility.sql.driver=postgres12',
|
||||||
workload='temporal-worker',
|
# 'server.config.persistence.visibility.sql.host=%s' % os.getenv('POSTGRES_HOST'),
|
||||||
labels='temporal',
|
# 'server.config.persistence.visibility.sql.port=5432',
|
||||||
resource_deps=[
|
# 'server.config.persistence.visibility.sql.user=%s' % os.getenv('POSTGRES_USER'),
|
||||||
'postgres',
|
# 'server.config.persistence.visibility.sql.password=%s' % os.getenv('POSTGRES_PASSWORD'),
|
||||||
'strapi'
|
# ]
|
||||||
])
|
# )
|
||||||
k8s_resource(
|
# k8s_resource(
|
||||||
workload='temporal-web',
|
# workload='temporal-admintools',
|
||||||
labels='temporal', port_forwards=['8080'],
|
# labels='temporal',
|
||||||
resource_deps=[
|
# resource_deps=[
|
||||||
'postgres',
|
# 'postgres',
|
||||||
'strapi'
|
# 'strapi'
|
||||||
])
|
# ])
|
||||||
k8s_resource(
|
# k8s_resource(
|
||||||
workload='temporal-schema-setup',
|
# workload='temporal-frontend',
|
||||||
labels='temporal',
|
# labels='temporal', port_forwards=['7233'],
|
||||||
resource_deps=[
|
# resource_deps=[
|
||||||
'postgres',
|
# 'postgres',
|
||||||
'strapi'
|
# 'strapi'
|
||||||
])
|
# ])
|
||||||
k8s_resource(
|
# k8s_resource(
|
||||||
workload='temporal-schema-update',
|
# workload='temporal-history',
|
||||||
labels='temporal',
|
# labels='temporal',
|
||||||
resource_deps=[
|
# resource_deps=[
|
||||||
'postgres',
|
# 'postgres',
|
||||||
'strapi'
|
# 'strapi'
|
||||||
])
|
# ])
|
||||||
k8s_resource(
|
# k8s_resource(
|
||||||
workload='temporal-matching',
|
# workload='temporal-worker',
|
||||||
labels='temporal',
|
# labels='temporal',
|
||||||
resource_deps=[
|
# resource_deps=[
|
||||||
'postgres',
|
# 'postgres',
|
||||||
'strapi'
|
# 'strapi'
|
||||||
])
|
# ])
|
||||||
|
# k8s_resource(
|
||||||
|
# workload='temporal-web',
|
||||||
|
# labels='temporal', port_forwards=['8080'],
|
||||||
|
# resource_deps=[
|
||||||
|
# 'postgres',
|
||||||
|
# 'strapi'
|
||||||
|
# ])
|
||||||
|
# k8s_resource(
|
||||||
|
# workload='temporal-schema-setup',
|
||||||
|
# labels='temporal',
|
||||||
|
# resource_deps=[
|
||||||
|
# 'postgres',
|
||||||
|
# 'strapi'
|
||||||
|
# ])
|
||||||
|
# k8s_resource(
|
||||||
|
# workload='temporal-schema-update',
|
||||||
|
# labels='temporal',
|
||||||
|
# resource_deps=[
|
||||||
|
# 'postgres',
|
||||||
|
# 'strapi'
|
||||||
|
# ])
|
||||||
|
# k8s_resource(
|
||||||
|
# workload='temporal-matching',
|
||||||
|
# labels='temporal',
|
||||||
|
# resource_deps=[
|
||||||
|
# 'postgres',
|
||||||
|
# 'strapi'
|
||||||
|
# ])
|
||||||
|
|
Loading…
Reference in New Issue