From f2c4e7ab04f8ee752bf9cc246de40d5aa3a47e4b Mon Sep 17 00:00:00 2001 From: David Ragot Date: Mon, 14 Oct 2024 12:57:59 +0200 Subject: [PATCH] feat: move regions chart --- README.md | 1 + charts/agent/.gitignore | 1 - charts/regions/Chart.lock | 9 + charts/regions/Chart.yaml | 25 ++ charts/regions/Earthfile | 41 ++++ charts/regions/README.md | 134 +++++++++++ charts/regions/templates/versions.yaml | 13 ++ charts/regions/values.schema.json | 307 +++++++++++++++++++++++++ charts/regions/values.yaml | 104 +++++++++ 9 files changed, 634 insertions(+), 1 deletion(-) delete mode 100644 charts/agent/.gitignore create mode 100644 charts/regions/Chart.lock create mode 100644 charts/regions/Chart.yaml create mode 100644 charts/regions/Earthfile create mode 100644 charts/regions/README.md create mode 100644 charts/regions/templates/versions.yaml create mode 100644 charts/regions/values.schema.json create mode 100644 charts/regions/values.yaml diff --git a/README.md b/README.md index 311ccf6..44b8b2b 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ | [Demo](./charts/demo/README.md) | 2.0.0 |latest | Formance Private Regions Demo | [![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/demo)](https://artifacthub.io/packages/search?repo=demo) | | [Membership](./charts/membership/README.md) | v1.0.0-beta.1 |v0.35.3 | Formance Membership API. Manage stacks, organizations, regions, invitations, users, roles, and permissions. | [![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/membership)](https://artifacthub.io/packages/search?repo=membership) | | [Portal](./charts/portal/README.md) | v1.0.0-beta.1 |764bb7e199e1d2882e4d5cd205eada0ef0abc283 | Formance Portal | [![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/portal)](https://artifacthub.io/packages/search?repo=portal) | +| [Regions](./charts/regions/README.md) | v2.1.0 |latest | Formance Private Regions Helm Chart | [![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/regions)](https://artifacthub.io/packages/search?repo=regions) | | [Stargate](./charts/stargate/README.md) | 0.3.0 |latest | Formance Stargate gRPC Gateway | [![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/stargate)](https://artifacthub.io/packages/search?repo=stargate) | ## How to contribute diff --git a/charts/agent/.gitignore b/charts/agent/.gitignore deleted file mode 100644 index 9d56f51..0000000 --- a/charts/agent/.gitignore +++ /dev/null @@ -1 +0,0 @@ -values.staging.yaml diff --git a/charts/regions/Chart.lock b/charts/regions/Chart.lock new file mode 100644 index 0000000..e01c8bb --- /dev/null +++ b/charts/regions/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: agent + repository: file://../agent + version: v2.1.0 +- name: operator + repository: oci://ghcr.io/formancehq/helm + version: v2.0.19 +digest: sha256:49f9c10fd891c344637f7f54a911e6b111b91cc4255ec6e95d3c74a1463b1df8 +generated: "2024-10-14T10:52:32.636937553Z" diff --git a/charts/regions/Chart.yaml b/charts/regions/Chart.yaml new file mode 100644 index 0000000..7892997 --- /dev/null +++ b/charts/regions/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +name: regions +description: Formance Private Regions Helm Chart +home: "https://formance.com" +sources: + - "https://github.com/formancehq/operator" + - "https://github.com/formancehq/agent" +maintainers: + - name: "Formance Team" + email: "support@formance.com" +icon: "https://avatars.githubusercontent.com/u/84325077?s=200&v=4" + +type: application +version: "v2.1.0" +appVersion: "latest" + +dependencies: + - name: agent + version: v2.1.0 + repository: "file://../agent" + condition: agent.enabled + - name: operator + version: v2.0.19 + repository: "oci://ghcr.io/formancehq/helm" + condition: operator.enabled diff --git a/charts/regions/Earthfile b/charts/regions/Earthfile new file mode 100644 index 0000000..49f399f --- /dev/null +++ b/charts/regions/Earthfile @@ -0,0 +1,41 @@ +VERSION --wildcard-builds --wildcard-copy 0.8 + +IMPORT ../ AS charts +IMPORT ../agent AS agent + +schema: + FROM charts+schema-base + WORKDIR /src + DO --pass-args charts+SCHEMA + +readme: + FROM charts+readme-base + WORKDIR /src/agent/ + COPY --dir (agent+dependencies/*) . + WORKDIR /src/regions + COPY --dir (+sources/*) . + DO --pass-args charts+README_GENERATOR + +sources: + DO --pass-args charts+BASE + WORKDIR /src/regions + COPY (+schema/*) . + DO --pass-args charts+SOURCES + +dependencies: + FROM +sources + WORKDIR /src/agent/ + COPY --dir (agent+dependencies/*) . + WORKDIR /src/regions + DO --pass-args charts+DEPENDENCIES + +validate: + FROM +dependencies + WORKDIR /src/regions + COPY (+readme/*) . + DO --pass-args charts+VALIDATE + +package: + FROM +validate + WORKDIR /src/regions + DO --pass-args charts+PACKAGE diff --git a/charts/regions/README.md b/charts/regions/README.md new file mode 100644 index 0000000..a9652f6 --- /dev/null +++ b/charts/regions/README.md @@ -0,0 +1,134 @@ +# regions + +![Version: v2.1.0](https://img.shields.io/badge/Version-v2.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) + +Formance Private Regions Helm Chart + +**Homepage:** + +## Maintainers + +| Name | Email | Url | +| ---- | ------ | --- | +| Formance Team | | | + +## Source Code + +* +* + +## Requirements + +| Repository | Name | Version | +|------------|------|---------| +| file://../agent | agent | v2.1.0 | +| oci://ghcr.io/formancehq/helm | operator | v2.0.19 | + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| global.monitoring.logs.format | string | `"json"` | | +| global.serviceName | string | `"agent"` | | +| agent.agent.authentication.clientID | string | `"REGION_ID"` | | +| agent.agent.authentication.clientSecret | string | `""` | | +| agent.agent.authentication.issuer | string | `"https://app.formance.cloud/api"` | | +| agent.agent.authentication.mode | string | `"bearer"` | | +| agent.agent.baseUrl | string | `"https://sandbox.formance.cloud"` | | +| agent.agent.id | string | `"aws-eu-west-1-sandbox"` | | +| agent.enabled | bool | `false` | | +| agent.image.tag | string | `""` | | +| agent.server.address | string | `"app.formance.cloud:443"` | | +| agent.server.tls.enabled | bool | `true` | | +| agent.server.tls.insecureSkipVerify | bool | `true` | | +| operator.enabled | bool | `true` | | +| operator.fullnameOverride | string | `"operator"` | | +| operator.image.repository | string | `"ghcr.io/formancehq/operator"` | | +| operator.image.tag | string | `""` | | +| operator.nameOverride | string | `"operator"` | | +| operator.operator-crds.create | bool | `true` | | +| operator.operator.disableWebhooks | bool | `false` | | +| operator.operator.enableLeaderElection | bool | `true` | | +| operator.operator.env | string | `"private"` | | +| operator.operator.licence.create | bool | `true` | | +| operator.operator.licence.issuer | string | `""` | | +| operator.operator.licence.secretName | string | `""` | | +| operator.operator.licence.token | string | `""` | | +| operator.operator.metricsAddr | string | `":8080"` | | +| operator.operator.probeAddr | string | `":8081"` | | +| operator.operator.region | string | `"private"` | | +| versions.create | bool | `true` | | +| versions.files."v1.0".auth | string | `"v0.4.4"` | | +| versions.files."v1.0".gateway | string | `"v2.0.17"` | | +| versions.files."v1.0".ledger | string | `"v1.10.14"` | | +| versions.files."v1.0".operator-utils | string | `"v2.0.17"` | | +| versions.files."v1.0".orchestration | string | `"v0.2.1"` | | +| versions.files."v1.0".payments | string | `"v1.0.0-rc.5"` | | +| versions.files."v1.0".reconciliation | string | `"v0.1.0"` | | +| versions.files."v1.0".search | string | `"v0.10.0"` | | +| versions.files."v1.0".stargate | string | `"v0.1.10"` | | +| versions.files."v1.0".wallets | string | `"v0.4.6"` | | +| versions.files."v1.0".webhooks | string | `"v2.0.17"` | | +| versions.files."v2.0".auth | string | `"v2.0.17"` | | +| versions.files."v2.0".gateway | string | `"v2.0.17"` | | +| versions.files."v2.0".ledger | string | `"v2.0.17"` | | +| versions.files."v2.0".operator-utils | string | `"v2.0.17"` | | +| versions.files."v2.0".orchestration | string | `"v2.0.17"` | | +| versions.files."v2.0".payments | string | `"v2.0.17"` | | +| versions.files."v2.0".reconciliation | string | `"v2.0.17"` | | +| versions.files."v2.0".search | string | `"v2.0.17"` | | +| versions.files."v2.0".stargate | string | `"v2.0.17"` | | +| versions.files."v2.0".wallets | string | `"v2.0.17"` | | +| versions.files."v2.0".webhooks | string | `"v2.0.17"` | | +| versions.files."v2.1".auth | string | `"v2.1.0-beta.1"` | | +| versions.files."v2.1".gateway | string | `"v2.1.0-beta.1"` | | +| versions.files."v2.1".ledger | string | `"v2.1.0-beta.1"` | | +| versions.files."v2.1".operator-utils | string | `"v2.1.0-beta.1"` | | +| versions.files."v2.1".orchestration | string | `"v2.1.0-beta.1"` | | +| versions.files."v2.1".payments | string | `"v2.1.0-beta.1"` | | +| versions.files."v2.1".reconciliation | string | `"v2.1.0-beta.1"` | | +| versions.files."v2.1".search | string | `"v2.1.0-beta.1"` | | +| versions.files."v2.1".stargate | string | `"v2.1.0-beta.1"` | | +| versions.files."v2.1".wallets | string | `"v2.1.0-beta.1"` | | +| versions.files."v2.1".webhooks | string | `"v2.1.0-beta.1"` | | +| versions.files.default.auth | string | `"v0.4.4"` | | +| versions.files.default.gateway | string | `"v2.0.17"` | | +| versions.files.default.ledger | string | `"v1.10.14"` | | +| versions.files.default.operator-utils | string | `"v2.0.17"` | | +| versions.files.default.orchestration | string | `"v0.2.1"` | | +| versions.files.default.payments | string | `"v1.0.0-rc.5"` | | +| versions.files.default.reconciliation | string | `"v0.1.0"` | | +| versions.files.default.search | string | `"v0.10.0"` | | +| versions.files.default.stargate | string | `"v0.1.10"` | | +| versions.files.default.wallets | string | `"v0.4.6"` | | +| versions.files.default.webhooks | string | `"v2.0.17"` | | +| agent.affinity | object | `{}` | | +| agent.agent.authentication.clientID | string | `""` | | +| agent.agent.authentication.clientSecret | string | `""` | | +| agent.agent.authentication.issuer | string | `"https://app.formance.cloud/api"` | | +| agent.agent.authentication.mode | string | `"bearer"` | | +| agent.agent.baseUrl | string | `""` | | +| agent.agent.id | string | `"b7549a16-f74a-4815-ab1e-bb8ef1c3833b"` | | +| agent.agent.production | bool | `false` | | +| agent.config.monitoring.serviceName | string | `"agent"` | | +| agent.debug | bool | `false` | | +| agent.fullnameOverride | string | `""` | | +| agent.image.pullPolicy | string | `"IfNotPresent"` | | +| agent.image.repository | string | `"ghcr.io/formancehq/agent"` | | +| agent.image.tag | string | `""` | | +| agent.imagePullSecrets | list | `[]` | | +| agent.nameOverride | string | `""` | | +| agent.nodeSelector | object | `{}` | | +| agent.podAnnotations | object | `{}` | | +| agent.podSecurityContext | object | `{}` | | +| agent.resources.limits.cpu | string | `"100m"` | | +| agent.resources.limits.memory | string | `"128Mi"` | | +| agent.resources.requests.cpu | string | `"100m"` | | +| agent.resources.requests.memory | string | `"128Mi"` | | +| agent.securityContext | object | `{}` | | +| agent.server.address | string | `"app.formance.cloud:443"` | | +| agent.server.tls.enabled | bool | `true` | | +| agent.server.tls.insecureSkipVerify | bool | `true` | | +| agent.serviceAccount.annotations | object | `{}` | | +| agent.tolerations | list | `[]` | | + diff --git a/charts/regions/templates/versions.yaml b/charts/regions/templates/versions.yaml new file mode 100644 index 0000000..c2ffd37 --- /dev/null +++ b/charts/regions/templates/versions.yaml @@ -0,0 +1,13 @@ +{{ if and .Values.versions.create }} +{{- range $key, $version := .Values.versions.files }} +apiVersion: formance.com/v1beta1 +kind: Versions +metadata: + name: {{ $key }} +spec: + {{- range $k, $v := $version }} + {{ $k }}: {{ $v }} + {{- end }} +--- +{{- end }} +{{- end }} diff --git a/charts/regions/values.schema.json b/charts/regions/values.schema.json new file mode 100644 index 0000000..6178483 --- /dev/null +++ b/charts/regions/values.schema.json @@ -0,0 +1,307 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "agent": { + "properties": { + "agent": { + "properties": { + "authentication": { + "properties": { + "clientID": { + "type": "string" + }, + "clientSecret": { + "type": "string" + }, + "issuer": { + "type": "string" + }, + "mode": { + "type": "string" + } + }, + "type": "object" + }, + "baseUrl": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "image": { + "properties": { + "tag": { + "type": "string" + } + }, + "type": "object" + }, + "server": { + "properties": { + "address": { + "type": "string" + }, + "tls": { + "properties": { + "enabled": { + "type": "boolean" + }, + "insecureSkipVerify": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "operator": { + "properties": { + "enabled": { + "type": "boolean" + }, + "fullnameOverride": { + "type": "string" + }, + "image": { + "properties": { + "repository": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "type": "object" + }, + "nameOverride": { + "type": "string" + }, + "operator": { + "properties": { + "disableWebhooks": { + "type": "boolean" + }, + "enableLeaderElection": { + "type": "boolean" + }, + "env": { + "type": "string" + }, + "licence": { + "properties": { + "create": { + "type": "boolean" + }, + "issuer": { + "type": "string" + }, + "secretName": { + "type": "string" + }, + "token": { + "type": "string" + } + }, + "type": "object" + }, + "metricsAddr": { + "type": "string" + }, + "probeAddr": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "type": "object" + }, + "operator-crds": { + "properties": { + "create": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "versions": { + "properties": { + "create": { + "type": "boolean" + }, + "files": { + "properties": { + "default": { + "properties": { + "auth": { + "type": "string" + }, + "gateway": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "operator-utils": { + "type": "string" + }, + "orchestration": { + "type": "string" + }, + "payments": { + "type": "string" + }, + "reconciliation": { + "type": "string" + }, + "search": { + "type": "string" + }, + "stargate": { + "type": "string" + }, + "wallets": { + "type": "string" + }, + "webhooks": { + "type": "string" + } + }, + "type": "object" + }, + "v1.0": { + "properties": { + "auth": { + "type": "string" + }, + "gateway": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "operator-utils": { + "type": "string" + }, + "orchestration": { + "type": "string" + }, + "payments": { + "type": "string" + }, + "reconciliation": { + "type": "string" + }, + "search": { + "type": "string" + }, + "stargate": { + "type": "string" + }, + "wallets": { + "type": "string" + }, + "webhooks": { + "type": "string" + } + }, + "type": "object" + }, + "v2.0": { + "properties": { + "auth": { + "type": "string" + }, + "gateway": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "operator-utils": { + "type": "string" + }, + "orchestration": { + "type": "string" + }, + "payments": { + "type": "string" + }, + "reconciliation": { + "type": "string" + }, + "search": { + "type": "string" + }, + "stargate": { + "type": "string" + }, + "wallets": { + "type": "string" + }, + "webhooks": { + "type": "string" + } + }, + "type": "object" + }, + "v2.1": { + "properties": { + "auth": { + "type": "string" + }, + "gateway": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "operator-utils": { + "type": "string" + }, + "orchestration": { + "type": "string" + }, + "payments": { + "type": "string" + }, + "reconciliation": { + "type": "string" + }, + "search": { + "type": "string" + }, + "stargate": { + "type": "string" + }, + "wallets": { + "type": "string" + }, + "webhooks": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" +} diff --git a/charts/regions/values.yaml b/charts/regions/values.yaml new file mode 100644 index 0000000..6ea63b8 --- /dev/null +++ b/charts/regions/values.yaml @@ -0,0 +1,104 @@ +operator: + enabled: true + + fullnameOverride: "operator" + nameOverride: "operator" + + image: + repository: "ghcr.io/formancehq/operator" + tag: "" + operator: + disableWebhooks: false + region: "private" + env: "private" + metricsAddr: ":8080" + probeAddr: ":8081" + enableLeaderElection: true + # Licence secret must have the label formance.com/stack: any to be selected by the operator + # Have a `token` and `issuer` key + licence: + create: true + secretName: "" + token: "" + issuer: "" + + # Only Helm Release are impacted on first install. + # Use `components/operator/helm/crds` to install crds separately + # Deprecated: operator-crds, will be removed in a future release, + # please use operator-crds.create:true, to first update crds with `helm.sh/resource-policy: keep` + # Then you will be able to disable it and moved to the new chart `components/operator/helm/operator-crds` + # If using Helm Release, you will need to set `meta.helm.sh/release-name` and `meta.helm.sh/release-namespace` to the new relase name and namespace on all CRDs from Group: formance.com + operator-crds: + create: true + +agent: + enabled: false + + image: + tag: "" + server: + address: "app.formance.cloud:443" + tls: + enabled: true + insecureSkipVerify: true + + agent: + id: "aws-eu-west-1-sandbox" + baseUrl: https://sandbox.formance.cloud + authentication: + mode: bearer + issuer: https://app.formance.cloud/api + clientID: "REGION_ID" + clientSecret: "" + +versions: + create: true + files: + default: + orchestration: v0.2.1 + reconciliation: v0.1.0 + search: v0.10.0 + auth: v0.4.4 + wallets: v0.4.6 + webhooks: v2.0.17 + payments: v1.0.0-rc.5 + stargate: v0.1.10 + gateway: v2.0.17 + ledger: v1.10.14 + operator-utils: v2.0.17 + v1.0: + orchestration: v0.2.1 + reconciliation: v0.1.0 + search: v0.10.0 + auth: v0.4.4 + wallets: v0.4.6 + webhooks: v2.0.17 + payments: v1.0.0-rc.5 + stargate: v0.1.10 + gateway: v2.0.17 + ledger: v1.10.14 + operator-utils: v2.0.17 + v2.0: + ledger: v2.0.17 + search: v2.0.17 + stargate: v2.0.17 + auth: v2.0.17 + wallets: v2.0.17 + webhooks: v2.0.17 + gateway: v2.0.17 + payments: v2.0.17 + orchestration: v2.0.17 + reconciliation: v2.0.17 + operator-utils: v2.0.17 + v2.1: + ledger: v2.1.0-beta.1 + search: v2.1.0-beta.1 + stargate: v2.1.0-beta.1 + auth: v2.1.0-beta.1 + wallets: v2.1.0-beta.1 + webhooks: v2.1.0-beta.1 + gateway: v2.1.0-beta.1 + payments: v2.1.0-beta.1 + orchestration: v2.1.0-beta.1 + reconciliation: v2.1.0-beta.1 + operator-utils: v2.1.0-beta.1