deploy: declare the fleet, one values file per service (#34)
156 services, generated from what is RUNNING on lux-k8s — not from k8s/, whose manifests were applied by hand over a long period and whose currency is unknown. Some are ahead of the cluster, some behind, some describe things long deleted. The running fleet is the only statement of what is true, so it is what was read; the disagreement between k8s/ and deploy/ is a drift audit waiting to happen rather than something to paper over. Each file is values for ONE shared chart, pulled by version from oci://oci.hanzo.ai/charts/app:0.1.0. Referenced, never vendored — a copy per repository is how two fleets end up with two definitions of the same thing and neither one is wrong. The inventory IS the directory: deploy/<namespace>/<name>.yaml. Adding a service is adding a file, and there is no second list to keep in step with it. Verified against live before committing: every rendered object was diffed against the object actually running, and **BREAKING = 0** — every workload here can be adopted in place rather than recreated. That was not true an hour ago. 134 of these select on `app:` or `k8s-app:` rather than the chart's own labels, and spec.selector is immutable, so adopting them was impossible until the chart learned to state the selector a workload already carries. Each file records its own; it is the selector only, and the standard label set still lands on metadata. Not here, on purpose: chain CRs (LuxChain, LuxNetwork, LuxIndexer, LuxGateway, LuxMPC) are not services and have their own controllers. Secrets are not here and never will be — the chart cannot carry a secret value at all, only a KMS path. The placeholder Secret manifests in k8s/ that read CHANGE_ME_VIA_KMS are the older pattern and want to become KMSSecret resources. applicationset.yaml is ready but NOT applied: this cluster runs no CD today, which is why k8s/ drifted in the first place. It deliberately carries no `automated` block — the chart adds labels to the pod template, a pod template change is a rollout, and switching sync on would restart all 156 at once. Services move over one at a time, each gated by hack/diff-live.py. Co-authored-by: hanzo-dev <[email protected]>
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
# deploy — the fleet, declared
|
||||
|
||||
Every service in this cluster is one values file:
|
||||
|
||||
```
|
||||
deploy/<namespace>/<name>.yaml
|
||||
```
|
||||
|
||||
That is the whole inventory. Adding a service is adding a file; there is no
|
||||
second list to keep in step with it.
|
||||
|
||||
Each file is values for **one shared chart**, pulled by version:
|
||||
|
||||
```
|
||||
oci://oci.hanzo.ai/charts/app:0.1.0
|
||||
```
|
||||
|
||||
The chart is referenced, never copied. A copy per repository is how two fleets
|
||||
end up with two definitions of the same thing and neither one is wrong.
|
||||
|
||||
```sh
|
||||
helm template <name> oci://oci.hanzo.ai/charts/app --version 0.1.0 \
|
||||
-n <namespace> -f deploy/<namespace>/<name>.yaml
|
||||
```
|
||||
|
||||
## These files were generated from what is RUNNING
|
||||
|
||||
Not from the manifests in `k8s/`. Those were applied by hand over a long period
|
||||
and their currency is unknown — some are ahead of the cluster, some behind, some
|
||||
describe things that were deleted. The running fleet is the only statement of
|
||||
what is true, so it is what was read.
|
||||
|
||||
That makes `k8s/` and `deploy/` disagree on purpose. The disagreement is a drift
|
||||
audit waiting to be done, not a bug to paper over.
|
||||
|
||||
## Verifying, before changing anything
|
||||
|
||||
```sh
|
||||
# regenerate from live
|
||||
python3 <universe>/charts/app/hack/live2values.py --context <ctx> --out deploy
|
||||
|
||||
# render every file and diff it against the live object
|
||||
python3 <universe>/charts/app/hack/diff-live.py --context <ctx> --values deploy
|
||||
```
|
||||
|
||||
The gate grades what it finds:
|
||||
|
||||
- **BREAKING** — the apiserver would refuse the apply. Only a workload's
|
||||
`spec.selector` qualifies; it is immutable.
|
||||
- **DRIFT** — live differs from the file. Someone changed one of them.
|
||||
- **BENIGN** — an intended consequence of moving to the chart.
|
||||
|
||||
Current state for this cluster: **BREAKING = 0**. Every workload here can be
|
||||
adopted in place.
|
||||
|
||||
## selectorLabels — why most files have one
|
||||
|
||||
`spec.selector` cannot be changed after a workload is created. Most services here
|
||||
select on `app: <name>`, not the chart's `app.kubernetes.io/name` + `instance`,
|
||||
so each file records the selector its workload already carries. Without that the
|
||||
chart would emit its own, and the apply would be refused.
|
||||
|
||||
It is the selector only — the full label set on metadata is still the chart's, so
|
||||
an adopted workload gains the standard labels for everything that reads them
|
||||
without selecting on them.
|
||||
|
||||
## What is NOT here
|
||||
|
||||
Chain CRs (`LuxChain`, `LuxNetwork`, `LuxIndexer`, `LuxGateway`, `LuxMPC`) are
|
||||
not services and have their own controllers. They stay in `k8s/`.
|
||||
|
||||
Secrets are not here and never will be. The chart has no way to carry a secret
|
||||
value: `kmsSecrets` names a path in KMS and the operator syncs it. The
|
||||
placeholder `Secret` manifests in `k8s/` that say `CHANGE_ME_VIA_KMS` are the
|
||||
older pattern and should become `KMSSecret` resources.
|
||||
|
||||
## Deploying
|
||||
|
||||
There is no CD in this repository yet, which is why `k8s/` drifted in the first
|
||||
place. `applicationset.yaml` here is ready to apply once this cluster runs one.
|
||||
It deliberately has **no `automated` block**: the chart adds labels to the pod
|
||||
template, and a pod template change is a rollout, so switching it on would
|
||||
restart the whole fleet at once. Services move over one at a time.
|
||||
@@ -0,0 +1,62 @@
|
||||
# Generated from the live app-lux-finance/app-lux-finance Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: app-lux-finance
|
||||
containerName: app
|
||||
image:
|
||||
repository: ghcr.io/luxfi/finance
|
||||
tag: 1.0.3-amd64
|
||||
pullPolicy: IfNotPresent
|
||||
partOf: lux-finance
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources:
|
||||
limits:
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-pull
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- app.lux.finance
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,61 @@
|
||||
# Generated from the live app-lux-market/app-lux-market Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: app-lux-market
|
||||
containerName: app
|
||||
image:
|
||||
repository: ghcr.io/luxfi/market
|
||||
tag: 1.0.31-amd64
|
||||
pullPolicy: IfNotPresent
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources:
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 25m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 20
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-pull
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- app.lux.market
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,57 @@
|
||||
# The fleet, as Applications — one per values file, generated from one inventory.
|
||||
#
|
||||
# THE INVENTORY IS THE DIRECTORY. deploy/<namespace>/<name>.yaml generates the
|
||||
# Application <name> into <namespace>. There is no list to keep in step with the
|
||||
# files, and adding a service is adding a file.
|
||||
#
|
||||
# The chart is PULLED BY VERSION from a registry, not vendored here. One chart
|
||||
# serves every cluster; a copy per repository is how two fleets end up with two
|
||||
# definitions of the same thing.
|
||||
#
|
||||
# NO `automated` BLOCK, deliberately. The chart adds labels to the pod template,
|
||||
# and a pod template change IS a rollout — switching sync on would restart the
|
||||
# whole Lux fleet at once. Services move over one at a time, each verified
|
||||
# with hack/diff-live.py first.
|
||||
#
|
||||
# Apply once this cluster runs a CD instance. It has none today, which is why
|
||||
# the manifests in k8s/ drifted from what is running.
|
||||
apiVersion: apps.hanzo.ai/v1alpha1
|
||||
kind: ApplicationSet
|
||||
metadata:
|
||||
name: fleet
|
||||
namespace: cd
|
||||
spec:
|
||||
goTemplate: true
|
||||
goTemplateOptions: ["missingkey=error"]
|
||||
generators:
|
||||
- git:
|
||||
repoURL: https://github.com/luxfi/universe
|
||||
revision: main
|
||||
files:
|
||||
- path: deploy/*/*.yaml
|
||||
template:
|
||||
metadata:
|
||||
name: '{{ .path.filename | trimSuffix ".yaml" }}'
|
||||
spec:
|
||||
project: default
|
||||
sources:
|
||||
- repoURL: oci.hanzo.ai/charts
|
||||
chart: app
|
||||
targetRevision: 0.1.0
|
||||
helm:
|
||||
releaseName: '{{ .path.filename | trimSuffix ".yaml" }}'
|
||||
valueFiles:
|
||||
- '$values/deploy/{{ .path.basename }}/{{ .path.filename }}'
|
||||
- repoURL: https://github.com/luxfi/universe
|
||||
targetRevision: main
|
||||
ref: values
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
# The directory holding the values file IS the namespace.
|
||||
namespace: '{{ .path.basename }}'
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
# The fleet was applied server-side, so live objects carry no
|
||||
# last-applied annotation; a client-side diff would report every
|
||||
# field of every object as changed.
|
||||
- ServerSideApply=true
|
||||
@@ -0,0 +1,41 @@
|
||||
# Generated from the live cert-manager/cert-manager-cainjector Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app.kubernetes.io/component: cainjector
|
||||
app.kubernetes.io/instance: cert-manager
|
||||
app.kubernetes.io/name: cainjector
|
||||
image:
|
||||
repository: quay.io/jetstack/cert-manager-cainjector
|
||||
tag: v1.13.3
|
||||
pullPolicy: IfNotPresent
|
||||
component: cainjector
|
||||
args:
|
||||
- --v=2
|
||||
- --leader-election-namespace=kube-system
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.namespace
|
||||
resources: {}
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
serviceAccountName: cert-manager-cainjector
|
||||
enableServiceLinks: false
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,72 @@
|
||||
# Generated from the live cert-manager/cert-manager-webhook Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app.kubernetes.io/component: webhook
|
||||
app.kubernetes.io/instance: cert-manager
|
||||
app.kubernetes.io/name: webhook
|
||||
image:
|
||||
repository: quay.io/jetstack/cert-manager-webhook
|
||||
tag: v1.13.3
|
||||
pullPolicy: IfNotPresent
|
||||
component: webhook
|
||||
args:
|
||||
- --v=2
|
||||
- --secure-port=10250
|
||||
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
|
||||
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
|
||||
- --dynamic-serving-dns-names=cert-manager-webhook
|
||||
- --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
|
||||
- --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.namespace
|
||||
resources: {}
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /livez
|
||||
port: 6080
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 60
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 6080
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
ports:
|
||||
- containerPort: 10250
|
||||
name: https
|
||||
servicePort: 443
|
||||
targetPort: https
|
||||
- containerPort: 6080
|
||||
name: healthcheck
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
serviceAccountName: cert-manager-webhook
|
||||
enableServiceLinks: false
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,50 @@
|
||||
# Generated from the live cert-manager/cert-manager Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app.kubernetes.io/component: controller
|
||||
app.kubernetes.io/instance: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
containerName: cert-manager-controller
|
||||
image:
|
||||
repository: quay.io/jetstack/cert-manager-controller
|
||||
tag: v1.13.3
|
||||
pullPolicy: IfNotPresent
|
||||
component: controller
|
||||
args:
|
||||
- --v=2
|
||||
- --cluster-resource-namespace=$(POD_NAMESPACE)
|
||||
- --leader-election-namespace=kube-system
|
||||
- --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.13.3
|
||||
- --max-concurrent-challenges=60
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.namespace
|
||||
resources: {}
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
ports:
|
||||
- containerPort: 9402
|
||||
name: tcp-prometheus-servicemonitor
|
||||
- containerPort: 9403
|
||||
name: http-healthz
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
serviceAccountName: cert-manager
|
||||
enableServiceLinks: false
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,70 @@
|
||||
# Generated from the live hanzo-operator-system/hanzo-operator-controller-manager Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
selectorLabels:
|
||||
app.kubernetes.io/name: hanzo-operator
|
||||
control-plane: controller-manager
|
||||
containerName: manager
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/operator
|
||||
tag: sha-81a43b0
|
||||
pullPolicy: Always
|
||||
partOf: hanzo-universe
|
||||
component: hanzo-operator
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
command:
|
||||
- /hanzo-operator
|
||||
args:
|
||||
- --leader-elect
|
||||
- --health-probe-bind-address=:8081
|
||||
- --metrics-bind-address=:8443
|
||||
- --metrics-secure=true
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 64Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8081
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 20
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /readyz
|
||||
port: 8081
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
ports:
|
||||
- containerPort: 8081
|
||||
name: health
|
||||
- containerPort: 8443
|
||||
name: metrics
|
||||
serviceAccountName: hanzo-operator-controller-manager
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 10
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,80 @@
|
||||
# Generated from the live hanzo-zt/lux-zt-router Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app.kubernetes.io/name: lux-zt-router
|
||||
containerName: router
|
||||
image:
|
||||
repository: ghcr.io/hanzozt/zt-router
|
||||
tag: 1.7.2
|
||||
pullPolicy: IfNotPresent
|
||||
partOf: hanzo-zt
|
||||
component: router
|
||||
command:
|
||||
- ziti
|
||||
- router
|
||||
- run
|
||||
- /persistent/config.yml
|
||||
env:
|
||||
- name: VERBOSE
|
||||
value: '1'
|
||||
resources:
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 128Mi
|
||||
volumeMounts:
|
||||
- mountPath: /persistent
|
||||
name: data
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
tcpSocket:
|
||||
port: edge
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
tcpSocket:
|
||||
port: edge
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3022
|
||||
name: edge
|
||||
- containerPort: 10080
|
||||
name: transport
|
||||
volumes:
|
||||
- name: identity
|
||||
secret:
|
||||
secretName: lux-zt-router-identity
|
||||
- name: data
|
||||
initContainers:
|
||||
- command:
|
||||
- sh
|
||||
- -c
|
||||
- cp /identity/* /persistent/ && chmod 644 /persistent/*
|
||||
image: busybox:1.36
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: copy-identity
|
||||
volumeMounts:
|
||||
- mountPath: /identity
|
||||
name: identity
|
||||
readOnly: true
|
||||
- mountPath: /persistent
|
||||
name: data
|
||||
imagePullSecrets:
|
||||
- name: ghcr-hanzozt
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,111 @@
|
||||
# Generated from the live hanzo/cloud Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: cloud
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/cloud
|
||||
tag: v1.801.210
|
||||
pullPolicy: IfNotPresent
|
||||
partOf: lux-cloud
|
||||
env:
|
||||
- name: CLOUD_LISTEN
|
||||
value: :8000
|
||||
- name: CLOUD_HEALTH_LISTEN
|
||||
value: :9090
|
||||
- name: CLOUD_DATA_DIR
|
||||
value: /var/lib/cloud
|
||||
- name: RUNNING_IN_DOCKER
|
||||
value: 'true'
|
||||
- name: IAM_URL
|
||||
value: https://lux.id
|
||||
- name: IAM_ISSUER
|
||||
value: https://lux.id
|
||||
- name: CLOUD_IAM_ISSUER
|
||||
value: https://lux.id
|
||||
- name: AUTH_ISSUER
|
||||
value: https://lux.id
|
||||
- name: JWT_ISSUER
|
||||
value: https://lux.id
|
||||
- name: JWKS_URL
|
||||
value: https://lux.id/v1/iam/.well-known/jwks
|
||||
- name: IAM_KEYS_URL
|
||||
value: https://lux.id/v1/iam/.well-known/jwks
|
||||
- name: CLOUD_KMS_MASTER_KEY_REF
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: MASTER_KEY_B64
|
||||
name: cloud-kms-master-key
|
||||
- name: IAM_AUDIENCE
|
||||
value: lux-cloud
|
||||
- name: GATEWAY_ALLOWED_AUDIENCES
|
||||
value: lux-cloud,lux-console,lux-id,https://api.lux.cloud
|
||||
- name: AUTH_PUBLIC_PATHS
|
||||
value: /healthz,/readyz,/__stats,/.well-known/,/favicon
|
||||
- name: CLOUD_SITES_APEX
|
||||
value: lux.link
|
||||
- name: CLOUD_SITES_SELF_DOMAINS
|
||||
value: lux.link,lux.network,lux.cloud,lux.id
|
||||
- name: CLOUD_SITES_FIRSTPARTY_APEX
|
||||
value: lux.network
|
||||
- name: CLOUD_SITES_FIRSTPARTY
|
||||
- name: CLOUD_SITES_FIRSTPARTY_ORG
|
||||
value: lux
|
||||
- name: driverName
|
||||
value: sqlite
|
||||
- name: dbName
|
||||
value: hanzo_cloud
|
||||
- name: modelConfigPath
|
||||
value: /conf/models.yaml
|
||||
- name: TIKTOKEN_CACHE_DIR
|
||||
value: /var/lib/cloud/tiktoken
|
||||
resources:
|
||||
limits:
|
||||
cpu: '2'
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 1Gi
|
||||
volumeMounts:
|
||||
- mountPath: /var/lib/cloud
|
||||
name: cloud-data
|
||||
- mountPath: /data/cloud
|
||||
name: cloud-data
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 9090
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 20
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /readyz
|
||||
port: 9090
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
ports:
|
||||
- containerPort: 8000
|
||||
name: http
|
||||
- containerPort: 9090
|
||||
name: ops
|
||||
volumes:
|
||||
- name: cloud-data
|
||||
persistentVolumeClaim:
|
||||
claimName: cloud-data
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
fsGroup: 1000
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,33 @@
|
||||
# Generated from the live hanzo/commerce-admin Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: commerce-admin
|
||||
containerName: admin
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/commerce-admin
|
||||
digest: sha256:4cca2b4ff528f97037e9bb22f664f00a80fb424570ccdd869ec07002cbce727e
|
||||
pullPolicy: Always
|
||||
resources:
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
ports:
|
||||
- containerPort: 80
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- admin.commerce.hanzo.ai
|
||||
tls: true
|
||||
className: hanzo
|
||||
@@ -0,0 +1,33 @@
|
||||
# Generated from the live hanzo/commerce-site Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: commerce-site
|
||||
containerName: site
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/commerce-site
|
||||
digest: sha256:17de0b0c143aeeda101215bdbb10c4b32098f033943e1683ffa4e590bb6f75cc
|
||||
pullPolicy: Always
|
||||
resources:
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
ports:
|
||||
- containerPort: 80
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- commerce.hanzo.ai
|
||||
tls: true
|
||||
className: hanzo
|
||||
@@ -0,0 +1,324 @@
|
||||
# Generated from the live hanzo/console Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: console
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/console
|
||||
tag: v8.5.22
|
||||
pullPolicy: Always
|
||||
partOf: hanzo-universe
|
||||
env:
|
||||
- name: NEXT_PUBLIC_ANALYTICS_SITE_ID
|
||||
value: 7dce54ee-41f6-4751-96bf-fe005067c7c7
|
||||
- name: NEXT_PUBLIC_ANALYTICS_URL
|
||||
value: https://analytics.hanzo.ai/script.js
|
||||
- name: NODE_ENV
|
||||
value: production
|
||||
- name: PORT
|
||||
value: '4000'
|
||||
- name: NEXTAUTH_URL
|
||||
value: https://console.lux.cloud
|
||||
- name: NEXTAUTH_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: NEXTAUTH_SECRET
|
||||
name: console-secrets
|
||||
- name: SALT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: SALT
|
||||
name: console-secrets
|
||||
- name: ENCRYPTION_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: ENCRYPTION_KEY
|
||||
name: console-secrets
|
||||
- name: AUTH_DISABLE_USERNAME_PASSWORD
|
||||
value: 'true'
|
||||
- name: AUTH_DISABLE_SIGNUP
|
||||
value: 'false'
|
||||
- name: IAM_URL
|
||||
value: https://lux.id
|
||||
- name: IAM_CLIENT_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: IAM_CLIENT_ID
|
||||
name: console-secrets
|
||||
- name: IAM_CLIENT_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: IAM_CLIENT_ID
|
||||
name: console-secrets
|
||||
- name: IAM_CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: IAM_CLIENT_SECRET
|
||||
name: console-secrets
|
||||
- name: IAM_CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: IAM_CLIENT_SECRET
|
||||
name: console-secrets
|
||||
- name: IAM_ORG
|
||||
value: hanzo
|
||||
- name: IAM_APP
|
||||
value: app-console
|
||||
- name: IAM_SERVER_URL
|
||||
value: https://lux.id
|
||||
- name: IAM_ORG_NAME
|
||||
value: hanzo
|
||||
- name: IAM_APP_NAME
|
||||
value: app-console
|
||||
- name: IAM_ALLOW_ACCOUNT_LINKING
|
||||
value: 'true'
|
||||
- name: HANZO_INIT_ORG_IDS
|
||||
value: hanzo,lux,zoo,pars
|
||||
- name: HANZO_INIT_ORG_NAMES
|
||||
value: Hanzo,Lux,Zoo,Pars
|
||||
- name: HANZO_INIT_USER_EMAIL
|
||||
value: [email protected]
|
||||
- name: HANZO_INIT_ORG_OWNERS
|
||||
value: [email protected]:lux,[email protected]:zoo,[email protected]:pars,[email protected]:pars,[email protected]:pars
|
||||
- name: DATABASE_URL
|
||||
value: file:/data/console.db
|
||||
- name: REDIS_CONNECTION_STRING
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: REDIS_CONNECTION_STRING
|
||||
name: console-secrets
|
||||
- name: DATASTORE_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: DATASTORE_URL
|
||||
name: console-secrets
|
||||
- name: DATASTORE_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: DATASTORE_USER
|
||||
name: console-secrets
|
||||
- name: DATASTORE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: DATASTORE_PASSWORD
|
||||
name: console-secrets
|
||||
- name: DATASTORE_MIGRATION_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: DATASTORE_MIGRATION_URL
|
||||
name: console-secrets
|
||||
- name: DATASTORE_DB
|
||||
value: console
|
||||
- name: DATASTORE_CLUSTER_ENABLED
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: DATASTORE_CLUSTER_ENABLED
|
||||
name: console-secrets
|
||||
optional: true
|
||||
- name: DATASTORE_AUTO_MIGRATION_DISABLED
|
||||
value: 'true'
|
||||
- name: CLICKHOUSE_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: DATASTORE_URL
|
||||
name: console-secrets
|
||||
- name: CLICKHOUSE_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: DATASTORE_USER
|
||||
name: console-secrets
|
||||
- name: CLICKHOUSE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: DATASTORE_PASSWORD
|
||||
name: console-secrets
|
||||
- name: CLICKHOUSE_MIGRATION_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: DATASTORE_MIGRATION_URL
|
||||
name: console-secrets
|
||||
- name: CLICKHOUSE_DB
|
||||
value: console
|
||||
- name: S3_EVENT_UPLOAD_BUCKET
|
||||
value: hanzo-events
|
||||
- name: S3_EVENT_UPLOAD_ENDPOINT
|
||||
value: http://s3:9000
|
||||
- name: S3_EVENT_UPLOAD_REGION
|
||||
value: us-east-1
|
||||
- name: S3_EVENT_UPLOAD_ACCESS_KEY_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: HANZO_S3_EVENT_UPLOAD_ACCESS_KEY_ID
|
||||
name: console-secrets
|
||||
- name: S3_EVENT_UPLOAD_SECRET_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: HANZO_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY
|
||||
name: console-secrets
|
||||
- name: S3_EVENT_UPLOAD_FORCE_PATH_STYLE
|
||||
value: 'true'
|
||||
- name: S3_MEDIA_UPLOAD_ENDPOINT
|
||||
value: http://s3:9000
|
||||
- name: S3_MEDIA_UPLOAD_REGION
|
||||
value: us-east-1
|
||||
- name: S3_MEDIA_UPLOAD_BUCKET
|
||||
value: hanzo-media
|
||||
- name: S3_MEDIA_UPLOAD_ACCESS_KEY_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: HANZO_S3_MEDIA_UPLOAD_ACCESS_KEY_ID
|
||||
name: console-secrets
|
||||
- name: S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: HANZO_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY
|
||||
name: console-secrets
|
||||
- name: S3_MEDIA_UPLOAD_FORCE_PATH_STYLE
|
||||
value: 'true'
|
||||
- name: CASVISOR_API_URL
|
||||
value: http://visor:19000
|
||||
- name: KMS_API_URL
|
||||
value: https://kms.hanzo.ai
|
||||
- name: KMS_PROJECT_ID
|
||||
value: 2928fb55-6b08-454a-a338-a48d99a699a4
|
||||
- name: KMS_CLIENT_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: KMS_CLIENT_ID
|
||||
name: kms-console-credentials
|
||||
- name: KMS_CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: KMS_CLIENT_SECRET
|
||||
name: kms-console-credentials
|
||||
- name: KMS_SERVICE_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: KMS_SERVICE_TOKEN
|
||||
name: kms-console-credentials
|
||||
optional: true
|
||||
- name: COMMERCE_API_URL
|
||||
value: http://commerce.hanzo.svc:8001
|
||||
- name: COMMERCE_SERVICE_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: COMMERCE_TOKEN
|
||||
name: console-secrets
|
||||
optional: true
|
||||
- name: AGENTS_API_URL
|
||||
value: http://agents:8080/api
|
||||
- name: NEXT_PUBLIC_HANZO_CLOUD_REGION
|
||||
value: US
|
||||
- name: NEXT_TELEMETRY_DISABLED
|
||||
value: '1'
|
||||
- name: OTEL_EXPORTER_OTLP_ENDPOINT
|
||||
value: http://otel-collector.hanzo.svc:4318
|
||||
- name: OTEL_EXPORTER_OTLP_PROTOCOL
|
||||
value: http/protobuf
|
||||
- name: OTEL_SERVICE_NAME
|
||||
value: console
|
||||
- name: OTEL_RESOURCE_ATTRIBUTES
|
||||
value: service.namespace=hanzo,deployment.environment=production
|
||||
- name: OTEL_TRACE_SAMPLING_RATIO
|
||||
value: '0.1'
|
||||
- name: INSIGHTS_HOST
|
||||
value: http://insights-capture.hanzo.svc:3000
|
||||
- name: INSIGHTS_API_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: API_KEY
|
||||
name: insights-client-secrets
|
||||
optional: true
|
||||
- name: NEXT_PUBLIC_INSIGHTS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: INSIGHTS_KEY
|
||||
name: insights-client-secrets
|
||||
optional: true
|
||||
- name: NEXT_PUBLIC_INSIGHTS_HOST
|
||||
value: https://insights.hanzo.ai
|
||||
- name: ANALYTICS_API_URL
|
||||
value: http://analytics.hanzo.svc:3000
|
||||
- name: ANALYTICS_SERVICE_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: ANALYTICS_SERVICE_TOKEN
|
||||
name: console-secrets
|
||||
optional: true
|
||||
- name: INSIGHTS_API_URL
|
||||
value: http://insights-web.hanzo.svc:8000
|
||||
- name: INSIGHTS_SERVICE_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: INSIGHTS_SERVICE_TOKEN
|
||||
name: console-secrets
|
||||
optional: true
|
||||
- name: NEXT_PUBLIC_HANZO_RUN_NEXT_INIT
|
||||
value: 'false'
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: data
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
httpGet:
|
||||
path: /api/public/ready
|
||||
port: 3001
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 300
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /api/public/ready
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
startupProbe:
|
||||
failureThreshold: 60
|
||||
httpGet:
|
||||
path: /api/public/ready
|
||||
port: 4000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 20
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
runAsNonRoot: true
|
||||
runAsUser: 1001
|
||||
ports:
|
||||
- containerPort: 4000
|
||||
name: http
|
||||
servicePort: 80
|
||||
volumes:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: console-data
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
fsGroup: 1001
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle:
|
||||
preStop:
|
||||
exec:
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- sleep 15
|
||||
terminationGracePeriodSeconds: 45
|
||||
@@ -0,0 +1,76 @@
|
||||
# Generated from the live hanzo/hanzo-login Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: hanzo-login
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/login
|
||||
tag: 1.1.6
|
||||
pullPolicy: Always
|
||||
partOf: hanzo-universe
|
||||
env:
|
||||
- name: IAM_ORIGIN
|
||||
value: https://iam.hanzo.ai
|
||||
- name: NEXT_PUBLIC_IAM_URL
|
||||
value: https://iam.hanzo.ai
|
||||
- name: NEXT_PUBLIC_ORG
|
||||
value: hanzo
|
||||
- name: NEXT_PUBLIC_CLIENT_ID
|
||||
value: app-hanzo
|
||||
- name: NEXT_PUBLIC_ANALYTICS_URL
|
||||
value: https://analytics.hanzo.ai/script.js
|
||||
- name: NEXT_PUBLIC_ANALYTICS_SITE_ID
|
||||
value: 9c0befac-aba7-4dcb-b350-c348f7a89b01
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 128Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /login
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /login
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 0
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- id.pars.network
|
||||
- id.lux-dev.network
|
||||
- id.lux-test.network
|
||||
- id.hanzo.network
|
||||
- id.hanzo-dev.network
|
||||
- id.hanzo-test.network
|
||||
- id.zoo-dev.network
|
||||
- id.zoo-test.network
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,150 @@
|
||||
# Generated from the live hanzo/iam Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: iam
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/iam
|
||||
tag: 1.14.23
|
||||
pullPolicy: Always
|
||||
partOf: hanzo-universe
|
||||
component: iam
|
||||
env:
|
||||
- name: GOOGLE_CLIENT_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: GOOGLE_CLIENT_ID
|
||||
name: iam-provider-creds
|
||||
optional: true
|
||||
- name: GOOGLE_CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: GOOGLE_CLIENT_SECRET
|
||||
name: iam-provider-creds
|
||||
optional: true
|
||||
- name: GITHUB_CLIENT_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: GITHUB_CLIENT_ID
|
||||
name: iam-provider-creds
|
||||
optional: true
|
||||
- name: GITHUB_CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: GITHUB_CLIENT_SECRET
|
||||
name: iam-provider-creds
|
||||
optional: true
|
||||
- name: GOMEMLIMIT
|
||||
value: 3750MiB
|
||||
- name: GOMAXPROCS
|
||||
value: '2'
|
||||
- name: REGISTRY_SIGNING_KEY_FILE
|
||||
value: /etc/registry-signing/signing.key
|
||||
- name: redisEndpoint
|
||||
value: hanzo-kv:6379
|
||||
- name: INSIGHTS_HOST
|
||||
value: http://insights-capture.hanzo.svc:3000
|
||||
- name: INSIGHTS_API_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: API_KEY
|
||||
name: insights-client-secrets
|
||||
optional: true
|
||||
- name: IAM_DATABASE_URL
|
||||
value: user=hanzo password=hanzo-pg-secret-6fcc8aeb host=sql-0.sql.hanzo.svc.cluster.local port=5432 dbname=iam sslmode=disable
|
||||
resources:
|
||||
limits:
|
||||
cpu: '2'
|
||||
memory: 4Gi
|
||||
requests:
|
||||
cpu: 200m
|
||||
memory: 1Gi
|
||||
volumeMounts:
|
||||
- mountPath: /data/iam
|
||||
name: iam-data
|
||||
- mountPath: /etc/registry-signing
|
||||
name: registry-signing-key
|
||||
readOnly: true
|
||||
- mountPath: /etc/kms/auth
|
||||
name: kms-auth
|
||||
readOnly: true
|
||||
- mountPath: /etc/iam-init-data
|
||||
name: init-data
|
||||
readOnly: true
|
||||
- mountPath: /conf
|
||||
name: iam-conf
|
||||
readOnly: true
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /api/health
|
||||
port: 8000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 60
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /api/health
|
||||
port: 8000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
ports:
|
||||
- containerPort: 8000
|
||||
name: http
|
||||
servicePort: 80
|
||||
volumes:
|
||||
- name: iam-data
|
||||
- name: registry-signing-key
|
||||
secret:
|
||||
items:
|
||||
- key: SIGNING_KEY
|
||||
path: signing.key
|
||||
secretName: registry-signing-key
|
||||
- name: kms-auth
|
||||
secret:
|
||||
items:
|
||||
- key: CLIENTID
|
||||
path: clientId
|
||||
optional: true
|
||||
secretName: iam-kms-auth
|
||||
- configMap:
|
||||
name: iam-init-data
|
||||
name: init-data
|
||||
- configMap:
|
||||
items:
|
||||
- key: app.prod.conf
|
||||
path: app.conf
|
||||
name: iam-conf
|
||||
name: iam-conf
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- podAffinityTerm:
|
||||
labelSelector:
|
||||
matchExpressions:
|
||||
- key: app
|
||||
operator: In
|
||||
values:
|
||||
- iam
|
||||
topologyKey: kubernetes.io/hostname
|
||||
weight: 100
|
||||
fsGroup: 1000
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle:
|
||||
preStop:
|
||||
exec:
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- sleep 5
|
||||
terminationGracePeriodSeconds: 45
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,50 @@
|
||||
# Generated from the live hanzo/lux-admin Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: lux-admin
|
||||
image:
|
||||
repository: registry.digitalocean.com/hanzo/lux-admin
|
||||
tag: 0.1.0
|
||||
pullPolicy: IfNotPresent
|
||||
resources:
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 25m
|
||||
memory: 64Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3100
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 20
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3100
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3100
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: docr-pull
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,62 @@
|
||||
# Generated from the live hanzo/lux-bitcoin Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: lux-bitcoin
|
||||
containerName: spa
|
||||
image:
|
||||
repository: ghcr.io/luxfi/lux-bitcoin
|
||||
tag: v2.0.0
|
||||
pullPolicy: Always
|
||||
partOf: lux-bitcoin
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources:
|
||||
limits:
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- bitcoin.lux.network
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,62 @@
|
||||
# Generated from the live hanzo/lux-blog Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: lux-blog
|
||||
containerName: spa
|
||||
image:
|
||||
repository: ghcr.io/luxfi/blog
|
||||
digest: sha256:972764b37d73bd81cbce4301457890580cf42c969258d31bd7b6d4d7a7b7e18e
|
||||
pullPolicy: Always
|
||||
partOf: lux-blog
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources:
|
||||
limits:
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- blog.lux.network
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,62 @@
|
||||
# Generated from the live hanzo/lux-coin Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: lux-coin
|
||||
containerName: spa
|
||||
image:
|
||||
repository: ghcr.io/luxfi/lux-coin
|
||||
tag: v2.0.0
|
||||
pullPolicy: Always
|
||||
partOf: lux-coin
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources:
|
||||
limits:
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- coin.lux.network
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,63 @@
|
||||
# Generated from the live hanzo/lux-finance Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: lux-finance
|
||||
containerName: spa
|
||||
image:
|
||||
repository: ghcr.io/luxfi/lux-finance
|
||||
tag: v2.0.0
|
||||
pullPolicy: Always
|
||||
partOf: lux-finance
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources:
|
||||
limits:
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- lux.finance
|
||||
- www.lux.finance
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,63 @@
|
||||
# Generated from the live hanzo/lux-industries Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: lux-industries
|
||||
containerName: spa
|
||||
image:
|
||||
repository: ghcr.io/luxfi/lux-industries
|
||||
tag: v2.0.0
|
||||
pullPolicy: Always
|
||||
partOf: lux-industries
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources:
|
||||
limits:
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- lux.industries
|
||||
- www.lux.industries
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,62 @@
|
||||
# Generated from the live hanzo/lux-invest Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: lux-invest
|
||||
containerName: spa
|
||||
image:
|
||||
repository: ghcr.io/luxfi/lux-invest
|
||||
tag: v2.0.0
|
||||
pullPolicy: Always
|
||||
partOf: lux-invest
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources:
|
||||
limits:
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- invest.lux.network
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,63 @@
|
||||
# Generated from the live hanzo/lux-market Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: lux-market
|
||||
containerName: spa
|
||||
image:
|
||||
repository: ghcr.io/luxfi/lux-market
|
||||
tag: v2.0.0
|
||||
pullPolicy: Always
|
||||
partOf: lux-market
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources:
|
||||
limits:
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- lux.market
|
||||
- www.lux.market
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,60 @@
|
||||
# Generated from the live hanzo/lux-safe-cgw Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: lux-safe-cgw
|
||||
containerName: cgw
|
||||
image:
|
||||
repository: ghcr.io/luxfi/safe-cgw
|
||||
tag: v0.1.2
|
||||
pullPolicy: Always
|
||||
partOf: lux-safe
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
resources:
|
||||
limits:
|
||||
memory: 64Mi
|
||||
requests:
|
||||
cpu: 25m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 2
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- safe-cgw.lux.network
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,60 @@
|
||||
# Generated from the live hanzo/lux-safe Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: lux-safe
|
||||
containerName: spa
|
||||
image:
|
||||
repository: ghcr.io/luxfi/lux-safe
|
||||
tag: v2.2.6
|
||||
pullPolicy: Always
|
||||
partOf: lux-safe
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
resources:
|
||||
limits:
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- safe.lux.network
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,75 @@
|
||||
# Generated from the live kms-operator-system/kms-operator-controller-manager Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
control-plane: controller-manager
|
||||
containerName: manager
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/kms-operator
|
||||
tag: v0.4.2
|
||||
pullPolicy: Always
|
||||
partOf: hanzo-universe
|
||||
component: kms-operator
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
args:
|
||||
- --health-probe-bind-address=:8081
|
||||
- --metrics-bind-address=127.0.0.1:8080
|
||||
- --leader-elect
|
||||
env:
|
||||
- name: KMS_API_BASE
|
||||
value: http://kms.lux-kms-go.svc.cluster.local
|
||||
- name: KMS_AUTH_PATH
|
||||
value: /v1/kms/auth/login
|
||||
- name: RESYNC_INTERVAL
|
||||
value: '60'
|
||||
- name: ZAP_PORT
|
||||
value: '9999'
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 64Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8081
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 20
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /readyz
|
||||
port: 8081
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
name: http
|
||||
- containerPort: 8081
|
||||
name: health
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
serviceAccountName: kms-operator-controller-manager
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 10
|
||||
@@ -0,0 +1,64 @@
|
||||
# Generated from the live liquid-docs/liquid-docs Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: liquid-docs
|
||||
containerName: spa
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/liquid-docs
|
||||
digest: sha256:175b4e05fbe324aee176e520a41c75c4caaf82c1c175944c6648eb829afba48b
|
||||
pullPolicy: Always
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: SPA_ENV
|
||||
value: prod
|
||||
- name: SPA_API_HOST
|
||||
value: https://api.lux.network
|
||||
resources:
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 20m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 2
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
targetPort: http
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- liquid.lux.network
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,65 @@
|
||||
# Generated from the live lux-audio/lux-audio Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app.kubernetes.io/name: lux-audio
|
||||
containerName: spa
|
||||
image:
|
||||
repository: ghcr.io/luxfi/audio
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
partOf: lux-audio
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
- name: REDIRECTS
|
||||
value: /earbuds=/,/earphones=/
|
||||
resources:
|
||||
limits:
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-pull
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- lux.audio
|
||||
- www.lux.audio
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,50 @@
|
||||
# Generated from the live lux-bank/bank-admin Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: bank-admin
|
||||
image:
|
||||
repository: ghcr.io/luxfi/bank-admin
|
||||
tag: v1.2.5
|
||||
pullPolicy: Always
|
||||
partOf: lux-bank
|
||||
resources:
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 128Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 20
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,66 @@
|
||||
# Generated from the live lux-bank/bank-dash Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: bank-dash
|
||||
image:
|
||||
repository: ghcr.io/luxfi/bank-dash
|
||||
tag: v1.0.12
|
||||
pullPolicy: Always
|
||||
partOf: lux-bank
|
||||
env:
|
||||
- name: NEXT_PUBLIC_BASE_URL
|
||||
value: https://api.lux.financial
|
||||
- name: NEXT_PUBLIC_CURRENT_USER_COOKIE
|
||||
value: lux-current-user
|
||||
- name: NEXT_PUBLIC_JWT_COOKIE
|
||||
value: lux-jwt-session
|
||||
- name: NEXT_PUBLIC_JWT_COOKIE_IMPERSONATE
|
||||
value: lux-jwt-session-impersonate
|
||||
- name: NEXT_PUBLIC_RECAPTCHA_SITE_KEY
|
||||
- name: BANK_UPSTREAM
|
||||
value: http://bankd.lux-bank.svc.cluster.local
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: DIST_DIR
|
||||
value: /app/dist
|
||||
resources:
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 128Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 20
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,50 @@
|
||||
# Generated from the live lux-bank/bank-docs Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: bank-docs
|
||||
image:
|
||||
repository: ghcr.io/luxbank/financial-docs
|
||||
tag: 1.1.2
|
||||
pullPolicy: Always
|
||||
partOf: lux-financial
|
||||
resources:
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,74 @@
|
||||
# Generated from the live lux-bank/bankd Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: bankd
|
||||
image:
|
||||
repository: ghcr.io/luxfi/bank
|
||||
tag: v1.0.11
|
||||
pullPolicy: IfNotPresent
|
||||
command:
|
||||
- bankd
|
||||
args:
|
||||
- serve
|
||||
- --http
|
||||
- 0.0.0.0:8070
|
||||
- --dir
|
||||
- /data
|
||||
env:
|
||||
- name: BANKD_DIR
|
||||
value: /data
|
||||
- name: JWT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: jwt-secret
|
||||
name: bank-secrets
|
||||
- name: ENCRYPT_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: encrypt-key
|
||||
name: bank-secrets
|
||||
- name: SENDGRID_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: sendgrid-key
|
||||
name: bank-secrets
|
||||
- name: SENTRY_DSN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: sentry-dsn
|
||||
name: bank-secrets
|
||||
- name: GOOGLE_RECAPTCHA_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: recaptcha-secret-key
|
||||
name: bank-secrets
|
||||
- name: BANK_SANDBOX
|
||||
value: 'true'
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: data
|
||||
ports:
|
||||
- containerPort: 8070
|
||||
name: http
|
||||
servicePort: 80
|
||||
volumes:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: bankd-data
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
@@ -0,0 +1,63 @@
|
||||
# Generated from the live lux-bank/lux-financial Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: lux-financial
|
||||
containerName: spa
|
||||
image:
|
||||
repository: ghcr.io/luxfi/lux-financial
|
||||
tag: v1.5.1
|
||||
pullPolicy: Always
|
||||
partOf: lux-financial
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources:
|
||||
limits:
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- lux.financial
|
||||
- www.lux.financial
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,181 @@
|
||||
# Generated from the live lux-bridge/bridge-server Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: bridge-server
|
||||
image:
|
||||
repository: ghcr.io/luxfi/bridge-server
|
||||
digest: sha256:738db69035900d83e45bfbc3cb97d44fcbf22b68b225662beecc154370388dd5
|
||||
pullPolicy: IfNotPresent
|
||||
env:
|
||||
- name: NODE_ENV
|
||||
value: production
|
||||
- name: NATS_URL
|
||||
value: nats://nats:4222
|
||||
- name: CONSUL_URL
|
||||
value: http://consul:8500
|
||||
- name: MPC_THRESHOLD
|
||||
value: '3'
|
||||
- name: MPC_TOTAL_NODES
|
||||
value: '5'
|
||||
- name: MPC_KEY_PREFIX
|
||||
value: bridge/mpc
|
||||
- name: MPC_INITIATOR_KEY_PATH
|
||||
value: /etc/mpc/initiator.key
|
||||
- name: NODE_OPTIONS
|
||||
value: --max-old-space-size=1536
|
||||
- name: POSTGRES_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: postgres-url
|
||||
name: bridge-secrets
|
||||
- name: BRIDGE_FEE_COLLECTOR
|
||||
value: '0xa5cd9b2b514c42a1e124d4087d1c654dad2052ad'
|
||||
- name: MPC_API_URL
|
||||
value: https://mpc.lux.network
|
||||
- name: MPC_API_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: MPC_API_TOKEN
|
||||
name: bridge-mpc-token
|
||||
- name: MPC_WALLET_ID
|
||||
value: '17727859650255619160017'
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /app/app/server/dist/domain/rate.js
|
||||
name: rate-patch
|
||||
subPath: rate.js
|
||||
- mountPath: /etc/mpc/initiator.key
|
||||
name: mpc-keys
|
||||
readOnly: true
|
||||
subPath: initiator.key
|
||||
- mountPath: /app/app/server/dist/server.js
|
||||
name: cors-patch
|
||||
subPath: server.js
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
tcpSocket:
|
||||
port: 5000
|
||||
timeoutSeconds: 1
|
||||
volumes:
|
||||
- name: mpc-keys
|
||||
secret:
|
||||
items:
|
||||
- key: initiator.key
|
||||
path: initiator.key
|
||||
secretName: mpc-identity-keys
|
||||
- configMap:
|
||||
name: bridge-rate-patch
|
||||
name: rate-patch
|
||||
- configMap:
|
||||
name: mpc-bridge-patch
|
||||
name: mpc-bridge-patch
|
||||
- configMap:
|
||||
name: bridge-cors-patch
|
||||
name: cors-patch
|
||||
sidecars:
|
||||
- env:
|
||||
- name: NODE_ENV
|
||||
value: production
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: DATABASE_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: database-url
|
||||
name: bridge-secrets
|
||||
- name: NATS_URL
|
||||
value: nats://nats:4222
|
||||
- name: CONSUL_URL
|
||||
value: http://consul:8500
|
||||
- name: NODE_ID
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.name
|
||||
- name: MPC_THRESHOLD
|
||||
value: '3'
|
||||
- name: MPC_TOTAL_NODES
|
||||
value: '5'
|
||||
- name: MPC_KEY_PREFIX
|
||||
value: bridge/mpc
|
||||
- name: MPC_INITIATOR_KEY_PATH
|
||||
value: /etc/mpc/initiator.key
|
||||
- name: NODE_OPTIONS
|
||||
value: --max-old-space-size=1536
|
||||
- name: POSTGRES_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: postgres-url
|
||||
name: bridge-secrets
|
||||
- name: BRIDGE_FEE_COLLECTOR
|
||||
value: '0xa5cd9b2b514c42a1e124d4087d1c654dad2052ad'
|
||||
- name: MPC_API_URL
|
||||
value: https://mpc.lux.network
|
||||
- name: MPC_API_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: MPC_API_TOKEN
|
||||
name: bridge-mpc-token
|
||||
- name: MPC_WALLET_ID
|
||||
value: '17727859650255619160017'
|
||||
image: ghcr.io/luxfi/bridge-server@sha256:88f29bc94588379f9226d99152a6720458164faea3955d2b651cb53021c2e1e4
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
name: bridge
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
volumeMounts:
|
||||
- mountPath: /app/app/server/dist/domain/rate.js
|
||||
name: rate-patch
|
||||
subPath: rate.js
|
||||
- mountPath: /etc/mpc/initiator.key
|
||||
name: mpc-keys
|
||||
readOnly: true
|
||||
subPath: initiator.key
|
||||
- mountPath: /app/app/server/dist/domain/mpc-bridge.js
|
||||
name: mpc-bridge-patch
|
||||
subPath: mpc-bridge.js
|
||||
- mountPath: /app/app/server/dist/server.js
|
||||
name: cors-patch
|
||||
subPath: server.js
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,44 @@
|
||||
# Generated from the live lux-bridge/bridge-ui-devnet Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: bridge-ui-devnet
|
||||
containerName: bridge-ui
|
||||
image:
|
||||
repository: ghcr.io/luxfi/bridge-ui
|
||||
digest: sha256:71e0bbe79a37613887748eae2fec3a0c0caae50cded0eec29439a32c12e6f9d4
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
env: devnet
|
||||
env:
|
||||
- name: NEXT_PUBLIC_NETWORK_NAME
|
||||
value: devnet
|
||||
- name: NEXT_PUBLIC_BRIDGE_API
|
||||
value: https://bridge-api.lux.network
|
||||
- name: NEXT_PUBLIC_BACKEND_API
|
||||
value: https://bridge-api.lux.network
|
||||
- name: NEXT_PUBLIC_IDENTITY_API
|
||||
value: https://bridge-api.lux.network
|
||||
- name: NEXT_PUBLIC_EXPLORER_API
|
||||
value: https://api-explore.lux-dev.network
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
targetPort: http
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,44 @@
|
||||
# Generated from the live lux-bridge/bridge-ui-testnet Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: bridge-ui-testnet
|
||||
containerName: bridge-ui
|
||||
image:
|
||||
repository: ghcr.io/luxfi/bridge-ui
|
||||
digest: sha256:71e0bbe79a37613887748eae2fec3a0c0caae50cded0eec29439a32c12e6f9d4
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
env: testnet
|
||||
env:
|
||||
- name: NEXT_PUBLIC_NETWORK_NAME
|
||||
value: testnet
|
||||
- name: NEXT_PUBLIC_BRIDGE_API
|
||||
value: https://bridge-api.lux.network
|
||||
- name: NEXT_PUBLIC_BACKEND_API
|
||||
value: https://bridge-api.lux.network
|
||||
- name: NEXT_PUBLIC_IDENTITY_API
|
||||
value: https://bridge-api.lux.network
|
||||
- name: NEXT_PUBLIC_EXPLORER_API
|
||||
value: https://api-explore.lux-test.network
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
targetPort: http
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,49 @@
|
||||
# Generated from the live lux-bridge/bridge-ui Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: bridge-ui
|
||||
containerName: ui
|
||||
image:
|
||||
repository: ghcr.io/luxfi/bridge-ui
|
||||
digest: sha256:71e0bbe79a37613887748eae2fec3a0c0caae50cded0eec29439a32c12e6f9d4
|
||||
pullPolicy: Always
|
||||
env:
|
||||
- name: NEXT_PUBLIC_BRIDGE_API
|
||||
value: https://bridge-api.lux.network
|
||||
- name: NEXT_PUBLIC_BACKEND_API
|
||||
value: https://bridge-api.lux.network
|
||||
- name: NEXT_PUBLIC_IDENTITY_API
|
||||
value: https://bridge-api.lux.network
|
||||
- name: NEXT_PUBLIC_EXPLORER_API
|
||||
value: https://bridge-api.lux.network
|
||||
- name: NEXT_PUBLIC_NETWORK_NAME
|
||||
value: mainnet
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 250m
|
||||
memory: 256Mi
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
tcpSocket:
|
||||
port: 3000
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,60 @@
|
||||
# Generated from the live lux-bridge/consul Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: consul
|
||||
image:
|
||||
repository: hashicorp/consul
|
||||
tag: '1.17'
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
brand: lux
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- exec consul agent -server -bootstrap-expect=1 -ui -client=0.0.0.0 -bind=$(POD_IP) -data-dir=/consul/data -datacenter=mainnet
|
||||
env:
|
||||
- name: POD_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: status.podIP
|
||||
resources:
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 25m
|
||||
memory: 64Mi
|
||||
volumeMounts:
|
||||
- mountPath: /consul/data
|
||||
name: data
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /v1/status/leader
|
||||
port: 8500
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 8500
|
||||
name: http
|
||||
- containerPort: 8600
|
||||
name: dns
|
||||
- containerPort: 8600
|
||||
name: dns
|
||||
protocol: UDP
|
||||
volumes:
|
||||
- name: data
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,45 @@
|
||||
# Generated from the live lux-bridge/kv Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: kv
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/kv
|
||||
tag: '9'
|
||||
pullPolicy: Always
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: kv-storage
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
tcpSocket:
|
||||
port: 6379
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
tcpSocket:
|
||||
port: 6379
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
name: redis
|
||||
volumes:
|
||||
- name: kv-storage
|
||||
persistentVolumeClaim:
|
||||
claimName: kv-pvc
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,102 @@
|
||||
# Generated from the live lux-bridge/lux-bridge Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: lux-bridge
|
||||
containerName: bridge
|
||||
image:
|
||||
repository: ghcr.io/luxfi/bridge
|
||||
tag: e377ac59
|
||||
pullPolicy: Always
|
||||
labels:
|
||||
component: api
|
||||
env:
|
||||
- name: BRIDGE_ADDR
|
||||
value: :8080
|
||||
- name: BRIDGE_CONFIG
|
||||
value: /etc/bridge/networks.yaml
|
||||
- name: BRIDGE_DATA_DIR
|
||||
value: /var/lib/lux-bridge
|
||||
- name: BRIDGE_API_HOST
|
||||
value: https://bridge.lux.network
|
||||
- name: BRIDGE_BACKEND_URL
|
||||
- name: BRIDGE_BCHAIN_URL
|
||||
- name: BRIDGE_MPC_URL
|
||||
value: http://mpc-api-svc.lux-bridge.svc:8081
|
||||
- name: BRIDGE_MPC_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: MPC_API_TOKEN
|
||||
name: bridge-mpc-token
|
||||
- name: BRIDGE_MPC_ORG_ID
|
||||
value: bridge
|
||||
- name: BRIDGE_PROFILE
|
||||
value: classical-compat
|
||||
- name: BRIDGE_COINGECKO
|
||||
value: 'true'
|
||||
- name: BRIDGE_ENV
|
||||
value: mainnet
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
volumeMounts:
|
||||
- mountPath: /etc/bridge
|
||||
name: config
|
||||
readOnly: true
|
||||
- mountPath: /var/lib/lux-bridge
|
||||
name: data
|
||||
- mountPath: /tmp
|
||||
name: tmp
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 2
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 2
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
name: http
|
||||
servicePort: 80
|
||||
targetPort: http
|
||||
volumes:
|
||||
- configMap:
|
||||
name: lux-bridge-config
|
||||
name: config
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: lux-bridge-data
|
||||
- emptyDir:
|
||||
sizeLimit: 50Mi
|
||||
name: tmp
|
||||
fsGroup: 65532
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,61 @@
|
||||
# Generated from the live lux-bridge/nats Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: nats
|
||||
image:
|
||||
repository: nats
|
||||
tag: 2.10-alpine
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
brand: lux
|
||||
args:
|
||||
- -js
|
||||
- -m
|
||||
- '8222'
|
||||
- --store_dir
|
||||
- /data
|
||||
resources:
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 25m
|
||||
memory: 64Mi
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: data
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8222
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
tcpSocket:
|
||||
port: 4222
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 4222
|
||||
name: client
|
||||
- containerPort: 8222
|
||||
name: monitor
|
||||
volumes:
|
||||
- name: data
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,62 @@
|
||||
# Generated from the live lux-bridge/pars-bridge Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: pars-bridge
|
||||
containerName: bridge
|
||||
image:
|
||||
repository: ghcr.io/luxfi/bridge
|
||||
tag: main
|
||||
pullPolicy: Always
|
||||
labels:
|
||||
tenant: pars
|
||||
resources:
|
||||
limits:
|
||||
cpu: 300m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
volumeMounts:
|
||||
- mountPath: /public/__ENV.js
|
||||
name: env-js
|
||||
readOnly: true
|
||||
subPath: __ENV.js
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
targetPort: http
|
||||
volumes:
|
||||
- configMap:
|
||||
name: pars-bridge-env
|
||||
name: env-js
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,62 @@
|
||||
# Generated from the live lux-bridge/zoo-bridge Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: zoo-bridge
|
||||
containerName: bridge
|
||||
image:
|
||||
repository: ghcr.io/luxfi/bridge
|
||||
tag: main
|
||||
pullPolicy: Always
|
||||
labels:
|
||||
tenant: zoo
|
||||
resources:
|
||||
limits:
|
||||
cpu: 300m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
volumeMounts:
|
||||
- mountPath: /public/__ENV.js
|
||||
name: env-js
|
||||
readOnly: true
|
||||
subPath: __ENV.js
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
targetPort: http
|
||||
volumes:
|
||||
- configMap:
|
||||
name: zoo-bridge-env
|
||||
name: env-js
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,57 @@
|
||||
# Generated from the live lux-cloud/cloud Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: cloud
|
||||
image:
|
||||
repository: ghcr.io/luxfi/cloud-web
|
||||
tag: v1.5.8
|
||||
pullPolicy: Always
|
||||
partOf: lux-cloud
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 20
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- lux.cloud
|
||||
- www.lux.cloud
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,64 @@
|
||||
# Generated from the live lux-cloud/lux-fleet Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: lux-fleet
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/bootnode
|
||||
tag: fleet-6291e97
|
||||
pullPolicy: IfNotPresent
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 25m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 2
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
runAsNonRoot: true
|
||||
runAsUser: 65532
|
||||
ports:
|
||||
- containerPort: 8000
|
||||
name: http
|
||||
servicePort: 80
|
||||
serviceAccountName: lux-fleet
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- api.cloud.lux.network
|
||||
tls: false
|
||||
className: ingress
|
||||
@@ -0,0 +1,37 @@
|
||||
# Generated from the live lux-credit/lux-credit Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app.kubernetes.io/name: lux-credit
|
||||
image:
|
||||
repository: ghcr.io/lux-apps/credit
|
||||
tag: 038f7dfe3ff5798d41875fa30c4e1ec148093595
|
||||
pullPolicy: Always
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources: {}
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-pull
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- lux.credit
|
||||
- www.lux.credit
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,68 @@
|
||||
# Generated from the live lux-devnet/api-gateway-gateway Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app.kubernetes.io/component: gateway
|
||||
app.kubernetes.io/instance: api-gateway
|
||||
app.kubernetes.io/managed-by: lux-operator
|
||||
app.kubernetes.io/name: lux-gateway
|
||||
containerName: gateway
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/gateway
|
||||
digest: sha256:017dd6989257c5e86eefba734d5ecb16e1cf4ce2539ef229508156a1ee45b913
|
||||
pullPolicy: IfNotPresent
|
||||
component: gateway
|
||||
command:
|
||||
- /usr/bin/gateway
|
||||
args:
|
||||
- run
|
||||
- -c
|
||||
- /etc/gateway/gateway.json
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
volumeMounts:
|
||||
- mountPath: /etc/gateway
|
||||
name: config
|
||||
readOnly: true
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /__health
|
||||
port: 8080
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /__health
|
||||
port: 8080
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
name: http
|
||||
servicePort: 80
|
||||
volumes:
|
||||
- configMap:
|
||||
name: api-gateway-gateway-config
|
||||
name: config
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,70 @@
|
||||
# Generated from the live lux-devnet/chain-traffic Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app.kubernetes.io/name: chain-traffic
|
||||
containerName: traffic
|
||||
image:
|
||||
repository: ghcr.io/foundry-rs/foundry
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
partOf: lux
|
||||
component: traffic
|
||||
command:
|
||||
- /bin/sh
|
||||
- /app/chain-traffic.sh
|
||||
env:
|
||||
- name: RPC_URLS
|
||||
value: http://luxd-0.luxd-headless.lux-devnet:9650/v1/bc/C/rpc,http://luxd-1.luxd-headless.lux-devnet:9650/v1/bc/C/rpc,http://luxd-2.luxd-headless.lux-devnet:9650/v1/bc/C/rpc,http://luxd-3.luxd-headless.lux-devnet:9650/v1/bc/C/rpc,http://luxd-4.luxd-headless.lux-devnet:9650/v1/bc/C/rpc
|
||||
- name: TX_PER_BURST
|
||||
value: '2'
|
||||
- name: BURST_SECS
|
||||
value: '2'
|
||||
- name: MAX_INFLIGHT
|
||||
value: '8'
|
||||
- name: STALL_SECS
|
||||
value: '90'
|
||||
- name: GAS_MULT
|
||||
value: '2'
|
||||
- name: KEY_IDX
|
||||
value: '11'
|
||||
- name: SEED_IDX
|
||||
value: '0'
|
||||
- name: SEED_FLOOR_WEI
|
||||
value: '10000000000000000000'
|
||||
- name: SEED_AMOUNT_WEI
|
||||
value: '100000000000000000000000'
|
||||
- name: LUX_MNEMONIC
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: LUX_MNEMONIC
|
||||
name: lux-deployer
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
volumeMounts:
|
||||
- mountPath: /app
|
||||
name: code
|
||||
readOnly: true
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
volumes:
|
||||
- configMap:
|
||||
name: chain-traffic-code
|
||||
name: code
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 5
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,79 @@
|
||||
# Generated from the live lux-devnet/dchain-edge Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: dchain-edge
|
||||
containerName: luxd
|
||||
image:
|
||||
repository: ghcr.io/luxfi/node
|
||||
tag: v1.30.15-dchain
|
||||
pullPolicy: Always
|
||||
partOf: lux-devnet
|
||||
command:
|
||||
- /bin/sh
|
||||
- /scripts/startup.sh
|
||||
resources:
|
||||
limits:
|
||||
cpu: '2'
|
||||
memory: 8Gi
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 2Gi
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: data
|
||||
- mountPath: /scripts
|
||||
name: startup-script
|
||||
- mountPath: /genesis
|
||||
name: genesis
|
||||
readOnly: true
|
||||
- mountPath: /seed
|
||||
name: seed
|
||||
readOnly: true
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /ext/health/liveness
|
||||
port: 9650
|
||||
scheme: HTTP
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
startupProbe:
|
||||
failureThreshold: 120
|
||||
httpGet:
|
||||
path: /ext/health/liveness
|
||||
port: 9650
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
ports:
|
||||
- containerPort: 9650
|
||||
name: http
|
||||
- containerPort: 9651
|
||||
name: staking
|
||||
volumes:
|
||||
- emptyDir:
|
||||
sizeLimit: 20Gi
|
||||
name: data
|
||||
- configMap:
|
||||
name: dchain-edge-startup
|
||||
name: startup-script
|
||||
- configMap:
|
||||
name: dchain-edge-genesis
|
||||
name: genesis
|
||||
- configMap:
|
||||
name: dchain-edge-seed
|
||||
name: seed
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
fsGroup: 1000
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
@@ -0,0 +1,44 @@
|
||||
# Generated from the live lux-devnet/dchain-venue Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: dchain-venue
|
||||
containerName: venue
|
||||
image:
|
||||
repository: ghcr.io/luxfi/dex-venue
|
||||
tag: v1.5.5
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
lux.network/component: dex-venue
|
||||
args:
|
||||
- -addr
|
||||
- 0.0.0.0:9099
|
||||
- -db
|
||||
- /data/db
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: data
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
tcpSocket:
|
||||
port: 9099
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 9099
|
||||
name: zap
|
||||
volumes:
|
||||
- name: data
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,61 @@
|
||||
# Generated from the live lux-devnet/exchange-api Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: exchange-api
|
||||
network: devnet
|
||||
image:
|
||||
repository: ghcr.io/luxfi/exchange-api
|
||||
tag: 2.3.2
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
network: devnet
|
||||
env:
|
||||
- name: PORT
|
||||
value: '4000'
|
||||
- name: NETWORK
|
||||
value: devnet
|
||||
- name: LUX_RPC_URL
|
||||
value: http://luxd-headless.lux-devnet.svc.cluster.local:9650/v1/bc/C/rpc
|
||||
- name: SUBGRAPH_URL
|
||||
value: http://explorer.lux-devnet.svc.cluster.local:8090/v1/graph/cchain/amm/graphql
|
||||
- name: DEX_SUBGRAPH_URL
|
||||
value: http://explorer.lux-devnet.svc.cluster.local:8090/v1/graph/cchain/dex/graphql
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 2
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 2
|
||||
ports:
|
||||
- containerPort: 4000
|
||||
name: http
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,72 @@
|
||||
# Generated from the live lux-devnet/explore-fe-hanzo Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: explore-fe
|
||||
brand: hanzo
|
||||
network: devnet
|
||||
containerName: explore
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/explore
|
||||
tag: v1.0.4
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
brand: hanzo
|
||||
network: devnet
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: explore-env-hanzo
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 60
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 6
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
startupProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 1
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,72 @@
|
||||
# Generated from the live lux-devnet/explore-fe-lux Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: explore-fe
|
||||
brand: lux
|
||||
network: devnet
|
||||
containerName: explore
|
||||
image:
|
||||
repository: ghcr.io/luxfi/explore
|
||||
tag: sha-caf792d
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
brand: lux
|
||||
network: devnet
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: explore-env-lux
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 60
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 6
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
startupProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 1
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,72 @@
|
||||
# Generated from the live lux-devnet/explore-fe-pars Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: explore-fe
|
||||
brand: pars
|
||||
network: devnet
|
||||
containerName: explore
|
||||
image:
|
||||
repository: ghcr.io/parsdao/explore
|
||||
tag: v1.0.4
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
brand: pars
|
||||
network: devnet
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: explore-env-pars
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 60
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 6
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
startupProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 1
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,72 @@
|
||||
# Generated from the live lux-devnet/explore-fe-zoo Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: explore-fe
|
||||
brand: zoo
|
||||
network: devnet
|
||||
containerName: explore
|
||||
image:
|
||||
repository: ghcr.io/zooai/explore
|
||||
tag: v1.0.4
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
brand: zoo
|
||||
network: devnet
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: explore-env-zoo
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 60
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 6
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
startupProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 1
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,193 @@
|
||||
# Generated from the live lux-devnet/explorer Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: explorer
|
||||
network: devnet
|
||||
image:
|
||||
repository: ghcr.io/luxfi/explorer
|
||||
tag: 1.3.4
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
network: devnet
|
||||
args:
|
||||
- --config=/etc/explorer/chains.yaml
|
||||
env:
|
||||
- name: DATA_DIR
|
||||
value: /data
|
||||
- name: HTTP_ADDR
|
||||
value: :8090
|
||||
- name: EXPLORER_STATIC_DIR
|
||||
value: /etc/explorer/static
|
||||
resources:
|
||||
limits:
|
||||
cpu: '2'
|
||||
memory: 4Gi
|
||||
requests:
|
||||
cpu: 250m
|
||||
memory: 512Mi
|
||||
volumeMounts:
|
||||
- mountPath: /etc/explorer
|
||||
name: config
|
||||
readOnly: true
|
||||
- mountPath: /etc/explorer/static
|
||||
name: static
|
||||
readOnly: true
|
||||
- mountPath: /data
|
||||
name: data
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /health
|
||||
port: api
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 6
|
||||
httpGet:
|
||||
path: /health
|
||||
port: api
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
startupProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
path: /health
|
||||
port: api
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsUser: 65532
|
||||
ports:
|
||||
- containerPort: 8090
|
||||
name: http-v2
|
||||
servicePort: 80
|
||||
volumes:
|
||||
- configMap:
|
||||
name: explorer-chains
|
||||
name: config
|
||||
- configMap:
|
||||
name: explorer-static
|
||||
name: static
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: explorer-data
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
sidecars:
|
||||
- env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ENVS_PRESET
|
||||
value: none
|
||||
- name: SKIP_ENVS_VALIDATION
|
||||
value: 'true'
|
||||
- name: NEXT_TELEMETRY_DISABLED
|
||||
value: '1'
|
||||
- name: NEXT_PUBLIC_NETWORK_ID
|
||||
value: '96370'
|
||||
- name: NEXT_PUBLIC_NETWORK_NAME
|
||||
value: Lux Devnet
|
||||
- name: NEXT_PUBLIC_NETWORK_SHORT_NAME
|
||||
value: LUX
|
||||
- name: NEXT_PUBLIC_NETWORK_CURRENCY_NAME
|
||||
value: LUX
|
||||
- name: NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL
|
||||
value: LUX
|
||||
- name: NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS
|
||||
value: '18'
|
||||
- name: NEXT_PUBLIC_NETWORK_RPC_URL
|
||||
value: https://api.lux-dev.network/ext/bc/C/rpc
|
||||
- name: NEXT_PUBLIC_NETWORK_LOGO
|
||||
value: /logo.svg
|
||||
- name: NEXT_PUBLIC_NETWORK_ICON
|
||||
value: /icon.svg
|
||||
- name: NEXT_PUBLIC_BRAND
|
||||
value: lux
|
||||
- name: NEXT_PUBLIC_IS_TESTNET
|
||||
value: 'true'
|
||||
- name: NEXT_PUBLIC_APP_HOST
|
||||
value: explore.lux-dev.network
|
||||
- name: NEXT_PUBLIC_APP_PROTOCOL
|
||||
value: https
|
||||
- name: NEXT_PUBLIC_API_HOST
|
||||
value: api-explore.lux-dev.network
|
||||
- name: NEXT_PUBLIC_API_PROTOCOL
|
||||
value: https
|
||||
- name: NEXT_PUBLIC_API_BASE_PATH
|
||||
value: /v1/indexer/cchain
|
||||
- name: NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL
|
||||
value: wss
|
||||
- name: NEXT_PUBLIC_NETWORK_ORG_NAME
|
||||
value: Lux Industries Inc.
|
||||
- name: NEXT_PUBLIC_NETWORK_WEBSITE_URL
|
||||
value: https://lux.network
|
||||
- name: NEXT_PUBLIC_COLOR_THEME_DEFAULT
|
||||
value: dark
|
||||
- name: NEXT_PUBLIC_ACCOUNT_AUTH_PROVIDER
|
||||
value: oidc
|
||||
- name: NEXT_PUBLIC_OIDC_SERVER_URL
|
||||
value: https://lux.id
|
||||
- name: NEXT_PUBLIC_OIDC_CLIENT_ID
|
||||
value: lux-explore-client-id
|
||||
image: ghcr.io/luxfi/explore@sha256:ddb15bc28ff38c7619bc08df9337e02b32ef886c33b9993a9b9cb3c475ad75de
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 60
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
name: explore
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: ui
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
failureThreshold: 6
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
startupProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
fsGroup: 65532
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 60
|
||||
@@ -0,0 +1,57 @@
|
||||
# Generated from the live lux-devnet/info-filter Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
selectorLabels:
|
||||
app: info-filter
|
||||
containerName: openresty
|
||||
image:
|
||||
repository: openresty/openresty
|
||||
tag: alpine
|
||||
pullPolicy: IfNotPresent
|
||||
resources:
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 64Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 32Mi
|
||||
volumeMounts:
|
||||
- mountPath: /usr/local/openresty/nginx/conf/nginx.conf
|
||||
name: config
|
||||
subPath: nginx.conf
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8080
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8080
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
name: http
|
||||
volumes:
|
||||
- configMap:
|
||||
name: info-filter-config
|
||||
name: config
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,42 @@
|
||||
# Generated from the live lux-devnet/kms-zap-operator Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
selectorLabels:
|
||||
app: kms-zap-operator
|
||||
containerName: operator
|
||||
image:
|
||||
repository: ghcr.io/luxfi/kms-operator
|
||||
tag: v1.11.7
|
||||
pullPolicy: IfNotPresent
|
||||
env:
|
||||
- name: WATCH_NAMESPACE
|
||||
value: lux-devnet
|
||||
- name: RESYNC_INTERVAL
|
||||
value: '30'
|
||||
- name: ZAP_PORT
|
||||
value: '9999'
|
||||
resources: {}
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8080
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
serviceAccountName: kms-zap-operator
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
@@ -0,0 +1,53 @@
|
||||
# Generated from the live lux-devnet/lux-exchange Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: exchange
|
||||
containerName: exchange
|
||||
image:
|
||||
repository: ghcr.io/luxfi/exchange
|
||||
tag: 5.149.15-amd64
|
||||
pullPolicy: IfNotPresent
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: lux-exchange-config
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 20
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 3
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,74 @@
|
||||
# Generated from the live lux-devnet/lux-indexer Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: lux-indexer
|
||||
network: devnet
|
||||
containerName: indexerd
|
||||
image:
|
||||
repository: ghcr.io/luxfi/indexer
|
||||
tag: 1.4.4
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
network: devnet
|
||||
args:
|
||||
- -config=/etc/lux-indexer/chains.yaml
|
||||
- -data=/data
|
||||
- -http=:8091
|
||||
env:
|
||||
- name: DATA_DIR
|
||||
value: /data
|
||||
- name: HTTP_ADDR
|
||||
value: :8091
|
||||
resources:
|
||||
limits:
|
||||
cpu: '2'
|
||||
memory: 4Gi
|
||||
requests:
|
||||
cpu: 200m
|
||||
memory: 512Mi
|
||||
volumeMounts:
|
||||
- mountPath: /etc/lux-indexer
|
||||
name: config
|
||||
readOnly: true
|
||||
- mountPath: /data
|
||||
name: data
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 60
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
ports:
|
||||
- containerPort: 8091
|
||||
name: http
|
||||
volumes:
|
||||
- configMap:
|
||||
name: lux-indexer-config
|
||||
name: config
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: lux-indexer-data
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
fsGroup: 65532
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,70 @@
|
||||
# Generated from the live lux-devnet/stats-devnet Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
selectorLabels:
|
||||
app: stats
|
||||
network: devnet
|
||||
containerName: stats
|
||||
image:
|
||||
repository: ghcr.io/luxfi/explorer-stats
|
||||
tag: main
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
network: devnet
|
||||
env:
|
||||
- name: STATS__DB_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: STATS_DEVNET_DB_URL
|
||||
name: db-credentials
|
||||
- name: STATS__BLOCKSCOUT_DB_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: STATS_DEVNET_DB_URL
|
||||
name: db-credentials
|
||||
- name: STATS__CREATE_DATABASE
|
||||
value: 'false'
|
||||
- name: STATS__RUN_MIGRATIONS
|
||||
value: 'true'
|
||||
- name: STATS__SERVER__HTTP__ADDR
|
||||
value: 0.0.0.0:8050
|
||||
- name: STATS__BLOCKSCOUT_API_URL
|
||||
value: http://explorer-devnet.lux-devnet.svc.cluster.local:4000
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8050
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 60
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8050
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 8050
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,73 @@
|
||||
# Generated from the live lux-explorer/lux-faucet Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: lux-faucet
|
||||
containerName: faucet
|
||||
image:
|
||||
repository: ghcr.io/luxfi/faucet:v1.0.1
|
||||
digest: sha256:325a83ccdf406459cdce870a8d2fd1c8d34c274811fa77568b0bf92905e68e56
|
||||
pullPolicy: IfNotPresent
|
||||
command:
|
||||
- node
|
||||
args:
|
||||
- build/server.js
|
||||
env:
|
||||
- name: PK
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: PK
|
||||
name: lux-faucet-key
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: faucet-config
|
||||
resources:
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 128Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 3
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
runAsNonRoot: true
|
||||
runAsUser: 1001
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- faucet.lux-test.network
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,37 @@
|
||||
# Generated from the live lux-foundation/lux-foundation Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app.kubernetes.io/name: lux-foundation
|
||||
image:
|
||||
repository: ghcr.io/lux-apps/foundation
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources: {}
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-pull
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- lux.foundation
|
||||
- www.lux.foundation
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,37 @@
|
||||
# Generated from the live lux-fund/lux-fund Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app.kubernetes.io/name: lux-fund
|
||||
image:
|
||||
repository: ghcr.io/lux-apps/fund
|
||||
tag: c30add1534b45dfd53167aee3de6c6a541c2a76c
|
||||
pullPolicy: Always
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources: {}
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-pull
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- lux.fund
|
||||
- www.lux.fund
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,45 @@
|
||||
# Generated from the live lux-lps/lux-lps Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app.kubernetes.io/name: lux-lps
|
||||
image:
|
||||
repository: ghcr.io/luxfi/lps
|
||||
tag: 1.0.1
|
||||
pullPolicy: IfNotPresent
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources: {}
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-pull
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- lps.lux.network
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,64 @@
|
||||
# Generated from the live lux-mainnet/api-gateway-gateway Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app.kubernetes.io/component: gateway
|
||||
app.kubernetes.io/instance: api-gateway
|
||||
app.kubernetes.io/managed-by: lux-operator
|
||||
app.kubernetes.io/name: lux-gateway
|
||||
containerName: gateway
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/gateway
|
||||
tag: 2.14.1
|
||||
pullPolicy: IfNotPresent
|
||||
component: gateway
|
||||
command:
|
||||
- /usr/bin/gateway
|
||||
args:
|
||||
- run
|
||||
- -c
|
||||
- /etc/gateway/gateway.json
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
volumeMounts:
|
||||
- mountPath: /etc/gateway
|
||||
name: config
|
||||
readOnly: true
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
tcpSocket:
|
||||
port: 8080
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
tcpSocket:
|
||||
port: 8080
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
name: http
|
||||
servicePort: 80
|
||||
volumes:
|
||||
- configMap:
|
||||
name: api-gateway-gateway-config
|
||||
name: config
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,29 @@
|
||||
# Generated from the live lux-mainnet/api-gateway Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
image:
|
||||
repository: ghcr.io/luxfi/gateway
|
||||
tag: v0.1.0
|
||||
pullPolicy: IfNotPresent
|
||||
component: gateway
|
||||
resources: {}
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
name: http
|
||||
servicePort: 80
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 0
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle:
|
||||
preStop:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- sleep 5
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,68 @@
|
||||
# Generated from the live lux-mainnet/chain-traffic Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app.kubernetes.io/name: chain-traffic
|
||||
containerName: traffic
|
||||
image:
|
||||
repository: ghcr.io/foundry-rs/foundry
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
partOf: lux
|
||||
component: traffic
|
||||
command:
|
||||
- /bin/sh
|
||||
- /app/chain-traffic.sh
|
||||
env:
|
||||
- name: RPC_URLS
|
||||
value: http://luxd-0.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc,http://luxd-1.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc,http://luxd-2.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc,http://luxd-3.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc,http://luxd-4.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc
|
||||
- name: READ_URL
|
||||
value: http://luxd-rpc.lux-mainnet:9630/v1/bc/C/rpc
|
||||
- name: TX_PER_BURST
|
||||
value: '2'
|
||||
- name: BURST_SECS
|
||||
value: '2'
|
||||
- name: MAX_INFLIGHT
|
||||
value: '8'
|
||||
- name: STALL_SECS
|
||||
value: '90'
|
||||
- name: GAS_MULT
|
||||
value: '2'
|
||||
- name: KEY_IDX
|
||||
value: '11'
|
||||
- name: SEED_IDX
|
||||
value: '-1'
|
||||
- name: TRAFFIC_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: TRAFFIC_KEY
|
||||
name: chain-traffic-key
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
volumeMounts:
|
||||
- mountPath: /app
|
||||
name: code
|
||||
readOnly: true
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
volumes:
|
||||
- configMap:
|
||||
name: chain-traffic-code
|
||||
name: code
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 5
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,44 @@
|
||||
# Generated from the live lux-mainnet/dchain-venue Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: dchain-venue
|
||||
containerName: venue
|
||||
image:
|
||||
repository: ghcr.io/luxfi/dex-venue
|
||||
tag: v1.5.5
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
lux.network/component: dex-venue
|
||||
args:
|
||||
- -addr
|
||||
- 0.0.0.0:9099
|
||||
- -db
|
||||
- /data/db
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: data
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
tcpSocket:
|
||||
port: 9099
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 9099
|
||||
name: zap
|
||||
volumes:
|
||||
- name: data
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,72 @@
|
||||
# Generated from the live lux-mainnet/explore-fe-hanzo Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: explore-fe
|
||||
brand: hanzo
|
||||
network: mainnet
|
||||
containerName: explore
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/explore
|
||||
tag: v1.1.12
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
brand: hanzo
|
||||
network: mainnet
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: explore-env-hanzo
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 60
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 6
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
startupProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 1
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,76 @@
|
||||
# Generated from the live lux-mainnet/explore-fe-lux Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: explore-fe
|
||||
brand: lux
|
||||
network: mainnet
|
||||
containerName: explore
|
||||
image:
|
||||
repository: ghcr.io/luxfi/explore
|
||||
tag: v1.1.13
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
brand: lux
|
||||
network: mainnet
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: NEXT_PUBLIC_FONT_FAMILY_HEADING
|
||||
value: '{"name":"Geist","url":"https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap"}'
|
||||
- name: NEXT_PUBLIC_FONT_FAMILY_BODY
|
||||
value: '{"name":"Geist","url":"https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap"}'
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: explore-env-lux
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 60
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 6
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
startupProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 1
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,72 @@
|
||||
# Generated from the live lux-mainnet/explore-fe-pars Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: explore-fe
|
||||
brand: pars
|
||||
network: mainnet
|
||||
containerName: explore
|
||||
image:
|
||||
repository: ghcr.io/parsdao/explore
|
||||
tag: v1.1.12
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
brand: pars
|
||||
network: mainnet
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: explore-env-pars
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 60
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 6
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
startupProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 1
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,76 @@
|
||||
# Generated from the live lux-mainnet/explore-fe-spc Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: explore-fe
|
||||
brand: spc
|
||||
network: mainnet
|
||||
containerName: explore
|
||||
image:
|
||||
repository: ghcr.io/luxfi/explore
|
||||
tag: v1.1.10
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
brand: spc
|
||||
network: mainnet
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: NEXT_PUBLIC_FONT_FAMILY_HEADING
|
||||
value: '{"name":"Geist","url":"https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap"}'
|
||||
- name: NEXT_PUBLIC_FONT_FAMILY_BODY
|
||||
value: '{"name":"Geist","url":"https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap"}'
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: explore-env-spc
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 60
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 6
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
startupProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 1
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,72 @@
|
||||
# Generated from the live lux-mainnet/explore-fe-zoo Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: explore-fe
|
||||
brand: zoo
|
||||
network: mainnet
|
||||
containerName: explore
|
||||
image:
|
||||
repository: ghcr.io/zooai/explore
|
||||
tag: v1.1.12
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
brand: zoo
|
||||
network: mainnet
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: explore-env-zoo
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 60
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 6
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
startupProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 1
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,199 @@
|
||||
# Generated from the live lux-mainnet/explorer Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: explorer
|
||||
network: mainnet
|
||||
image:
|
||||
repository: ghcr.io/luxfi/explorer
|
||||
tag: 1.5.3
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
network: mainnet
|
||||
args:
|
||||
- --config=/etc/explorer/chains.yaml
|
||||
env:
|
||||
- name: DATA_DIR
|
||||
value: /data
|
||||
- name: HTTP_ADDR
|
||||
value: :8090
|
||||
- name: EXPLORER_STATIC_DIR
|
||||
value: /etc/explorer/static
|
||||
resources:
|
||||
limits:
|
||||
cpu: '2'
|
||||
memory: 4Gi
|
||||
requests:
|
||||
cpu: 250m
|
||||
memory: 512Mi
|
||||
volumeMounts:
|
||||
- mountPath: /etc/explorer
|
||||
name: config
|
||||
readOnly: true
|
||||
- mountPath: /etc/explorer/static
|
||||
name: static
|
||||
readOnly: true
|
||||
- mountPath: /data
|
||||
name: data
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /health
|
||||
port: api
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 6
|
||||
httpGet:
|
||||
path: /health
|
||||
port: api
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
startupProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
path: /health
|
||||
port: api
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsUser: 65532
|
||||
ports:
|
||||
- containerPort: 8090
|
||||
name: http-v2
|
||||
servicePort: 80
|
||||
volumes:
|
||||
- configMap:
|
||||
name: explorer-chains
|
||||
name: config
|
||||
- configMap:
|
||||
name: explorer-static
|
||||
name: static
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: explorer-data
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
sidecars:
|
||||
- env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ENVS_PRESET
|
||||
value: none
|
||||
- name: SKIP_ENVS_VALIDATION
|
||||
value: 'true'
|
||||
- name: NEXT_TELEMETRY_DISABLED
|
||||
value: '1'
|
||||
- name: NEXT_PUBLIC_NETWORK_ID
|
||||
value: '96369'
|
||||
- name: NEXT_PUBLIC_NETWORK_NAME
|
||||
value: Lux Network
|
||||
- name: NEXT_PUBLIC_NETWORK_SHORT_NAME
|
||||
value: LUX
|
||||
- name: NEXT_PUBLIC_NETWORK_CURRENCY_NAME
|
||||
value: LUX
|
||||
- name: NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL
|
||||
value: LUX
|
||||
- name: NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS
|
||||
value: '18'
|
||||
- name: NEXT_PUBLIC_NETWORK_RPC_URL
|
||||
value: https://api.lux.network/v1/bc/C/rpc
|
||||
- name: NEXT_PUBLIC_NETWORK_LOGO
|
||||
value: /logo.svg
|
||||
- name: NEXT_PUBLIC_NETWORK_ICON
|
||||
value: /icon.svg
|
||||
- name: NEXT_PUBLIC_BRAND
|
||||
value: lux
|
||||
- name: NEXT_PUBLIC_IS_TESTNET
|
||||
value: 'false'
|
||||
- name: NEXT_PUBLIC_APP_HOST
|
||||
value: explore.lux.network
|
||||
- name: NEXT_PUBLIC_APP_PROTOCOL
|
||||
value: https
|
||||
- name: NEXT_PUBLIC_API_HOST
|
||||
value: api-explore.lux.network
|
||||
- name: NEXT_PUBLIC_API_PROTOCOL
|
||||
value: https
|
||||
- name: NEXT_PUBLIC_API_BASE_PATH
|
||||
value: /v1/indexer/cchain
|
||||
- name: NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL
|
||||
value: wss
|
||||
- name: NEXT_PUBLIC_NETWORK_ORG_NAME
|
||||
value: Lux Industries Inc.
|
||||
- name: NEXT_PUBLIC_NETWORK_WEBSITE_URL
|
||||
value: https://lux.network
|
||||
- name: NEXT_PUBLIC_NETWORK_GITHUB_URL
|
||||
value: https://github.com/luxfi
|
||||
- name: NEXT_PUBLIC_NETWORK_TWITTER_URL
|
||||
value: https://x.com/luxdefi
|
||||
- name: NEXT_PUBLIC_NETWORK_DISCORD_URL
|
||||
value: https://discord.gg/luxnetwork
|
||||
- name: NEXT_PUBLIC_COLOR_THEME_DEFAULT
|
||||
value: dark
|
||||
- name: NEXT_PUBLIC_ACCOUNT_AUTH_PROVIDER
|
||||
value: oidc
|
||||
- name: NEXT_PUBLIC_OIDC_SERVER_URL
|
||||
value: https://lux.id
|
||||
- name: NEXT_PUBLIC_OIDC_CLIENT_ID
|
||||
value: lux-explore-client-id
|
||||
image: ghcr.io/luxfi/explore:sha-3163282
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 60
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
name: explore
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: ui
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
failureThreshold: 6
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
startupProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
path: /
|
||||
port: ui
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
fsGroup: 65532
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 60
|
||||
@@ -0,0 +1,39 @@
|
||||
# Generated from the live lux-mainnet/graph-ipfs Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: graph-ipfs
|
||||
containerName: ipfs
|
||||
image:
|
||||
repository: ipfs/kubo
|
||||
tag: v0.28.0
|
||||
pullPolicy: IfNotPresent
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
volumeMounts:
|
||||
- mountPath: /data/ipfs
|
||||
name: data
|
||||
ports:
|
||||
- containerPort: 5001
|
||||
name: api
|
||||
- containerPort: 8080
|
||||
name: gateway
|
||||
volumes:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: graph-ipfs-data
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,54 @@
|
||||
# Generated from the live lux-mainnet/lux-build Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: lux-build
|
||||
containerName: build
|
||||
image:
|
||||
repository: ghcr.io/luxfi/build
|
||||
tag: 0.1.14
|
||||
pullPolicy: IfNotPresent
|
||||
env:
|
||||
- name: NODE_ENV
|
||||
value: production
|
||||
- name: NEXT_TELEMETRY_DISABLED
|
||||
value: '1'
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /v1/health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /v1/health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,41 @@
|
||||
# Generated from the live lux-mainnet/lux-hb2 Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
selectorLabels:
|
||||
app: lux-hb2
|
||||
containerName: hb
|
||||
image:
|
||||
repository: python
|
||||
tag: 3.11-slim
|
||||
pullPolicy: IfNotPresent
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
args:
|
||||
- "pip install --quiet web3==6.20.1 eth-account 2>/dev/null\npython3 - <<'PY'\nimport os,time\nfrom web3 import Web3\nfrom eth_account import Account\nAccount.enable_unaudited_hdwallet_features()\nw3=Web3(Web3.HTTPProvider(os.environ[\"\
|
||||
RPC\"]))\nacct=Account.from_mnemonic(os.environ[\"LUX_MNEMONIC\"], account_path=\"m/44'/60'/0'/0/0\")\ncid=w3.eth.chain_id; n=w3.eth.get_transaction_count(acct.address)\nprint(f\"hb2 {acct.address} chain={cid}\
|
||||
\ n0={n}\",flush=True); i=0\nwhile True:\n try:\n tx={\"to\":acct.address,\"value\":0,\"nonce\":n,\"gas\":21000,\"maxFeePerGas\":w3.to_wei(300,\"gwei\"),\"maxPriorityFeePerGas\":w3.to_wei(2,\"gwei\"\
|
||||
),\"chainId\":cid}\n w3.eth.send_raw_transaction(acct.sign_transaction(tx).rawTransaction); n+=1; i+=1\n if i%10==0: print(f\"hb2 {i} head={w3.eth.block_number} n={n}\",flush=True)\n except Exception\
|
||||
\ as e:\n print(\"hb2 err:\",str(e)[:70],flush=True)\n try: n=w3.eth.get_transaction_count(acct.address)\n except: pass\n time.sleep(3)\nPY\n"
|
||||
env:
|
||||
- name: RPC
|
||||
value: http://luxd-0.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc
|
||||
- name: LUX_MNEMONIC
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: LUX_MNEMONIC
|
||||
name: lux-deployer
|
||||
- name: HB_INTERVAL
|
||||
value: '15'
|
||||
resources: {}
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
@@ -0,0 +1,74 @@
|
||||
# Generated from the live lux-mainnet/lux-indexer Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
selectorLabels:
|
||||
app: lux-indexer
|
||||
network: mainnet
|
||||
containerName: indexerd
|
||||
image:
|
||||
repository: ghcr.io/luxfi/indexer
|
||||
tag: 1.4.4
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
network: mainnet
|
||||
args:
|
||||
- -config=/etc/lux-indexer/chains.yaml
|
||||
- -data=/data
|
||||
- -http=:8091
|
||||
env:
|
||||
- name: DATA_DIR
|
||||
value: /data
|
||||
- name: HTTP_ADDR
|
||||
value: :8091
|
||||
resources:
|
||||
limits:
|
||||
cpu: '2'
|
||||
memory: 4Gi
|
||||
requests:
|
||||
cpu: 200m
|
||||
memory: 512Mi
|
||||
volumeMounts:
|
||||
- mountPath: /etc/lux-indexer
|
||||
name: config
|
||||
readOnly: true
|
||||
- mountPath: /data
|
||||
name: data
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 60
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
ports:
|
||||
- containerPort: 8091
|
||||
name: http
|
||||
volumes:
|
||||
- configMap:
|
||||
name: lux-indexer-config
|
||||
name: config
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: lux-indexer-data
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
fsGroup: 65532
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,54 @@
|
||||
# Generated from the live lux-mainnet/lux-market Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: lux-market
|
||||
containerName: market
|
||||
image:
|
||||
repository: ghcr.io/luxfi/market
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
env:
|
||||
- name: NODE_ENV
|
||||
value: production
|
||||
- name: NEXT_TELEMETRY_DISABLED
|
||||
value: '1'
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,68 @@
|
||||
# Generated from the live lux-mainnet/mainnet-heartbeat Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
selectorLabels:
|
||||
app: mainnet-heartbeat
|
||||
containerName: heartbeat
|
||||
image:
|
||||
repository: ghcr.io/foundry-rs/foundry
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
args:
|
||||
- "set -u\n# ---- hardened C-Chain liveness heartbeat (v2) ----\n# Drives block production on the sole builder luxd-0 (tx-gossip disabled).\n# Robustness:\n# - always sends the self-transfer at the FIRST-UNMINED\
|
||||
\ nonce -> in-flight\n# txs capped at 1, structurally immune to the pending-nonce backlog that\n# stalled v1 (which used --async with auto-incrementing nonce).\n# - healthy gas = BASE_MULT x base\
|
||||
\ fee (recomputed each beat, adapts to base).\n# - self-check: if head hasn't advanced for STALL_BEATS beats (or a backlog\n# piled up) -> escalate the gas multiplier so a replacement overrides the\n\
|
||||
# stuck tx (legacy tx => clean replace-by-fee).\n# - escalation capped at MAX_STEP: a genuine CONSENSUS wedge (not gas) is not\n# curable by price; capped resends get rejected and cost ZERO gas\
|
||||
\ (gas is\n# only charged on inclusion) -> the key can't be drained by a wedge.\nRPC=\"${RPC:-http://luxd-0.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc}\"\nINTERVAL=\"${INTERVAL:-10}\"\nSTALL_BEATS=\"\
|
||||
${STALL_BEATS:-3}\"\nBASE_MULT=\"${BASE_MULT:-2}\"\nESC_STEP=\"${ESC_STEP:-3}\"\nMAX_STEP=\"${MAX_STEP:-4}\"\nDEFAULT_BASE=25000000000\nif [ -z \"${HEARTBEAT_KEY:-}\" ]; then echo \"FATAL: HEARTBEAT_KEY\
|
||||
\ unset\"; exit 1; fi\nSELF=$(cast wallet address --private-key \"$HEARTBEAT_KEY\" 2>/dev/null)\nif [ -z \"$SELF\" ]; then echo \"FATAL: cannot derive address from HEARTBEAT_KEY\"; exit 1; fi\necho \"\
|
||||
mainnet-heartbeat v2 self=$SELF rpc=$RPC interval=${INTERVAL}s stall=${STALL_BEATS} baseMult=${BASE_MULT}x maxStep=${MAX_STEP}\"\nisnum() { case \"$1\" in ''|*[!0-9]*) return 1;; *) return 0;; esac; }\n\
|
||||
last_head=\"\"; stall=0; step=0; n=0; b=0\nwhile true; do\n b=$((b+1))\n head=$(cast block-number --rpc-url \"$RPC\" 2>/dev/null)\n latest=$(cast nonce \"$SELF\" --rpc-url \"$RPC\" 2>/dev/null)\n \
|
||||
\ pending=$(cast nonce \"$SELF\" --block pending --rpc-url \"$RPC\" 2>/dev/null)\n base=$(cast base-fee --rpc-url \"$RPC\" 2>/dev/null)\n isnum \"$base\" || base=$DEFAULT_BASE\n if ! isnum \"$latest\"\
|
||||
; then\n echo \"$(date -u +%H:%M:%S) WARN rpc unavailable (latest), skip beat b=$b\"\n sleep \"$INTERVAL\"; continue\n fi\n isnum \"$pending\" || pending=$latest\n backlog=$((pending - latest))\n\
|
||||
\ if isnum \"$head\" && [ \"$head\" = \"$last_head\" ]; then\n stall=$((stall+1))\n else\n stall=0; step=0\n isnum \"$head\" && last_head=\"$head\"\n fi\n if [ \"$stall\" -ge \"$STALL_BEATS\"\
|
||||
\ ] || [ \"$backlog\" -gt 1 ]; then\n if [ \"$step\" -lt \"$MAX_STEP\" ]; then step=$((step+1)); fi\n stall=0\n echo \"$(date -u +%H:%M:%S) STALL/BACKLOG head=$head latest=$latest pending=$pending\
|
||||
\ backlog=$backlog -> escalate step=$step\"\n fi\n mult=$((BASE_MULT + step * ESC_STEP))\n price=$((base * mult))\n if cast send \"$SELF\" --value 1 --private-key \"$HEARTBEAT_KEY\" --rpc-url \"$RPC\"\
|
||||
\ \\\n --legacy --nonce \"$latest\" --gas-price \"$price\" --gas-limit 21000 --async >/dev/null 2>&1; then\n n=$((n+1))\n fi\n if [ $((b % 6)) -eq 1 ]; then\n bal=$(cast balance \"$SELF\"\
|
||||
\ --rpc-url \"$RPC\" 2>/dev/null)\n echo \"$(date -u +%H:%M:%S) beat b=$b sent=$n head=$head latest=$latest pending=$pending price=$((price/1000000000))gwei step=$step bal=${bal}wei\"\n fi\n sleep\
|
||||
\ \"$INTERVAL\"\ndone\n"
|
||||
env:
|
||||
- name: HEARTBEAT_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: HEARTBEAT_KEY
|
||||
name: mainnet-heartbeat-key
|
||||
- name: RPC
|
||||
value: http://luxd-1.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc
|
||||
- name: INTERVAL
|
||||
value: '5'
|
||||
- name: STALL_BEATS
|
||||
value: '6'
|
||||
- name: BASE_MULT
|
||||
value: '2'
|
||||
- name: ESC_STEP
|
||||
value: '3'
|
||||
- name: MAX_STEP
|
||||
value: '3'
|
||||
- name: RPC_URL
|
||||
value: http://luxd-0.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc
|
||||
- name: LUX_RPC
|
||||
value: http://luxd-0.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc
|
||||
resources:
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 192Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,63 @@
|
||||
# Generated from the live lux-mainnet/maintenance-page Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: maintenance-page
|
||||
containerName: static
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/static
|
||||
tag: 0.4.1
|
||||
pullPolicy: IfNotPresent
|
||||
args:
|
||||
- --root=/srv
|
||||
- --spa
|
||||
- --port=3000
|
||||
resources:
|
||||
limits:
|
||||
cpu: 50m
|
||||
memory: 32Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 16Mi
|
||||
volumeMounts:
|
||||
- mountPath: /srv/index.html
|
||||
name: html
|
||||
readOnly: true
|
||||
subPath: index.html
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 2
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
volumes:
|
||||
- configMap:
|
||||
name: maintenance-page
|
||||
name: html
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,92 @@
|
||||
# Generated from the live lux-mainnet/maker-amm Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app.kubernetes.io/name: maker-amm
|
||||
containerName: maker
|
||||
image:
|
||||
repository: ghcr.io/foundry-rs/foundry
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
partOf: lux
|
||||
component: maker
|
||||
command:
|
||||
- /bin/sh
|
||||
- /app/maker-amm.sh
|
||||
env:
|
||||
- name: RPC_URLS
|
||||
value: http://luxd-0.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc,http://luxd-1.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc,http://luxd-2.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc,http://luxd-3.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc,http://luxd-4.luxd-headless.lux-mainnet:9630/v1/bc/C/rpc
|
||||
- name: READ_URL
|
||||
value: http://luxd-rpc.lux-mainnet:9630/v1/bc/C/rpc
|
||||
- name: FACTORY
|
||||
value: '0xcf3ccd95c5f2894c7a31d4c185e2e687ac286fc9'
|
||||
- name: ROUTER
|
||||
value: '0x80ee16530001b20712413414b2fb4a0f00b06b2c'
|
||||
- name: BASE
|
||||
value: '0x634a2398d6085f19d2fdffad87b88d7377c7b8ed'
|
||||
- name: QUOTE
|
||||
value: '0x6b23efd9383bee9957c42a50573c1b4944b1b201'
|
||||
- name: BASE_DEC
|
||||
value: '18'
|
||||
- name: QUOTE_DEC
|
||||
value: '6'
|
||||
- name: REF
|
||||
value: '1.0'
|
||||
- name: BITE_BASE_WEI
|
||||
value: '10000000000000000000'
|
||||
- name: BITE_QUOTE_UNITS
|
||||
value: '10000000'
|
||||
- name: TILT_DIV
|
||||
value: '2'
|
||||
- name: MAX_DEV_BPS
|
||||
value: '500'
|
||||
- name: SLIP_BPS
|
||||
value: '100'
|
||||
- name: MIN_BASE_WEI
|
||||
value: '500000000000000000000'
|
||||
- name: MIN_QUOTE_UNITS
|
||||
value: '500000000'
|
||||
- name: MIN_GAS_WEI
|
||||
value: '50000000000000000000'
|
||||
- name: INTERVAL
|
||||
value: '20'
|
||||
- name: APPROVE_BATCH
|
||||
value: '20'
|
||||
- name: STALL_SECS
|
||||
value: '120'
|
||||
- name: GAS_MULT
|
||||
value: '2'
|
||||
- name: MAKER_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: MAKER_KEY
|
||||
name: maker-amm-key
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
volumeMounts:
|
||||
- mountPath: /app
|
||||
name: code
|
||||
readOnly: true
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
volumes:
|
||||
- configMap:
|
||||
name: maker-amm-code
|
||||
name: code
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 5
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,72 @@
|
||||
# Generated from the live lux-mainnet/maker-coherence Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
selectorLabels:
|
||||
app: maker-coherence
|
||||
image:
|
||||
repository: ghcr.io/luxfi/maker
|
||||
tag: sha-267a713
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
component: coherence-maker
|
||||
env:
|
||||
- name: COHERENCE_MAKER_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: COHERENCE_MAKER_KEY
|
||||
name: maker-coherence-secret
|
||||
- name: COHERENCE_TAKER_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: COHERENCE_TAKER_KEY
|
||||
name: maker-coherence-secret
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: maker-coherence-config
|
||||
- secretRef:
|
||||
name: maker-coherence-secret
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 128Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: metrics
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 20
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: metrics
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
ports:
|
||||
- containerPort: 2112
|
||||
name: metrics
|
||||
targetPort: metrics
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,72 @@
|
||||
# Generated from the live lux-mainnet/maker-hum Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
selectorLabels:
|
||||
app: maker-hum
|
||||
image:
|
||||
repository: ghcr.io/luxfi/maker
|
||||
tag: sha-4ba9bff
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
component: fill-engine
|
||||
env:
|
||||
- name: COHERENCE_MAKER_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: COHERENCE_MAKER_KEY
|
||||
name: maker-coherence-secret
|
||||
- name: COHERENCE_TAKER_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: COHERENCE_TAKER_KEY
|
||||
name: maker-coherence-secret
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: maker-hum-config
|
||||
- secretRef:
|
||||
name: maker-coherence-secret
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 128Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: metrics
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 20
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: metrics
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
ports:
|
||||
- containerPort: 2112
|
||||
name: metrics
|
||||
targetPort: metrics
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,68 @@
|
||||
# Generated from the live lux-mainnet/rpc-tip-gate Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app.kubernetes.io/name: rpc-tip-gate
|
||||
containerName: gate
|
||||
image:
|
||||
repository: python
|
||||
tag: 3.12-alpine
|
||||
pullPolicy: IfNotPresent
|
||||
partOf: lux
|
||||
component: rpc-gate
|
||||
command:
|
||||
- python
|
||||
- -u
|
||||
- /app/tip_gate.py
|
||||
env:
|
||||
- name: NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.namespace
|
||||
- name: POD_SELECTOR
|
||||
value: app.kubernetes.io/name=luxd
|
||||
- name: RPC_PORT
|
||||
value: '9630'
|
||||
- name: RPC_PATH
|
||||
value: /v1/bc/C/rpc
|
||||
- name: LABEL_KEY
|
||||
value: lux.network/rpc
|
||||
- name: LABEL_VALUE
|
||||
value: fresh
|
||||
- name: MAX_LAG_BLOCKS
|
||||
value: '1'
|
||||
- name: INTERVAL_SECONDS
|
||||
value: '10'
|
||||
- name: PROBE_TIMEOUT_SECONDS
|
||||
value: '5'
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 32Mi
|
||||
volumeMounts:
|
||||
- mountPath: /app
|
||||
name: code
|
||||
readOnly: true
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
volumes:
|
||||
- configMap:
|
||||
name: rpc-tip-gate-code
|
||||
name: code
|
||||
serviceAccountName: rpc-tip-gate
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 5
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,55 @@
|
||||
# Generated from the live lux-mainnet/sc-verifier-mainnet Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
selectorLabels:
|
||||
app: sc-verifier
|
||||
network: mainnet
|
||||
containerName: sc-verifier
|
||||
image:
|
||||
repository: ghcr.io/luxfi/explorer-sc-verifier
|
||||
digest: sha256:c45aa19e6350e6f5331b0d86dc40ee1f32e4c83ce5002ad70ed7b20ea56d1908
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
chain: cchain
|
||||
network: mainnet
|
||||
env:
|
||||
- name: SMART_CONTRACT_VERIFIER__SERVER__HTTP__ADDR
|
||||
value: 0.0.0.0:8050
|
||||
resources:
|
||||
limits:
|
||||
cpu: '1'
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 200m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8050
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8050
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
ports:
|
||||
- containerPort: 8050
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,51 @@
|
||||
# Generated from the live lux-mainnet/sig-provider-mainnet Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
selectorLabels:
|
||||
app: sig-provider
|
||||
network: mainnet
|
||||
containerName: sig-provider
|
||||
image:
|
||||
repository: ghcr.io/luxfi/explorer-sig-provider
|
||||
digest: sha256:3f31599258f496896cb476a3f0a7722d7c8f06e53eb5ad2784dbce034d917b9d
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
network: mainnet
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8050
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8050
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
ports:
|
||||
- containerPort: 8050
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,70 @@
|
||||
# Generated from the live lux-mainnet/stats-mainnet Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
selectorLabels:
|
||||
app: stats
|
||||
network: mainnet
|
||||
containerName: stats
|
||||
image:
|
||||
repository: ghcr.io/luxfi/explorer-stats
|
||||
tag: main
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
network: mainnet
|
||||
env:
|
||||
- name: STATS__DB_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: STATS_MAINNET_DB_URL
|
||||
name: db-credentials
|
||||
- name: STATS__BLOCKSCOUT_DB_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: STATS_MAINNET_DB_URL
|
||||
name: db-credentials
|
||||
- name: STATS__CREATE_DATABASE
|
||||
value: 'false'
|
||||
- name: STATS__RUN_MIGRATIONS
|
||||
value: 'true'
|
||||
- name: STATS__SERVER__HTTP__ADDR
|
||||
value: 0.0.0.0:8050
|
||||
- name: STATS__BLOCKSCOUT_API_URL
|
||||
value: http://explorer-mainnet.lux-mainnet.svc.cluster.local:4000
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8050
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 60
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8050
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
ports:
|
||||
- containerPort: 8050
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,51 @@
|
||||
# Generated from the live lux-mainnet/visualizer-mainnet Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
selectorLabels:
|
||||
app: visualizer
|
||||
network: mainnet
|
||||
containerName: visualizer
|
||||
image:
|
||||
repository: ghcr.io/luxfi/explorer-visualizer
|
||||
tag: main
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
network: mainnet
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8050
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8050
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
ports:
|
||||
- containerPort: 8050
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,70 @@
|
||||
# Generated from the live lux-mainnet/wallet-web Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: wallet-web
|
||||
containerName: web
|
||||
image:
|
||||
repository: ghcr.io/luxfi/wallet-web
|
||||
tag: 07997be04
|
||||
pullPolicy: IfNotPresent
|
||||
partOf: wallet-web
|
||||
labels:
|
||||
brand: lux
|
||||
component: web
|
||||
resources:
|
||||
limits:
|
||||
cpu: 250m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
volumeMounts:
|
||||
- mountPath: /public/brand.json
|
||||
name: brand
|
||||
readOnly: true
|
||||
subPath: brand.json
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 15
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
volumes:
|
||||
- configMap:
|
||||
name: wallet-web-brand
|
||||
name: brand
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- wallet.lux.network
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -0,0 +1,49 @@
|
||||
# Generated from the live lux-mainnet/work-board Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: work-board
|
||||
image:
|
||||
repository: ghcr.io/luxfi/work-board
|
||||
tag: lux-34afd2d
|
||||
pullPolicy: IfNotPresent
|
||||
resources:
|
||||
limits:
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 20
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,91 @@
|
||||
# Generated from the live lux-mpc/mpc-api Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: mpc-api
|
||||
image:
|
||||
repository: ghcr.io/luxfi/mpc-api
|
||||
digest: sha256:844cc4c98e6cbecf0ca11ba672d229d0b1b7d97b8434f9356920f83d0777752e
|
||||
pullPolicy: Always
|
||||
partOf: lux-mpc
|
||||
args:
|
||||
- api
|
||||
- --db
|
||||
- $(DATABASE_URL)
|
||||
- --listen
|
||||
- :8081
|
||||
- --jwt-secret
|
||||
- $(JWT_SECRET)
|
||||
- --cluster-url
|
||||
- http://mpc-node-0.mpc-node-headless.lux-mpc.svc:9800
|
||||
env:
|
||||
- name: DATABASE_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: DATABASE_URL
|
||||
name: mpc-secrets
|
||||
- name: JWT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: jwt-secret
|
||||
name: mpc-secrets
|
||||
- name: MPC_CLUSTER_URL
|
||||
value: http://mpc-node-0.mpc-node-headless.lux-mpc.svc:8081
|
||||
- name: REDIS_URL
|
||||
value: redis://mpc-kv.lux-mpc.svc:6379
|
||||
- name: KV_URL
|
||||
value: redis://mpc-kv.lux-mpc.svc:6379
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
volumeMounts:
|
||||
- mountPath: /tmp
|
||||
name: tmp
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8081
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8081
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
ports:
|
||||
- containerPort: 8081
|
||||
name: api
|
||||
volumes:
|
||||
- emptyDir:
|
||||
sizeLimit: 50Mi
|
||||
name: tmp
|
||||
imagePullSecrets:
|
||||
- name: registry-hanzo
|
||||
fsGroup: 1000
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,60 @@
|
||||
# Generated from the live lux-mpc/mpc-dashboard Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: mpc-dashboard
|
||||
containerName: dashboard
|
||||
image:
|
||||
repository: ghcr.io/luxfi/mpc-dashboard
|
||||
digest: sha256:ac9397abc3a290a0137a1db1d155b2ef6a31193eb0ff6844c63b269b24be645a
|
||||
pullPolicy: Always
|
||||
partOf: lux-mpc
|
||||
env:
|
||||
- name: NEXT_PUBLIC_API_URL
|
||||
value: https://mpc.lux.network/api/v1
|
||||
- name: NEXT_PUBLIC_IAM_URL
|
||||
value: https://lux.id
|
||||
- name: NEXT_PUBLIC_IAM_CLIENT_ID
|
||||
value: lux-mpc
|
||||
- name: HOSTNAME
|
||||
value: 0.0.0.0
|
||||
resources:
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 128Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
imagePullSecrets:
|
||||
- name: registry-hanzo
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,32 @@
|
||||
# Generated from the live lux-mpc/mpc-kv Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: mpc-kv
|
||||
containerName: kv
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/kv
|
||||
tag: '9'
|
||||
pullPolicy: IfNotPresent
|
||||
partOf: lux-mpc
|
||||
component: mpc
|
||||
resources:
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
name: valkey
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
@@ -0,0 +1,30 @@
|
||||
# Generated from the live lux-network/lux-network Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app.kubernetes.io/name: lux-network
|
||||
image:
|
||||
repository: ghcr.io/lux-apps/network
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
resources: {}
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
imagePullSecrets:
|
||||
- name: ghcr-pull
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
@@ -0,0 +1,56 @@
|
||||
# Generated from the live lux-ns/dex-api Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: dex-api
|
||||
containerName: gateway
|
||||
image:
|
||||
repository: ghcr.io/luxfi/dex-gateway
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
command:
|
||||
- ./gateway
|
||||
args:
|
||||
- -addr=:8080
|
||||
- -lux-rpc=http://luxd-headless.lux-mainnet.svc:9630/v1/bc/C/rpc
|
||||
- -zoo-rpc=http://luxd-headless.lux-mainnet.svc:9630/v1/bc/2Y625Kvdd4wZ5LKx9kLSf1jGALyARmXVN1YsTb4F3Hzv4bPDbp/rpc
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8080
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8080
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,49 @@
|
||||
# Generated from the live lux-ns/dex-docs Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: dex-docs
|
||||
containerName: docs
|
||||
image:
|
||||
repository: ghcr.io/luxfi/dex-docs
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
resources:
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 2
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,63 @@
|
||||
# Generated from the live lux-ns/exchange-api Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: exchange-api
|
||||
image:
|
||||
repository: ghcr.io/luxfi/exchange-api
|
||||
tag: 2.3.11
|
||||
pullPolicy: IfNotPresent
|
||||
env:
|
||||
- name: PORT
|
||||
value: '4000'
|
||||
- name: SUBGRAPH_URL
|
||||
value: http://graph-node.lux-mainnet.svc.cluster.local:8000/subgraphs/name/luxfi/amm-v3
|
||||
- name: SUBGRAPH_V2_URL
|
||||
value: http://explorer.lux-mainnet.svc.cluster.local:8090/v1/graph/cchain/amm/graphql
|
||||
- name: DEX_SUBGRAPH_URL
|
||||
value: http://explorer.lux-mainnet.svc.cluster.local:8090/v1/graph/cchain/dex/graphql
|
||||
- name: SUBGRAPH_V3_URL
|
||||
value: http://graph-node.lux-mainnet.svc.cluster.local:8000/subgraphs/name/luxfi/amm-v3
|
||||
- name: NETWORK
|
||||
value: mainnet
|
||||
- name: LUX_RPC_URL
|
||||
value: http://luxd-headless.lux-mainnet.svc.cluster.local:9630/v1/bc/C/rpc
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 4000
|
||||
scheme: HTTP
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 4000
|
||||
scheme: HTTP
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 4000
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
- name: ghcr-luxfi-fresh
|
||||
- name: ghcr-luxfi
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -0,0 +1,36 @@
|
||||
# Generated from the live lux-ns/exchange-gw Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: exchange-gw
|
||||
containerName: gateway
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/gateway
|
||||
digest: sha256:017dd6989257c5e86eefba734d5ecb16e1cf4ce2539ef229508156a1ee45b913
|
||||
pullPolicy: IfNotPresent
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
volumeMounts:
|
||||
- mountPath: /etc/gateway
|
||||
name: config
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
volumes:
|
||||
- configMap:
|
||||
name: exchange-gw-config
|
||||
name: config
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user