├── base ├── haproxy-lb │ ├── .gitignore │ ├── resources │ │ └── ns.yaml │ ├── patches │ │ ├── deployment-args.yaml │ │ ├── deployment-image.yaml │ │ ├── deployment-command.yaml │ │ └── deployment-initContainer.yaml │ ├── kustomization.yaml │ └── self-signed-ssl.pem ├── helpers │ ├── mainnet-patcher │ │ ├── .gitignore │ │ └── kustomization.yaml │ └── testnet-patcher │ │ ├── .gitignore │ │ └── kustomization.yaml ├── helm-charts │ ├── longhorn │ │ ├── patches │ │ │ └── remove-uninstall-job.yaml │ │ ├── resources │ │ │ └── ns.yaml │ │ └── kustomization.yaml │ └── postgres-ha │ │ ├── kustomization.yaml │ │ └── patches │ │ └── initContainer.yaml ├── common │ ├── kustomization.yaml │ ├── common-env.yaml │ └── rbac.yaml ├── dandelion-mainnet-public-ingresses │ └── kustomization.yaml ├── dandelion-testnet-public-ingresses │ └── kustomization.yaml ├── postgres-ws │ ├── kustomization.yaml │ ├── service.yaml │ └── deployment.yaml ├── postgrest │ ├── kustomization.yaml │ └── service.yaml ├── cardano-hasura │ ├── kustomization.yaml │ ├── hasura-service-exposed.yaml │ ├── service.yaml │ └── deployment.yaml ├── cardano-rosetta │ ├── kustomization.yaml │ ├── service.yaml │ ├── configmap.yaml │ └── deployment.yaml ├── dandelion-iohk-preprod-public-ingresses │ └── kustomization.yaml ├── dandelion-iohk-preview-public-ingresses │ └── kustomization.yaml ├── cardano-explorer-api │ ├── kustomization.yaml │ ├── service.yaml │ └── deployment.yaml ├── kupo │ ├── kustomization.yaml │ ├── service.yaml │ ├── configmap.yaml │ └── statefulset.yaml ├── ogmios │ ├── kustomization.yaml │ ├── service.yaml │ ├── configmap.yaml │ └── deployment.yaml ├── blockfrost │ ├── kustomization.yaml │ ├── service.yaml │ ├── configmap.yaml │ └── deployment.yaml ├── cardano-graphql │ ├── kustomization.yaml │ ├── service.yaml │ └── configmap.yaml ├── cardano-node │ ├── kustomization.yaml │ ├── service.yaml │ └── statefulset.yaml ├── cardano-token-registry │ ├── kustomization.yaml │ ├── pvc.yaml │ ├── service.yaml │ └── deployment.yaml ├── cardano-submit-api │ ├── kustomization.yaml │ ├── service.yaml │ └── deployment.yaml ├── metrics-exporter │ ├── kustomization.yaml │ ├── service.yaml │ ├── servicemonitor.yaml │ └── deployment.yaml ├── cardano-db-sync │ ├── kustomization.yaml │ └── job-ro-user-create.yaml ├── network-specific-patches │ ├── iohk-testnet │ │ ├── patches │ │ │ ├── ogmios-deployment-image.yaml │ │ │ ├── cardano-db-sync-deployment-image.yaml │ │ │ ├── cardano-graphql-deployment-image.yaml │ │ │ ├── genesis-image.yaml │ │ │ ├── cardano-submit-api-deployment-env.yaml │ │ │ ├── cardano-rosetta-deployment-image.yaml │ │ │ ├── cardano-node-deployment-image.yaml │ │ │ ├── cardano-node-pvc.yaml │ │ │ ├── postgres-ha-pvc.yaml │ │ │ ├── cardano-db-sync-deployment-pvc.yaml │ │ │ ├── cardano-node-deployment-initContainers-env.yaml │ │ │ ├── cardano-node-deployment-env.yaml │ │ │ ├── ogmios-deployment-env.yaml │ │ │ ├── cardano-explorer-api-deployment-env.yaml │ │ │ ├── cardano-db-sync-deployment-env.yaml │ │ │ ├── blockfrost-deployment-env.yaml │ │ │ ├── cardano-graphql-deployment-env.yaml │ │ │ ├── cardano-db-sync-deployment-initContainer-env.yaml │ │ │ └── cardano-node-configmap.yaml │ │ └── kustomization.yaml │ ├── mainnet │ │ ├── patches │ │ │ ├── cardano-db-sync-deployment-image.yaml │ │ │ ├── cardano-rosetta-deployment-image.yaml │ │ │ ├── genesis-image.yaml │ │ │ ├── cardano-node-pvc.yaml │ │ │ ├── postgres-ha-pvc.yaml │ │ │ ├── cardano-db-sync-deployment-pvc.yaml │ │ │ ├── postgres-dev-shm-mount.yaml │ │ │ ├── postgres-extended-configuration-configmap.yaml │ │ │ └── cardano-explorer-api-deployment-env.yaml │ │ └── kustomization.yaml │ ├── iohk-preprod │ │ ├── patches │ │ │ ├── cardano-db-sync-deployment-image.yaml │ │ │ ├── cardano-graphql-deployment-image.yaml │ │ │ ├── cardano-rosetta-deployment-image.yaml │ │ │ ├── kupo-genesis-image.yaml │ │ │ ├── ogmios-genesis-image.yaml │ │ │ ├── cardano-db-sync-genesis-image.yaml │ │ │ ├── cardano-node-deployment-image.yaml │ │ │ ├── cardano-submit-api-genesis-image.yaml │ │ │ ├── cardano-graphql-background-deployment-image.yaml │ │ │ ├── cardano-node-pvc.yaml │ │ │ ├── postgres-ha-pvc.yaml │ │ │ ├── cardano-db-sync-deployment-pvc.yaml │ │ │ ├── cardano-node-deployment-initContainers-env.yaml │ │ │ ├── cardano-node-deployment-env.yaml │ │ │ ├── cardano-explorer-api-deployment-env.yaml │ │ │ ├── cardano-graphql-deployment-env.yaml │ │ │ ├── blockfrost-deployment-env.yaml │ │ │ ├── cardano-graphql-background-deployment-env.yaml │ │ │ └── cardano-db-sync-deployment-initContainer-env.yaml │ │ └── kustomization.yaml │ └── iohk-preview │ │ ├── patches │ │ ├── cardano-db-sync-deployment-image.yaml │ │ ├── cardano-graphql-deployment-image.yaml │ │ ├── cardano-rosetta-deployment-image.yaml │ │ ├── kupo-genesis-image.yaml │ │ ├── ogmios-genesis-image.yaml │ │ ├── cardano-db-sync-genesis-image.yaml │ │ ├── cardano-node-deployment-image.yaml │ │ ├── cardano-submit-api-genesis-image.yaml │ │ ├── cardano-graphql-background-deployment-image.yaml │ │ ├── cardano-node-pvc.yaml │ │ ├── postgres-ha-pvc.yaml │ │ ├── cardano-db-sync-deployment-pvc.yaml │ │ ├── cardano-node-deployment-initContainers-env.yaml │ │ ├── cardano-node-deployment-env.yaml │ │ ├── cardano-explorer-api-deployment-env.yaml │ │ ├── cardano-graphql-deployment-env.yaml │ │ ├── blockfrost-deployment-env.yaml │ │ ├── cardano-graphql-background-deployment-env.yaml │ │ └── cardano-db-sync-deployment-initContainer-env.yaml │ │ └── kustomization.yaml ├── koios │ ├── service.yaml │ ├── kustomization.yaml │ ├── rbac.yaml │ ├── job-deploy-koios-sql.yaml │ ├── cronjob-asset-registry-update.yaml │ ├── cronjob-stake-snapshot-cache.yaml │ ├── cronjob-asset-info-cache-update.yaml │ ├── cronjob-epoch-info-cache-update.yaml │ ├── cronjob-active-stake-cache-update.yaml │ ├── cronjob-pool-history-cache-update.yaml │ ├── cronjob-populate-next-epoch-nonce.yaml │ ├── cronjob-stake-distribution-update.yaml │ └── cronjob-stake-distribution-new-accounts-update.yaml ├── mainnet-affinity-patches │ ├── patches │ │ ├── anti-affinity.yaml │ │ ├── base-affinity.yaml │ │ ├── db-main-affinity.yaml │ │ ├── cardano-node-affinity.yaml │ │ └── cardano-graphql-affinity.yaml │ └── kustomization.yaml └── testnet-affinity-patches │ ├── patches │ ├── anti-affinity.yaml │ ├── base-affinity.yaml │ ├── db-main-affinity.yaml │ ├── cardano-node-affinity.yaml │ └── cardano-graphql-affinity.yaml │ └── kustomization.yaml ├── applications ├── main-app │ ├── values-k3s.yaml │ ├── Chart.yaml │ ├── values-scaleway.yaml │ ├── templates │ │ ├── 001-namespaces.yaml │ │ ├── 000-project.yaml │ │ ├── 010-dandelion-base.yaml │ │ ├── 010-dandelion-cardano-db-sync.yaml │ │ ├── 010-dandelion-koios.yaml │ │ ├── 010-dandelion-ogmios.yaml │ │ ├── 010-dandelion-postgrest.yaml │ │ ├── 010-dandelion-cardano-rosetta.yaml │ │ ├── 010-dandelion-metrics-exporter.yaml │ │ ├── 010-dandelion-cardano-submit-api.yaml │ │ ├── 010-dandelion-cardano-explorer-api.yaml │ │ ├── 010-dandelion-cardano-graphql.yaml │ │ └── 005-postgres-ha.yaml │ ├── values-kube-prometheus-stack-scaleway.yaml │ └── values.yaml └── observability │ ├── Chart.yaml │ ├── install.sh │ ├── values.yaml │ └── templates │ ├── 010-dashboards.yaml │ ├── 020-traefik-service-monitor.yaml │ ├── 002-loki-stack.yaml │ └── 001-kube-prometheus-stack.yaml ├── .gitignore ├── OBSERVABILITY.md ├── DB_SYNC.md ├── overlays ├── mainnet-multi-node │ └── kustomization.yaml ├── testnet-multi-node │ └── kustomization.yaml ├── mainnet-full │ ├── helm-chartInflator-postgres-ha.yaml │ └── kustomization.yaml ├── testnet-full │ ├── helm-chartInflator-postgres-ha.yaml │ └── kustomization.yaml ├── testnet-base │ └── kustomization.yaml ├── mainnet-base │ └── kustomization.yaml ├── iohk-preprod-base │ └── kustomization.yaml ├── iohk-preview-base │ └── kustomization.yaml ├── iohk-preprod-full │ └── kustomization.yaml └── iohk-preview-full │ └── kustomization.yaml ├── TODO.md ├── argocd-bootstrap ├── Chart.yaml ├── values-k3s-mainnet.yaml ├── values-k3s-testnet.yaml ├── values-scaleway-mainnet.yaml ├── values-scaleway-testnet.yaml ├── values-k3s.yaml ├── values-scaleway.yaml ├── templates │ ├── 00-observability-bootstrap.yaml │ ├── 01-dandelion-mainnet-bootstrap.yaml │ └── 02-dandelion-testnet-bootstrap.yaml └── values.yaml └── ARGO_CD.md /base/haproxy-lb/.gitignore: -------------------------------------------------------------------------------- 1 | charts 2 | -------------------------------------------------------------------------------- /base/helpers/mainnet-patcher/.gitignore: -------------------------------------------------------------------------------- 1 | input.yaml 2 | -------------------------------------------------------------------------------- /base/helpers/testnet-patcher/.gitignore: -------------------------------------------------------------------------------- 1 | input.yaml 2 | -------------------------------------------------------------------------------- /applications/main-app/values-k3s.yaml: -------------------------------------------------------------------------------- 1 | # Local Docker deployment 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | output.yaml 3 | charts/ 4 | Chart.lock 5 | *.swp 6 | -------------------------------------------------------------------------------- /applications/main-app/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: main-application 2 | version: 0.0.1 3 | -------------------------------------------------------------------------------- /base/helm-charts/longhorn/patches/remove-uninstall-job.yaml: -------------------------------------------------------------------------------- 1 | - op: remove 2 | -------------------------------------------------------------------------------- /base/common/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - common-env.yaml 3 | - rbac.yaml 4 | -------------------------------------------------------------------------------- /applications/observability/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: dandelion-observability 2 | version: 0.0.1 3 | -------------------------------------------------------------------------------- /base/dandelion-mainnet-public-ingresses/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - ingress.yaml 3 | -------------------------------------------------------------------------------- /base/dandelion-testnet-public-ingresses/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - ingress.yaml 3 | -------------------------------------------------------------------------------- /base/postgres-ws/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - deployment.yaml 3 | - service.yaml 4 | -------------------------------------------------------------------------------- /base/postgrest/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - deployment.yaml 3 | - service.yaml 4 | -------------------------------------------------------------------------------- /applications/main-app/values-scaleway.yaml: -------------------------------------------------------------------------------- 1 | # Here scaleway specific config can be specified 2 | -------------------------------------------------------------------------------- /base/cardano-hasura/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - deployment.yaml 3 | - service.yaml 4 | -------------------------------------------------------------------------------- /base/cardano-rosetta/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - deployment.yaml 3 | - service.yaml 4 | -------------------------------------------------------------------------------- /base/dandelion-iohk-preprod-public-ingresses/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - ingress.yaml 3 | -------------------------------------------------------------------------------- /base/dandelion-iohk-preview-public-ingresses/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - ingress.yaml 3 | -------------------------------------------------------------------------------- /base/cardano-explorer-api/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - deployment.yaml 3 | - service.yaml 4 | -------------------------------------------------------------------------------- /base/haproxy-lb/resources/ns.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: haproxy 5 | -------------------------------------------------------------------------------- /base/kupo/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - configmap.yaml 3 | - statefulset.yaml 4 | - service.yaml 5 | -------------------------------------------------------------------------------- /base/ogmios/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - configmap.yaml 3 | - deployment.yaml 4 | - service.yaml 5 | -------------------------------------------------------------------------------- /applications/observability/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | helm upgrade --install grafana-dashboard . -n observe 3 | -------------------------------------------------------------------------------- /base/blockfrost/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - deployment.yaml 3 | - service.yaml 4 | - configmap.yaml 5 | -------------------------------------------------------------------------------- /base/haproxy-lb/patches/deployment-args.yaml: -------------------------------------------------------------------------------- 1 | - op: remove 2 | path: /spec/template/spec/containers/0/args 3 | -------------------------------------------------------------------------------- /base/cardano-graphql/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - configmap.yaml 3 | - deployment.yaml 4 | - service.yaml 5 | -------------------------------------------------------------------------------- /base/cardano-node/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - configmap.yaml 3 | - statefulset.yaml 4 | - service.yaml 5 | -------------------------------------------------------------------------------- /base/cardano-token-registry/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - pvc.yaml 3 | - deployment.yaml 4 | - service.yaml 5 | -------------------------------------------------------------------------------- /OBSERVABILITY.md: -------------------------------------------------------------------------------- 1 | # Observability 2 | 3 | ## Grafana credentials 4 | 5 | Currently just default admin/prom-operator 6 | -------------------------------------------------------------------------------- /base/cardano-submit-api/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - configmap.yaml 3 | - deployment.yaml 4 | - service.yaml 5 | -------------------------------------------------------------------------------- /base/metrics-exporter/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - deployment.yaml 3 | - service.yaml 4 | - servicemonitor.yaml 5 | -------------------------------------------------------------------------------- /base/helm-charts/longhorn/resources/ns.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: longhorn-system 5 | -------------------------------------------------------------------------------- /base/helpers/mainnet-patcher/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - input.yaml 3 | 4 | components: 5 | - ../../mainnet-patches 6 | -------------------------------------------------------------------------------- /base/helpers/testnet-patcher/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - input.yaml 3 | 4 | components: 5 | - ../../testnet-patches 6 | -------------------------------------------------------------------------------- /DB_SYNC.md: -------------------------------------------------------------------------------- 1 | # Cardano db-sync 2 | 3 | ### Snapshot 4 | 5 | https://update-cardano-mainnet.iohk.io/cardano-db-sync/index.html#11/ 6 | -------------------------------------------------------------------------------- /base/cardano-db-sync/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - statefulset.yaml 3 | - configmap.yaml 4 | - job-ro-user-create.yaml 5 | -------------------------------------------------------------------------------- /overlays/mainnet-multi-node/kustomization.yaml: -------------------------------------------------------------------------------- 1 | bases: 2 | - ../mainnet-full 3 | 4 | components: 5 | - ../../base/mainnet-affinity-patches 6 | -------------------------------------------------------------------------------- /overlays/testnet-multi-node/kustomization.yaml: -------------------------------------------------------------------------------- 1 | bases: 2 | - ../testnet-full 3 | 4 | components: 5 | - ../../base/testnet-affinity-patches 6 | -------------------------------------------------------------------------------- /base/haproxy-lb/patches/deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | gimbalabs/haproxy-apline:2.4.7-2 5 | -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- 1 | # TODO 2 | 3 | * [ ] Parameterise domain for services (ArgoCD is currently hardcoded to argocd.local) 4 | * [ ] Design and implement credentials management, ArgoCD, vs Grafana... etc. 5 | -------------------------------------------------------------------------------- /applications/observability/values.yaml: -------------------------------------------------------------------------------- 1 | # This is currently k3s specific. 2 | # TODO parameterize based on k8s platform 3 | 4 | spec: 5 | destination: 6 | server: https://kubernetes.default.svc 7 | -------------------------------------------------------------------------------- /applications/main-app/templates/001-namespaces.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: dl-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.namespaceSuffix }} 6 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/ogmios-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | cardanosolutions/ogmios:v5.5.3-testnet 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/mainnet/patches/cardano-db-sync-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | gimbalabs/cardano-db-sync:13.1.0.2 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/mainnet/patches/cardano-rosetta-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | inputoutput/cardano-rosetta:1.5.0 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/mainnet/patches/genesis-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/0/image 3 | value: 4 | repsistance/cardano-node:iohk-mn-passive-8.1.2-0 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-db-sync-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | gimbalabs/cardano-db-sync:13.1.0.2 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-db-sync-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | gimbalabs/cardano-db-sync:13.1.0.2 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/cardano-db-sync-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | gimbalabs/cardano-db-sync:13.0.5 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/cardano-graphql-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | inputoutput/cardano-graphql:7.0.1 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/genesis-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/0/image 3 | value: 4 | repsistance/cardano-node:iohk-tn-passive-8.1.2-0 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/cardano-submit-api-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: NETWORK 5 | value: testnet 6 | -------------------------------------------------------------------------------- /applications/main-app/values-kube-prometheus-stack-scaleway.yaml: -------------------------------------------------------------------------------- 1 | kubePrometheusStack: 2 | prometheus: 3 | prometheusSpec: 4 | retention: 3d 5 | grafana: 6 | plugins: 7 | - grafana-piechart-panel 8 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-graphql-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | inputoutput/cardano-graphql:8.0.0-preprod 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-rosetta-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | inputoutput/cardano-rosetta:master-testnet 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/kupo-genesis-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/0/image 3 | value: 4 | repsistance/cardano-node:iohk-preprod-passive-8.1.2-0 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-graphql-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | inputoutput/cardano-graphql:8.0.0-preview 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-rosetta-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | inputoutput/cardano-rosetta:master-testnet 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/kupo-genesis-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/0/image 3 | value: 4 | repsistance/cardano-node:iohk-preview-passive-8.1.2-0 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/cardano-rosetta-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | inputoutput/cardano-rosetta:master-testnet 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/ogmios-genesis-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/0/image 3 | value: 4 | repsistance/cardano-node:iohk-preprod-passive-8.1.2-0 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/ogmios-genesis-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/0/image 3 | value: 4 | repsistance/cardano-node:iohk-preview-passive-8.1.2-0 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/cardano-node-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | repsistance/cardano-node:iohk-tn-passive-8.1.2-0 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-db-sync-genesis-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/0/image 3 | value: 4 | repsistance/cardano-node:iohk-preprod-passive-8.1.2-0 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-node-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | repsistance/cardano-node:iohk-preprod-passive-8.1.2-0 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-db-sync-genesis-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/0/image 3 | value: 4 | repsistance/cardano-node:iohk-preview-passive-8.1.2-0 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-node-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | repsistance/cardano-node:iohk-preview-passive-8.1.2-0 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-submit-api-genesis-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/0/image 3 | value: 4 | repsistance/cardano-node:iohk-preprod-passive-8.1.2-0 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-submit-api-genesis-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/0/image 3 | value: 4 | repsistance/cardano-node:iohk-preview-passive-8.1.2-0 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-graphql-background-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | inputoutput/cardano-graphql-background:8.0.0-preprod 5 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-graphql-background-deployment-image.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/image 3 | value: 4 | inputoutput/cardano-graphql-background:8.0.0-preview 5 | -------------------------------------------------------------------------------- /base/cardano-token-registry/pvc.yaml: -------------------------------------------------------------------------------- 1 | kind: PersistentVolumeClaim 2 | apiVersion: v1 3 | metadata: 4 | name: cardano-token-registry-git 5 | spec: 6 | accessModes: 7 | - ReadWriteOnce 8 | resources: 9 | requests: 10 | storage: 1Gi 11 | -------------------------------------------------------------------------------- /base/haproxy-lb/patches/deployment-command.yaml: -------------------------------------------------------------------------------- 1 | - op: add 2 | path: /spec/template/spec/containers/0/command 3 | value: ["sh", "-c", "haproxy -W -db -f /usr/local/etc/haproxy/haproxy.cfg -f /extra-conf/dandelion-haproxy.cfg | grep -v WARNING.*exited.with.code.0"] 4 | -------------------------------------------------------------------------------- /applications/observability/templates/010-dashboards.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | data: 3 | {{ (.Files.Glob "custom-dashboards/*.json").AsConfig | indent 2 }} 4 | kind: ConfigMap 5 | metadata: 6 | name: grafana-custom-dashboards 7 | labels: 8 | grafana_dashboard: "true" 9 | -------------------------------------------------------------------------------- /base/network-specific-patches/mainnet/patches/cardano-node-pvc.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/volumeClaimTemplates 3 | value: 4 | - metadata: 5 | name: node-db 6 | spec: 7 | accessModes: [ "ReadWriteOnce" ] 8 | resources: 9 | requests: 10 | storage: 42Gi 11 | -------------------------------------------------------------------------------- /base/network-specific-patches/mainnet/patches/postgres-ha-pvc.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/volumeClaimTemplates 3 | value: 4 | - metadata: 5 | name: data 6 | spec: 7 | accessModes: [ "ReadWriteOnce" ] 8 | resources: 9 | requests: 10 | storage: 160Gi 11 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-node-pvc.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/volumeClaimTemplates 3 | value: 4 | - metadata: 5 | name: node-db 6 | spec: 7 | accessModes: [ "ReadWriteOnce" ] 8 | resources: 9 | requests: 10 | storage: 8Gi 11 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/postgres-ha-pvc.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/volumeClaimTemplates 3 | value: 4 | - metadata: 5 | name: data 6 | spec: 7 | accessModes: [ "ReadWriteOnce" ] 8 | resources: 9 | requests: 10 | storage: 40Gi 11 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-node-pvc.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/volumeClaimTemplates 3 | value: 4 | - metadata: 5 | name: node-db 6 | spec: 7 | accessModes: [ "ReadWriteOnce" ] 8 | resources: 9 | requests: 10 | storage: 8Gi 11 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/postgres-ha-pvc.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/volumeClaimTemplates 3 | value: 4 | - metadata: 5 | name: data 6 | spec: 7 | accessModes: [ "ReadWriteOnce" ] 8 | resources: 9 | requests: 10 | storage: 40Gi 11 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/cardano-node-pvc.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/volumeClaimTemplates 3 | value: 4 | - metadata: 5 | name: node-db 6 | spec: 7 | accessModes: [ "ReadWriteOnce" ] 8 | resources: 9 | requests: 10 | storage: 8Gi 11 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/postgres-ha-pvc.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/volumeClaimTemplates 3 | value: 4 | - metadata: 5 | name: data 6 | spec: 7 | accessModes: [ "ReadWriteOnce" ] 8 | resources: 9 | requests: 10 | storage: 40Gi 11 | -------------------------------------------------------------------------------- /base/kupo/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | io.kompose.service: kupo 6 | name: kupo 7 | spec: 8 | ports: 9 | - name: "1442" 10 | port: 1442 11 | targetPort: 1442 12 | selector: 13 | io.kompose.service: kupo 14 | status: 15 | loadBalancer: {} 16 | -------------------------------------------------------------------------------- /base/ogmios/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | io.kompose.service: ogmios 6 | name: ogmios 7 | spec: 8 | ports: 9 | - name: "1337" 10 | port: 1337 11 | targetPort: 1337 12 | selector: 13 | io.kompose.service: ogmios 14 | status: 15 | loadBalancer: {} 16 | -------------------------------------------------------------------------------- /base/koios/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | io.kompose.service: koios-api 6 | name: koios-api 7 | spec: 8 | ports: 9 | - name: "3000" 10 | port: 3000 11 | targetPort: 3000 12 | selector: 13 | io.kompose.service: koios-api 14 | status: 15 | loadBalancer: {} 16 | -------------------------------------------------------------------------------- /base/network-specific-patches/mainnet/patches/cardano-db-sync-deployment-pvc.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/volumeClaimTemplates 3 | value: 4 | - metadata: 5 | name: dbsync-statedir 6 | spec: 7 | accessModes: [ "ReadWriteOnce" ] 8 | resources: 9 | requests: 10 | storage: 20Gi 11 | -------------------------------------------------------------------------------- /overlays/mainnet-full/helm-chartInflator-postgres-ha.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: builtin 2 | kind: HelmChartInflationGenerator 3 | metadata: 4 | name: postgresql-ha 5 | chartHome: ../../base/helm-charts 6 | Name: postgresql-ha 7 | releaseName: init0 8 | releaseNamespace: dandelion-tn-v9 9 | ValuesFile: ./helm-postgres-ha-values.yaml 10 | -------------------------------------------------------------------------------- /overlays/testnet-full/helm-chartInflator-postgres-ha.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: builtin 2 | kind: HelmChartInflationGenerator 3 | metadata: 4 | name: postgresql-ha 5 | chartHome: ../../base/helm-charts 6 | Name: postgresql-ha 7 | releaseName: init0 8 | releaseNamespace: dandelion-tn-v9 9 | ValuesFile: ./helm-postgres-ha-values.yaml 10 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-db-sync-deployment-pvc.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/volumeClaimTemplates 3 | value: 4 | - metadata: 5 | name: dbsync-statedir 6 | spec: 7 | accessModes: [ "ReadWriteOnce" ] 8 | resources: 9 | requests: 10 | storage: 10Gi 11 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-db-sync-deployment-pvc.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/volumeClaimTemplates 3 | value: 4 | - metadata: 5 | name: dbsync-statedir 6 | spec: 7 | accessModes: [ "ReadWriteOnce" ] 8 | resources: 9 | requests: 10 | storage: 10Gi 11 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/cardano-db-sync-deployment-pvc.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/volumeClaimTemplates 3 | value: 4 | - metadata: 5 | name: dbsync-statedir 6 | spec: 7 | accessModes: [ "ReadWriteOnce" ] 8 | resources: 9 | requests: 10 | storage: 10Gi 11 | -------------------------------------------------------------------------------- /base/postgrest/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | io.kompose.service: postgrest 6 | name: postgrest 7 | spec: 8 | ports: 9 | - name: "3000" 10 | port: 3000 11 | targetPort: 3000 12 | selector: 13 | io.kompose.service: postgrest 14 | status: 15 | loadBalancer: {} 16 | -------------------------------------------------------------------------------- /base/blockfrost/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | io.kompose.service: blockfrost 6 | name: blockfrost 7 | spec: 8 | ports: 9 | - name: blockfrost 10 | port: 3000 11 | targetPort: 3000 12 | selector: 13 | io.kompose.service: blockfrost 14 | status: 15 | loadBalancer: {} 16 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-node-deployment-initContainers-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/1/env 3 | value: 4 | - name: RESTORE_SNAPSHOT 5 | value: "false" 6 | - name: NETWORK 7 | value: testnet 8 | - name: CNODE_DB_PATH 9 | value: /data 10 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-node-deployment-initContainers-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/1/env 3 | value: 4 | - name: RESTORE_SNAPSHOT 5 | value: "false" 6 | - name: NETWORK 7 | value: testnet 8 | - name: CNODE_DB_PATH 9 | value: /data 10 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/cardano-node-deployment-initContainers-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/1/env 3 | value: 4 | - name: RESTORE_SNAPSHOT 5 | value: "true" 6 | - name: NETWORK 7 | value: testnet 8 | - name: CNODE_DB_PATH 9 | value: /data 10 | -------------------------------------------------------------------------------- /base/postgres-ws/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | io.kompose.service: postgres-ws 6 | name: postgres-ws 7 | spec: 8 | ports: 9 | - name: "3000" 10 | port: 3000 11 | targetPort: 3000 12 | selector: 13 | io.kompose.service: postgres-ws 14 | status: 15 | loadBalancer: {} 16 | -------------------------------------------------------------------------------- /base/cardano-graphql/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | io.kompose.service: cardano-graphql 6 | name: cardano-graphql 7 | spec: 8 | ports: 9 | - name: "3100" 10 | port: 3100 11 | targetPort: 3100 12 | selector: 13 | io.kompose.service: cardano-graphql 14 | status: 15 | loadBalancer: {} 16 | -------------------------------------------------------------------------------- /base/cardano-hasura/hasura-service-exposed.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | labels: 6 | io.kompose.service: hasura 7 | name: hasura 8 | spec: 9 | ports: 10 | - name: hasura 11 | port: 8080 12 | targetPort: 8080 13 | selector: 14 | io.kompose.service: hasura 15 | status: 16 | loadBalancer: {} 17 | 18 | -------------------------------------------------------------------------------- /base/cardano-rosetta/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | io.kompose.service: cardano-rosetta 6 | name: cardano-rosetta 7 | spec: 8 | ports: 9 | - name: "8080" 10 | port: 8080 11 | targetPort: 8080 12 | selector: 13 | io.kompose.service: cardano-rosetta 14 | status: 15 | loadBalancer: {} 16 | -------------------------------------------------------------------------------- /base/network-specific-patches/mainnet/patches/postgres-dev-shm-mount.yaml: -------------------------------------------------------------------------------- 1 | - op: add 2 | path: /spec/template/spec/volumes/- 3 | value: 4 | name: shm 5 | emptyDir: 6 | medium: Memory 7 | sizeLimit: 32Gi 8 | 9 | - op: add 10 | path: /spec/template/spec/containers/0/volumeMounts/- 11 | value: 12 | mountPath: /dev/shm 13 | name: shm 14 | -------------------------------------------------------------------------------- /base/cardano-explorer-api/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | io.kompose.service: cardano-explorer-api 6 | name: cardano-explorer-api 7 | spec: 8 | ports: 9 | - name: "8101" 10 | port: 8101 11 | targetPort: 8100 12 | selector: 13 | io.kompose.service: cardano-explorer-api 14 | status: 15 | loadBalancer: {} 16 | -------------------------------------------------------------------------------- /base/helm-charts/postgres-ha/kustomization.yaml: -------------------------------------------------------------------------------- 1 | helmCharts: 2 | - name: postgresql-ha 3 | valuesFile: helm-values.yaml 4 | releaseName: init0 5 | version: 11.9.8 6 | repo: https://charts.bitnami.com/bitnami 7 | 8 | patches: 9 | # postgres-ha 10 | - path: patches/initContainer.yaml 11 | target: 12 | kind: StatefulSet 13 | name: init0-postgresql-ha-postgresql 14 | -------------------------------------------------------------------------------- /overlays/testnet-base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | commonLabels: 2 | environment: production 3 | cardano_network: testnet 4 | cardano_node_type: haskell 5 | project_name: dandelion 6 | commonAnnotations: 7 | note: free-apis! 8 | 9 | bases: 10 | - ../../base/common 11 | - ../../base/cardano-node 12 | 13 | components: 14 | - ../../base/network-specific-patches/iohk-testnet 15 | -------------------------------------------------------------------------------- /base/ogmios/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: ogmios-configmap 5 | data: 6 | initContainer-entrypoint: | 7 | rm -rf /config/lost+found 8 | 9 | CNODE_FILES="config.json byron-genesis.json genesis.json alonzo-genesis.json" 10 | 11 | for file in ${CNODE_FILES} 12 | do 13 | cp -a /opt/cardano/cnode/files/${file} /config 14 | done 15 | -------------------------------------------------------------------------------- /overlays/mainnet-base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | commonLabels: 2 | environment: production 3 | cardano_network: mainnet 4 | cardano_node_type: haskell 5 | project_name: dandelion 6 | commonAnnotations: 7 | note: free-apis! 8 | 9 | namespace: dandelion-mainnet 10 | 11 | bases: 12 | - ../../base/common 13 | - ../../base/cardano-node 14 | 15 | components: 16 | - ../../base/network-specific-patches/mainnet 17 | -------------------------------------------------------------------------------- /overlays/iohk-preprod-base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | commonLabels: 2 | environment: production 3 | cardano_network: iohk-preprod 4 | cardano_node_type: haskell 5 | project_name: dandelion 6 | commonAnnotations: 7 | note: free-apis! 8 | 9 | namespace: dandelion-iohk-preprod 10 | 11 | bases: 12 | - ../../base/common 13 | - ../../base/cardano-node 14 | 15 | components: 16 | - ../../base/network-specific-patches/iohk-preprod 17 | -------------------------------------------------------------------------------- /overlays/iohk-preview-base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | commonLabels: 2 | environment: production 3 | cardano_network: iohk-preview 4 | cardano_node_type: haskell 5 | project_name: dandelion 6 | commonAnnotations: 7 | note: free-apis! 8 | 9 | namespace: dandelion-iohk-preview 10 | 11 | bases: 12 | - ../../base/common 13 | - ../../base/cardano-node 14 | 15 | components: 16 | - ../../base/network-specific-patches/iohk-preview 17 | -------------------------------------------------------------------------------- /base/cardano-token-registry/service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: cardano-token-registry 6 | labels: 7 | app.kubernetes.io/name: cardano-token-registry 8 | spec: 9 | sessionAffinity: None 10 | type: ClusterIP 11 | ports: 12 | - name: metrics 13 | port: 3042 14 | targetPort: 3042 15 | protocol: TCP 16 | selector: 17 | io.kompose.service: cardano-token-registry 18 | -------------------------------------------------------------------------------- /base/metrics-exporter/service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: dandelion-metrics-exporter 6 | labels: 7 | app.kubernetes.io/name: dandelion-metrics-exporter 8 | spec: 9 | sessionAffinity: None 10 | type: ClusterIP 11 | ports: 12 | - name: metrics 13 | port: 9999 14 | targetPort: 9999 15 | protocol: TCP 16 | selector: 17 | io.kompose.service: dandelion-metrics-exporter 18 | -------------------------------------------------------------------------------- /applications/main-app/values.yaml: -------------------------------------------------------------------------------- 1 | git: 2 | repositoryUrl: https://gitlab.com/gimbalabs/dandelion/kustomize-dandelion.git 3 | targetRevision: main 4 | 5 | dandelion: 6 | provider: 7 | name: null 8 | argoProjectSuffix: "v0-0-0" 9 | argoAppSuffix: "-v0-0-0" 10 | namespaceSuffix: "-v0-0-0" 11 | multiNode: false 12 | cardano: 13 | network: null 14 | 15 | spec: 16 | destination: 17 | server: https://kubernetes.default.svc 18 | -------------------------------------------------------------------------------- /base/helm-charts/longhorn/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - resources/ns.yaml 3 | 4 | helmCharts: 5 | - name: longhorn 6 | valuesFile: helm-values.yaml 7 | releaseName: init0 8 | namespace: longhorn-system 9 | version: 1.2.4 10 | repo: https://charts.longhorn.io 11 | 12 | patchesStrategicMerge: 13 | - |- 14 | apiVersion: batch/v1 15 | kind: Job 16 | metadata: 17 | name: longhorn-uninstall 18 | namespace: longhorn-system 19 | $patch: delete 20 | -------------------------------------------------------------------------------- /base/common/common-env.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: common-env 5 | data: 6 | POSTGRES_HOST: init0-postgresql-ha-postgresql 7 | POSTGRES_HOST_RO: init0-postgresql-ha-postgresql 8 | POSTGRES_HOST_RW: init0-postgresql-ha-postgresql 9 | POSTGRES_PORT: "5432" 10 | POSTGRES_DB: cexplorer 11 | POSTGRES_USER: postgres 12 | POSTGRES_USER_RO: dandelion_ro 13 | chisel-auth-file: | 14 | { 15 | "admin:CHANGEME": [""] 16 | } 17 | -------------------------------------------------------------------------------- /applications/observability/templates/020-traefik-service-monitor.yaml: -------------------------------------------------------------------------------- 1 | {{- if eq .Values.dandelion.provider.name "disabled" -}} 2 | apiVersion: monitoring.coreos.com/v1 3 | kind: ServiceMonitor 4 | metadata: 5 | labels: 6 | app: traefik 7 | release: kube-prometheus 8 | name: traefik 9 | spec: 10 | endpoints: 11 | - port: metrics 12 | namespaceSelector: 13 | matchNames: 14 | - kube-system 15 | selector: 16 | matchLabels: 17 | app.kubernetes.io/name: traefik 18 | 19 | {{- end }} 20 | -------------------------------------------------------------------------------- /argocd-bootstrap/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: argocd-bootstrap 3 | version: 0.0.1 4 | dependencies: 5 | - name: argo-cd 6 | version: 3.29.4 7 | repository: https://argoproj.github.io/argo-helm 8 | - name: sealed-secrets 9 | version: 2.0.1 10 | repository: https://bitnami-labs.github.io/sealed-secrets 11 | - name: traefik 12 | version: 10.9.0 13 | repository: https://helm.traefik.io/traefik 14 | - name: external-dns 15 | version: 6.0.2 16 | repository: https://charts.bitnami.com/bitnami 17 | -------------------------------------------------------------------------------- /base/metrics-exporter/servicemonitor.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: monitoring.coreos.com/v1 2 | kind: ServiceMonitor 3 | metadata: 4 | labels: 5 | io.kompose.service: dandelion-metrics-exporter 6 | prometheus: enabled 7 | name: dandelion-metrics-exporter 8 | spec: 9 | endpoints: 10 | - port: metrics 11 | path: / 12 | interval: 20s 13 | targetPort: 9100 14 | namespaceSelector: 15 | matchNames: 16 | - cardano 17 | selector: 18 | matchLabels: 19 | app.kubernetes.io/name: dandelion-metrics-exporter 20 | -------------------------------------------------------------------------------- /base/helm-charts/postgres-ha/patches/initContainer.yaml: -------------------------------------------------------------------------------- 1 | - op: add 2 | path: /spec/template/spec/initContainers 3 | value: 4 | - name: conf-dir-workaround 5 | command: ["sh", "-c", "mkdir -p /bitnami/postgresql/conf; chown -R 1001:1001 /bitnami/postgresql"] 6 | securityContext: 7 | allowPrivilegeEscalation: false 8 | runAsUser: 0 9 | image: alpine 10 | imagePullPolicy: IfNotPresent 11 | volumeMounts: 12 | - mountPath: /bitnami/postgresql 13 | name: data 14 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/cardano-node-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: NETWORK 5 | value: iohk-tn 6 | - name: CNODE_HOST_ADDR 7 | value: 0.0.0.0 8 | - name: CARDANO_NODE_SOCKET_PATH 9 | value: /ipc/node.socket 10 | - name: CNODE_DB_PATH 11 | value: /data/db 12 | - name: CNODE_TOPOLOGY_FILE 13 | value: /configmap/topology.json 14 | - name: CNODE_CONFIG_FILE 15 | value: /configmap/config.json 16 | -------------------------------------------------------------------------------- /base/common/rbac.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: rbac.authorization.k8s.io/v1 3 | kind: Role 4 | metadata: 5 | name: pod-reader 6 | rules: 7 | - apiGroups: [""] # "" indicates the core API group 8 | resources: ["pods","pods/log"] 9 | verbs: ["get", "watch", "list"] 10 | 11 | --- 12 | apiVersion: rbac.authorization.k8s.io/v1 13 | kind: RoleBinding 14 | metadata: 15 | name: pod-reader 16 | roleRef: 17 | apiGroup: rbac.authorization.k8s.io 18 | kind: Role 19 | name: pod-reader 20 | subjects: 21 | - kind: ServiceAccount 22 | name: default 23 | 24 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-node-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: NETWORK 5 | value: iohk-preprod 6 | - name: CNODE_HOST_ADDR 7 | value: 0.0.0.0 8 | - name: CARDANO_NODE_SOCKET_PATH 9 | value: /ipc/node.socket 10 | - name: CNODE_DB_PATH 11 | value: /data/db 12 | - name: CNODE_TOPOLOGY_FILE 13 | value: /configmap/topology.json 14 | - name: CNODE_CONFIG_FILE 15 | value: /configmap/config.json 16 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-node-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: NETWORK 5 | value: iohk-preview 6 | - name: CNODE_HOST_ADDR 7 | value: 0.0.0.0 8 | - name: CARDANO_NODE_SOCKET_PATH 9 | value: /ipc/node.socket 10 | - name: CNODE_DB_PATH 11 | value: /data/db 12 | - name: CNODE_TOPOLOGY_FILE 13 | value: /configmap/topology.json 14 | - name: CNODE_CONFIG_FILE 15 | value: /configmap/config.json 16 | -------------------------------------------------------------------------------- /base/cardano-submit-api/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -c --controller deployment --volumes persistentVolumeClaim 6 | kompose.version: 1.21.0 (992df58d8) 7 | creationTimestamp: null 8 | labels: 9 | io.kompose.service: cardano-submit-api 10 | name: cardano-submit-api 11 | spec: 12 | ports: 13 | - name: "8091" 14 | port: 8091 15 | targetPort: 8090 16 | selector: 17 | io.kompose.service: cardano-submit-api 18 | status: 19 | loadBalancer: {} 20 | -------------------------------------------------------------------------------- /base/koios/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - rbac.yaml 3 | - configmap.yaml 4 | - job-deploy-koios-sql.yaml 5 | - deployment.yaml 6 | - service.yaml 7 | - cronjob-active-stake-cache-update.yaml 8 | - cronjob-asset-info-cache-update.yaml 9 | - cronjob-asset-registry-update.yaml 10 | - cronjob-epoch-info-cache-update.yaml 11 | - cronjob-pool-history-cache-update.yaml 12 | - cronjob-populate-next-epoch-nonce.yaml 13 | - cronjob-stake-distribution-new-accounts-update.yaml 14 | - cronjob-stake-distribution-update.yaml 15 | - cronjob-stake-snapshot-cache.yaml 16 | -------------------------------------------------------------------------------- /base/mainnet-affinity-patches/patches/anti-affinity.yaml: -------------------------------------------------------------------------------- 1 | - op: add 2 | path: /spec/template/spec/affinity 3 | value: 4 | podAntiAffinity: 5 | requiredDuringSchedulingIgnoredDuringExecution: 6 | - labelSelector: 7 | matchExpressions: 8 | - key: app.kubernetes.io/component 9 | operator: In 10 | values: 11 | - postgresql 12 | - key: io.kompose.service 13 | operator: In 14 | values: 15 | - cardano-db-sync 16 | topologyKey: kubernetes.io/hostname 17 | -------------------------------------------------------------------------------- /base/testnet-affinity-patches/patches/anti-affinity.yaml: -------------------------------------------------------------------------------- 1 | - op: add 2 | path: /spec/template/spec/affinity 3 | value: 4 | podAntiAffinity: 5 | requiredDuringSchedulingIgnoredDuringExecution: 6 | - labelSelector: 7 | matchExpressions: 8 | - key: app.kubernetes.io/component 9 | operator: In 10 | values: 11 | - postgresql 12 | - key: io.kompose.service 13 | operator: In 14 | values: 15 | - cardano-db-sync 16 | topologyKey: kubernetes.io/hostname 17 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/ogmios-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: OGMIOS_NETWORK 5 | value: testnet 6 | - name: NODE_CONFIG_PATH 7 | value: "/config/network/cardano-node/config.json" 8 | - name: LISTEN_HOST 9 | value: 0.0.0.0 10 | - name: LISTEN_PORT 11 | value: "1337" 12 | - name: NODE_SOCKET_PATH 13 | value: /node-ipc/node.socket 14 | - name: LOG_LEVEL 15 | value: Debug 16 | 17 | - op: replace 18 | path: /spec/template/spec/initContainers/0/env 19 | value: 20 | - name: OGMIOS_NETWORK 21 | value: testnet 22 | -------------------------------------------------------------------------------- /applications/main-app/templates/000-project.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: AppProject 4 | metadata: 5 | name: dandelion-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.argoAppSuffix }} 6 | # Finalizer that ensures that project is not deleted until it is not referenced by any application 7 | finalizers: 8 | - resources-finalizer.argocd.argoproj.io 9 | spec: 10 | description: dandelion-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.argoAppSuffix }} 11 | clusterResourceWhitelist: 12 | - group: '*' 13 | kind: '*' 14 | destinations: 15 | - namespace: '*' 16 | server: '*' 17 | sourceRepos: 18 | - '*' 19 | --- 20 | -------------------------------------------------------------------------------- /base/kupo/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: kupo-configmap 5 | data: 6 | initContainer-entrypoint: | 7 | rm -rf /config/lost+found 8 | 9 | CNODE_FILES="config.json byron-genesis.json genesis.json alonzo-genesis.json" 10 | 11 | for file in ${CNODE_FILES} 12 | do 13 | cp -a /opt/cardano/cnode/files/${file} /config 14 | done 15 | entrypoint: | 16 | kupo \ 17 | --host 0.0.0.0 \ 18 | --port ${KUPO_PORT} \ 19 | --node-socket ${CARDANO_NODE_SOCKET_PATH} \ 20 | --node-config ${CARDANO_NODE_CONFIG_PATH} \ 21 | --since origin \ 22 | --defer-db-indexes \ 23 | --workdir ${KUPO_DB_PATH} \ 24 | --match '*/*' 25 | -------------------------------------------------------------------------------- /base/koios/rbac.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: koios-deploy-sql 6 | automountServiceAccountToken: true 7 | 8 | --- 9 | apiVersion: rbac.authorization.k8s.io/v1 10 | kind: Role 11 | metadata: 12 | name: koios-deploy-sql 13 | rules: 14 | - apiGroups: [""] # "" indicates the core API group 15 | resources: ["pods"] 16 | verbs: ["delete", "get", "watch", "list", "patch"] 17 | 18 | --- 19 | apiVersion: rbac.authorization.k8s.io/v1 20 | kind: RoleBinding 21 | metadata: 22 | name: koios-deploy-sql 23 | roleRef: 24 | apiGroup: rbac.authorization.k8s.io 25 | kind: Role 26 | name: koios-deploy-sql 27 | subjects: 28 | - kind: ServiceAccount 29 | name: koios-deploy-sql 30 | -------------------------------------------------------------------------------- /base/network-specific-patches/mainnet/patches/postgres-extended-configuration-configmap.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /data 3 | value: 4 | override.conf: | 5 | max_locks_per_transaction = 256 6 | shared_buffers = 12GB 7 | effective_cache_size = 36GB 8 | maintenance_work_mem = 2GB 9 | checkpoint_completion_target = 0.9 10 | checkpoint_timeout = 1h 11 | synchronous_commit = off 12 | wal_buffers = 16MB 13 | default_statistics_target = 500 14 | random_page_cost = 1.1 15 | effective_io_concurrency = 500 16 | work_mem = 1024GB 17 | min_wal_size = 1GB 18 | max_wal_size = 2GB 19 | max_parallel_workers_per_gather = 4 20 | max_parallel_maintenance_workers = 4 21 | -------------------------------------------------------------------------------- /base/cardano-node/service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: cardano-node-headless 6 | labels: 7 | io.kompose.service: cardano-node 8 | spec: 9 | sessionAffinity: ClientIP 10 | clusterIP: None 11 | type: ClusterIP 12 | ports: 13 | - name: socat-tcp-server 14 | port: 30000 15 | targetPort: 30000 16 | protocol: TCP 17 | selector: 18 | io.kompose.service: cardano-node 19 | 20 | --- 21 | apiVersion: v1 22 | kind: Service 23 | metadata: 24 | labels: 25 | io.kompose.service: cardano-node 26 | name: chisel-server 27 | spec: 28 | ports: 29 | - name: chisel-server 30 | port: 40000 31 | targetPort: 40000 32 | selector: 33 | io.kompose.service: cardano-node 34 | status: 35 | loadBalancer: {} 36 | -------------------------------------------------------------------------------- /overlays/testnet-full/kustomization.yaml: -------------------------------------------------------------------------------- 1 | commonLabels: 2 | environment: production 3 | cardano_network: testnet 4 | cardano_node_type: haskell 5 | project_name: dandelion 6 | commonAnnotations: 7 | note: free-apis! 8 | 9 | bases: 10 | - ../testnet-base 11 | - ../../base/helm-charts/postgres-ha 12 | - ../../base/cardano-db-sync 13 | - ../../base/cardano-graphql 14 | - ../../base/cardano-hasura 15 | - ../../base/cardano-rosetta 16 | - ../../base/cardano-explorer-api 17 | - ../../base/cardano-submit-api 18 | #- ../../base/metrics-exporter 19 | - ../../base/ogmios 20 | - ../../base/postgrest 21 | - ../../base/koios 22 | - ../../base/blockfrost 23 | 24 | resources: 25 | - resources/ingress.yaml 26 | 27 | components: 28 | - ../../base/network-specific-patches/iohk-testnet 29 | -------------------------------------------------------------------------------- /base/cardano-hasura/service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | labels: 6 | io.kompose.service: hasura 7 | name: hasura-headless 8 | spec: 9 | sessionAffinity: ClientIP 10 | clusterIP: None 11 | type: ClusterIP 12 | ports: 13 | - name: hasura 14 | port: 8080 15 | targetPort: 8080 16 | protocol: TCP 17 | selector: 18 | io.kompose.service: hasura 19 | status: 20 | loadBalancer: {} 21 | 22 | --- 23 | #apiVersion: v1 24 | #kind: Service 25 | #metadata: 26 | # labels: 27 | # io.kompose.service: hasura 28 | # name: hasura 29 | #spec: 30 | # ports: 31 | # - name: hasura 32 | # port: 8080 33 | # targetPort: 8080 34 | # selector: 35 | # io.kompose.service: hasura 36 | #status: 37 | # loadBalancer: {} 38 | # 39 | -------------------------------------------------------------------------------- /overlays/iohk-preprod-full/kustomization.yaml: -------------------------------------------------------------------------------- 1 | commonLabels: 2 | environment: production 3 | cardano_network: iohk-preprod 4 | cardano_node_type: haskell 5 | project_name: dandelion 6 | commonAnnotations: 7 | note: free-apis! 8 | 9 | namespace: dandelion-iohk-preprod 10 | 11 | bases: 12 | - ../iohk-preprod-base 13 | - ../../base/helm-charts/postgres-ha 14 | - ../../base/cardano-db-sync 15 | - ../../base/cardano-graphql 16 | - ../../base/cardano-hasura 17 | - ../../base/cardano-rosetta 18 | - ../../base/cardano-explorer-api 19 | - ../../base/cardano-submit-api 20 | #- ../../base/metrics-exporter 21 | - ../../base/ogmios 22 | - ../../base/postgrest 23 | - ../../base/koios 24 | - ../../base/blockfrost 25 | - ../../base/kupo 26 | 27 | resources: 28 | - resources/ingress.yaml 29 | 30 | components: 31 | - ../../base/network-specific-patches/iohk-preprod 32 | -------------------------------------------------------------------------------- /overlays/iohk-preview-full/kustomization.yaml: -------------------------------------------------------------------------------- 1 | commonLabels: 2 | environment: production 3 | cardano_network: iohk-preprod 4 | cardano_node_type: haskell 5 | project_name: dandelion 6 | commonAnnotations: 7 | note: free-apis! 8 | 9 | namespace: dandelion-iohk-preview 10 | 11 | bases: 12 | - ../iohk-preprod-base 13 | - ../../base/helm-charts/postgres-ha 14 | - ../../base/cardano-db-sync 15 | - ../../base/cardano-graphql 16 | - ../../base/cardano-hasura 17 | - ../../base/cardano-rosetta 18 | - ../../base/cardano-explorer-api 19 | - ../../base/cardano-submit-api 20 | #- ../../base/metrics-exporter 21 | - ../../base/ogmios 22 | - ../../base/postgrest 23 | - ../../base/koios 24 | - ../../base/blockfrost 25 | - ../../base/kupo 26 | 27 | resources: 28 | - resources/ingress.yaml 29 | 30 | components: 31 | - ../../base/network-specific-patches/iohk-preview 32 | -------------------------------------------------------------------------------- /overlays/mainnet-full/kustomization.yaml: -------------------------------------------------------------------------------- 1 | commonLabels: 2 | environment: production 3 | cardano_network: mainnet 4 | cardano_node_type: haskell 5 | project_name: dandelion 6 | commonAnnotations: 7 | note: free-apis! 8 | 9 | namespace: dandelion-mainnet 10 | 11 | bases: 12 | - ../mainnet-base 13 | - ../../base/helm-charts/postgres-ha 14 | - ../../base/cardano-db-sync 15 | - ../../base/cardano-graphql 16 | - ../../base/cardano-hasura 17 | - ../../base/cardano-rosetta 18 | - ../../base/cardano-submit-api 19 | - ../../base/cardano-explorer-api 20 | - ../../base/cardano-token-registry 21 | #- ../../base/metrics-exporter 22 | - ../../base/ogmios 23 | - ../../base/postgrest 24 | - ../../base/koios 25 | - ../../base/blockfrost 26 | - ../../base/kupo 27 | 28 | resources: 29 | - resources/ingress.yaml 30 | 31 | components: 32 | - ../../base/network-specific-patches/mainnet 33 | -------------------------------------------------------------------------------- /base/mainnet-affinity-patches/patches/base-affinity.yaml: -------------------------------------------------------------------------------- 1 | - op: add 2 | path: /spec/template/spec/tolerations 3 | value: 4 | - key: "k8s.dandelion.link/cardano-network" 5 | operator: "Equal" 6 | value: "mainnet" 7 | effect: "PreferNoSchedule" 8 | 9 | - op: add 10 | path: /spec/template/spec/affinity 11 | value: 12 | nodeAffinity: 13 | requiredDuringSchedulingIgnoredDuringExecution: 14 | nodeSelectorTerms: 15 | - matchExpressions: 16 | - key: k8s.dandelion.link/cardano-network 17 | operator: In 18 | values: 19 | - mainnet 20 | preferredDuringSchedulingIgnoredDuringExecution: 21 | - weight: 100 22 | preference: 23 | matchExpressions: 24 | - key: k8s.dandelion.link/cardano-network 25 | operator: In 26 | values: 27 | - mainnet 28 | -------------------------------------------------------------------------------- /base/testnet-affinity-patches/patches/base-affinity.yaml: -------------------------------------------------------------------------------- 1 | - op: add 2 | path: /spec/template/spec/tolerations 3 | value: 4 | - key: "k8s.dandelion.link/cardano-network" 5 | operator: "Equal" 6 | value: "testnet" 7 | effect: "PreferNoSchedule" 8 | 9 | - op: add 10 | path: /spec/template/spec/affinity 11 | value: 12 | nodeAffinity: 13 | requiredDuringSchedulingIgnoredDuringExecution: 14 | nodeSelectorTerms: 15 | - matchExpressions: 16 | - key: k8s.dandelion.link/cardano-network 17 | operator: In 18 | values: 19 | - testnet 20 | preferredDuringSchedulingIgnoredDuringExecution: 21 | - weight: 100 22 | preference: 23 | matchExpressions: 24 | - key: k8s.dandelion.link/cardano-network 25 | operator: In 26 | values: 27 | - testnet 28 | -------------------------------------------------------------------------------- /base/haproxy-lb/kustomization.yaml: -------------------------------------------------------------------------------- 1 | helmCharts: 2 | - name: haproxy 3 | valuesFile: helm-values.yaml 4 | releaseName: init0 5 | version: 1.7.0 6 | repo: https://haproxytech.github.io/helm-charts 7 | 8 | secretGenerator: 9 | - name: self-signed-ssl 10 | files: 11 | - self-signed-ssl.pem 12 | 13 | patches: 14 | - path: patches/deployment-args.yaml 15 | target: 16 | kind: DaemonSet 17 | name: init0-haproxy 18 | - path: patches/deployment-command.yaml 19 | target: 20 | kind: DaemonSet 21 | name: init0-haproxy 22 | - path: patches/deployment-initContainer.yaml 23 | target: 24 | kind: DaemonSet 25 | name: init0-haproxy 26 | - path: patches/deployment-image.yaml 27 | target: 28 | kind: DaemonSet 29 | name: init0-haproxy 30 | 31 | resources: 32 | - resources/ns.yaml 33 | - resources/configmap.yaml 34 | - resources/service-metrics.yaml 35 | 36 | namespace: haproxy 37 | -------------------------------------------------------------------------------- /base/network-specific-patches/mainnet/patches/cardano-explorer-api-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: NETWORK 5 | value: mainnet 6 | - name: POSTGRES_HOST 7 | valueFrom: 8 | configMapKeyRef: 9 | key: POSTGRES_HOST 10 | name: common-env 11 | - name: POSTGRES_PORT 12 | valueFrom: 13 | configMapKeyRef: 14 | key: POSTGRES_PORT 15 | name: common-env 16 | - name: POSTGRES_DB 17 | valueFrom: 18 | configMapKeyRef: 19 | key: POSTGRES_DB 20 | name: common-env 21 | - name: POSTGRES_USER 22 | valueFrom: 23 | configMapKeyRef: 24 | key: POSTGRES_USER 25 | name: common-env 26 | - name: POSTGRES_PASSWORD 27 | valueFrom: 28 | secretKeyRef: 29 | key: password 30 | name: init0-postgresql-ha-postgresql 31 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-explorer-api-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: NETWORK 5 | value: testnet 6 | - name: POSTGRES_HOST 7 | valueFrom: 8 | configMapKeyRef: 9 | key: POSTGRES_HOST 10 | name: common-env 11 | - name: POSTGRES_PORT 12 | valueFrom: 13 | configMapKeyRef: 14 | key: POSTGRES_PORT 15 | name: common-env 16 | - name: POSTGRES_DB 17 | valueFrom: 18 | configMapKeyRef: 19 | key: POSTGRES_DB 20 | name: common-env 21 | - name: POSTGRES_USER 22 | valueFrom: 23 | configMapKeyRef: 24 | key: POSTGRES_USER 25 | name: common-env 26 | - name: POSTGRES_PASSWORD 27 | valueFrom: 28 | secretKeyRef: 29 | key: password 30 | name: init0-postgresql-ha-postgresql 31 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-explorer-api-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: NETWORK 5 | value: testnet 6 | - name: POSTGRES_HOST 7 | valueFrom: 8 | configMapKeyRef: 9 | key: POSTGRES_HOST 10 | name: common-env 11 | - name: POSTGRES_PORT 12 | valueFrom: 13 | configMapKeyRef: 14 | key: POSTGRES_PORT 15 | name: common-env 16 | - name: POSTGRES_DB 17 | valueFrom: 18 | configMapKeyRef: 19 | key: POSTGRES_DB 20 | name: common-env 21 | - name: POSTGRES_USER 22 | valueFrom: 23 | configMapKeyRef: 24 | key: POSTGRES_USER 25 | name: common-env 26 | - name: POSTGRES_PASSWORD 27 | valueFrom: 28 | secretKeyRef: 29 | key: password 30 | name: init0-postgresql-ha-postgresql 31 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/cardano-explorer-api-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: NETWORK 5 | value: testnet 6 | - name: POSTGRES_HOST 7 | valueFrom: 8 | configMapKeyRef: 9 | key: POSTGRES_HOST 10 | name: common-env 11 | - name: POSTGRES_PORT 12 | valueFrom: 13 | configMapKeyRef: 14 | key: POSTGRES_PORT 15 | name: common-env 16 | - name: POSTGRES_DB 17 | valueFrom: 18 | configMapKeyRef: 19 | key: POSTGRES_DB 20 | name: common-env 21 | - name: POSTGRES_USER 22 | valueFrom: 23 | configMapKeyRef: 24 | key: POSTGRES_USER 25 | name: common-env 26 | - name: POSTGRES_PASSWORD 27 | valueFrom: 28 | secretKeyRef: 29 | key: password 30 | name: init0-postgresql-ha-postgresql 31 | -------------------------------------------------------------------------------- /argocd-bootstrap/values-k3s-mainnet.yaml: -------------------------------------------------------------------------------- 1 | dandelion: 2 | provider: 3 | name: k3s 4 | #argoAppSuffix: "-v9" 5 | #namespaceSuffix: "-v9" 6 | multiNode: false 7 | monitoring: 8 | enabled: true 9 | logging: 10 | enabled: true 11 | testnet: 12 | enabled: false 13 | mainnet: 14 | enabled: true 15 | db: 16 | adminPassword: "CHANGEME" 17 | roPassword: "CHANGEME" 18 | repmgrPassword: "CHANGEME" 19 | diskSize: "150Gi" 20 | deployIngress: true 21 | ingressBaseDomain: testnet.local 22 | cardano_db_sync: 23 | enabled: true 24 | cardano_graphql: 25 | enabled: true 26 | cardano_rosetta: 27 | enabled: true 28 | metrics_exporter: 29 | enabled: true 30 | ogmios: 31 | enabled: true 32 | postgrest: 33 | enabled: true 34 | cardano_explorer_api: 35 | enabled: true 36 | cardano_submit_api: 37 | enabled: true 38 | koios: 39 | enabled: true 40 | -------------------------------------------------------------------------------- /argocd-bootstrap/values-k3s-testnet.yaml: -------------------------------------------------------------------------------- 1 | dandelion: 2 | provider: 3 | name: k3s 4 | #argoAppSuffix: "-v9" 5 | #namespaceSuffix: "-v9" 6 | multiNode: false 7 | monitoring: 8 | enabled: true 9 | logging: 10 | enabled: true 11 | mainnet: 12 | enabled: false 13 | testnet: 14 | enabled: true 15 | db: 16 | adminPassword: "CHANGEME" 17 | roPassword: "CHANGEME" 18 | repmgrPassword: "CHANGEME" 19 | diskSize: "20Gi" 20 | deployIngress: true 21 | ingressBaseDomain: testnet.local 22 | cardano_db_sync: 23 | enabled: true 24 | cardano_graphql: 25 | enabled: true 26 | cardano_rosetta: 27 | enabled: true 28 | metrics_exporter: 29 | enabled: true 30 | ogmios: 31 | enabled: true 32 | postgrest: 33 | enabled: true 34 | cardano_explorer_api: 35 | enabled: true 36 | cardano_submit_api: 37 | enabled: true 38 | koios: 39 | enabled: true 40 | -------------------------------------------------------------------------------- /argocd-bootstrap/values-scaleway-mainnet.yaml: -------------------------------------------------------------------------------- 1 | dandelion: 2 | provider: 3 | name: scaleway 4 | #argoAppSuffix: "-v9" 5 | #namespaceSuffix: "-v9" 6 | multiNode: true 7 | monitoring: 8 | enabled: true 9 | logging: 10 | enabled: true 11 | mainnet: 12 | enabled: true 13 | db: 14 | adminPassword: "CHANGEME" 15 | roPassword: "CHANGEME" 16 | repmgrPassword: "CHANGEME" 17 | diskSize: "150Gi" 18 | deployIngress: true 19 | ingressBaseDomain: mainnet.dandelion.link 20 | cardano_db_sync: 21 | enabled: true 22 | cardano_graphql: 23 | enabled: true 24 | cardano_rosetta: 25 | enabled: true 26 | metrics_exporter: 27 | enabled: true 28 | ogmios: 29 | enabled: true 30 | postgrest: 31 | enabled: true 32 | cardano_explorer_api: 33 | enabled: true 34 | cardano_submit_api: 35 | enabled: true 36 | koios: 37 | enabled: true 38 | testnet: 39 | enabled: false 40 | -------------------------------------------------------------------------------- /argocd-bootstrap/values-scaleway-testnet.yaml: -------------------------------------------------------------------------------- 1 | dandelion: 2 | provider: 3 | name: scaleway 4 | #argoAppSuffix: "-v9" 5 | #namespaceSuffix: "-v9" 6 | multiNode: true 7 | monitoring: 8 | enabled: true 9 | logging: 10 | enabled: true 11 | mainnet: 12 | enabled: false 13 | testnet: 14 | enabled: true 15 | db: 16 | adminPassword: "CHANGEME" 17 | roPassword: "CHANGEME" 18 | repmgrPassword: "CHANGEME" 19 | diskSize: "20Gi" 20 | deployIngress: true 21 | ingressBaseDomain: testnet.dandelion.link 22 | cardano_db_sync: 23 | enabled: true 24 | cardano_graphql: 25 | enabled: true 26 | cardano_rosetta: 27 | enabled: true 28 | metrics_exporter: 29 | enabled: true 30 | ogmios: 31 | enabled: true 32 | postgrest: 33 | enabled: true 34 | cardano_explorer_api: 35 | enabled: true 36 | cardano_submit_api: 37 | enabled: true 38 | koios: 39 | enabled: true 40 | -------------------------------------------------------------------------------- /applications/observability/templates/002-loki-stack.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.dandelion.logging.enabled -}} 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: Application 4 | metadata: 5 | name: loki 6 | namespace: argocd 7 | finalizers: 8 | - resources-finalizer.argocd.argoproj.io 9 | spec: 10 | project: dandelion-observability 11 | source: 12 | repoURL: https://grafana.github.io/helm-charts 13 | chart: loki-stack 14 | targetRevision: 2.4.1 15 | helm: 16 | parameters: 17 | # This could be used to test dev branches. 18 | - name: "git.targetRevision" 19 | value: {{ .Values.git.targetRevision | default "HEAD" }} 20 | syncPolicy: 21 | automated: 22 | prune: true 23 | selfHeal: true 24 | syncOptions: 25 | - CreateNamespace=true 26 | - PrunePropagationPolicy=foreground 27 | - PruneLast=true 28 | destination: 29 | namespace: observe 30 | server: {{ .Values.spec.destination.server }} 31 | 32 | {{- end }} 33 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/cardano-db-sync-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: EXTENDED 5 | value: "true" 6 | - name: NETWORK 7 | value: testnet 8 | - name: POSTGRES_HOST 9 | valueFrom: 10 | configMapKeyRef: 11 | name: common-env 12 | key: POSTGRES_HOST_RW 13 | - name: POSTGRES_PORT 14 | valueFrom: 15 | configMapKeyRef: 16 | name: common-env 17 | key: POSTGRES_PORT 18 | - name: POSTGRES_DB 19 | valueFrom: 20 | configMapKeyRef: 21 | name: common-env 22 | key: POSTGRES_DB 23 | - name: POSTGRES_USER 24 | valueFrom: 25 | configMapKeyRef: 26 | name: common-env 27 | key: POSTGRES_USER 28 | - name: POSTGRES_PASSWORD 29 | valueFrom: 30 | secretKeyRef: 31 | name: init0-postgresql-ha-postgresql 32 | key: password 33 | -------------------------------------------------------------------------------- /applications/main-app/templates/010-dandelion-base.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: argoproj.io/v1alpha1 2 | kind: Application 3 | metadata: 4 | name: dandelion-{{ .Values.dandelion.cardano.network }}-base 5 | finalizers: 6 | - resources-finalizer.argocd.argoproj.io 7 | spec: 8 | project: dandelion-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.argoProjectSuffix }} 9 | source: 10 | repoURL: {{ .Values.git.repositoryUrl }} 11 | targetRevision: {{ .Values.git.targetRevision }} 12 | path: overlays/{{ .Values.dandelion.cardano.network }}-base 13 | plugin: 14 | name: kustomized-kustomize-network 15 | env: 16 | - name: CARDANO_NETWORK 17 | value: {{ .Values.dandelion.cardano.network }} 18 | - name: MULTI_NODE_AFFINITY 19 | value: {{ .Values.dandelion.multiNode | quote }} 20 | 21 | destination: 22 | namespace: dl-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.namespaceSuffix }} 23 | server: {{ .Values.spec.destination.server }} 24 | -------------------------------------------------------------------------------- /applications/main-app/templates/010-dandelion-cardano-db-sync.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.dandelion.cardano_db_sync.enabled -}} 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: Application 4 | metadata: 5 | name: dandelion-{{ .Values.dandelion.cardano.network }}-cardano-db-sync 6 | finalizers: 7 | - resources-finalizer.argocd.argoproj.io 8 | spec: 9 | project: dandelion-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.argoProjectSuffix }} 10 | source: 11 | repoURL: {{ .Values.git.repositoryUrl }} 12 | targetRevision: {{ .Values.git.targetRevision }} 13 | path: base/cardano-db-sync 14 | plugin: 15 | name: kustomized-kustomize-network 16 | env: 17 | - name: CARDANO_NETWORK 18 | value: {{ .Values.dandelion.cardano.network }} 19 | - name: MULTI_NODE_AFFINITY 20 | value: {{ .Values.dandelion.multiNode | quote }} 21 | 22 | destination: 23 | namespace: dl-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.namespaceSuffix }} 24 | server: {{ .Values.spec.destination.server }} 25 | 26 | {{- end }} 27 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-graphql-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: ALLOW_INTROSPECTION 5 | value: "true" 6 | - name: CACHE_ENABLED 7 | value: "true" 8 | - name: LOGGER_MIN_SEVERITY 9 | value: "info" 10 | - name: HASURA_URI 11 | value: http://hasura-headless:8080 12 | - name: OGMIOS_HOST 13 | value: ogmios 14 | - name: OGMIOS_PORT 15 | value: "1337" 16 | - name: POSTGRES_HOST 17 | valueFrom: 18 | configMapKeyRef: 19 | name: common-env 20 | key: POSTGRES_HOST_RW 21 | - name: POSTGRES_PORT 22 | valueFrom: 23 | configMapKeyRef: 24 | name: common-env 25 | key: POSTGRES_PORT 26 | - name: POSTGRES_DB_FILE 27 | value: /run/secrets/common-env/POSTGRES_DB 28 | - name: POSTGRES_USER_FILE 29 | value: /run/secrets/common-env/POSTGRES_USER 30 | - name: POSTGRES_PASSWORD_FILE 31 | value: /run/secrets/postgres-password/POSTGRES_PASSWORD 32 | - name: CARDANO_NODE_SOCKET_PATH 33 | value: /ipc/node.socket 34 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-graphql-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: ALLOW_INTROSPECTION 5 | value: "true" 6 | - name: CACHE_ENABLED 7 | value: "true" 8 | - name: LOGGER_MIN_SEVERITY 9 | value: "info" 10 | - name: HASURA_URI 11 | value: http://hasura-headless:8080 12 | - name: OGMIOS_HOST 13 | value: ogmios 14 | - name: OGMIOS_PORT 15 | value: "1337" 16 | - name: POSTGRES_HOST 17 | valueFrom: 18 | configMapKeyRef: 19 | name: common-env 20 | key: POSTGRES_HOST_RW 21 | - name: POSTGRES_PORT 22 | valueFrom: 23 | configMapKeyRef: 24 | name: common-env 25 | key: POSTGRES_PORT 26 | - name: POSTGRES_DB_FILE 27 | value: /run/secrets/common-env/POSTGRES_DB 28 | - name: POSTGRES_USER_FILE 29 | value: /run/secrets/common-env/POSTGRES_USER 30 | - name: POSTGRES_PASSWORD_FILE 31 | value: /run/secrets/postgres-password/POSTGRES_PASSWORD 32 | - name: CARDANO_NODE_SOCKET_PATH 33 | value: /ipc/node.socket 34 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/blockfrost-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: BLOCKFROST_CONFIG_NETWORK 5 | value: preprod 6 | - name: BLOCKFROST_CONFIG_DBSYNC_HOST 7 | valueFrom: 8 | configMapKeyRef: 9 | name: common-env 10 | key: POSTGRES_HOST_RW 11 | - name: BLOCKFROST_CONFIG_DBSYNC_DATABASE 12 | valueFrom: 13 | configMapKeyRef: 14 | name: common-env 15 | key: POSTGRES_DB 16 | - name: BLOCKFROST_CONFIG_DBSYNC_USER 17 | valueFrom: 18 | secretKeyRef: 19 | name: init0-postgresql-ha-pgpool-custom-users 20 | key: usernames 21 | - name: PGPASSWORD 22 | valueFrom: 23 | secretKeyRef: 24 | name: init0-postgresql-ha-pgpool-custom-users 25 | key: passwords 26 | - name: BLOCKFROST_CONFIG_SERVER_PROMETHEUS_METRICS 27 | value: "true" 28 | - name: BLOCKFROST_CONFIG_TOKEN_REGISTRY_URL 29 | value: http://cardano-token-registry:3042 30 | - name: BLOCKFROST_CONFIG_SERVER_LISTEN_ADDRESS 31 | value: "0.0.0.0" 32 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/blockfrost-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: BLOCKFROST_CONFIG_NETWORK 5 | value: preview 6 | - name: BLOCKFROST_CONFIG_DBSYNC_HOST 7 | valueFrom: 8 | configMapKeyRef: 9 | name: common-env 10 | key: POSTGRES_HOST_RW 11 | - name: BLOCKFROST_CONFIG_DBSYNC_DATABASE 12 | valueFrom: 13 | configMapKeyRef: 14 | name: common-env 15 | key: POSTGRES_DB 16 | - name: BLOCKFROST_CONFIG_DBSYNC_USER 17 | valueFrom: 18 | secretKeyRef: 19 | name: init0-postgresql-ha-pgpool-custom-users 20 | key: usernames 21 | - name: PGPASSWORD 22 | valueFrom: 23 | secretKeyRef: 24 | name: init0-postgresql-ha-pgpool-custom-users 25 | key: passwords 26 | - name: BLOCKFROST_CONFIG_SERVER_PROMETHEUS_METRICS 27 | value: "true" 28 | - name: BLOCKFROST_CONFIG_TOKEN_REGISTRY_URL 29 | value: http://cardano-token-registry:3042 30 | - name: BLOCKFROST_CONFIG_SERVER_LISTEN_ADDRESS 31 | value: "0.0.0.0" 32 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/blockfrost-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: BLOCKFROST_CONFIG_NETWORK 5 | value: testnet 6 | - name: BLOCKFROST_CONFIG_DBSYNC_HOST 7 | valueFrom: 8 | configMapKeyRef: 9 | name: common-env 10 | key: POSTGRES_HOST_RW 11 | - name: BLOCKFROST_CONFIG_DBSYNC_DATABASE 12 | valueFrom: 13 | configMapKeyRef: 14 | name: common-env 15 | key: POSTGRES_DB 16 | - name: BLOCKFROST_CONFIG_DBSYNC_USER 17 | valueFrom: 18 | secretKeyRef: 19 | name: init0-postgresql-ha-pgpool-custom-users 20 | key: usernames 21 | - name: PGPASSWORD 22 | valueFrom: 23 | secretKeyRef: 24 | name: init0-postgresql-ha-pgpool-custom-users 25 | key: passwords 26 | - name: BLOCKFROST_CONFIG_SERVER_PROMETHEUS_METRICS 27 | value: "true" 28 | - name: BLOCKFROST_CONFIG_TOKEN_REGISTRY_URL 29 | value: http://cardano-token-registry:3042 30 | - name: BLOCKFROST_CONFIG_SERVER_LISTEN_ADDRESS 31 | value: "0.0.0.0" 32 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-graphql-background-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: LOGGER_MIN_SEVERITY 5 | value: "info" 6 | - name: HASURA_URI 7 | value: http://hasura-headless:8080 8 | - name: METADATA_SERVER_URI 9 | value: https://d.cardano-token-registry-api.mainnet.dandelion.link 10 | - name: OGMIOS_HOST 11 | value: ogmios 12 | - name: OGMIOS_PORT 13 | value: "1337" 14 | - name: POSTGRES_HOST 15 | valueFrom: 16 | configMapKeyRef: 17 | name: common-env 18 | key: POSTGRES_HOST_RW 19 | - name: POSTGRES_PORT 20 | valueFrom: 21 | configMapKeyRef: 22 | name: common-env 23 | key: POSTGRES_PORT 24 | - name: POSTGRES_DB_FILE 25 | value: /run/secrets/common-env/POSTGRES_DB 26 | - name: POSTGRES_USER_FILE 27 | value: /run/secrets/common-env/POSTGRES_USER 28 | - name: POSTGRES_PASSWORD_FILE 29 | value: /run/secrets/postgres-password/POSTGRES_PASSWORD 30 | - name: CARDANO_NODE_SOCKET_PATH 31 | value: /ipc/node.socket 32 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-graphql-background-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: LOGGER_MIN_SEVERITY 5 | value: "info" 6 | - name: HASURA_URI 7 | value: http://hasura-headless:8080 8 | - name: METADATA_SERVER_URI 9 | value: https://d.cardano-token-registry-api.mainnet.dandelion.link 10 | - name: OGMIOS_HOST 11 | value: ogmios 12 | - name: OGMIOS_PORT 13 | value: "1337" 14 | - name: POSTGRES_HOST 15 | valueFrom: 16 | configMapKeyRef: 17 | name: common-env 18 | key: POSTGRES_HOST_RW 19 | - name: POSTGRES_PORT 20 | valueFrom: 21 | configMapKeyRef: 22 | name: common-env 23 | key: POSTGRES_PORT 24 | - name: POSTGRES_DB_FILE 25 | value: /run/secrets/common-env/POSTGRES_DB 26 | - name: POSTGRES_USER_FILE 27 | value: /run/secrets/common-env/POSTGRES_USER 28 | - name: POSTGRES_PASSWORD_FILE 29 | value: /run/secrets/postgres-password/POSTGRES_PASSWORD 30 | - name: CARDANO_NODE_SOCKET_PATH 31 | value: /ipc/node.socket 32 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/cardano-graphql-deployment-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/containers/0/env 3 | value: 4 | - name: ALLOW_INTROSPECTION 5 | value: "true" 6 | - name: CACHE_ENABLED 7 | value: "true" 8 | - name: LOGGER_MIN_SEVERITY 9 | value: "info" 10 | - name: CARDANO_NODE_CONFIG_PATH 11 | value: /opt/cardano/cnode/files/config.json 12 | - name: HASURA_URI 13 | value: http://hasura-headless:8080 14 | - name: OGMIOS_HOST 15 | value: ogmios 16 | - name: OGMIOS_PORT 17 | value: "1337" 18 | - name: POSTGRES_HOST 19 | valueFrom: 20 | configMapKeyRef: 21 | name: common-env 22 | key: POSTGRES_HOST_RW 23 | - name: POSTGRES_PORT 24 | valueFrom: 25 | configMapKeyRef: 26 | name: common-env 27 | key: POSTGRES_PORT 28 | - name: POSTGRES_DB_FILE 29 | value: /run/secrets/common-env/POSTGRES_DB 30 | - name: POSTGRES_USER_FILE 31 | value: /run/secrets/common-env/POSTGRES_USER 32 | - name: POSTGRES_PASSWORD_FILE 33 | value: /run/secrets/postgres-password/POSTGRES_PASSWORD 34 | - name: CARDANO_NODE_SOCKET_PATH 35 | value: /ipc/node.socket 36 | -------------------------------------------------------------------------------- /applications/main-app/templates/010-dandelion-koios.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.dandelion.koios.enabled -}} 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: Application 4 | metadata: 5 | name: dandelion-{{ .Values.dandelion.cardano.network }}-koios 6 | finalizers: 7 | - resources-finalizer.argocd.argoproj.io 8 | spec: 9 | project: dandelion-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.argoProjectSuffix }} 10 | source: 11 | repoURL: {{ .Values.git.repositoryUrl }} 12 | targetRevision: {{ .Values.git.targetRevision }} 13 | path: base/koios 14 | plugin: 15 | name: kustomized-kustomize-network 16 | env: 17 | - name: CARDANO_NETWORK 18 | value: {{ .Values.dandelion.cardano.network }} 19 | - name: MULTI_NODE_AFFINITY 20 | value: {{ .Values.dandelion.multiNode | quote }} 21 | 22 | destination: 23 | namespace: dl-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.namespaceSuffix }} 24 | server: {{ .Values.spec.destination.server }} 25 | 26 | syncPolicy: 27 | automated: 28 | prune: true 29 | selfHeal: true 30 | syncOptions: 31 | - ApplyOutOfSyncOnly=true 32 | - CreateNamespace=true 33 | - PrunePropagationPolicy=foreground 34 | - PruneLast=true 35 | 36 | {{- end }} 37 | -------------------------------------------------------------------------------- /base/mainnet-affinity-patches/patches/db-main-affinity.yaml: -------------------------------------------------------------------------------- 1 | - op: add 2 | path: /spec/template/spec/tolerations 3 | value: 4 | - key: "k8s.dandelion.link/role" 5 | operator: "Equal" 6 | value: "db-main" 7 | effect: "PreferNoSchedule" 8 | - key: "k8s.dandelion.link/cardano-network" 9 | operator: "Equal" 10 | value: "mainnet" 11 | effect: "PreferNoSchedule" 12 | 13 | - op: add 14 | path: /spec/template/spec/affinity 15 | value: 16 | nodeAffinity: 17 | requiredDuringSchedulingIgnoredDuringExecution: 18 | nodeSelectorTerms: 19 | - matchExpressions: 20 | - key: k8s.dandelion.link/role 21 | operator: In 22 | values: 23 | - db-main 24 | - key: k8s.dandelion.link/cardano-network 25 | operator: In 26 | values: 27 | - mainnet 28 | preferredDuringSchedulingIgnoredDuringExecution: 29 | - weight: 100 30 | preference: 31 | matchExpressions: 32 | - key: k8s.dandelion.link/role 33 | operator: In 34 | values: 35 | - db-main 36 | - key: k8s.dandelion.link/cardano-network 37 | operator: In 38 | values: 39 | - mainnet 40 | -------------------------------------------------------------------------------- /applications/main-app/templates/010-dandelion-ogmios.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.dandelion.ogmios.enabled -}} 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: Application 4 | metadata: 5 | name: dandelion-{{ .Values.dandelion.cardano.network }}-ogmios 6 | finalizers: 7 | - resources-finalizer.argocd.argoproj.io 8 | spec: 9 | project: dandelion-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.argoProjectSuffix }} 10 | source: 11 | repoURL: {{ .Values.git.repositoryUrl }} 12 | targetRevision: {{ .Values.git.targetRevision }} 13 | path: base/ogmios 14 | plugin: 15 | name: kustomized-kustomize-network 16 | env: 17 | - name: CARDANO_NETWORK 18 | value: {{ .Values.dandelion.cardano.network }} 19 | - name: MULTI_NODE_AFFINITY 20 | value: {{ .Values.dandelion.multiNode | quote }} 21 | 22 | destination: 23 | namespace: dl-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.namespaceSuffix }} 24 | server: {{ .Values.spec.destination.server }} 25 | 26 | syncPolicy: 27 | automated: 28 | prune: true 29 | selfHeal: true 30 | syncOptions: 31 | - ApplyOutOfSyncOnly=true 32 | - CreateNamespace=true 33 | - PrunePropagationPolicy=foreground 34 | - PruneLast=true 35 | 36 | {{- end }} 37 | -------------------------------------------------------------------------------- /base/network-specific-patches/mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1alpha1 # <-- Component notation 2 | kind: Component 3 | 4 | patches: 5 | # cardano-node 6 | - path: patches/cardano-node-pvc.yaml 7 | target: 8 | kind: StatefulSet 9 | name: cardano-node 10 | # cardano-graphql 11 | - path: patches/genesis-image.yaml 12 | target: 13 | kind: Deployment 14 | name: cardano-graphql 15 | # cardano-db-sync 16 | - path: patches/cardano-db-sync-deployment-image.yaml 17 | target: 18 | kind: StatefulSet 19 | name: cardano-db-sync 20 | - path: patches/cardano-db-sync-deployment-pvc.yaml 21 | target: 22 | kind: StatefulSet 23 | name: cardano-db-sync 24 | # cardano-rosetta 25 | - path: patches/cardano-rosetta-deployment-image.yaml 26 | target: 27 | kind: Deployment 28 | name: cardano-rosetta 29 | # postgres-ha 30 | - path: patches/postgres-ha-pvc.yaml 31 | target: 32 | kind: StatefulSet 33 | name: init0-postgresql-ha-postgresql 34 | - path: patches/postgres-dev-shm-mount.yaml 35 | target: 36 | kind: StatefulSet 37 | name: init0-postgresql-ha-postgresql 38 | - path: patches/postgres-extended-configuration-configmap.yaml 39 | target: 40 | kind: ConfigMap 41 | name: init0-postgresql-ha-postgresql-extended-configuration 42 | -------------------------------------------------------------------------------- /base/testnet-affinity-patches/patches/db-main-affinity.yaml: -------------------------------------------------------------------------------- 1 | - op: add 2 | path: /spec/template/spec/tolerations 3 | value: 4 | - key: "k8s.dandelion.link/role" 5 | operator: "Equal" 6 | value: "single-node" 7 | effect: "PreferNoSchedule" 8 | - key: "k8s.dandelion.link/cardano-network" 9 | operator: "Equal" 10 | value: "testnet" 11 | effect: "PreferNoSchedule" 12 | 13 | - op: add 14 | path: /spec/template/spec/affinity 15 | value: 16 | nodeAffinity: 17 | requiredDuringSchedulingIgnoredDuringExecution: 18 | nodeSelectorTerms: 19 | - matchExpressions: 20 | - key: k8s.dandelion.link/role 21 | operator: In 22 | values: 23 | - single-node 24 | - key: k8s.dandelion.link/cardano-network 25 | operator: In 26 | values: 27 | - testnet 28 | preferredDuringSchedulingIgnoredDuringExecution: 29 | - weight: 100 30 | preference: 31 | matchExpressions: 32 | - key: k8s.dandelion.link/role 33 | operator: In 34 | values: 35 | - single-node 36 | - key: k8s.dandelion.link/cardano-network 37 | operator: In 38 | values: 39 | - testnet 40 | -------------------------------------------------------------------------------- /applications/main-app/templates/010-dandelion-postgrest.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.dandelion.postgrest.enabled -}} 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: Application 4 | metadata: 5 | name: dandelion-{{ .Values.dandelion.cardano.network }}-postgrest 6 | finalizers: 7 | - resources-finalizer.argocd.argoproj.io 8 | spec: 9 | project: dandelion-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.argoProjectSuffix }} 10 | source: 11 | repoURL: {{ .Values.git.repositoryUrl }} 12 | targetRevision: {{ .Values.git.targetRevision }} 13 | path: base/postgrest 14 | plugin: 15 | name: kustomized-kustomize-network 16 | env: 17 | - name: CARDANO_NETWORK 18 | value: {{ .Values.dandelion.cardano.network }} 19 | - name: MULTI_NODE_AFFINITY 20 | value: {{ .Values.dandelion.multiNode | quote }} 21 | 22 | destination: 23 | namespace: dl-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.namespaceSuffix }} 24 | server: {{ .Values.spec.destination.server }} 25 | 26 | syncPolicy: 27 | automated: 28 | prune: true 29 | selfHeal: true 30 | syncOptions: 31 | - ApplyOutOfSyncOnly=true 32 | - CreateNamespace=true 33 | - PrunePropagationPolicy=foreground 34 | - PruneLast=true 35 | 36 | {{- end }} 37 | -------------------------------------------------------------------------------- /base/testnet-affinity-patches/patches/cardano-node-affinity.yaml: -------------------------------------------------------------------------------- 1 | - op: add 2 | path: /spec/template/spec/tolerations 3 | value: 4 | - key: "k8s.dandelion.link/role" 5 | operator: "Equal" 6 | value: "single-node" 7 | effect: "PreferNoSchedule" 8 | - key: "k8s.dandelion.link/cardano-network" 9 | operator: "Equal" 10 | value: "testnet" 11 | effect: "PreferNoSchedule" 12 | 13 | - op: add 14 | path: /spec/template/spec/affinity 15 | value: 16 | nodeAffinity: 17 | requiredDuringSchedulingIgnoredDuringExecution: 18 | nodeSelectorTerms: 19 | - matchExpressions: 20 | - key: k8s.dandelion.link/role 21 | operator: In 22 | values: 23 | - single-node 24 | - key: k8s.dandelion.link/cardano-network 25 | operator: In 26 | values: 27 | - testnet 28 | preferredDuringSchedulingIgnoredDuringExecution: 29 | - weight: 100 30 | preference: 31 | matchExpressions: 32 | - key: k8s.dandelion.link/role 33 | operator: In 34 | values: 35 | - single-node 36 | - key: k8s.dandelion.link/cardano-network 37 | operator: In 38 | values: 39 | - testnet 40 | -------------------------------------------------------------------------------- /base/mainnet-affinity-patches/patches/cardano-node-affinity.yaml: -------------------------------------------------------------------------------- 1 | - op: add 2 | path: /spec/template/spec/tolerations 3 | value: 4 | - key: "k8s.dandelion.link/role" 5 | operator: "Equal" 6 | value: "cardano-node" 7 | effect: "PreferNoSchedule" 8 | - key: "k8s.dandelion.link/cardano-network" 9 | operator: "Equal" 10 | value: "mainnet" 11 | effect: "PreferNoSchedule" 12 | 13 | - op: add 14 | path: /spec/template/spec/affinity 15 | value: 16 | nodeAffinity: 17 | requiredDuringSchedulingIgnoredDuringExecution: 18 | nodeSelectorTerms: 19 | - matchExpressions: 20 | - key: k8s.dandelion.link/role 21 | operator: In 22 | values: 23 | - cardano-node 24 | - key: k8s.dandelion.link/cardano-network 25 | operator: In 26 | values: 27 | - mainnet 28 | preferredDuringSchedulingIgnoredDuringExecution: 29 | - weight: 100 30 | preference: 31 | matchExpressions: 32 | - key: k8s.dandelion.link/role 33 | operator: In 34 | values: 35 | - cardano-node 36 | - key: k8s.dandelion.link/cardano-network 37 | operator: In 38 | values: 39 | - mainnet 40 | -------------------------------------------------------------------------------- /base/testnet-affinity-patches/patches/cardano-graphql-affinity.yaml: -------------------------------------------------------------------------------- 1 | - op: add 2 | path: /spec/template/spec/tolerations 3 | value: 4 | - key: "k8s.dandelion.link/role" 5 | operator: "Equal" 6 | value: "single-node" 7 | effect: "PreferNoSchedule" 8 | - key: "k8s.dandelion.link/cardano-network" 9 | operator: "Equal" 10 | value: "testnet" 11 | effect: "PreferNoSchedule" 12 | 13 | - op: add 14 | path: /spec/template/spec/affinity 15 | value: 16 | nodeAffinity: 17 | requiredDuringSchedulingIgnoredDuringExecution: 18 | nodeSelectorTerms: 19 | - matchExpressions: 20 | - key: k8s.dandelion.link/role 21 | operator: In 22 | values: 23 | - single-node 24 | - key: k8s.dandelion.link/cardano-network 25 | operator: In 26 | values: 27 | - testnet 28 | preferredDuringSchedulingIgnoredDuringExecution: 29 | - weight: 100 30 | preference: 31 | matchExpressions: 32 | - key: k8s.dandelion.link/role 33 | operator: In 34 | values: 35 | - single-node 36 | - key: k8s.dandelion.link/cardano-network 37 | operator: In 38 | values: 39 | - testnet 40 | -------------------------------------------------------------------------------- /base/mainnet-affinity-patches/patches/cardano-graphql-affinity.yaml: -------------------------------------------------------------------------------- 1 | - op: add 2 | path: /spec/template/spec/tolerations 3 | value: 4 | - key: "k8s.dandelion.link/role" 5 | operator: "Equal" 6 | value: "cardano-graphql" 7 | effect: "PreferNoSchedule" 8 | - key: "k8s.dandelion.link/cardano-network" 9 | operator: "Equal" 10 | value: "mainnet" 11 | effect: "PreferNoSchedule" 12 | 13 | - op: add 14 | path: /spec/template/spec/affinity 15 | value: 16 | nodeAffinity: 17 | requiredDuringSchedulingIgnoredDuringExecution: 18 | nodeSelectorTerms: 19 | - matchExpressions: 20 | - key: k8s.dandelion.link/role 21 | operator: In 22 | values: 23 | - cardano-graphql 24 | - key: k8s.dandelion.link/cardano-network 25 | operator: In 26 | values: 27 | - mainnet 28 | preferredDuringSchedulingIgnoredDuringExecution: 29 | - weight: 100 30 | preference: 31 | matchExpressions: 32 | - key: k8s.dandelion.link/role 33 | operator: In 34 | values: 35 | - cardano-graphql 36 | - key: k8s.dandelion.link/cardano-network 37 | operator: In 38 | values: 39 | - mainnet 40 | -------------------------------------------------------------------------------- /applications/main-app/templates/010-dandelion-cardano-rosetta.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.dandelion.cardano_rosetta.enabled -}} 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: Application 4 | metadata: 5 | name: dandelion-{{ .Values.dandelion.cardano.network }}-cardano-rosetta 6 | finalizers: 7 | - resources-finalizer.argocd.argoproj.io 8 | spec: 9 | project: dandelion-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.argoProjectSuffix }} 10 | source: 11 | repoURL: {{ .Values.git.repositoryUrl }} 12 | targetRevision: {{ .Values.git.targetRevision }} 13 | path: base/cardano-rosetta 14 | plugin: 15 | name: kustomized-kustomize-network 16 | env: 17 | - name: CARDANO_NETWORK 18 | value: {{ .Values.dandelion.cardano.network }} 19 | - name: MULTI_NODE_AFFINITY 20 | value: {{ .Values.dandelion.multiNode | quote }} 21 | 22 | destination: 23 | namespace: dl-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.namespaceSuffix }} 24 | server: {{ .Values.spec.destination.server }} 25 | 26 | syncPolicy: 27 | automated: 28 | prune: true 29 | selfHeal: true 30 | syncOptions: 31 | - ApplyOutOfSyncOnly=true 32 | - CreateNamespace=true 33 | - PrunePropagationPolicy=foreground 34 | - PruneLast=true 35 | 36 | {{- end }} 37 | -------------------------------------------------------------------------------- /applications/main-app/templates/010-dandelion-metrics-exporter.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.dandelion.metrics_exporter.enabled -}} 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: Application 4 | metadata: 5 | name: dandelion-{{ .Values.dandelion.cardano.network }}-metrics-exporter 6 | finalizers: 7 | - resources-finalizer.argocd.argoproj.io 8 | spec: 9 | project: dandelion-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.argoProjectSuffix }} 10 | source: 11 | repoURL: {{ .Values.git.repositoryUrl }} 12 | targetRevision: {{ .Values.git.targetRevision }} 13 | path: base/metrics-exporter 14 | plugin: 15 | name: kustomized-kustomize-network 16 | env: 17 | - name: CARDANO_NETWORK 18 | value: {{ .Values.dandelion.cardano.network }} 19 | - name: MULTI_NODE_AFFINITY 20 | value: {{ .Values.dandelion.multiNode | quote }} 21 | 22 | destination: 23 | namespace: dl-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.namespaceSuffix }} 24 | server: {{ .Values.spec.destination.server }} 25 | 26 | syncPolicy: 27 | automated: 28 | prune: true 29 | selfHeal: true 30 | syncOptions: 31 | - ApplyOutOfSyncOnly=true 32 | - CreateNamespace=true 33 | - PrunePropagationPolicy=foreground 34 | - PruneLast=true 35 | 36 | {{- end }} 37 | -------------------------------------------------------------------------------- /applications/main-app/templates/010-dandelion-cardano-submit-api.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.dandelion.cardano_submit_api.enabled -}} 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: Application 4 | metadata: 5 | name: dandelion-{{ .Values.dandelion.cardano.network }}-cardano-submit-api 6 | finalizers: 7 | - resources-finalizer.argocd.argoproj.io 8 | spec: 9 | project: dandelion-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.argoProjectSuffix }} 10 | source: 11 | repoURL: {{ .Values.git.repositoryUrl }} 12 | targetRevision: {{ .Values.git.targetRevision }} 13 | path: base/cardano-submit-api 14 | plugin: 15 | name: kustomized-kustomize-network 16 | env: 17 | - name: CARDANO_NETWORK 18 | value: {{ .Values.dandelion.cardano.network }} 19 | - name: MULTI_NODE_AFFINITY 20 | value: {{ .Values.dandelion.multiNode | quote }} 21 | 22 | destination: 23 | namespace: dl-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.namespaceSuffix }} 24 | server: {{ .Values.spec.destination.server }} 25 | 26 | syncPolicy: 27 | automated: 28 | prune: true 29 | selfHeal: true 30 | syncOptions: 31 | - ApplyOutOfSyncOnly=true 32 | - CreateNamespace=true 33 | - PrunePropagationPolicy=foreground 34 | - PruneLast=true 35 | 36 | {{- end }} 37 | -------------------------------------------------------------------------------- /applications/main-app/templates/010-dandelion-cardano-explorer-api.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.dandelion.cardano_explorer_api.enabled -}} 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: Application 4 | metadata: 5 | name: dandelion-{{ .Values.dandelion.cardano.network }}-cardano-explorer-api 6 | finalizers: 7 | - resources-finalizer.argocd.argoproj.io 8 | spec: 9 | project: dandelion-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.argoProjectSuffix }} 10 | source: 11 | repoURL: {{ .Values.git.repositoryUrl }} 12 | targetRevision: {{ .Values.git.targetRevision }} 13 | path: base/cardano-explorer-api 14 | plugin: 15 | name: kustomized-kustomize-network 16 | env: 17 | - name: CARDANO_NETWORK 18 | value: {{ .Values.dandelion.cardano.network }} 19 | - name: MULTI_NODE_AFFINITY 20 | value: {{ .Values.dandelion.multiNode | quote }} 21 | 22 | destination: 23 | namespace: dl-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.namespaceSuffix }} 24 | server: {{ .Values.spec.destination.server }} 25 | 26 | syncPolicy: 27 | automated: 28 | prune: true 29 | selfHeal: true 30 | syncOptions: 31 | - ApplyOutOfSyncOnly=true 32 | - CreateNamespace=true 33 | - PrunePropagationPolicy=foreground 34 | - PruneLast=true 35 | 36 | {{- end }} 37 | -------------------------------------------------------------------------------- /base/mainnet-affinity-patches/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1alpha1 # <-- Component notation 2 | kind: Component 3 | 4 | patches: 5 | # network affinity 6 | - path: patches/base-affinity.yaml 7 | target: 8 | kind: StatefulSet 9 | - path: patches/base-affinity.yaml 10 | target: 11 | kind: Deployment 12 | - path: patches/base-affinity.yaml 13 | target: 14 | kind: DaemonSet 15 | # anti-affinity (avoid cardano-node and graphql to share nodes with postgres/db-sync) 16 | - path: patches/anti-affinity.yaml 17 | target: 18 | kind: StatefulSet 19 | name: cardano-node 20 | - path: patches/anti-affinity.yaml 21 | target: 22 | kind: Deployment 23 | name: cardano-graphql 24 | # affinity (per worker pool affinity) 25 | - path: patches/cardano-graphql-affinity.yaml 26 | target: 27 | kind: Deployment 28 | name: cardano-graphql 29 | - path: patches/cardano-node-affinity.yaml 30 | target: 31 | kind: StatefulSet 32 | name: cardano-node 33 | - path: patches/db-main-affinity.yaml 34 | target: 35 | kind: StatefulSet 36 | name: init0-postgresql-ha-postgresql 37 | - path: patches/db-main-affinity.yaml 38 | target: 39 | kind: Deployment 40 | name: init0-postgresql-ha-pgpool 41 | - path: patches/db-main-affinity.yaml 42 | target: 43 | kind: StatefulSet 44 | name: cardano-db-sync 45 | -------------------------------------------------------------------------------- /base/testnet-affinity-patches/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1alpha1 # <-- Component notation 2 | kind: Component 3 | 4 | patches: 5 | # network affinity 6 | - path: patches/base-affinity.yaml 7 | target: 8 | kind: StatefulSet 9 | - path: patches/base-affinity.yaml 10 | target: 11 | kind: Deployment 12 | - path: patches/base-affinity.yaml 13 | target: 14 | kind: DaemonSet 15 | # anti-affinity (avoid cardano-node and graphql to share nodes with postgres/db-sync) 16 | - path: patches/anti-affinity.yaml 17 | target: 18 | kind: StatefulSet 19 | name: cardano-node 20 | - path: patches/anti-affinity.yaml 21 | target: 22 | kind: Deployment 23 | name: cardano-graphql 24 | # affinity (per worker pool affinity) 25 | - path: patches/cardano-graphql-affinity.yaml 26 | target: 27 | kind: Deployment 28 | name: cardano-graphql 29 | - path: patches/cardano-node-affinity.yaml 30 | target: 31 | kind: StatefulSet 32 | name: cardano-node 33 | - path: patches/db-main-affinity.yaml 34 | target: 35 | kind: StatefulSet 36 | name: init0-postgresql-ha-postgresql 37 | - path: patches/db-main-affinity.yaml 38 | target: 39 | kind: Deployment 40 | name: init0-postgresql-ha-pgpool 41 | - path: patches/db-main-affinity.yaml 42 | target: 43 | kind: StatefulSet 44 | name: cardano-db-sync 45 | -------------------------------------------------------------------------------- /applications/observability/templates/001-kube-prometheus-stack.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.dandelion.monitoring.enabled -}} 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: Application 4 | metadata: 5 | name: kube-prometheus 6 | namespace: argocd 7 | finalizers: 8 | - resources-finalizer.argocd.argoproj.io 9 | spec: 10 | project: dandelion-observability 11 | source: 12 | repoURL: https://prometheus-community.github.io/helm-charts 13 | chart: kube-prometheus-stack 14 | targetRevision: 16.0.1 15 | helm: 16 | parameters: 17 | # This could be used to test dev branches. 18 | - name: "git.targetRevision" 19 | value: {{ .Values.git.targetRevision | default "HEAD" }} 20 | - name: "grafana.ingress.enabled" 21 | value: "true" 22 | - name: "grafana.ingress.hosts[0]" 23 | value: "grafana.local" 24 | values: | 25 | ## Config coming from values file depending on the k8s deployment 26 | {{ with .Values.kubePrometheusStack }} 27 | {{ toYaml . | indent 8 }} 28 | {{ end }} 29 | 30 | syncPolicy: 31 | automated: 32 | prune: true 33 | selfHeal: true 34 | syncOptions: 35 | - CreateNamespace=true 36 | - PrunePropagationPolicy=foreground 37 | - PruneLast=true 38 | destination: 39 | namespace: observe 40 | server: {{ .Values.spec.destination.server }} 41 | 42 | {{- end }} 43 | -------------------------------------------------------------------------------- /base/cardano-rosetta/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: cardano-rosetta-configmap 5 | data: 6 | ecosystem.config.js: | 7 | module.exports = { 8 | apps : [ 9 | { 10 | name: 'cardano-rosetta-server', 11 | script: '/cardano-rosetta-server/dist/src/server/index.js', 12 | autorestart: true, 13 | env: { 14 | BIND_ADDRESS: process.env.BIND_ADDRESS, 15 | CARDANO_CLI_PATH: "/usr/local/bin/cardano-cli", 16 | CARDANO_NODE_PATH: "/usr/local/bin/cardano-node", 17 | CARDANO_NODE_SOCKET_PATH: process.env.CARDANO_NODE_SOCKET_PATH, 18 | DB_CONNECTION_STRING: "postgresql://"+process.env.POSTGRES_USER+":"+process.env.POSTGRES_PASS+"@"+process.env.POSTGRES_HOST+":"+process.env.POSTGRES_PORT+"/db="+process.env.POSTGRES_DB, 19 | DEFAULT_RELATIVE_TTL: process.env.DEFAULT_RELATIVE_TTL, 20 | GENESIS_SHELLEY_PATH: process.env.GENESIS_SHELLEY_PATH, 21 | LOGGER_LEVEL: process.env.LOGGER_LEVEL, 22 | NODE_ENV: process.env.NODE_ENV, 23 | PAGE_SIZE: process.env.PAGE_SIZE, 24 | PORT: process.env.LISTEN_PORT, 25 | TOPOLOGY_FILE_PATH: process.env.TOPOLOGY_FILE_PATH 26 | }, 27 | env_production: { 28 | NODE_ENV: 'production' 29 | }, 30 | error_file: 'NULL', 31 | out_file: 'NULL' 32 | } 33 | ] 34 | } 35 | -------------------------------------------------------------------------------- /argocd-bootstrap/values-k3s.yaml: -------------------------------------------------------------------------------- 1 | dandelion: 2 | multiNode: false 3 | provider: 4 | name: k3s 5 | monitoring: 6 | enabled: true 7 | logging: 8 | enabled: true 9 | mainnet: 10 | enabled: true 11 | db: 12 | adminPassword: "CHANGEME" 13 | roPassword: "CHANGEME" 14 | repmgrPassword: "CHANGEME" 15 | diskSize: "150Gi" 16 | deployIngress: true 17 | ingressBaseDomain: mainnet.local 18 | cardano_db_sync: 19 | enabled: true 20 | cardano_graphql: 21 | enabled: true 22 | cardano_rosetta: 23 | enabled: true 24 | metrics_exporter: 25 | enabled: true 26 | ogmios: 27 | enabled: true 28 | postgrest: 29 | enabled: true 30 | cardano_explorer_api: 31 | enabled: true 32 | cardano_submit_api: 33 | enabled: true 34 | koios: 35 | enabled: true 36 | testnet: 37 | enabled: true 38 | db: 39 | adminPassword: "CHANGEME" 40 | roPassword: "CHANGEME" 41 | repmgrPassword: "CHANGEME" 42 | diskSize: "20Gi" 43 | deployIngress: true 44 | ingressBaseDomain: testnet.local 45 | cardano_db_sync: 46 | enabled: true 47 | cardano_graphql: 48 | enabled: true 49 | cardano_rosetta: 50 | enabled: true 51 | metrics_exporter: 52 | enabled: true 53 | ogmios: 54 | enabled: true 55 | postgrest: 56 | enabled: true 57 | cardano_explorer_api: 58 | enabled: true 59 | cardano_submit_api: 60 | enabled: true 61 | koios: 62 | enabled: true 63 | -------------------------------------------------------------------------------- /base/blockfrost/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: blockfrost-configmap 5 | data: 6 | initContainer-entrypoint: | 7 | export PGCONNECT_TIMEOUT=10 8 | while [ -z "$(psql -U ${POSTGRES_USER} -h ${POSTGRES_HOST} -c '\dt' ${POSTGRES_DB} | grep epoch)" ] 9 | do 10 | sleep 1 11 | done 12 | psql -U ${POSTGRES_USER} -h ${POSTGRES_HOST} -f /configmap/blockfrost-indexes.sql ${POSTGRES_DB} 13 | blockfrost-indexes.sql: | 14 | CREATE INDEX IF NOT EXISTS bf_idx_block_hash_encoded ON block USING HASH (encode(hash, 'hex')); 15 | CREATE INDEX IF NOT EXISTS bf_idx_datum_hash ON datum USING HASH (encode(hash, 'hex')); 16 | CREATE INDEX IF NOT EXISTS bf_idx_multi_asset_policy ON multi_asset USING HASH (encode(policy, 'hex')); 17 | CREATE INDEX IF NOT EXISTS bf_idx_multi_asset_policy_name ON multi_asset USING HASH ((encode(policy, 'hex') || encode(name, 'hex'))); 18 | CREATE INDEX IF NOT EXISTS bf_idx_pool_hash_view ON pool_hash USING HASH (view); 19 | CREATE INDEX IF NOT EXISTS bf_idx_redeemer_data_hash ON redeemer_data USING HASH (encode(hash, 'hex')); 20 | CREATE INDEX IF NOT EXISTS bf_idx_scripts_hash ON script USING HASH (encode(hash, 'hex')); 21 | CREATE INDEX IF NOT EXISTS bf_idx_tx_hash ON tx USING HASH (encode(hash, 'hex')); 22 | CREATE UNIQUE INDEX IF NOT EXISTS bf_u_idx_epoch_stake_epoch_and_id ON epoch_stake (epoch_no, id); 23 | CREATE INDEX IF NOT EXISTS bf_idx_reference_tx_in_tx_in_id ON reference_tx_in (tx_in_id); 24 | CREATE INDEX IF NOT EXISTS bf_idx_collateral_tx_in_tx_in_id ON collateral_tx_in (tx_in_id); 25 | -------------------------------------------------------------------------------- /argocd-bootstrap/values-scaleway.yaml: -------------------------------------------------------------------------------- 1 | dandelion: 2 | provider: 3 | name: scaleway 4 | #argoAppSuffix: "-v9" 5 | #namespaceSuffix: "-v9" 6 | multiNode: true 7 | monitoring: 8 | enabled: true 9 | logging: 10 | enabled: true 11 | mainnet: 12 | enabled: false 13 | db: 14 | adminPassword: "CHANGEME" 15 | roPassword: "CHANGEME" 16 | repmgrPassword: "CHANGEME" 17 | diskSize: "150Gi" 18 | deployIngress: true 19 | ingressBaseDomain: mainnet.dandelion.link 20 | cardano_db_sync: 21 | enabled: true 22 | cardano_graphql: 23 | enabled: true 24 | cardano_rosetta: 25 | enabled: true 26 | metrics_exporter: 27 | enabled: true 28 | ogmios: 29 | enabled: true 30 | postgrest: 31 | enabled: true 32 | cardano_explorer_api: 33 | enabled: true 34 | cardano_submit_api: 35 | enabled: true 36 | koios: 37 | enabled: true 38 | testnet: 39 | enabled: true 40 | db: 41 | adminPassword: "CHANGEME" 42 | roPassword: "CHANGEME" 43 | repmgrPassword: "CHANGEME" 44 | diskSize: "20Gi" 45 | deployIngress: true 46 | ingressBaseDomain: testnet.dandelion.link 47 | cardano_db_sync: 48 | enabled: true 49 | cardano_graphql: 50 | enabled: true 51 | cardano_rosetta: 52 | enabled: true 53 | metrics_exporter: 54 | enabled: true 55 | ogmios: 56 | enabled: true 57 | postgrest: 58 | enabled: true 59 | cardano_explorer_api: 60 | enabled: true 61 | cardano_submit_api: 62 | enabled: true 63 | koios: 64 | enabled: true 65 | -------------------------------------------------------------------------------- /base/haproxy-lb/patches/deployment-initContainer.yaml: -------------------------------------------------------------------------------- 1 | - op: add 2 | path: /spec/template/spec/initContainers 3 | value: 4 | - name: configure 5 | command: ["bash", "-x", "/configmap/initContainer-entrypoint"] 6 | image: gimbalabs/cardano-db-sync-init-container:1.35.3-0 7 | imagePullPolicy: IfNotPresent 8 | env: 9 | - name: TOP_DOMAIN 10 | value: "dandelion.link" 11 | - name: SUB_DOMAIN 12 | value: "d" 13 | - name: HAPROXY_MAXCONN_PER_BACKEND 14 | value: "10" 15 | - name: CARDANO_MAX_TIP_DRIFT 16 | value: "600" 17 | - name: NETWORKS 18 | value: "mainnet iohk-preprod iohk-preview" 19 | - name: APIS 20 | value: "graphql-api submit-api explorer-api ogmios-api postgrest-api rosetta-api koios-api cardano-token-registry-api blockfrost-api kupo-api" 21 | - name: HEALTHCHECKS_TEMPLATE_DIR 22 | value: "/configmap" 23 | - name: TOPOLOGY_DIR 24 | value: "/configmap" 25 | - name: CONFIG_OUTPUT_DIR 26 | value: "/output" 27 | volumeMounts: 28 | - name: dandelion-haproxy-configmap 29 | mountPath: /configmap 30 | - name: extra-conf 31 | mountPath: /output 32 | 33 | 34 | - op: add 35 | path: /spec/template/spec/volumes/- 36 | value: 37 | name: dandelion-haproxy-configmap 38 | configMap: 39 | name: dandelion-haproxy-configmap 40 | defaultMode: 0755 41 | 42 | - op: add 43 | path: /spec/template/spec/containers/0/volumeMounts/- 44 | value: 45 | name: extra-conf 46 | mountPath: /extra-conf 47 | 48 | - op: add 49 | path: /spec/template/spec/containers/0/volumeMounts/- 50 | value: 51 | name: dandelion-haproxy-configmap 52 | mountPath: /configmap 53 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/patches/cardano-db-sync-deployment-initContainer-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/1/env 3 | value: 4 | - name: RESTORE_SNAPSHOT 5 | value: "false" 6 | - name: NETWORK 7 | value: "preprod" 8 | - name: CARDANO_NODE_SOCKET_TCP_HOST 9 | value: "cardano-node-headless" 10 | - name: CARDANO_NODE_SOCKET_TCP_PORT 11 | value: "30000" 12 | - name: SOCAT_TIMEOUT 13 | value: "3600" 14 | - name: CARDANO_NODE_SOCKET_PATH 15 | value: /ipc/node.socket 16 | - name: DB_SYNC_SNAPSHOT_TESTNET_S3_BUCKET_URI 17 | value: "s3://updates-cardano-testnet/cardano-db-sync/13/" 18 | - name: DB_SYNC_SNAPSHOT_MAINNET_S3_BUCKET_URI 19 | value: "s3://update-cardano-mainnet.iohk.io/cardano-db-sync/12/" 20 | - name: POSTGRES_HOST 21 | valueFrom: 22 | configMapKeyRef: 23 | name: common-env 24 | key: POSTGRES_HOST_RW 25 | - name: POSTGRES_PORT 26 | valueFrom: 27 | configMapKeyRef: 28 | name: common-env 29 | key: POSTGRES_PORT 30 | - name: POSTGRES_DB 31 | valueFrom: 32 | configMapKeyRef: 33 | name: common-env 34 | key: POSTGRES_DB 35 | - name: POSTGRES_USER 36 | valueFrom: 37 | configMapKeyRef: 38 | name: common-env 39 | key: POSTGRES_USER 40 | - name: PGPASSWORD 41 | valueFrom: 42 | secretKeyRef: 43 | name: init0-postgresql-ha-postgresql 44 | key: password 45 | - name: POSTGRES_USER_RO 46 | valueFrom: 47 | secretKeyRef: 48 | name: init0-postgresql-ha-pgpool-custom-users 49 | key: usernames 50 | - name: POSTGRES_PASSWORD_RO 51 | valueFrom: 52 | secretKeyRef: 53 | name: init0-postgresql-ha-pgpool-custom-users 54 | key: passwords 55 | 56 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/patches/cardano-db-sync-deployment-initContainer-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/1/env 3 | value: 4 | - name: RESTORE_SNAPSHOT 5 | value: "false" 6 | - name: NETWORK 7 | value: "preview" 8 | - name: CARDANO_NODE_SOCKET_TCP_HOST 9 | value: "cardano-node-headless" 10 | - name: CARDANO_NODE_SOCKET_TCP_PORT 11 | value: "30000" 12 | - name: SOCAT_TIMEOUT 13 | value: "3600" 14 | - name: CARDANO_NODE_SOCKET_PATH 15 | value: /ipc/node.socket 16 | - name: DB_SYNC_SNAPSHOT_TESTNET_S3_BUCKET_URI 17 | value: "s3://updates-cardano-testnet/cardano-db-sync/13/" 18 | - name: DB_SYNC_SNAPSHOT_MAINNET_S3_BUCKET_URI 19 | value: "s3://update-cardano-mainnet.iohk.io/cardano-db-sync/12/" 20 | - name: POSTGRES_HOST 21 | valueFrom: 22 | configMapKeyRef: 23 | name: common-env 24 | key: POSTGRES_HOST_RW 25 | - name: POSTGRES_PORT 26 | valueFrom: 27 | configMapKeyRef: 28 | name: common-env 29 | key: POSTGRES_PORT 30 | - name: POSTGRES_DB 31 | valueFrom: 32 | configMapKeyRef: 33 | name: common-env 34 | key: POSTGRES_DB 35 | - name: POSTGRES_USER 36 | valueFrom: 37 | configMapKeyRef: 38 | name: common-env 39 | key: POSTGRES_USER 40 | - name: PGPASSWORD 41 | valueFrom: 42 | secretKeyRef: 43 | name: init0-postgresql-ha-postgresql 44 | key: password 45 | - name: POSTGRES_USER_RO 46 | valueFrom: 47 | secretKeyRef: 48 | name: init0-postgresql-ha-pgpool-custom-users 49 | key: usernames 50 | - name: POSTGRES_PASSWORD_RO 51 | valueFrom: 52 | secretKeyRef: 53 | name: init0-postgresql-ha-pgpool-custom-users 54 | key: passwords 55 | 56 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/cardano-db-sync-deployment-initContainer-env.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /spec/template/spec/initContainers/0/env 3 | value: 4 | - name: NETWORK 5 | value: testnet 6 | - name: CARDANO_NODE_SOCKET_TCP_HOST 7 | value: "cardano-node-headless" 8 | - name: CARDANO_NODE_SOCKET_TCP_PORT 9 | value: "30000" 10 | - name: SOCAT_TIMEOUT 11 | value: "3600" 12 | - name: CARDANO_NODE_SOCKET_PATH 13 | value: /ipc/node.socket 14 | - name: RESTORE_SNAPSHOT 15 | value: "true" 16 | - name: DB_SYNC_SNAPSHOT_TESTNET_S3_BUCKET_URI 17 | value: "s3://updates-cardano-testnet/cardano-db-sync/13/" 18 | - name: DB_SYNC_SNAPSHOT_MAINNET_S3_BUCKET_URI 19 | value: "s3://update-cardano-mainnet.iohk.io/cardano-db-sync/12/" 20 | - name: POSTGRES_HOST 21 | valueFrom: 22 | configMapKeyRef: 23 | name: common-env 24 | key: POSTGRES_HOST_RW 25 | - name: POSTGRES_PORT 26 | valueFrom: 27 | configMapKeyRef: 28 | name: common-env 29 | key: POSTGRES_PORT 30 | - name: POSTGRES_DB 31 | valueFrom: 32 | configMapKeyRef: 33 | name: common-env 34 | key: POSTGRES_DB 35 | - name: POSTGRES_USER 36 | valueFrom: 37 | configMapKeyRef: 38 | name: common-env 39 | key: POSTGRES_USER 40 | - name: PGPASSWORD 41 | valueFrom: 42 | secretKeyRef: 43 | name: init0-postgresql-ha-postgresql 44 | key: password 45 | - name: POSTGRES_USER_RO 46 | valueFrom: 47 | secretKeyRef: 48 | name: init0-postgresql-ha-pgpool-custom-users 49 | key: usernames 50 | - name: POSTGRES_PASSWORD_RO 51 | valueFrom: 52 | secretKeyRef: 53 | name: init0-postgresql-ha-pgpool-custom-users 54 | key: passwords 55 | 56 | -------------------------------------------------------------------------------- /argocd-bootstrap/templates/00-observability-bootstrap.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: AppProject 4 | metadata: 5 | name: dandelion-observability 6 | namespace: argocd 7 | # Finalizer that ensures that project is not deleted until it is not referenced by any application 8 | finalizers: 9 | - resources-finalizer.argocd.argoproj.io 10 | spec: 11 | description: Project to host any observability component of the platform 12 | clusterResourceWhitelist: 13 | - group: '*' 14 | kind: '*' 15 | destinations: 16 | - namespace: '*' 17 | server: '*' 18 | sourceRepos: 19 | - '*' 20 | --- 21 | apiVersion: argoproj.io/v1alpha1 22 | kind: Application 23 | metadata: 24 | name: dandelion-observability 25 | finalizers: 26 | - resources-finalizer.argocd.argoproj.io 27 | spec: 28 | project: dandelion-observability 29 | source: 30 | repoURL: {{ .Values.git.repositoryUrl }} 31 | targetRevision: {{ .Values.git.targetRevision | default "HEAD" }} 32 | path: applications/observability 33 | helm: 34 | parameters: 35 | # This could be used to test dev branches. 36 | - name: "git.targetRevision" 37 | value: {{ .Values.git.targetRevision | default "HEAD" }} 38 | - name: "dandelion.monitoring.enabled" 39 | value: {{ .Values.dandelion.monitoring.enabled | quote }} 40 | - name: "dandelion.logging.enabled" 41 | value: {{ .Values.dandelion.logging.enabled | quote }} 42 | - name: "dandelion.provider.name" 43 | value: {{ .Values.dandelion.provider.name }} 44 | syncPolicy: 45 | automated: 46 | prune: true 47 | selfHeal: true 48 | syncOptions: 49 | - ApplyOutOfSyncOnly=true 50 | - CreateNamespace=true 51 | - PrunePropagationPolicy=foreground 52 | - PruneLast=true 53 | 54 | destination: 55 | namespace: argocd 56 | server: https://kubernetes.default.svc 57 | -------------------------------------------------------------------------------- /base/cardano-db-sync/job-ro-user-create.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: Job 3 | metadata: 4 | name: create-db-ro-user 5 | spec: 6 | backoffLimit: 5 7 | activeDeadlineSeconds: 600 8 | template: 9 | spec: 10 | containers: 11 | - name: create-db-ro-user 12 | command: ["bash", "-x", "/configmap/create-db-ro-user-entrypoint"] 13 | image: gimbalabs/cardano-db-sync-init-container:1.35.3-0 14 | securityContext: 15 | allowPrivilegeEscalation: false 16 | runAsUser: 0 17 | volumeMounts: 18 | - name: cardano-db-sync-configmap 19 | mountPath: /configmap 20 | env: 21 | - name: POSTGRES_HOST 22 | valueFrom: 23 | configMapKeyRef: 24 | name: common-env 25 | key: POSTGRES_HOST_RW 26 | - name: POSTGRES_PORT 27 | valueFrom: 28 | configMapKeyRef: 29 | name: common-env 30 | key: POSTGRES_PORT 31 | - name: POSTGRES_DB 32 | valueFrom: 33 | configMapKeyRef: 34 | name: common-env 35 | key: POSTGRES_DB 36 | - name: POSTGRES_USER 37 | valueFrom: 38 | configMapKeyRef: 39 | name: common-env 40 | key: POSTGRES_USER 41 | - name: PGPASSWORD 42 | valueFrom: 43 | secretKeyRef: 44 | name: init0-postgresql-ha-postgresql 45 | key: password 46 | - name: POSTGRES_USER_RO 47 | valueFrom: 48 | secretKeyRef: 49 | name: init0-postgresql-ha-pgpool-custom-users 50 | key: usernames 51 | - name: POSTGRES_PASSWORD_RO 52 | valueFrom: 53 | secretKeyRef: 54 | name: init0-postgresql-ha-pgpool-custom-users 55 | key: passwords 56 | restartPolicy: Never 57 | volumes: 58 | - name: cardano-db-sync-configmap 59 | configMap: 60 | name: cardano-db-sync-configmap 61 | -------------------------------------------------------------------------------- /applications/main-app/templates/010-dandelion-cardano-graphql.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.dandelion.cardano_graphql.enabled -}} 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: Application 4 | metadata: 5 | name: dandelion-{{ .Values.dandelion.cardano.network }}-cardano-graphql 6 | finalizers: 7 | - resources-finalizer.argocd.argoproj.io 8 | spec: 9 | project: dandelion-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.argoProjectSuffix }} 10 | source: 11 | repoURL: {{ .Values.git.repositoryUrl }} 12 | targetRevision: {{ .Values.git.targetRevision }} 13 | path: base/cardano-graphql 14 | plugin: 15 | name: kustomized-kustomize-network 16 | env: 17 | - name: CARDANO_NETWORK 18 | value: {{ .Values.dandelion.cardano.network }} 19 | - name: MULTI_NODE_AFFINITY 20 | value: {{ .Values.dandelion.multiNode | quote }} 21 | 22 | destination: 23 | namespace: dl-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.namespaceSuffix }} 24 | server: {{ .Values.spec.destination.server }} 25 | 26 | syncPolicy: 27 | syncOptions: 28 | - ApplyOutOfSyncOnly=true 29 | - CreateNamespace=true 30 | - PrunePropagationPolicy=foreground 31 | - PruneLast=true 32 | 33 | --- 34 | apiVersion: argoproj.io/v1alpha1 35 | kind: Application 36 | metadata: 37 | name: dandelion-{{ .Values.dandelion.cardano.network }}-cardano-hasura 38 | finalizers: 39 | - resources-finalizer.argocd.argoproj.io 40 | spec: 41 | project: dandelion-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.argoProjectSuffix }} 42 | source: 43 | repoURL: {{ .Values.git.repositoryUrl }} 44 | targetRevision: {{ .Values.git.targetRevision }} 45 | path: base/cardano-hasura 46 | plugin: 47 | name: kustomized-kustomize-network 48 | env: 49 | - name: CARDANO_NETWORK 50 | value: {{ .Values.dandelion.cardano.network }} 51 | 52 | destination: 53 | namespace: dl-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.namespaceSuffix }} 54 | server: {{ .Values.spec.destination.server }} 55 | 56 | syncPolicy: 57 | syncOptions: 58 | - ApplyOutOfSyncOnly=true 59 | - CreateNamespace=true 60 | - PrunePropagationPolicy=foreground 61 | - PruneLast=true 62 | 63 | {{- end }} 64 | -------------------------------------------------------------------------------- /argocd-bootstrap/templates/01-dandelion-mainnet-bootstrap.yaml: -------------------------------------------------------------------------------- 1 | {{ if .Values.dandelion.mainnet.enabled }} 2 | --- 3 | apiVersion: argoproj.io/v1alpha1 4 | kind: AppProject 5 | metadata: 6 | name: dandelion-mainnet{{ .Values.dandelion.argoAppSuffix }} 7 | namespace: argocd 8 | # Finalizer that ensures that project is not deleted until it is not referenced by any application 9 | finalizers: 10 | - resources-finalizer.argocd.argoproj.io 11 | spec: 12 | description: dandelion-mainnet{{ .Values.dandelion.argoAppSuffix }} 13 | clusterResourceWhitelist: 14 | - group: '*' 15 | kind: '*' 16 | destinations: 17 | - namespace: '*' 18 | server: '*' 19 | sourceRepos: 20 | - '*' 21 | --- 22 | apiVersion: argoproj.io/v1alpha1 23 | kind: Application 24 | metadata: 25 | name: dandelion-mainnet{{ .Values.dandelion.argoAppSuffix }} 26 | finalizers: 27 | - resources-finalizer.argocd.argoproj.io 28 | spec: 29 | project: dandelion-mainnet{{ .Values.dandelion.argoAppSuffix }} 30 | source: 31 | repoURL: {{ .Values.git.repositoryUrl }} 32 | targetRevision: {{ .Values.git.targetRevision | default "HEAD" }} 33 | path: applications/main-app 34 | helm: 35 | parameters: 36 | # This could be used to test dev branches. 37 | - name: "git.targetRevision" 38 | value: {{ .Values.git.targetRevision | default "HEAD" }} 39 | - name: "dandelion.cardano.network" 40 | value: "mainnet" 41 | - name: "dandelion.provider.name" 42 | value: {{ .Values.dandelion.provider.name }} 43 | - name: "dandelion.argoProjectSuffix" 44 | value: {{ .Values.dandelion.argoProjectSuffix }} 45 | - name: "dandelion.argoAppSuffix" 46 | value: {{ .Values.dandelion.argoAppSuffix }} 47 | - name: "dandelion.namespaceSuffix" 48 | value: {{ .Values.dandelion.namespaceSuffix }} 49 | values: | 50 | dandelion: 51 | {{ with .Values.dandelion.mainnet }} 52 | {{ toYaml . | indent 10 }} 53 | {{ end }} 54 | valueFiles: 55 | - values.yaml 56 | - values-{{ .Values.dandelion.provider.name }}.yaml 57 | syncPolicy: 58 | automated: 59 | prune: true 60 | selfHeal: true 61 | syncOptions: 62 | - ApplyOutOfSyncOnly=true 63 | destination: 64 | namespace: argocd 65 | server: https://kubernetes.default.svc 66 | {{ end }} 67 | -------------------------------------------------------------------------------- /argocd-bootstrap/templates/02-dandelion-testnet-bootstrap.yaml: -------------------------------------------------------------------------------- 1 | {{ if .Values.dandelion.testnet.enabled }} 2 | --- 3 | apiVersion: argoproj.io/v1alpha1 4 | kind: AppProject 5 | metadata: 6 | name: dandelion-testnet{{ .Values.dandelion.argoAppSuffix }} 7 | namespace: argocd 8 | # Finalizer that ensures that project is not deleted until it is not referenced by any application 9 | finalizers: 10 | - resources-finalizer.argocd.argoproj.io 11 | spec: 12 | description: dandelion-testnet{{ .Values.dandelion.argoAppSuffix }} 13 | clusterResourceWhitelist: 14 | - group: '*' 15 | kind: '*' 16 | destinations: 17 | - namespace: '*' 18 | server: '*' 19 | sourceRepos: 20 | - '*' 21 | --- 22 | apiVersion: argoproj.io/v1alpha1 23 | kind: Application 24 | metadata: 25 | name: dandelion-testnet{{ .Values.dandelion.argoAppSuffix }} 26 | finalizers: 27 | - resources-finalizer.argocd.argoproj.io 28 | spec: 29 | project: dandelion-testnet{{ .Values.dandelion.argoAppSuffix }} 30 | source: 31 | repoURL: {{ .Values.git.repositoryUrl }} 32 | targetRevision: {{ .Values.git.targetRevision | default "HEAD" }} 33 | path: applications/main-app 34 | helm: 35 | parameters: 36 | # This could be used to test dev branches. 37 | - name: "git.targetRevision" 38 | value: {{ .Values.git.targetRevision | default "HEAD" }} 39 | - name: "dandelion.cardano.network" 40 | value: "testnet" 41 | - name: "dandelion.provider.name" 42 | value: {{ .Values.dandelion.provider.name }} 43 | - name: "dandelion.argoProjectSuffix" 44 | value: {{ .Values.dandelion.argoProjectSuffix }} 45 | - name: "dandelion.argoAppSuffix" 46 | value: {{ .Values.dandelion.argoAppSuffix }} 47 | - name: "dandelion.namespaceSuffix" 48 | value: {{ .Values.dandelion.namespaceSuffix }} 49 | values: | 50 | dandelion: 51 | {{ with .Values.dandelion.testnet }} 52 | {{ toYaml . | indent 10 }} 53 | {{ end }} 54 | valueFiles: 55 | - values.yaml 56 | - values-{{ .Values.dandelion.provider.name }}.yaml 57 | syncPolicy: 58 | automated: 59 | prune: true 60 | selfHeal: true 61 | syncOptions: 62 | - ApplyOutOfSyncOnly=true 63 | destination: 64 | namespace: argocd 65 | server: https://kubernetes.default.svc 66 | {{ end }} 67 | -------------------------------------------------------------------------------- /base/cardano-submit-api/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | labels: 5 | io.kompose.service: cardano-submit-api 6 | name: cardano-submit-api 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | io.kompose.service: cardano-submit-api 12 | template: 13 | metadata: 14 | labels: 15 | io.kompose.service: cardano-submit-api 16 | spec: 17 | initContainers: 18 | - name: configure 19 | command: ["bash", "/configmap/initContainer-entrypoint"] 20 | image: repsistance/cardano-node:iohk-mn-passive-8.1.2-0 21 | imagePullPolicy: IfNotPresent 22 | volumeMounts: 23 | - name: cardano-submit-api-config 24 | mountPath: /config 25 | - name: cardano-submit-api-configmap 26 | mountPath: /configmap 27 | containers: 28 | - name: cardano-submit-api 29 | image: inputoutput/cardano-submit-api:8.1.1 30 | command: ["sh", "-x", "/configmap/entrypoint"] 31 | env: 32 | - name: CARDANO_SUBMIT_API_CONFIG_PATH 33 | value: "/configmap/config.json" 34 | - name: CARDANO_NODE_SOCKET_PATH 35 | value: "/node-ipc/node.socket" 36 | imagePullPolicy: IfNotPresent 37 | ports: 38 | - containerPort: 8090 39 | resources: {} 40 | volumeMounts: 41 | - mountPath: /node-ipc 42 | name: node-ipc 43 | - name: cardano-submit-api-configmap 44 | mountPath: /configmap 45 | - name: cardano-submit-api-config 46 | mountPath: /config 47 | - name: socat-socket-server 48 | image: alpine/socat 49 | env: 50 | - name: CARDANO_NODE_SOCKET_TCP_HOST 51 | value: "cardano-node-headless" 52 | - name: CARDANO_NODE_SOCKET_TCP_PORT 53 | value: "30000" 54 | command: ["sh", "-c", "rm -f /ipc/node.socket; socat UNIX-LISTEN:/ipc/node.socket,fork TCP:${CARDANO_NODE_SOCKET_TCP_HOST}:${CARDANO_NODE_SOCKET_TCP_PORT},ignoreeof"] 55 | volumeMounts: 56 | - mountPath: /ipc 57 | name: node-ipc 58 | restartPolicy: Always 59 | serviceAccountName: "" 60 | volumes: 61 | - name: node-ipc 62 | emptyDir: {} 63 | - name: cardano-submit-api-configmap 64 | configMap: 65 | name: cardano-submit-api-configmap 66 | - name: cardano-submit-api-config 67 | emptyDir: {} 68 | -------------------------------------------------------------------------------- /argocd-bootstrap/values.yaml: -------------------------------------------------------------------------------- 1 | git: 2 | repositoryUrl: https://gitlab.com/gimbalabs/dandelion/kustomize-dandelion.git 3 | targetRevision: HEAD 4 | 5 | dandelion: 6 | provider: 7 | name: null 8 | argoProjectSuffix: "-v12-0-0" 9 | argoAppSuffix: "-v12-0-0" 10 | namespaceSuffix: "-v12-0-0" 11 | ingressBaseDomain: null 12 | ingressAlternativeDomain: null 13 | multiNode: false 14 | mainnet: 15 | enabled: true 16 | db: 17 | adminPassword: "CHANGEME" 18 | roPassword: "CHANGEME" 19 | repmgrPassword: "CHANGEME" 20 | diskSize: "60Gi" 21 | testnet: 22 | enabled: false 23 | db: 24 | adminPassword: "CHANGEME" 25 | roPassword: "CHANGEME" 26 | repmgrPassword: "CHANGEME" 27 | diskSize: "60Gi" 28 | 29 | argo-cd: 30 | enabled: true 31 | server: 32 | extraArgs: 33 | - --insecure 34 | ingress: 35 | enabled: true 36 | hosts: 37 | - argocd.local 38 | config: 39 | repositories: | 40 | - url: https://gitlab.com/gimbalabs/dandelion/kustomize-dandelion.git 41 | name: kustomize-dandelion 42 | - url: https://charts.bitnami.com/bitnami 43 | name: bitnami 44 | type: helm 45 | - url: https://prometheus-community.github.io/helm-charts 46 | name: prometheus-community 47 | type: helm 48 | - url: https://grafana.github.io/helm-charts 49 | name: grafana 50 | type: helm 51 | - url: https://helm.traefik.io/traefik 52 | name: traefik 53 | type: helm 54 | configManagementPlugins: | 55 | - name: kustomized-kustomize-network 56 | generate: 57 | command: ["/bin/sh", "-c"] 58 | args: ["if [ \"${MULTI_NODE_AFFINITY}\" == \"true\" ]; then echo \"- ../../${CARDANO_NETWORK}-affinity-patches\" >> ../../base/helpers/${CARDANO_NETWORK}-patcher/kustomization.yaml; fi ; kustomize build > ../../base/helpers/${CARDANO_NETWORK}-patcher/input.yaml && kustomize build ../../base/helpers/${CARDANO_NETWORK}-patcher"] 59 | - name: kustomized-kustomize-ipfs-cluster 60 | generate: 61 | command: ["/bin/bash", "-c"] 62 | args: ["source baids/99-misc && kustomize-ipfs-generate-ipfs-key"] 63 | 64 | resource.customizations: | 65 | networking.k8s.io/Ingress: 66 | health.lua: | 67 | hs = {} 68 | hs.status = "Healthy" 69 | return hs 70 | -------------------------------------------------------------------------------- /applications/main-app/templates/005-postgres-ha.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.dandelion.cardano_db_sync.enabled -}} 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: Application 4 | metadata: 5 | name: dandelion-{{ .Values.dandelion.cardano.network }}-postgres-ha 6 | finalizers: 7 | - resources-finalizer.argocd.argoproj.io 8 | spec: 9 | project: dandelion-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.argoProjectSuffix }} 10 | source: 11 | repoURL: https://charts.bitnami.com/bitnami 12 | chart: postgresql-ha 13 | targetRevision: 6.6.6 14 | helm: 15 | releaseName: init0 16 | parameters: 17 | # This could be used to test dev branches. 18 | - name: "git.targetRevision" 19 | value: {{ .Values.git.targetRevision | default "HEAD" }} 20 | - name: "dandelion.cardano.network" 21 | value: {{ .Values.dandelion.cardano.network | default "testnet" }} 22 | values: | 23 | postgresql: 24 | replicaCount: 1 25 | updateStrategyType: OnDelete 26 | password: {{ .Values.dandelion.db.adminPassword | default "cdbsCHANGEME" }} 27 | database: cexplorer 28 | usePasswordFile: false 29 | repmgrUsername: repmgruser 30 | repmgrPassword: {{ .Values.dandelion.db.repmgrPassword | default "repmgrpassword" }} 31 | repmgrDatabase: repmgrdatabase 32 | {{- if .Values.dandelion.multiNode }} 33 | affinity: 34 | nodeAffinity: 35 | requiredDuringSchedulingIgnoredDuringExecution: 36 | nodeSelectorTerms: 37 | - matchExpressions: 38 | - key: k8s.dandelion.link/role 39 | operator: In 40 | values: 41 | - db-main 42 | - key: k8s.dandelion.link/cardano-network 43 | operator: In 44 | values: 45 | - mainnet 46 | {{- end }} 47 | pgpool: 48 | customUsers: 49 | usernames: 'dandelion_ro' 50 | passwords: {{ .Values.dandelion.db.roPassword | default "CHANGEME" }} 51 | metrics: 52 | enabled: true 53 | persistence: 54 | size: {{ .Values.dandelion.db.diskSize | default "10Gi" }} 55 | 56 | destination: 57 | namespace: dl-{{ .Values.dandelion.cardano.network }}{{ .Values.dandelion.namespaceSuffix }} 58 | server: {{ .Values.spec.destination.server }} 59 | {{- end }} 60 | -------------------------------------------------------------------------------- /base/cardano-hasura/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | labels: 5 | io.kompose.service: hasura 6 | name: hasura 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | io.kompose.service: hasura 12 | template: 13 | metadata: 14 | labels: 15 | io.kompose.service: hasura 16 | spec: 17 | containers: 18 | - name: hasura 19 | #command: ["sh", "-c", "while true; do sleep 6969; done"] 20 | env: 21 | - name: HASURA_GRAPHQL_ENABLED_LOG_TYPES 22 | value: startup, http-log, webhook-log, websocket-log, query-log 23 | - name: HASURA_GRAPHQL_ENABLE_CONSOLE 24 | value: "true" 25 | - name: HASURA_GRAPHQL_ENABLE_TELEMETRY 26 | value: "false" 27 | - name: HASURA_GRAPHQL_STRINGIFY_NUMERIC_TYPES 28 | value: "true" 29 | - name: POSTGRES_HOST 30 | valueFrom: 31 | configMapKeyRef: 32 | name: common-env 33 | key: POSTGRES_HOST_RW 34 | - name: POSTGRES_PORT 35 | valueFrom: 36 | configMapKeyRef: 37 | name: common-env 38 | key: POSTGRES_PORT 39 | - name: POSTGRES_DB 40 | valueFrom: 41 | configMapKeyRef: 42 | name: common-env 43 | key: POSTGRES_DB 44 | - name: POSTGRES_USER 45 | valueFrom: 46 | configMapKeyRef: 47 | name: common-env 48 | key: POSTGRES_USER 49 | - name: POSTGRES_PASSWORD 50 | valueFrom: 51 | secretKeyRef: 52 | name: init0-postgresql-ha-postgresql 53 | key: password 54 | image: inputoutput/cardano-graphql-hasura:8.0.0 55 | imagePullPolicy: IfNotPresent 56 | ports: 57 | - containerPort: 8080 58 | resources: {} 59 | volumeMounts: 60 | - name: common-env 61 | mountPath: /run/secrets/common-env 62 | readOnly: true 63 | - name: postgres-password 64 | mountPath: /run/secrets/postgres-password 65 | readOnly: true 66 | restartPolicy: Always 67 | serviceAccountName: "" 68 | volumes: 69 | - name: common-env 70 | configMap: 71 | name: common-env 72 | - name: postgres-password 73 | secret: 74 | secretName: init0-postgresql-ha-postgresql 75 | items: 76 | - key: password 77 | path: POSTGRES_PASSWORD 78 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1alpha1 # <-- Component notation 2 | kind: Component 3 | 4 | patches: 5 | # cardano-node 6 | - path: patches/cardano-node-configmap.yaml 7 | target: 8 | kind: ConfigMap 9 | name: cardano-node 10 | - path: patches/cardano-node-pvc.yaml 11 | target: 12 | kind: StatefulSet 13 | name: cardano-node 14 | - path: patches/cardano-node-deployment-env.yaml 15 | target: 16 | kind: StatefulSet 17 | name: cardano-node 18 | - path: patches/cardano-node-deployment-initContainers-env.yaml 19 | target: 20 | kind: StatefulSet 21 | name: cardano-node 22 | - path: patches/cardano-node-deployment-image.yaml 23 | target: 24 | kind: StatefulSet 25 | name: cardano-node 26 | # cardano-graphql 27 | - path: patches/genesis-image.yaml 28 | target: 29 | kind: Deployment 30 | name: cardano-graphql 31 | - path: patches/cardano-graphql-deployment-env.yaml 32 | target: 33 | kind: Deployment 34 | name: cardano-graphql 35 | - path: patches/cardano-graphql-deployment-image.yaml 36 | target: 37 | kind: Deployment 38 | name: cardano-graphql 39 | # cardano-db-sync 40 | - path: patches/cardano-db-sync-deployment-env.yaml 41 | target: 42 | kind: StatefulSet 43 | name: cardano-db-sync 44 | - path: patches/cardano-db-sync-deployment-initContainer-env.yaml 45 | target: 46 | kind: StatefulSet 47 | name: cardano-db-sync 48 | - path: patches/cardano-db-sync-deployment-image.yaml 49 | target: 50 | kind: StatefulSet 51 | name: cardano-db-sync 52 | - path: patches/cardano-db-sync-deployment-pvc.yaml 53 | target: 54 | kind: StatefulSet 55 | name: cardano-db-sync 56 | # cardano-rosetta 57 | - path: patches/cardano-rosetta-deployment-image.yaml 58 | target: 59 | kind: Deployment 60 | name: cardano-rosetta 61 | # cardano-submit-api 62 | - path: patches/cardano-submit-api-deployment-env.yaml 63 | target: 64 | kind: Deployment 65 | name: cardano-submit-api 66 | # ogmios 67 | - path: patches/ogmios-deployment-env.yaml 68 | target: 69 | kind: Deployment 70 | name: ogmios 71 | - path: patches/ogmios-deployment-image.yaml 72 | target: 73 | kind: Deployment 74 | name: ogmios 75 | # postgres-ha 76 | - path: patches/postgres-ha-pvc.yaml 77 | target: 78 | kind: StatefulSet 79 | name: init0-postgresql-ha-postgresql 80 | # blockfrost 81 | - path: patches/blockfrost-deployment-env.yaml 82 | target: 83 | kind: Deployment 84 | name: blockfrost 85 | -------------------------------------------------------------------------------- /base/ogmios/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | labels: 5 | io.kompose.service: ogmios 6 | name: ogmios 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | io.kompose.service: ogmios 12 | template: 13 | metadata: 14 | labels: 15 | io.kompose.service: ogmios 16 | spec: 17 | initContainers: 18 | - name: setup-node-config 19 | command: ["bash", "/configmap/initContainer-entrypoint"] 20 | image: repsistance/cardano-node:iohk-mn-passive-8.1.2-0 21 | imagePullPolicy: IfNotPresent 22 | volumeMounts: 23 | - name: ogmios-config 24 | mountPath: /config 25 | - name: ogmios-configmap 26 | mountPath: /configmap 27 | containers: 28 | - name: ogmios 29 | env: 30 | - name: NODE_CONFIG_PATH 31 | value: "/opt/cardano/cnode/files/config.json" 32 | - name: LISTEN_HOST 33 | value: "0.0.0.0" 34 | - name: LISTEN_PORT 35 | value: "1337" 36 | - name: NODE_SOCKET_PATH 37 | value: "/node-ipc/node.socket" 38 | - name: LOG_LEVEL 39 | value: "Debug" 40 | command: ["sh", "-xc", "ogmios --node-socket ${NODE_SOCKET_PATH} --host ${LISTEN_HOST} --port ${LISTEN_PORT} --log-level ${LOG_LEVEL} --node-config ${NODE_CONFIG_PATH}"] 41 | image: cardanosolutions/ogmios:v5.5.6-mainnet 42 | imagePullPolicy: IfNotPresent 43 | ports: 44 | - containerPort: 1337 45 | resources: {} 46 | volumeMounts: 47 | - mountPath: /node-ipc 48 | name: node-ipc 49 | - name: ogmios-config 50 | mountPath: /opt/cardano/cnode/files 51 | - name: socat-socket-server 52 | image: alpine/socat 53 | env: 54 | - name: CARDANO_NODE_SOCKET_TCP_HOST 55 | value: "cardano-node-headless" 56 | - name: CARDANO_NODE_SOCKET_TCP_PORT 57 | value: "30000" 58 | command: ["sh", "-c", "rm -f /ipc/node.socket; socat UNIX-LISTEN:/ipc/node.socket,fork TCP:${CARDANO_NODE_SOCKET_TCP_HOST}:${CARDANO_NODE_SOCKET_TCP_PORT},ignoreeof"] 59 | volumeMounts: 60 | - mountPath: /ipc 61 | name: node-ipc 62 | restartPolicy: Always 63 | serviceAccountName: "" 64 | volumes: 65 | - name: node-ipc 66 | emptyDir: {} 67 | - name: ogmios-config 68 | emptyDir: {} 69 | - name: ogmios-configmap 70 | configMap: 71 | name: ogmios-configmap 72 | 73 | -------------------------------------------------------------------------------- /base/postgres-ws/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | labels: 5 | io.kompose.service: postgres-ws 6 | name: postgres-ws 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | io.kompose.service: postgres-ws 12 | template: 13 | metadata: 14 | labels: 15 | io.kompose.service: postgres-ws 16 | spec: 17 | containers: 18 | - env: 19 | - name: PGWS_JWT_SECRET 20 | value: "auwhfdnskjhewfi34uwehdlaehsfkuaeiskjnfduierhfsiweskjcnzeiluwhskdewishdnpwe" 21 | - name: PGWS_ROOT_PATH 22 | value: /home/postgres-websockets/client-example 23 | - name: POSTGRES_HOST 24 | valueFrom: 25 | configMapKeyRef: 26 | name: common-env 27 | key: POSTGRES_HOST_RO 28 | - name: POSTGRES_PORT 29 | valueFrom: 30 | configMapKeyRef: 31 | name: common-env 32 | key: POSTGRES_PORT 33 | - name: POSTGRES_USER 34 | valueFrom: 35 | secretKeyRef: 36 | name: init0-postgresql-ha-pgpool-custom-users 37 | key: usernames 38 | - name: POSTGRES_PASS 39 | valueFrom: 40 | secretKeyRef: 41 | name: init0-postgresql-ha-pgpool-custom-users 42 | key: passwords 43 | - name: POSTGRES_DB 44 | valueFrom: 45 | configMapKeyRef: 46 | name: common-env 47 | key: POSTGRES_DB 48 | image: diogob/postgres-websockets 49 | command: ['sh', '-c', 'PGWS_DB_URI="postgres://${POSTGRES_USER}:${POSTGRES_PASS}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}" postgres-websockets'] 50 | imagePullPolicy: IfNotPresent 51 | name: postgres-ws 52 | ports: 53 | - containerPort: 3000 54 | readinessProbe: 55 | tcpSocket: 56 | port: 3000 57 | initialDelaySeconds: 15 58 | periodSeconds: 15 59 | livenessProbe: 60 | tcpSocket: 61 | port: 3000 62 | initialDelaySeconds: 15 63 | periodSeconds: 15 64 | resources: {} 65 | volumeMounts: 66 | - name: common-env 67 | mountPath: /run/secrets/common-env 68 | readOnly: true 69 | - mountPath: /ipc 70 | name: node-ipc 71 | restartPolicy: Always 72 | serviceAccountName: "" 73 | volumes: 74 | - name: node-ipc 75 | emptyDir: {} 76 | - name: common-env 77 | configMap: 78 | name: common-env 79 | -------------------------------------------------------------------------------- /base/koios/job-deploy-koios-sql.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: Job 3 | metadata: 4 | name: deploy-koios-sql 5 | spec: 6 | backoffLimit: 5 7 | template: 8 | spec: 9 | serviceAccountName: koios-deploy-sql 10 | containers: 11 | - name: deploy-koios-sql 12 | command: ["bash", "-x", "/configmap/koios-deploy-sql-entrypoint"] 13 | #image: gimbalabs/cardano-db-sync-init-container:1.35.3-0 14 | image: repsistance/cardano-node:iohk-preprod-passive-8.1.1-0 15 | volumeMounts: 16 | - name: koios-configmap 17 | mountPath: /configmap 18 | - name: cardano-node-configmap 19 | mountPath: /cardano-node-configmap 20 | env: 21 | - name: KOIOS_REPOSITORY 22 | value: cardano-community/guild-operators 23 | - name: KOIOS_BRANCH 24 | value: alpha 25 | - name: KOIOS_VERSION 26 | value: "1.0.10" 27 | #value: "420" 28 | - name: CNODE_HOME 29 | value: /opt/cardano/cnode 30 | - name: USESYSVARS 31 | value: Y 32 | - name: CNODE_CONFIG_FILE 33 | value: /cardano-node-configmap/config.json 34 | - name: PGHOST 35 | valueFrom: 36 | configMapKeyRef: 37 | name: common-env 38 | key: POSTGRES_HOST_RW 39 | - name: PGPORT 40 | valueFrom: 41 | configMapKeyRef: 42 | name: common-env 43 | key: POSTGRES_PORT 44 | - name: PGDATABASE 45 | valueFrom: 46 | configMapKeyRef: 47 | name: common-env 48 | key: POSTGRES_DB 49 | - name: PGUSER 50 | valueFrom: 51 | configMapKeyRef: 52 | name: common-env 53 | key: POSTGRES_USER 54 | - name: PGPASSWORD 55 | valueFrom: 56 | secretKeyRef: 57 | name: init0-postgresql-ha-postgresql 58 | key: password 59 | - name: POSTGRES_USER_RO 60 | valueFrom: 61 | secretKeyRef: 62 | name: init0-postgresql-ha-pgpool-custom-users 63 | key: usernames 64 | - name: POSTGRES_PASSWORD_RO 65 | valueFrom: 66 | secretKeyRef: 67 | name: init0-postgresql-ha-pgpool-custom-users 68 | key: passwords 69 | restartPolicy: Never 70 | volumes: 71 | - name: koios-configmap 72 | configMap: 73 | name: koios-configmap 74 | - name: cardano-node-configmap 75 | configMap: 76 | name: cardano-node 77 | 78 | -------------------------------------------------------------------------------- /base/cardano-token-registry/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | labels: 5 | io.kompose.service: cardano-token-registry 6 | name: cardano-token-registry 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | io.kompose.service: cardano-token-registry 12 | template: 13 | metadata: 14 | labels: 15 | io.kompose.service: cardano-token-registry 16 | spec: 17 | initContainers: 18 | - name: git-init 19 | image: alpine/git 20 | env: 21 | - name: TOKEN_REGISTRY_GIT_REPO 22 | value: "https://github.com/cardano-foundation/cardano-token-registry" 23 | - name: TOKEN_REGISTRY_GIT_BRANCH 24 | value: "master" 25 | - name: TOKEN_REGISTRY_DEST 26 | value: "/app/repo/cardano-token-registry" 27 | command: ["sh", "-c", "if [ ! -e ${TOKEN_REGISTRY_DEST}/.git ]; then git clone ${TOKEN_REGISTRY_GIT_REPO} ${TOKEN_REGISTRY_DEST}; fi; cd ${TOKEN_REGISTRY_DEST} && git reset && git checkout ${TOKEN_REGISTRY_GIT_BRANCH} && git pull"] 28 | volumeMounts: 29 | - mountPath: /app/repo 30 | name: token-registry-repo 31 | containers: 32 | - name: dbless-ctr 33 | image: gimbalabs/dbless-cardano-token-registry:0.0.3 34 | imagePullPolicy: Always 35 | env: 36 | - name: TOKEN_REGISTRY_MAPPINGS_DIR 37 | value: "/app/repo/cardano-token-registry/mappings" 38 | ports: 39 | - containerPort: 3042 40 | protocol: TCP 41 | volumeMounts: 42 | - mountPath: /app/repo 43 | name: token-registry-repo 44 | - name: git-puller 45 | image: alpine/git 46 | env: 47 | - name: TOKEN_REGISTRY_GIT_REPO 48 | value: "https://github.com/cardano-foundation/cardano-token-registry" 49 | - name: TOKEN_REGISTRY_GIT_BRANCH 50 | value: "master" 51 | - name: TOKEN_REGISTRY_DEST 52 | value: "/app/repo/cardano-token-registry" 53 | - name: SYNC_INTERVAL # seconds 54 | value: "3600" 55 | command: ["sh", "-c", "while true; do if [ ! -e ${TOKEN_REGISTRY_DEST}/.git ]; then git clone ${TOKEN_REGISTRY_GIT_REPO} ${TOKEN_REGISTRY_DEST}; fi; cd ${TOKEN_REGISTRY_DEST} && git reset && git checkout ${TOKEN_REGISTRY_GIT_BRANCH} && git pull; sleep ${SYNC_INTERVAL}; done"] 56 | volumeMounts: 57 | - mountPath: /app/repo 58 | name: token-registry-repo 59 | volumes: 60 | - name: token-registry-repo 61 | persistentVolumeClaim: 62 | claimName: cardano-token-registry-git 63 | 64 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preprod/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1alpha1 # <-- Component notation 2 | kind: Component 3 | 4 | patches: 5 | # cardano-node 6 | - path: patches/cardano-node-configmap.yaml 7 | target: 8 | kind: ConfigMap 9 | name: cardano-node 10 | - path: patches/cardano-node-pvc.yaml 11 | target: 12 | kind: StatefulSet 13 | name: cardano-node 14 | - path: patches/cardano-node-deployment-env.yaml 15 | target: 16 | kind: StatefulSet 17 | name: cardano-node 18 | - path: patches/cardano-node-deployment-initContainers-env.yaml 19 | target: 20 | kind: StatefulSet 21 | name: cardano-node 22 | - path: patches/cardano-node-deployment-image.yaml 23 | target: 24 | kind: StatefulSet 25 | name: cardano-node 26 | # cardano-graphql 27 | - path: patches/cardano-graphql-deployment-env.yaml 28 | target: 29 | kind: Deployment 30 | name: cardano-graphql 31 | - path: patches/cardano-graphql-deployment-image.yaml 32 | target: 33 | kind: Deployment 34 | name: cardano-graphql 35 | # cardano-graphql-background 36 | - path: patches/cardano-graphql-background-deployment-env.yaml 37 | target: 38 | kind: Deployment 39 | name: cardano-graphql-background 40 | - path: patches/cardano-graphql-background-deployment-image.yaml 41 | target: 42 | kind: Deployment 43 | name: cardano-graphql-background 44 | # cardano-db-sync 45 | - path: patches/cardano-db-sync-genesis-image.yaml 46 | target: 47 | kind: StatefulSet 48 | name: cardano-db-sync 49 | - path: patches/cardano-db-sync-deployment-initContainer-env.yaml 50 | target: 51 | kind: StatefulSet 52 | name: cardano-db-sync 53 | - path: patches/cardano-db-sync-deployment-image.yaml 54 | target: 55 | kind: StatefulSet 56 | name: cardano-db-sync 57 | - path: patches/cardano-db-sync-deployment-pvc.yaml 58 | target: 59 | kind: StatefulSet 60 | name: cardano-db-sync 61 | # cardano-rosetta 62 | - path: patches/cardano-rosetta-deployment-image.yaml 63 | target: 64 | kind: Deployment 65 | name: cardano-rosetta 66 | # cardano-submit-api 67 | - path: patches/cardano-submit-api-genesis-image.yaml 68 | target: 69 | kind: Deployment 70 | name: cardano-submit-api 71 | # ogmios 72 | - path: patches/ogmios-genesis-image.yaml 73 | target: 74 | kind: Deployment 75 | name: ogmios 76 | # kupo 77 | - path: patches/kupo-genesis-image.yaml 78 | target: 79 | kind: StatefulSet 80 | name: kupo 81 | # postgres-ha 82 | - path: patches/postgres-ha-pvc.yaml 83 | target: 84 | kind: StatefulSet 85 | name: init0-postgresql-ha-postgresql 86 | # blockfrost 87 | - path: patches/blockfrost-deployment-env.yaml 88 | target: 89 | kind: Deployment 90 | name: blockfrost 91 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-preview/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1alpha1 # <-- Component notation 2 | kind: Component 3 | 4 | patches: 5 | # cardano-node 6 | - path: patches/cardano-node-configmap.yaml 7 | target: 8 | kind: ConfigMap 9 | name: cardano-node 10 | - path: patches/cardano-node-pvc.yaml 11 | target: 12 | kind: StatefulSet 13 | name: cardano-node 14 | - path: patches/cardano-node-deployment-env.yaml 15 | target: 16 | kind: StatefulSet 17 | name: cardano-node 18 | - path: patches/cardano-node-deployment-initContainers-env.yaml 19 | target: 20 | kind: StatefulSet 21 | name: cardano-node 22 | - path: patches/cardano-node-deployment-image.yaml 23 | target: 24 | kind: StatefulSet 25 | name: cardano-node 26 | # cardano-graphql 27 | - path: patches/cardano-graphql-deployment-env.yaml 28 | target: 29 | kind: Deployment 30 | name: cardano-graphql 31 | - path: patches/cardano-graphql-deployment-image.yaml 32 | target: 33 | kind: Deployment 34 | name: cardano-graphql 35 | # cardano-graphql-background 36 | - path: patches/cardano-graphql-background-deployment-env.yaml 37 | target: 38 | kind: Deployment 39 | name: cardano-graphql-background 40 | - path: patches/cardano-graphql-background-deployment-image.yaml 41 | target: 42 | kind: Deployment 43 | name: cardano-graphql-background 44 | # cardano-db-sync 45 | - path: patches/cardano-db-sync-genesis-image.yaml 46 | target: 47 | kind: StatefulSet 48 | name: cardano-db-sync 49 | - path: patches/cardano-db-sync-deployment-initContainer-env.yaml 50 | target: 51 | kind: StatefulSet 52 | name: cardano-db-sync 53 | - path: patches/cardano-db-sync-deployment-image.yaml 54 | target: 55 | kind: StatefulSet 56 | name: cardano-db-sync 57 | - path: patches/cardano-db-sync-deployment-pvc.yaml 58 | target: 59 | kind: StatefulSet 60 | name: cardano-db-sync 61 | # cardano-rosetta 62 | - path: patches/cardano-rosetta-deployment-image.yaml 63 | target: 64 | kind: Deployment 65 | name: cardano-rosetta 66 | # cardano-submit-api 67 | - path: patches/cardano-submit-api-genesis-image.yaml 68 | target: 69 | kind: Deployment 70 | name: cardano-submit-api 71 | # ogmios 72 | - path: patches/ogmios-genesis-image.yaml 73 | target: 74 | kind: Deployment 75 | name: ogmios 76 | # kupo 77 | - path: patches/kupo-genesis-image.yaml 78 | target: 79 | kind: StatefulSet 80 | name: kupo 81 | # postgres-ha 82 | - path: patches/postgres-ha-pvc.yaml 83 | target: 84 | kind: StatefulSet 85 | name: init0-postgresql-ha-postgresql 86 | # blockfrost 87 | - path: patches/blockfrost-deployment-env.yaml 88 | target: 89 | kind: Deployment 90 | name: blockfrost 91 | -------------------------------------------------------------------------------- /base/kupo/statefulset.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: StatefulSet 3 | metadata: 4 | labels: 5 | io.kompose.service: kupo 6 | name: kupo 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | io.kompose.service: kupo 12 | serviceName: kupo 13 | updateStrategy: 14 | type: OnDelete 15 | template: 16 | metadata: 17 | labels: 18 | io.kompose.service: kupo 19 | spec: 20 | initContainers: 21 | - name: configure 22 | command: ["bash", "/configmap/initContainer-entrypoint"] 23 | image: repsistance/cardano-node:iohk-mn-passive-8.1.2-0 24 | imagePullPolicy: IfNotPresent 25 | volumeMounts: 26 | - name: kupo-config 27 | mountPath: /config 28 | - name: kupo-configmap 29 | mountPath: /configmap 30 | containers: 31 | - name: kupo 32 | image: cardanosolutions/kupo 33 | command: ["sh", "-x", "/configmap/entrypoint"] 34 | env: 35 | - name: CARDANO_NODE_CONFIG_PATH 36 | value: "/opt/cardano/cnode/files/config.json" 37 | - name: CARDANO_NODE_SOCKET_PATH 38 | value: "/node-ipc/node.socket" 39 | - name: KUPO_DB_PATH 40 | value: "/db" 41 | - name: KUPO_PORT 42 | value: "1442" 43 | imagePullPolicy: IfNotPresent 44 | ports: 45 | - containerPort: 1442 46 | resources: {} 47 | volumeMounts: 48 | - name: kupo-config 49 | mountPath: /opt/cardano/cnode/files 50 | - mountPath: /node-ipc 51 | name: node-ipc 52 | - name: kupo-configmap 53 | mountPath: /configmap 54 | - name: kupo-config 55 | mountPath: /config 56 | - name: kupo-db 57 | mountPath: /db 58 | - name: socat-socket-server 59 | image: alpine/socat 60 | env: 61 | - name: CARDANO_NODE_SOCKET_TCP_HOST 62 | value: "cardano-node-headless" 63 | - name: CARDANO_NODE_SOCKET_TCP_PORT 64 | value: "30000" 65 | command: ["sh", "-c", "rm -f /ipc/node.socket; socat UNIX-LISTEN:/ipc/node.socket,fork TCP:${CARDANO_NODE_SOCKET_TCP_HOST}:${CARDANO_NODE_SOCKET_TCP_PORT},ignoreeof"] 66 | volumeMounts: 67 | - mountPath: /ipc 68 | name: node-ipc 69 | restartPolicy: Always 70 | serviceAccountName: "" 71 | volumes: 72 | - name: kupo-db 73 | persistentVolumeClaim: 74 | claimName: kupo-db 75 | - name: node-ipc 76 | emptyDir: {} 77 | - name: kupo-configmap 78 | configMap: 79 | name: kupo-configmap 80 | - name: kupo-config 81 | emptyDir: {} 82 | 83 | volumeClaimTemplates: 84 | - metadata: 85 | name: kupo-db 86 | spec: 87 | accessModes: [ "ReadWriteOnce" ] 88 | resources: 89 | requests: 90 | storage: 20Gi 91 | -------------------------------------------------------------------------------- /base/koios/cronjob-asset-registry-update.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: CronJob 3 | metadata: 4 | name: koios-asset-registry-update 5 | spec: 6 | schedule: "*/10 * * * *" 7 | jobTemplate: 8 | spec: 9 | backoffLimit: 0 10 | ttlSecondsAfterFinished: 540 11 | template: 12 | spec: 13 | serviceAccountName: koios-deploy-sql 14 | containers: 15 | - name: koios-asset-registry-update 16 | command: ["bash", "-x", "/configmap/asset-registry-update"] 17 | image: gimbalabs/cardano-db-sync-init-container:1.35.3-0 18 | volumeMounts: 19 | - name: koios-configmap 20 | mountPath: /configmap 21 | - name: cardano-node-configmap 22 | mountPath: /cardano-node-configmap 23 | env: 24 | - name: KOIOS_REPOSITORY 25 | value: cardano-community/koios-artifacts 26 | - name: KOIOS_BRANCH 27 | value: main 28 | - name: CNODE_CONFIG_FILE 29 | value: /cardano-node-configmap/config.json 30 | - name: PGHOST 31 | valueFrom: 32 | configMapKeyRef: 33 | name: common-env 34 | key: POSTGRES_HOST_RW 35 | - name: PGPORT 36 | valueFrom: 37 | configMapKeyRef: 38 | name: common-env 39 | key: POSTGRES_PORT 40 | - name: PGDATABASE 41 | valueFrom: 42 | configMapKeyRef: 43 | name: common-env 44 | key: POSTGRES_DB 45 | - name: PGUSER 46 | valueFrom: 47 | configMapKeyRef: 48 | name: common-env 49 | key: POSTGRES_USER 50 | - name: PGPASSWORD 51 | valueFrom: 52 | secretKeyRef: 53 | name: init0-postgresql-ha-postgresql 54 | key: password 55 | - name: POSTGRES_USER_RO 56 | valueFrom: 57 | secretKeyRef: 58 | name: init0-postgresql-ha-pgpool-custom-users 59 | key: usernames 60 | - name: POSTGRES_PASSWORD_RO 61 | valueFrom: 62 | secretKeyRef: 63 | name: init0-postgresql-ha-pgpool-custom-users 64 | key: passwords 65 | - name: PGRST_DB_SCHEMA 66 | value: grest 67 | - name: MY_POD_NAME 68 | valueFrom: 69 | fieldRef: 70 | fieldPath: metadata.name 71 | restartPolicy: Never 72 | volumes: 73 | - name: koios-configmap 74 | configMap: 75 | name: koios-configmap 76 | - name: cardano-node-configmap 77 | configMap: 78 | name: cardano-node 79 | 80 | -------------------------------------------------------------------------------- /base/koios/cronjob-stake-snapshot-cache.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: CronJob 3 | metadata: 4 | name: koios-stake-snapshot-cache 5 | spec: 6 | schedule: "*/10 * * * *" 7 | jobTemplate: 8 | spec: 9 | backoffLimit: 0 10 | ttlSecondsAfterFinished: 540 11 | template: 12 | spec: 13 | serviceAccountName: koios-deploy-sql 14 | containers: 15 | - name: koios-stake-snapshot-cache 16 | command: ["bash", "-x", "/configmap/stake-snapshot-cache"] 17 | image: gimbalabs/cardano-db-sync-init-container:1.35.3-0 18 | volumeMounts: 19 | - name: koios-configmap 20 | mountPath: /configmap 21 | - name: cardano-node-configmap 22 | mountPath: /cardano-node-configmap 23 | env: 24 | - name: KOIOS_REPOSITORY 25 | value: cardano-community/koios-artifacts 26 | - name: KOIOS_BRANCH 27 | value: main 28 | - name: CNODE_CONFIG_FILE 29 | value: /cardano-node-configmap/config.json 30 | - name: PGHOST 31 | valueFrom: 32 | configMapKeyRef: 33 | name: common-env 34 | key: POSTGRES_HOST_RW 35 | - name: PGPORT 36 | valueFrom: 37 | configMapKeyRef: 38 | name: common-env 39 | key: POSTGRES_PORT 40 | - name: PGDATABASE 41 | valueFrom: 42 | configMapKeyRef: 43 | name: common-env 44 | key: POSTGRES_DB 45 | - name: PGUSER 46 | valueFrom: 47 | configMapKeyRef: 48 | name: common-env 49 | key: POSTGRES_USER 50 | - name: PGPASSWORD 51 | valueFrom: 52 | secretKeyRef: 53 | name: init0-postgresql-ha-postgresql 54 | key: password 55 | - name: POSTGRES_USER_RO 56 | valueFrom: 57 | secretKeyRef: 58 | name: init0-postgresql-ha-pgpool-custom-users 59 | key: usernames 60 | - name: POSTGRES_PASSWORD_RO 61 | valueFrom: 62 | secretKeyRef: 63 | name: init0-postgresql-ha-pgpool-custom-users 64 | key: passwords 65 | - name: PGRST_DB_SCHEMA 66 | value: grest 67 | - name: MY_POD_NAME 68 | valueFrom: 69 | fieldRef: 70 | fieldPath: metadata.name 71 | restartPolicy: Never 72 | volumes: 73 | - name: koios-configmap 74 | configMap: 75 | name: koios-configmap 76 | - name: cardano-node-configmap 77 | configMap: 78 | name: cardano-node 79 | 80 | -------------------------------------------------------------------------------- /base/koios/cronjob-asset-info-cache-update.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: CronJob 3 | metadata: 4 | name: koios-asset-info-cache-update 5 | spec: 6 | schedule: "* * * * *" 7 | jobTemplate: 8 | spec: 9 | backoffLimit: 0 10 | ttlSecondsAfterFinished: 540 11 | template: 12 | spec: 13 | serviceAccountName: koios-deploy-sql 14 | containers: 15 | - name: koios-asset-info-cache-update 16 | command: ["bash", "-x", "/configmap/asset-info-cache-update"] 17 | image: gimbalabs/cardano-db-sync-init-container:1.35.3-0 18 | volumeMounts: 19 | - name: koios-configmap 20 | mountPath: /configmap 21 | - name: cardano-node-configmap 22 | mountPath: /cardano-node-configmap 23 | env: 24 | - name: KOIOS_REPOSITORY 25 | value: cardano-community/koios-artifacts 26 | - name: KOIOS_BRANCH 27 | value: main 28 | - name: CNODE_CONFIG_FILE 29 | value: /cardano-node-configmap/config.json 30 | - name: PGHOST 31 | valueFrom: 32 | configMapKeyRef: 33 | name: common-env 34 | key: POSTGRES_HOST_RW 35 | - name: PGPORT 36 | valueFrom: 37 | configMapKeyRef: 38 | name: common-env 39 | key: POSTGRES_PORT 40 | - name: PGDATABASE 41 | valueFrom: 42 | configMapKeyRef: 43 | name: common-env 44 | key: POSTGRES_DB 45 | - name: PGUSER 46 | valueFrom: 47 | configMapKeyRef: 48 | name: common-env 49 | key: POSTGRES_USER 50 | - name: PGPASSWORD 51 | valueFrom: 52 | secretKeyRef: 53 | name: init0-postgresql-ha-postgresql 54 | key: password 55 | - name: POSTGRES_USER_RO 56 | valueFrom: 57 | secretKeyRef: 58 | name: init0-postgresql-ha-pgpool-custom-users 59 | key: usernames 60 | - name: POSTGRES_PASSWORD_RO 61 | valueFrom: 62 | secretKeyRef: 63 | name: init0-postgresql-ha-pgpool-custom-users 64 | key: passwords 65 | - name: PGRST_DB_SCHEMA 66 | value: grest 67 | - name: MY_POD_NAME 68 | valueFrom: 69 | fieldRef: 70 | fieldPath: metadata.name 71 | restartPolicy: Never 72 | volumes: 73 | - name: koios-configmap 74 | configMap: 75 | name: koios-configmap 76 | - name: cardano-node-configmap 77 | configMap: 78 | name: cardano-node 79 | 80 | -------------------------------------------------------------------------------- /base/koios/cronjob-epoch-info-cache-update.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: CronJob 3 | metadata: 4 | name: koios-epoch-info-cache-update 5 | spec: 6 | schedule: "*/15 * * * *" 7 | jobTemplate: 8 | spec: 9 | backoffLimit: 0 10 | ttlSecondsAfterFinished: 540 11 | template: 12 | spec: 13 | serviceAccountName: koios-deploy-sql 14 | containers: 15 | - name: koios-epoch-info-cache-update 16 | command: ["bash", "-x", "/configmap/epoch-info-cache-update"] 17 | image: gimbalabs/cardano-db-sync-init-container:1.35.3-0 18 | volumeMounts: 19 | - name: koios-configmap 20 | mountPath: /configmap 21 | - name: cardano-node-configmap 22 | mountPath: /cardano-node-configmap 23 | env: 24 | - name: KOIOS_REPOSITORY 25 | value: cardano-community/koios-artifacts 26 | - name: KOIOS_BRANCH 27 | value: main 28 | - name: CNODE_CONFIG_FILE 29 | value: /cardano-node-configmap/config.json 30 | - name: PGHOST 31 | valueFrom: 32 | configMapKeyRef: 33 | name: common-env 34 | key: POSTGRES_HOST_RW 35 | - name: PGPORT 36 | valueFrom: 37 | configMapKeyRef: 38 | name: common-env 39 | key: POSTGRES_PORT 40 | - name: PGDATABASE 41 | valueFrom: 42 | configMapKeyRef: 43 | name: common-env 44 | key: POSTGRES_DB 45 | - name: PGUSER 46 | valueFrom: 47 | configMapKeyRef: 48 | name: common-env 49 | key: POSTGRES_USER 50 | - name: PGPASSWORD 51 | valueFrom: 52 | secretKeyRef: 53 | name: init0-postgresql-ha-postgresql 54 | key: password 55 | - name: POSTGRES_USER_RO 56 | valueFrom: 57 | secretKeyRef: 58 | name: init0-postgresql-ha-pgpool-custom-users 59 | key: usernames 60 | - name: POSTGRES_PASSWORD_RO 61 | valueFrom: 62 | secretKeyRef: 63 | name: init0-postgresql-ha-pgpool-custom-users 64 | key: passwords 65 | - name: PGRST_DB_SCHEMA 66 | value: grest 67 | - name: MY_POD_NAME 68 | valueFrom: 69 | fieldRef: 70 | fieldPath: metadata.name 71 | restartPolicy: Never 72 | volumes: 73 | - name: koios-configmap 74 | configMap: 75 | name: koios-configmap 76 | - name: cardano-node-configmap 77 | configMap: 78 | name: cardano-node 79 | 80 | -------------------------------------------------------------------------------- /base/koios/cronjob-active-stake-cache-update.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: CronJob 3 | metadata: 4 | name: koios-active-stake-cache-update 5 | spec: 6 | schedule: "*/15 * * * *" 7 | jobTemplate: 8 | spec: 9 | backoffLimit: 0 10 | ttlSecondsAfterFinished: 540 11 | template: 12 | spec: 13 | serviceAccountName: koios-deploy-sql 14 | containers: 15 | - name: koios-active-stake-cache-update 16 | command: ["bash", "-x", "/configmap/active-stake-cache-update"] 17 | image: gimbalabs/cardano-db-sync-init-container:1.35.3-0 18 | volumeMounts: 19 | - name: koios-configmap 20 | mountPath: /configmap 21 | - name: cardano-node-configmap 22 | mountPath: /cardano-node-configmap 23 | env: 24 | - name: KOIOS_REPOSITORY 25 | value: repsistance/koios-artifacts 26 | - name: KOIOS_BRANCH 27 | value: develop 28 | - name: CNODE_CONFIG_FILE 29 | value: /cardano-node-configmap/config.json 30 | - name: PGHOST 31 | valueFrom: 32 | configMapKeyRef: 33 | name: common-env 34 | key: POSTGRES_HOST_RW 35 | - name: PGPORT 36 | valueFrom: 37 | configMapKeyRef: 38 | name: common-env 39 | key: POSTGRES_PORT 40 | - name: PGDATABASE 41 | valueFrom: 42 | configMapKeyRef: 43 | name: common-env 44 | key: POSTGRES_DB 45 | - name: PGUSER 46 | valueFrom: 47 | configMapKeyRef: 48 | name: common-env 49 | key: POSTGRES_USER 50 | - name: PGPASSWORD 51 | valueFrom: 52 | secretKeyRef: 53 | name: init0-postgresql-ha-postgresql 54 | key: password 55 | - name: POSTGRES_USER_RO 56 | valueFrom: 57 | secretKeyRef: 58 | name: init0-postgresql-ha-pgpool-custom-users 59 | key: usernames 60 | - name: POSTGRES_PASSWORD_RO 61 | valueFrom: 62 | secretKeyRef: 63 | name: init0-postgresql-ha-pgpool-custom-users 64 | key: passwords 65 | - name: PGRST_DB_SCHEMA 66 | value: grest 67 | - name: MY_POD_NAME 68 | valueFrom: 69 | fieldRef: 70 | fieldPath: metadata.name 71 | restartPolicy: Never 72 | volumes: 73 | - name: koios-configmap 74 | configMap: 75 | name: koios-configmap 76 | - name: cardano-node-configmap 77 | configMap: 78 | name: cardano-node 79 | 80 | -------------------------------------------------------------------------------- /base/koios/cronjob-pool-history-cache-update.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: CronJob 3 | metadata: 4 | name: koios-pool-history-cache-update 5 | spec: 6 | schedule: "*/10 * * * *" 7 | jobTemplate: 8 | spec: 9 | backoffLimit: 0 10 | ttlSecondsAfterFinished: 540 11 | template: 12 | spec: 13 | serviceAccountName: koios-deploy-sql 14 | containers: 15 | - name: koios-pool-history-cache-update 16 | command: ["bash", "-x", "/configmap/pool-history-cache-update"] 17 | image: gimbalabs/cardano-db-sync-init-container:1.35.3-0 18 | volumeMounts: 19 | - name: koios-configmap 20 | mountPath: /configmap 21 | - name: cardano-node-configmap 22 | mountPath: /cardano-node-configmap 23 | env: 24 | - name: KOIOS_REPOSITORY 25 | value: cardano-community/koios-artifacts 26 | - name: KOIOS_BRANCH 27 | value: main 28 | - name: CNODE_CONFIG_FILE 29 | value: /cardano-node-configmap/config.json 30 | - name: PGHOST 31 | valueFrom: 32 | configMapKeyRef: 33 | name: common-env 34 | key: POSTGRES_HOST_RW 35 | - name: PGPORT 36 | valueFrom: 37 | configMapKeyRef: 38 | name: common-env 39 | key: POSTGRES_PORT 40 | - name: PGDATABASE 41 | valueFrom: 42 | configMapKeyRef: 43 | name: common-env 44 | key: POSTGRES_DB 45 | - name: PGUSER 46 | valueFrom: 47 | configMapKeyRef: 48 | name: common-env 49 | key: POSTGRES_USER 50 | - name: PGPASSWORD 51 | valueFrom: 52 | secretKeyRef: 53 | name: init0-postgresql-ha-postgresql 54 | key: password 55 | - name: POSTGRES_USER_RO 56 | valueFrom: 57 | secretKeyRef: 58 | name: init0-postgresql-ha-pgpool-custom-users 59 | key: usernames 60 | - name: POSTGRES_PASSWORD_RO 61 | valueFrom: 62 | secretKeyRef: 63 | name: init0-postgresql-ha-pgpool-custom-users 64 | key: passwords 65 | - name: PGRST_DB_SCHEMA 66 | value: grest 67 | - name: MY_POD_NAME 68 | valueFrom: 69 | fieldRef: 70 | fieldPath: metadata.name 71 | restartPolicy: Never 72 | volumes: 73 | - name: koios-configmap 74 | configMap: 75 | name: koios-configmap 76 | - name: cardano-node-configmap 77 | configMap: 78 | name: cardano-node 79 | 80 | -------------------------------------------------------------------------------- /base/koios/cronjob-populate-next-epoch-nonce.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: CronJob 3 | metadata: 4 | name: koios-populate-next-epoch-nonce 5 | spec: 6 | schedule: "*/10 * * * *" 7 | jobTemplate: 8 | spec: 9 | backoffLimit: 0 10 | ttlSecondsAfterFinished: 540 11 | template: 12 | spec: 13 | serviceAccountName: koios-deploy-sql 14 | containers: 15 | - name: koios-populate-next-epoch-nonce 16 | command: ["bash", "-x", "/configmap/populate-next-epoch-nonce"] 17 | image: gimbalabs/cardano-db-sync-init-container:1.35.3-0 18 | volumeMounts: 19 | - name: koios-configmap 20 | mountPath: /configmap 21 | - name: cardano-node-configmap 22 | mountPath: /cardano-node-configmap 23 | env: 24 | - name: KOIOS_REPOSITORY 25 | value: cardano-community/koios-artifacts 26 | - name: KOIOS_BRANCH 27 | value: main 28 | - name: CNODE_CONFIG_FILE 29 | value: /cardano-node-configmap/config.json 30 | - name: PGHOST 31 | valueFrom: 32 | configMapKeyRef: 33 | name: common-env 34 | key: POSTGRES_HOST_RW 35 | - name: PGPORT 36 | valueFrom: 37 | configMapKeyRef: 38 | name: common-env 39 | key: POSTGRES_PORT 40 | - name: PGDATABASE 41 | valueFrom: 42 | configMapKeyRef: 43 | name: common-env 44 | key: POSTGRES_DB 45 | - name: PGUSER 46 | valueFrom: 47 | configMapKeyRef: 48 | name: common-env 49 | key: POSTGRES_USER 50 | - name: PGPASSWORD 51 | valueFrom: 52 | secretKeyRef: 53 | name: init0-postgresql-ha-postgresql 54 | key: password 55 | - name: POSTGRES_USER_RO 56 | valueFrom: 57 | secretKeyRef: 58 | name: init0-postgresql-ha-pgpool-custom-users 59 | key: usernames 60 | - name: POSTGRES_PASSWORD_RO 61 | valueFrom: 62 | secretKeyRef: 63 | name: init0-postgresql-ha-pgpool-custom-users 64 | key: passwords 65 | - name: PGRST_DB_SCHEMA 66 | value: grest 67 | - name: MY_POD_NAME 68 | valueFrom: 69 | fieldRef: 70 | fieldPath: metadata.name 71 | restartPolicy: Never 72 | volumes: 73 | - name: koios-configmap 74 | configMap: 75 | name: koios-configmap 76 | - name: cardano-node-configmap 77 | configMap: 78 | name: cardano-node 79 | 80 | -------------------------------------------------------------------------------- /base/koios/cronjob-stake-distribution-update.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: CronJob 3 | metadata: 4 | name: koios-stake-distribution-update 5 | spec: 6 | schedule: "*/30 * * * *" 7 | jobTemplate: 8 | spec: 9 | backoffLimit: 0 10 | ttlSecondsAfterFinished: 1740 11 | template: 12 | spec: 13 | serviceAccountName: koios-deploy-sql 14 | containers: 15 | - name: koios-stake-distribution-update 16 | command: ["bash", "-x", "/configmap/stake-distribution-update"] 17 | image: gimbalabs/cardano-db-sync-init-container:1.35.3-0 18 | volumeMounts: 19 | - name: koios-configmap 20 | mountPath: /configmap 21 | - name: cardano-node-configmap 22 | mountPath: /cardano-node-configmap 23 | env: 24 | - name: KOIOS_REPOSITORY 25 | value: cardano-community/koios-artifacts 26 | - name: KOIOS_BRANCH 27 | value: main 28 | - name: CNODE_CONFIG_FILE 29 | value: /cardano-node-configmap/config.json 30 | - name: PGHOST 31 | valueFrom: 32 | configMapKeyRef: 33 | name: common-env 34 | key: POSTGRES_HOST_RW 35 | - name: PGPORT 36 | valueFrom: 37 | configMapKeyRef: 38 | name: common-env 39 | key: POSTGRES_PORT 40 | - name: PGDATABASE 41 | valueFrom: 42 | configMapKeyRef: 43 | name: common-env 44 | key: POSTGRES_DB 45 | - name: PGUSER 46 | valueFrom: 47 | configMapKeyRef: 48 | name: common-env 49 | key: POSTGRES_USER 50 | - name: PGPASSWORD 51 | valueFrom: 52 | secretKeyRef: 53 | name: init0-postgresql-ha-postgresql 54 | key: password 55 | - name: POSTGRES_USER_RO 56 | valueFrom: 57 | secretKeyRef: 58 | name: init0-postgresql-ha-pgpool-custom-users 59 | key: usernames 60 | - name: POSTGRES_PASSWORD_RO 61 | valueFrom: 62 | secretKeyRef: 63 | name: init0-postgresql-ha-pgpool-custom-users 64 | key: passwords 65 | - name: PGRST_DB_SCHEMA 66 | value: grest 67 | - name: MY_POD_NAME 68 | valueFrom: 69 | fieldRef: 70 | fieldPath: metadata.name 71 | restartPolicy: Never 72 | volumes: 73 | - name: koios-configmap 74 | configMap: 75 | name: koios-configmap 76 | - name: cardano-node-configmap 77 | configMap: 78 | name: cardano-node 79 | 80 | -------------------------------------------------------------------------------- /base/koios/cronjob-stake-distribution-new-accounts-update.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: CronJob 3 | metadata: 4 | name: koios-stake-distribution-new-accounts-update 5 | spec: 6 | schedule: "58 */6 * * *" 7 | jobTemplate: 8 | spec: 9 | backoffLimit: 0 10 | ttlSecondsAfterFinished: 540 11 | template: 12 | spec: 13 | serviceAccountName: koios-deploy-sql 14 | containers: 15 | - name: koios-stake-distribution-new-accounts-update 16 | command: ["bash", "-x", "/configmap/stake-distribution-new-accounts-update"] 17 | image: gimbalabs/cardano-db-sync-init-container:1.35.3-0 18 | volumeMounts: 19 | - name: koios-configmap 20 | mountPath: /configmap 21 | - name: cardano-node-configmap 22 | mountPath: /cardano-node-configmap 23 | env: 24 | - name: KOIOS_REPOSITORY 25 | value: cardano-community/koios-artifacts 26 | - name: KOIOS_BRANCH 27 | value: main 28 | - name: CNODE_CONFIG_FILE 29 | value: /cardano-node-configmap/config.json 30 | - name: PGHOST 31 | valueFrom: 32 | configMapKeyRef: 33 | name: common-env 34 | key: POSTGRES_HOST_RW 35 | - name: PGPORT 36 | valueFrom: 37 | configMapKeyRef: 38 | name: common-env 39 | key: POSTGRES_PORT 40 | - name: PGDATABASE 41 | valueFrom: 42 | configMapKeyRef: 43 | name: common-env 44 | key: POSTGRES_DB 45 | - name: PGUSER 46 | valueFrom: 47 | configMapKeyRef: 48 | name: common-env 49 | key: POSTGRES_USER 50 | - name: PGPASSWORD 51 | valueFrom: 52 | secretKeyRef: 53 | name: init0-postgresql-ha-postgresql 54 | key: password 55 | - name: POSTGRES_USER_RO 56 | valueFrom: 57 | secretKeyRef: 58 | name: init0-postgresql-ha-pgpool-custom-users 59 | key: usernames 60 | - name: POSTGRES_PASSWORD_RO 61 | valueFrom: 62 | secretKeyRef: 63 | name: init0-postgresql-ha-pgpool-custom-users 64 | key: passwords 65 | - name: PGRST_DB_SCHEMA 66 | value: grest 67 | - name: MY_POD_NAME 68 | valueFrom: 69 | fieldRef: 70 | fieldPath: metadata.name 71 | restartPolicy: Never 72 | volumes: 73 | - name: koios-configmap 74 | configMap: 75 | name: koios-configmap 76 | - name: cardano-node-configmap 77 | configMap: 78 | name: cardano-node 79 | 80 | -------------------------------------------------------------------------------- /base/haproxy-lb/self-signed-ssl.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEowIBAAKCAQEA6ICh2U9dk5EajrCMj3OU9wtMVog4ajZXOCPpYOAmYx1cY1Wy 3 | HYDYLYFQLSyIQqcRokl2w744pNeXcexctI8QF1yeINkuonr7Wg40anolI819qpFP 4 | BaHYJXlMWp5qceOdzcVR/fLeu7l0rvcaYaF5wAiHDBaJSvQ26RIfftR57rRwUSGe 5 | VsGGNh53N52OYgn3muKHboHi+WnztJoEU/74wQZzQsyCvnWt2mcYwT3bE1feMcqp 6 | WLdBUDOmLgv8BK7r/XF4xJpHA1kpWGaSpVdxl9Gkpfv8rztlw0nBfcLn+q67caLb 7 | o5pyk4KMGDALUA30/7vxMdKALUtCk2hjnW9szQIDAQABAoIBABmHZj4SNNgrKptY 8 | T1bA/i5SE0O9GVSwOstzRgDZG93uL2LI2hHbP+FfPYp4RU3sQkdrgZrknBudgIeF 9 | yHga7U1jYgmBT1mP32F4BdFbMBDKU24THnYj2zPiKbwZgN6Ye49Ih0Q3ErXSGznK 10 | 8B6gOFoZlZqCLvkH76+Pyd2HPwwyli9tuNB7eBdQIZGN/FIIWK0nJ9l3fmIqKsVF 11 | n/MY5UP6DHy1nxIN7QMUetNMQXx7hplBz7ktfZXM1yOGC4rc2cAnOuzP6PX+wgwC 12 | cPZtbFeGgR1LeBD/F89niG71rFHx7vXVsKLEVlgMNOKRUrzqzBeou2zccjr4+U5r 13 | BbvBgoECgYEA/9x9YdykNjEhM2R25weOr7P9ojGngAvIKY+VTemHNrn3a5s6142p 14 | 29Ydt/qFVnisJmy0CC6+YhLhxUhS7vR/NvwGihMIas5jAqIn7n2mHFZgtUvpRGZd 15 | bqLiMKyVmQL48OCLum0j+ePn1PprK0+bwCG8fy6EgdpmUoKWViBBM/UCgYEA6KDm 16 | ijzFxuJm9qM2GQ0wMRSULMsJEQvHwDQWmVxZk7+l2k38i3gNvTR5RAoP3PJvRcI6 17 | T/IlmUCmFmPCeeQzhwGq28QcQZmUGqj+SVX/gA34GTIQ0k8ogKSgNRYeQAohDeIt 18 | z1+NoIRBCEWI63LNPlBg9E3gBuHvdUgFj3QZpnkCgYACbqcmegF5nmfxZCAZPCIo 19 | G27qzswH1JTXiEzkC7dEVuo6NKSPjgIyW8u2hwQjeUwxpVDkzwTyS7mntXNMYDih 20 | Xi31vA6VbVbVnJMCmmEs3clXj9ws0UhMF/JMgid95+BT8d6CLC1uX7NBfAvuwnf5 21 | kJiJIPkTfu8AE8u4D+BuzQKBgQDJOMzSTKlDVPl9ZEZaOxcxjTxy1pmcHhWGA0h9 22 | Fe4CKKedAxJtzcYMoMQ4f3+jPi3UKKLqHmo5eztvaJGDgEq2AFI70RIkCGWc/gsf 23 | gn0E1pCBstXsJT7CsCRIZz55ZImdCcVYeK34aA4cypEaIO66dSq4iFg9e9f3Gfp9 24 | UQ8S+QKBgD2VEtLF5bwl4B/wN2X8fKdtQ+WtNK2h7pUzqJLrMZMpolBvYOBAmxMd 25 | X2SbZSjMc3CbU6u5GizvMHCACGqh0UpytDZhd9onahOP2N9Mp3Lihk8JfD7Hoc+x 26 | 5NB37PEh1jGgJIN6shVJ/e15wu9HpzBYhVeAvTueZMyhoHtDREzW 27 | -----END RSA PRIVATE KEY----- 28 | -----BEGIN CERTIFICATE----- 29 | MIIDeTCCAmECFE4I3p42ZQds73NdVf7oWAqwLlP0MA0GCSqGSIb3DQEBCwUAMHkx 30 | CzAJBgNVBAYTAkVTMRMwEQYDVQQIDApTb21lLVN0YXRlMRcwFQYDVQQKDA5EYW5k 31 | ZWxpb24gTGluazEXMBUGA1UEAwwOZGFuZGVsaW9uLmxpbmsxIzAhBgkqhkiG9w0B 32 | CQEWFGFkbWluQGRhbmRlbGlvbi5saW5rMB4XDTIxMTExNjExNTMwN1oXDTIyMTEx 33 | NjExNTMwN1oweTELMAkGA1UEBhMCRVMxEzARBgNVBAgMClNvbWUtU3RhdGUxFzAV 34 | BgNVBAoMDkRhbmRlbGlvbiBMaW5rMRcwFQYDVQQDDA5kYW5kZWxpb24ubGluazEj 35 | MCEGCSqGSIb3DQEJARYUYWRtaW5AZGFuZGVsaW9uLmxpbmswggEiMA0GCSqGSIb3 36 | DQEBAQUAA4IBDwAwggEKAoIBAQDogKHZT12TkRqOsIyPc5T3C0xWiDhqNlc4I+lg 37 | 4CZjHVxjVbIdgNgtgVAtLIhCpxGiSXbDvjik15dx7Fy0jxAXXJ4g2S6ievtaDjRq 38 | eiUjzX2qkU8FodgleUxanmpx453NxVH98t67uXSu9xphoXnACIcMFolK9DbpEh9+ 39 | 1HnutHBRIZ5WwYY2Hnc3nY5iCfea4odugeL5afO0mgRT/vjBBnNCzIK+da3aZxjB 40 | PdsTV94xyqlYt0FQM6YuC/wEruv9cXjEmkcDWSlYZpKlV3GX0aSl+/yvO2XDScF9 41 | wuf6rrtxotujmnKTgowYMAtQDfT/u/Ex0oAtS0KTaGOdb2zNAgMBAAEwDQYJKoZI 42 | hvcNAQELBQADggEBAE3ISZvahq0YdIiRhcMom4XN9eVTfF7CC3hOtKFo7qxtON+/ 43 | q5pZ+BC3NiKFwDP3gyu5YyUNNM3eUvFhOiWXmu+ItJn4byNFGYrS8wpNAUxVYtkW 44 | 2XnXcS6+jb03MpMSnBHiEv7ASQEXvaQOoULH1wm/lHzxSD9Mz4ClqcSi7ZmwRL7L 45 | 3XXp0Ty3fzO1Ei3/tbnf/u7N6EPXgq9VP6Ueu+POAbJNjT9hGXe92aPB6RbrgzAY 46 | +WlhVH8qQyOt9kjNrkHsXxsoewisCrT5YWm7IF+Vd2mxGwXwLBNPCcH5mEcpaf3R 47 | QjL30CpVfERu/isHxgp2sarrdJko/eHueLB/vRo= 48 | -----END CERTIFICATE----- 49 | -------------------------------------------------------------------------------- /base/cardano-explorer-api/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | labels: 5 | io.kompose.service: cardano-explorer-api 6 | name: cardano-explorer-api 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | io.kompose.service: cardano-explorer-api 12 | template: 13 | metadata: 14 | labels: 15 | io.kompose.service: cardano-explorer-api 16 | spec: 17 | containers: 18 | - env: 19 | - name: NETWORK 20 | value: mainnet 21 | - name: POSTGRES_HOST 22 | valueFrom: 23 | configMapKeyRef: 24 | name: common-env 25 | key: POSTGRES_HOST 26 | - name: POSTGRES_PORT 27 | valueFrom: 28 | configMapKeyRef: 29 | name: common-env 30 | key: POSTGRES_PORT 31 | - name: POSTGRES_DB 32 | valueFrom: 33 | configMapKeyRef: 34 | name: common-env 35 | key: POSTGRES_DB 36 | - name: POSTGRES_USER 37 | valueFrom: 38 | configMapKeyRef: 39 | name: common-env 40 | key: POSTGRES_USER 41 | - name: POSTGRES_PASSWORD 42 | valueFrom: 43 | secretKeyRef: 44 | name: init0-postgresql-ha-postgresql 45 | key: password 46 | image: inputoutput/cardano-explorer-api:3.1.2 47 | imagePullPolicy: IfNotPresent 48 | name: cardano-explorer-api 49 | ports: 50 | - containerPort: 8100 51 | # FIXME: postgres exploits with this :shrug: 52 | #WARNING: there is already a transaction in progress 53 | #WARNING: there is no transaction in progress 54 | #livenessProbe: 55 | # failureThreshold: 3 56 | # httpGet: 57 | # httpHeaders: 58 | # - name: Custom-Header 59 | # value: Awesome 60 | # path: /api/genesis/summary 61 | # port: 8100 62 | # scheme: HTTP 63 | # periodSeconds: 10 64 | # successThreshold: 1 65 | # timeoutSeconds: 1 66 | #readinessProbe: 67 | # failureThreshold: 3 68 | # httpGet: 69 | # httpHeaders: 70 | # - name: Custom-Header 71 | # value: Awesome 72 | # path: /api/genesis/summary 73 | # port: 8100 74 | # scheme: HTTP 75 | # initialDelaySeconds: 5 76 | # periodSeconds: 5 77 | # successThreshold: 1 78 | # timeoutSeconds: 1 79 | resources: {} 80 | volumeMounts: 81 | - name: common-env 82 | mountPath: /run/secrets/common-env 83 | readOnly: true 84 | - name: postgres-password 85 | mountPath: /run/secrets/postgres-password 86 | readOnly: true 87 | restartPolicy: Always 88 | serviceAccountName: "" 89 | volumes: 90 | - name: common-env 91 | configMap: 92 | name: common-env 93 | - name: postgres-password 94 | secret: 95 | secretName: init0-postgresql-ha-postgresql 96 | items: 97 | - key: password 98 | path: POSTGRES_PASSWORD 99 | -------------------------------------------------------------------------------- /base/cardano-graphql/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: cardano-graphql-configmap 5 | data: 6 | liveness-healthcheck: | 7 | HEALTHCHECK_TIMEOUT=5 8 | timeout ${HEALTHCHECK_TIMEOUT} curl -w %{http_code} -k http://localhost:3100 -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' --data-binary '{"query":"fragment _Sync on Query {\n cardanoDbMeta {\n initialized\n syncPercentage\n __typename\n }\n __typename\n}\n\nfragment _GetTip on Query {\n cardano {\n tip {\n number\n slotNo\n slotInEpoch\n epochNo\n forgedAt\n __typename\n }\n __typename\n }\n __typename\n}\n\nquery PaymentAddresses {\n ..._Sync\n ..._GetTip\n}\n"}' | grep -iq initialized.*true 9 | if [ $? -ne 0 ] 10 | then 11 | exit 1 12 | fi 13 | initContainer-entrypoint: | 14 | rm -rf /config/lost+found 15 | 16 | CNODE_FILES="config.json byron-genesis.json genesis.json alonzo-genesis.json" 17 | 18 | for file in ${CNODE_FILES} 19 | do 20 | cp -a /opt/cardano/cnode/files/${file} /config 21 | done 22 | 23 | initContainer-wait-for-tip: | 24 | 25 | function finish-socat { 26 | pkill -f socat && sleep 1 27 | rm -f ${CARDANO_NODE_SOCKET_PATH} 28 | } 29 | 30 | trap finish-socat EXIT 31 | 32 | export PGCONNECT_TIMEOUT=10 33 | 34 | echo -n "[+] Waiting for cardano-node to become available (socat approach makes db-sync to freeze if it's not)..." 35 | while ! `echo > /dev/tcp/${CARDANO_NODE_SOCKET_TCP_HOST}/${CARDANO_NODE_SOCKET_TCP_PORT}` 36 | do 37 | sleep 1 38 | echo -n . 39 | done 40 | 41 | rm -f ${CARDANO_NODE_SOCKET_PATH} 42 | socat UNIX-LISTEN:${CARDANO_NODE_SOCKET_PATH},fork TCP:${CARDANO_NODE_SOCKET_TCP_HOST}:${CARDANO_NODE_SOCKET_TCP_PORT},ignoreeof & 43 | while ! `timeout 10 cardano-cli query tip --mainnet 2>&1 | grep -q "epoch\|NodeToClientVersionData"` 44 | do 45 | sleep 1 46 | echo -n . 47 | done 48 | 49 | cardano-cli query tip --mainnet 50 | if [ $? -eq 0 ] 51 | then 52 | MAGIC_ARG="--mainnet" 53 | else 54 | MAGIC_ARG="--testnet-magic $(cardano-cli query tip --mainnet 2>&1 | sed 's|\(.*NodeToClientVersionData.*\)unNetworkMagic = \(.*\)}}.*/=\(.*\)|\2|g' | xargs echo)" 55 | fi 56 | 57 | DB_BLOCK_NO=$(psql -U ${POSTGRES_USER} -h ${POSTGRES_HOST} -tA -P pager=off -c 'select block_no from block order by id desc limit 1;' ${POSTGRES_DB}) 58 | test -z "${DB_BLOCK_NO}" && DB_BLOCK_NO=0 59 | echo -n "[+] Waiting for cardano-node to reach tip..." 60 | while [[ -n $(cardano-cli query tip ${MAGIC_ARG} | jq -r .block) ]] && [ ${DB_BLOCK_NO} -gt $(cardano-cli query tip ${MAGIC_ARG} | jq -r .block) ] 61 | do 62 | sleep 60 63 | echo -n . 64 | done 65 | 66 | export KUBE_API_URL="https://kubernetes.default.svc/api/v1/namespaces" 67 | KUBE_TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token) 68 | NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace) 69 | 70 | echo -n "[!] Waiting for db-sync to be initialized..." 71 | while [[ -z $(curl -m 30 -sSk -H "Authorization: Bearer $KUBE_TOKEN" "${KUBE_API_URL}/${NAMESPACE}/pods" | jq -r '.items[] | select(.status.phase=="Running") | .metadata.name' | grep ^cardano-db-sync) ]] 72 | do 73 | echo -n . 74 | sleep 20 75 | done 76 | 77 | -------------------------------------------------------------------------------- /ARGO_CD.md: -------------------------------------------------------------------------------- 1 | # ArgoCD 2 | 3 | In their own words: 4 | 5 | > Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. 6 | 7 | To learn more about ArgoCD visit their [website](https://argo-cd.readthedocs.io/en/stable/) 8 | 9 | ## ArgoCD Helm Chart 10 | 11 | In order to deploy ArgoCD, we will use its helm charts. They are available at the following github 12 | [repo](https://github.com/argoproj/argo-helm) 13 | 14 | ## App of Apps 15 | 16 | The deployment of ArgoCD and Dandelion, follows the [App of Apps](https://argo-cd.readthedocs.io/en/stable/operator-manual/cluster-bootstrapping/) 17 | approach. 18 | 19 | This means that the ArgoCD will first install itself and then proceed to install all the required components. 20 | 21 | ## Bootstrap 22 | 23 | Feel free to customize the `argocd-bootstrap/values-${PROVIDER}.yaml` file enabling or disabling apps or networks at choice, then you can use this snippet to deploy. 24 | 25 | -> **NOTE**: This snippet assumes you have `htpasswd` cli tool (`apache2-utils` package in Ubuntu), if you don't have it or can't install iy, please check section below on how to set a custom password to access ArgoCD. 26 | 27 | ```shell 28 | cd argocd-bootstrap 29 | 30 | APP_PROVIDER=k3s 31 | 32 | export ARGOCD_PASSWORD=CH4NG3@M3 33 | export ARGOCD_HASHED_PASSWORD=$(htpasswd -nbBC 10 null $ARGOCD_PASSWORD | sed 's|null:\(.*\)|\1|g') 34 | 35 | helm dependency update 36 | helm dependency build 37 | 38 | helm upgrade \ 39 | --create-namespace \ 40 | --namespace argocd \ 41 | --install argocd \ 42 | --set "argo-cd.configs.secret.argocdServerAdminPassword=${ARGOCD_HASHED_PASSWORD}" \ 43 | --set "argo-cd.configs.secret.argocdServerAdminPasswordMtime=$(date +%FT%T%Z)" \ 44 | -f values-scaleway.yaml \ 45 | -f values-scaleway-stakeboard.yaml \ 46 | . 47 | ``` 48 | 49 | 50 | ## Access ArgoCD 51 | 52 | ArgoCD requires username and password authentication. By default, at the moment of deploying ArgoCD for the first time, username is `admin` and password is set to the full pod name of the `argocd-server`. 53 | You can easily find the password and access the service by following these steps: 54 | 55 | * Get default username/password: 56 | ```bash 57 | POD_NAME=$(kubectl get pod -n argocd --selector 'app.kubernetes.io/name=argocd-server' --template='{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}') 58 | echo -e "Username: admin\nPassword: ${POD_NAME}" 59 | ``` 60 | * Expose ArgoCD server port locally on your machine so you can access it via http://localhost:8080: 61 | ```bash 62 | kubectl port-forward -n argocd ${POD_NAME} 8080:8080 63 | ``` 64 | 65 | Alternatively you can set the password at bootstrap time. Steps are: 66 | 67 | 1. Generate a new password 68 | 2. Use the bcrypt to hash the password. You can use this convenience [website](https://www.browserling.com/tools/bcrypt) to do so or `htpasswd` from the `apache2-utils` suite like this: 69 | ``` 70 | ARGOCD_PASSWORD=CH4NG3@M3 71 | ARGOCD_HASHED_PASSWORD=$(htpasswd -nbBC 10 null $ARGOCD_PASSWORD | sed 's|null:\(.*\)|\1|g') 72 | ``` 73 | 3. Specify the password when bootstrapping the cluster by replacing `argo-cd.configs.secret.argocdServerAdminPassword` hash: 74 | ```bash 75 | helm upgrade \ 76 | --create-namespace \ 77 | --namespace argocd \ 78 | --install argocd \ 79 | --set "argo-cd.configs.secret.argocdServerAdminPassword=${ARGOCD_HASHED_PASSWORD}" \ 80 | --set "argo-cd.configs.secret.argocdServerAdminPasswordMtime=$(date +%FT%T%Z)" \ 81 | -f values-${APP_PROVIDER}-${APP_NETWORK}.yaml \ 82 | . 83 | ``` 84 | ## ArgoCD FAQ 85 | 86 | The ArgoCD website has a great [FAQ Section](https://argo-cd.readthedocs.io/en/stable/faq/) 87 | -------------------------------------------------------------------------------- /base/metrics-exporter/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | labels: 5 | io.kompose.service: dandelion-metrics-exporter 6 | name: dandelion-metrics-exporter 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | io.kompose.service: dandelion-metrics-exporter 12 | template: 13 | metadata: 14 | labels: 15 | io.kompose.service: dandelion-metrics-exporter 16 | spec: 17 | containers: 18 | - args: 19 | - --collector.disable-defaults 20 | - --collector.textfile 21 | - --collector.textfile.directory=/data 22 | image: prom/node-exporter 23 | imagePullPolicy: Always 24 | name: prom-node-exporter 25 | ports: 26 | - containerPort: 9100 27 | protocol: TCP 28 | resources: {} 29 | terminationMessagePath: /dev/termination-log 30 | terminationMessagePolicy: File 31 | volumeMounts: 32 | - mountPath: /data 33 | name: node-exporter-data 34 | - name: socat-socket-server 35 | image: alpine/socat 36 | env: 37 | - name: CARDANO_NODE_SOCKET_TCP_HOST 38 | value: "cardano-node-headless" 39 | - name: CARDANO_NODE_SOCKET_TCP_PORT 40 | value: "30000" 41 | command: ["sh", "-c", "rm -f /ipc/node.socket; socat UNIX-LISTEN:/ipc/node.socket,fork TCP:${CARDANO_NODE_SOCKET_TCP_HOST}:${CARDANO_NODE_SOCKET_TCP_PORT},ignoreeof"] 42 | volumeMounts: 43 | - mountPath: /ipc 44 | name: node-ipc 45 | - name: dandelion-metrics-exporter 46 | env: 47 | - name: CARDANO_NODE_SOCKET_PATH 48 | value: "/node-ipc/node.socket" 49 | - name: POSTGRES_HOST 50 | valueFrom: 51 | configMapKeyRef: 52 | name: common-env 53 | key: POSTGRES_HOST_RO 54 | - name: POSTGRES_PORT 55 | valueFrom: 56 | configMapKeyRef: 57 | name: common-env 58 | key: POSTGRES_PORT 59 | - name: POSTGRES_DB 60 | valueFrom: 61 | configMapKeyRef: 62 | name: common-env 63 | key: POSTGRES_DB 64 | - name: POSTGRES_USER 65 | valueFrom: 66 | secretKeyRef: 67 | name: init0-postgresql-ha-pgpool-custom-users 68 | key: usernames 69 | - name: POSTGRES_PASSWORD 70 | valueFrom: 71 | secretKeyRef: 72 | name: init0-postgresql-ha-pgpool-custom-users 73 | key: passwords 74 | - name: PGRST_DB_ANON_ROLE 75 | valueFrom: 76 | secretKeyRef: 77 | name: init0-postgresql-ha-pgpool-custom-users 78 | key: usernames 79 | image: repsistance/dandelion-metrics-exporter:latest 80 | imagePullPolicy: Always 81 | resources: {} 82 | volumeMounts: 83 | - mountPath: /node-ipc 84 | name: node-ipc 85 | - mountPath: /data 86 | name: node-exporter-data 87 | - name: common-env 88 | mountPath: /run/secrets/common-env 89 | readOnly: true 90 | - name: postgres-password 91 | mountPath: /run/secrets/postgres-password 92 | readOnly: true 93 | restartPolicy: Always 94 | serviceAccountName: "" 95 | volumes: 96 | - name: node-ipc 97 | emptyDir: {} 98 | - name: node-exporter-data 99 | emptyDir: {} 100 | - name: common-env 101 | configMap: 102 | name: common-env 103 | - name: postgres-password 104 | secret: 105 | secretName: init0-postgresql-ha-pgpool-custom-users 106 | items: 107 | - key: passwords 108 | path: POSTGREST_RO_PASSWORD 109 | -------------------------------------------------------------------------------- /base/blockfrost/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | labels: 5 | io.kompose.service: blockfrost 6 | name: blockfrost 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | io.kompose.service: blockfrost 12 | template: 13 | metadata: 14 | labels: 15 | io.kompose.service: blockfrost 16 | spec: 17 | initContainers: 18 | - name: configure 19 | command: ["bash", "-x", "/configmap/initContainer-entrypoint"] 20 | image: gimbalabs/cardano-db-sync-init-container:1.35.3-0 21 | imagePullPolicy: IfNotPresent 22 | env: 23 | - name: POSTGRES_HOST 24 | valueFrom: 25 | configMapKeyRef: 26 | name: common-env 27 | key: POSTGRES_HOST_RW 28 | - name: POSTGRES_PORT 29 | valueFrom: 30 | configMapKeyRef: 31 | name: common-env 32 | key: POSTGRES_PORT 33 | - name: POSTGRES_DB 34 | valueFrom: 35 | configMapKeyRef: 36 | name: common-env 37 | key: POSTGRES_DB 38 | - name: POSTGRES_USER 39 | valueFrom: 40 | configMapKeyRef: 41 | name: common-env 42 | key: POSTGRES_USER 43 | - name: PGPASSWORD 44 | valueFrom: 45 | secretKeyRef: 46 | name: init0-postgresql-ha-postgresql 47 | key: password 48 | - name: POSTGRES_USER_RO 49 | valueFrom: 50 | secretKeyRef: 51 | name: init0-postgresql-ha-pgpool-custom-users 52 | key: usernames 53 | - name: POSTGRES_PASSWORD_RO 54 | valueFrom: 55 | secretKeyRef: 56 | name: init0-postgresql-ha-pgpool-custom-users 57 | key: passwords 58 | volumeMounts: 59 | - name: blockfrost-configmap 60 | mountPath: /configmap 61 | containers: 62 | - name: blockfrost 63 | image: blockfrost/backend-ryo:v1.5.0 64 | imagePullPolicy: IfNotPresent 65 | resources: {} 66 | env: 67 | - name: BLOCKFROST_CONFIG_NETWORK 68 | value: mainnet 69 | - name: BLOCKFROST_CONFIG_DBSYNC_HOST 70 | valueFrom: 71 | configMapKeyRef: 72 | name: common-env 73 | key: POSTGRES_HOST_RW 74 | - name: BLOCKFROST_CONFIG_DBSYNC_DATABASE 75 | valueFrom: 76 | configMapKeyRef: 77 | name: common-env 78 | key: POSTGRES_DB 79 | - name: BLOCKFROST_CONFIG_DBSYNC_USER 80 | valueFrom: 81 | secretKeyRef: 82 | name: init0-postgresql-ha-pgpool-custom-users 83 | key: usernames 84 | - name: PGPASSWORD 85 | valueFrom: 86 | secretKeyRef: 87 | name: init0-postgresql-ha-pgpool-custom-users 88 | key: passwords 89 | - name: BLOCKFROST_CONFIG_SERVER_PROMETHEUS_METRICS 90 | value: "true" 91 | - name: BLOCKFROST_CONFIG_TOKEN_REGISTRY_URL 92 | value: http://cardano-token-registry:3042 93 | - name: BLOCKFROST_CONFIG_SERVER_LISTEN_ADDRESS 94 | value: "0.0.0.0" 95 | ports: 96 | - containerPort: 3000 97 | volumeMounts: 98 | - name: common-env 99 | mountPath: /run/secrets/common-env 100 | readOnly: true 101 | livenessProbe: 102 | httpGet: 103 | path: /health 104 | port: 3000 105 | initialDelaySeconds: 30 106 | periodSeconds: 3 107 | restartPolicy: Always 108 | serviceAccountName: "" 109 | volumes: 110 | - name: blockfrost-configmap 111 | configMap: 112 | name: blockfrost-configmap 113 | - name: common-env 114 | configMap: 115 | name: common-env 116 | -------------------------------------------------------------------------------- /base/cardano-node/statefulset.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: StatefulSet 3 | metadata: 4 | labels: 5 | io.kompose.service: cardano-node 6 | name: cardano-node 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | io.kompose.service: cardano-node 12 | serviceName: cardano-node 13 | updateStrategy: 14 | type: OnDelete 15 | template: 16 | metadata: 17 | labels: 18 | io.kompose.service: cardano-node 19 | spec: 20 | initContainers: 21 | - name: remove-lost-n-found 22 | image: busybox 23 | imagePullPolicy: IfNotPresent 24 | command: ["sh", "-c", "rm -rf /data/db/lost+found"] 25 | resources: {} 26 | volumeMounts: 27 | - mountPath: /data/db 28 | name: node-db 29 | - name: restore-from-csnapshotio 30 | image: repsistance/cardano-node:iohk-mn-passive-8.1.2-0 31 | imagePullPolicy: IfNotPresent 32 | command: ["bash", "-x", "/configmap/initContainer-entrypoint"] 33 | env: 34 | - name: RESTORE_SNAPSHOT 35 | value: "true" 36 | - name: NETWORK 37 | value: mainnet 38 | - name: CNODE_DB_PATH 39 | value: /data 40 | resources: {} 41 | volumeMounts: 42 | - name: cardano-node-configmap 43 | mountPath: /configmap 44 | - mountPath: /data/db 45 | name: node-db 46 | containers: 47 | - name: cardano-node 48 | command: ["bash", "-c", "export HOME=/nonexistent; source $HOME/.baids/baids && set -x; ${NETWORK}-cnode-run-as-${CNODE_ROLE} +RTS -N2 --disable-delayed-os-memory-return -T -I0 -A16m"] 49 | env: 50 | - name: NETWORK 51 | value: iohk-mn 52 | - name: CNODE_HOST_ADDR 53 | value: 0.0.0.0 54 | - name: CARDANO_NODE_SOCKET_PATH 55 | value: /ipc/node.socket 56 | - name: CNODE_DB_PATH 57 | value: /data/db 58 | - name: CNODE_TOPOLOGY_FILE 59 | value: /configmap/topology.json 60 | - name: CNODE_CONFIG_FILE 61 | value: /configmap/config.json 62 | image: repsistance/cardano-node:iohk-mn-passive-8.1.2-0 63 | imagePullPolicy: IfNotPresent 64 | resources: {} 65 | terminationMessagePath: /dev/termination-log 66 | terminationMessagePolicy: File 67 | volumeMounts: 68 | - mountPath: /data/db 69 | name: node-db 70 | - mountPath: /ipc 71 | name: node-ipc 72 | - mountPath: /configmap 73 | name: cardano-node-configmap 74 | - name: chisel-server 75 | image: jpillora/chisel:1.7 76 | env: 77 | - name: PORT 78 | value: "40000" 79 | command: ["sh", "-c", "/app/chisel server -v --authfile /common-env/chisel-auth-file -p ${PORT:-40000}"] 80 | ports: 81 | - containerPort: 40000 82 | volumeMounts: 83 | - name: common-env 84 | mountPath: /common-env 85 | readOnly: true 86 | - name: socat-tcp-server 87 | image: alpine/socat 88 | env: 89 | - name: PORT 90 | value: "30000" 91 | command: ["sh", "-c", "socat TCP-LISTEN:${PORT},fork UNIX-CLIENT:/ipc/node.socket,ignoreeof"] 92 | volumeMounts: 93 | - mountPath: /ipc 94 | name: node-ipc 95 | ports: 96 | - containerPort: 30000 97 | restartPolicy: Always 98 | serviceAccountName: "" 99 | volumes: 100 | - name: node-db 101 | persistentVolumeClaim: 102 | claimName: node-db 103 | - name: node-ipc 104 | emptyDir: {} 105 | - name: common-env 106 | configMap: 107 | name: common-env 108 | - name: cardano-node-configmap 109 | configMap: 110 | name: cardano-node 111 | 112 | volumeClaimTemplates: 113 | - metadata: 114 | name: node-db 115 | spec: 116 | accessModes: [ "ReadWriteOnce" ] 117 | resources: 118 | requests: 119 | storage: 8Gi 120 | -------------------------------------------------------------------------------- /base/network-specific-patches/iohk-testnet/patches/cardano-node-configmap.yaml: -------------------------------------------------------------------------------- 1 | - op: replace 2 | path: /data/topology.json.passive 3 | value: | 4 | { 5 | "Producers": [ 6 | { 7 | "addr": "relays-new.cardano-testnet.iohkdev.io", 8 | "port": 3001, 9 | "valency": 2 10 | } 11 | ] 12 | } 13 | - op: add 14 | path: /data/config.json 15 | value: | 16 | { 17 | "ApplicationName": "cardano-sl", 18 | "ApplicationVersion": 0, 19 | "AlonzoGenesisFile": "/opt/cardano/cnode/files/alonzo-genesis.json", 20 | "AlonzoGenesisHash": "7e94a15f55d1e82d10f09203fa1d40f8eede58fd8066542cf6566008068ed874", 21 | "ByronGenesisFile": "/opt/cardano/cnode/files/byron-genesis.json", 22 | "ByronGenesisHash": "96fceff972c2c06bd3bb5243c39215333be6d56aaf4823073dca31afe5038471", 23 | "LastKnownBlockVersion-Alt": 0, 24 | "LastKnownBlockVersion-Major": 4, 25 | "LastKnownBlockVersion-Minor": 0, 26 | "MaxKnownMajorProtocolVersion": 4, 27 | "PBftSignatureThreshold": 0.9, 28 | "MaxConcurrencyDeadline": 1, 29 | "NumCoreNodes": 1, 30 | "Protocol": "Cardano", 31 | "SocketPath": "/opt/cardano/cnode/sockets/node0.socket", 32 | "RequiresNetworkMagic": "RequiresMagic", 33 | "ShelleyGenesisFile": "/opt/cardano/cnode/files/genesis.json", 34 | "ShelleyGenesisHash": "849a1764f152e1b09c89c0dfdbcbdd38d711d1fec2db5dfa0f87cf2737a0eaf4", 35 | "SocketPath": "/opt/cardano/cnode/sockets/node0.socket", 36 | "EnableLogMetrics": false, 37 | "EnableLogging": true, 38 | "TraceBlockFetchClient": true, 39 | "TraceBlockFetchDecisions": true, 40 | "TraceBlockFetchProtocol": true, 41 | "TraceBlockFetchProtocolSerialised": true, 42 | "TraceBlockFetchServer": true, 43 | "TraceChainDb": true, 44 | "TraceChainSyncBlockServer": true, 45 | "TraceChainSyncClient": true, 46 | "TraceChainSyncHeaderServer": true, 47 | "TraceChainSyncProtocol": true, 48 | "TraceDNSResolver": false, 49 | "TraceDNSSubscription": false, 50 | "TraceErrorPolicy": true, 51 | "TraceForge": true, 52 | "TraceHandshake": true, 53 | "TraceIpSubscription": true, 54 | "TraceLocalChainSyncProtocol": true, 55 | "TraceLocalErrorPolicy": true, 56 | "TraceLocalHandshake": false, 57 | "TraceLocalTxSubmissionProtocol": true, 58 | "TraceLocalTxSubmissionServer": true, 59 | "TraceMempool": true, 60 | "TraceMux": false, 61 | "TraceTxInbound": true, 62 | "TraceTxOutbound": true, 63 | "TraceTxSubmissionProtocol": true, 64 | "TracingVerbosity": "NormalVerbosity", 65 | "TurnOnLogMetrics": false, 66 | "TurnOnLogging": true, 67 | "defaultBackends": [ 68 | "KatipBK" 69 | ], 70 | "defaultScribes": [ 71 | [ 72 | "StdoutSK", 73 | "stdout" 74 | ] 75 | ], 76 | "hasEKG": 12788, 77 | "hasPrometheus": [ 78 | "0.0.0.0", 79 | 12798 80 | ], 81 | "minSeverity": "Info", 82 | "options": { 83 | "mapBackends": { 84 | "cardano.node.metrics.Forge": [ 85 | "EKGViewBK" 86 | ], 87 | "cardano.node.metrics": [ 88 | "EKGViewBK" 89 | ], 90 | "cardano.node.resources": [ 91 | "EKGViewBK" 92 | ] 93 | }, 94 | "mapSubtrace": { 95 | "cardano.node.metrics": { 96 | "subtrace": "Neutral" 97 | } 98 | } 99 | }, 100 | "rotation": { 101 | "rpKeepFilesNum": 10, 102 | "rpLogLimitBytes": 10000000, 103 | "rpMaxAgeHours": 24 104 | }, 105 | "setupBackends": [ 106 | "KatipBK", 107 | "EKGViewBK" 108 | ], 109 | "setupScribes": [ 110 | { 111 | "scFormat": "ScText", 112 | "scKind": "StdoutSK", 113 | "scName": "stdout", 114 | "scRotation": null 115 | } 116 | ] 117 | } 118 | -------------------------------------------------------------------------------- /base/cardano-rosetta/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | labels: 5 | io.kompose.service: cardano-rosetta 6 | name: cardano-rosetta 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | io.kompose.service: cardano-rosetta 12 | template: 13 | metadata: 14 | labels: 15 | io.kompose.service: cardano-rosetta 16 | spec: 17 | containers: 18 | - env: 19 | - name: BIND_ADDRESS 20 | value: "0.0.0.0" 21 | - name: PORT 22 | value: "8080" 23 | - name: LOGGER_LEVEL 24 | value: debug 25 | - name: DEFAULT_RELATIVE_TTL 26 | value: "1000" 27 | - name: NODE_ENV 28 | value: "production" 29 | - name: PAGE_SIZE 30 | value: "30" 31 | - name: GENESIS_SHELLEY_PATH 32 | value: "/config/genesis/shelley.json" 33 | - name: TOPOLOGY_FILE_PATH 34 | value: "/config/cardano-node/topology.json" 35 | - name: CARDANO_CLI_PATH 36 | value: "/usr/local/bin/cardano-cli" 37 | - name: CARDANO_NODE_PATH 38 | value: "/usr/local/bin/cardano-node" 39 | - name: CARDANO_NODE_SOCKET_PATH 40 | value: "/ipc/node.socket" 41 | - name: POSTGRES_HOST 42 | valueFrom: 43 | configMapKeyRef: 44 | name: common-env 45 | key: POSTGRES_HOST_RO 46 | - name: POSTGRES_PORT 47 | valueFrom: 48 | configMapKeyRef: 49 | name: common-env 50 | key: POSTGRES_PORT 51 | - name: POSTGRES_USER 52 | valueFrom: 53 | secretKeyRef: 54 | name: init0-postgresql-ha-pgpool-custom-users 55 | key: usernames 56 | - name: POSTGRES_PASS 57 | valueFrom: 58 | secretKeyRef: 59 | name: init0-postgresql-ha-pgpool-custom-users 60 | key: passwords 61 | - name: POSTGRES_DB 62 | valueFrom: 63 | configMapKeyRef: 64 | name: common-env 65 | key: POSTGRES_DB 66 | image: inputoutput/cardano-rosetta:1.8.1 67 | command: ['sh', '-c', 'DB_CONNECTION_STRING="postgresql://${POSTGRES_USER}:${POSTGRES_PASS}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}" node /cardano-rosetta-server/dist/src/server/index.js'] 68 | imagePullPolicy: Always 69 | name: cardano-rosetta 70 | ports: 71 | - containerPort: 8080 72 | readinessProbe: 73 | tcpSocket: 74 | port: 8080 75 | initialDelaySeconds: 15 76 | periodSeconds: 15 77 | livenessProbe: 78 | tcpSocket: 79 | port: 8080 80 | initialDelaySeconds: 15 81 | periodSeconds: 15 82 | resources: {} 83 | volumeMounts: 84 | - name: common-env 85 | mountPath: /run/secrets/common-env 86 | readOnly: true 87 | - mountPath: /ipc 88 | name: node-ipc 89 | - name: socat-socket-server 90 | image: alpine/socat 91 | env: 92 | - name: CARDANO_NODE_SOCKET_TCP_HOST 93 | value: "cardano-node-headless" 94 | - name: CARDANO_NODE_SOCKET_TCP_PORT 95 | value: "30000" 96 | - name: SOCAT_TIMEOUT 97 | value: "3600" 98 | command: ["sh", "-c", "rm -f /ipc/node.socket; socat UNIX-LISTEN:/ipc/node.socket,fork TCP:${CARDANO_NODE_SOCKET_TCP_HOST}:${CARDANO_NODE_SOCKET_TCP_PORT},ignoreeof"] 99 | #command: ["sh", "-c", "socat -d -d -d -d -v UNIX-LISTEN:/ipc/node.socket TCP:${CARDANO_NODE_SOCKET_TCP_HOST}:${CARDANO_NODE_SOCKET_TCP_PORT},ignoreeof,keepalive,keepidle=10,keepintvl=10,keepcnt=100"] 100 | volumeMounts: 101 | - mountPath: /ipc 102 | name: node-ipc 103 | restartPolicy: Always 104 | serviceAccountName: "" 105 | volumes: 106 | - name: node-ipc 107 | emptyDir: {} 108 | - name: common-env 109 | configMap: 110 | name: common-env 111 | - name: postgres-password 112 | secret: 113 | secretName: init0-postgresql-ha-pgpool-custom-users 114 | items: 115 | - key: passwords 116 | path: POSTGREST_RO_PASSWORD 117 | --------------------------------------------------------------------------------