Skip to content

Latest commit

 

History

History
212 lines (191 loc) · 16.9 KB

README.md

File metadata and controls

212 lines (191 loc) · 16.9 KB

membership

Version: v1.0.0-beta.18 Type: application AppVersion: v0.35.3

Formance Membership API. Manage stacks, organizations, regions, invitations, users, roles, and permissions.

Source Code

Requirements

Kubernetes: >=1.14.0-0

Repository Name Version
file://../core core v1.0.0-beta.6
https://charts.dexidp.io dex 0.17.X
oci://registry-1.docker.io/bitnamicharts postgresql 15.5.X

Values

Global AWS configuration

Key Type Default Description
global.aws.elb bool false Enable AWS ELB
global.aws.iam bool false Enable AWS IAM Authentification
aws object {"targetGroups":{"grpc":{"ipAddressType":"ipv4","serviceRef":{"name":"{{ include \"core.fullname\" $ }}","port":"{{ .Values.service.ports.grpc.port }}"},"targetGroupARN":"","targetType":"ip"},"http":{"ipAddressType":"ipv4","serviceRef":{"name":"{{ include \"core.fullname\" $ }}","port":"{{ .Values.service.ports.http.port }}"},"targetGroupARN":"","targetType":"ip"}}} AWS Membership target groups
dex.aws object {"targetGroups":{"dex-http":{"ipAddressType":"ipv4","serviceRef":{"name":"{{ include \"dex.fullname\" .Subcharts.dex }}","port":"{{ .Values.dex.service.ports.http.port }}"},"targetGroupARN":"","targetType":"ip"}}} AWS Target Groups

Global configuration

Key Type Default Description
global.debug bool false Enable debug mode
global.monitoring.logs.enabled bool true Enable logging
global.monitoring.logs.format string "json" Format
global.monitoring.logs.level string "info" Level: Info, Debug, Error
global.monitoring.traces.enabled bool false Enable otel tracing
global.monitoring.traces.endpoint string "localhost" Endpoint
global.monitoring.traces.exporter string "otlp" Exporter
global.monitoring.traces.insecure bool true Insecure
global.monitoring.traces.mode string "grpc" Mode
global.monitoring.traces.port int 4317 Port
global.nats.url string "" NATS URL: nats://nats:4222 nats://$PUBLISHER_NATS_USERNAME:$PUBLISHER_NATS_PASSWORD@nats:4222
global.platform.console.host string "console.{{ .Values.global.serviceHost }}" is the host for the console
global.platform.console.scheme string "https" is the scheme for the console
global.platform.enabled bool true Enable platform communication with membership, add specific oauth2 clients, and will rollout membership depending to .membership.oauthClient
global.platform.membership.host string "membership.{{ .Values.global.serviceHost }}" is the host for the membership
global.platform.membership.oauthClient.existingSecret string "" is the name of the secret
global.platform.membership.oauthClient.id string "platform" is the id of the client
global.platform.membership.oauthClient.secret string "changeMe1" is the secret of the client
global.platform.membership.oauthClient.secretKeys object {"secret":""} is the key contained within the secret
global.platform.membership.relyingParty.host string "dex.{{ .Values.global.serviceHost }}" is the host for the relying party issuer
global.platform.membership.relyingParty.path string "" is the path for the relying party issuer
global.platform.membership.relyingParty.scheme string "https" is the scheme the relying party
global.platform.membership.scheme string "https" is the scheme for the membership
global.platform.portal.host string "portal.{{ .Values.global.serviceHost }}" is the host for the portal
global.platform.portal.scheme string "https" is the scheme for the portal
global.postgresql.additionalArgs string "sslmode=disable" Additional arguments for PostgreSQL Connection URI
global.postgresql.auth.database string "formance" Name for a custom database to create (overrides auth.database)
global.postgresql.auth.existingSecret string "" Name of existing secret to use for PostgreSQL credentials (overrides auth.existingSecret).
global.postgresql.auth.password string "formance" Password for the "postgres" admin user (overrides auth.postgresPassword)
global.postgresql.auth.postgresPassword string "formance" Password for the custom user to create (overrides auth.password)
global.postgresql.auth.secretKeys.adminPasswordKey string "" Name of key in existing secret to use for PostgreSQL credentials (overrides auth.secretKeys.adminPasswordKey). Only used when global.postgresql.auth.existingSecret is set.
global.postgresql.auth.secretKeys.userPasswordKey string "" Name of key in existing secret to use for PostgreSQL credentials (overrides auth.secretKeys.userPasswordKey). Only used when global.postgresql.auth.existingSecret is set.
global.postgresql.auth.username string "formance" Name for a custom user to create (overrides auth.username)
global.postgresql.host string "" Host for PostgreSQL (overrides included postgreql host)
global.postgresql.service.ports.postgresql int 5432 PostgreSQL service port (overrides service.ports.postgresql)
global.serviceHost string "" is the base domain for portal and console
config.migration.postgresql.auth.existingSecret string "" Name of existing secret to use for PostgreSQL credentials (overrides auth.existingSecret).
config.migration.postgresql.auth.password string "" Password for the "postgres" admin user (overrides auth.postgresPassword)
config.migration.postgresql.auth.secretKeys.adminPasswordKey string "" Name of key in existing secret to use for PostgreSQL credentials (overrides auth.secretKeys.adminPasswordKey). Only used when global.postgresql.auth.existingSecret is set.
config.migration.postgresql.auth.username string "" Name for a custom user to create (overrides auth.username)

Dex configuration

Key Type Default Description
dex.configOverrides object {"enablePasswordDB":true,"oauth2":{"responseTypes":["code","token","id_token"],"skipApprovalScreen":true},"staticPasswords":[{"email":"[email protected]","hash":"$2a$10$2b2cU8CPhOTaGrs1HRQuAueS7JTT5ZHsHSzYiFPm1leZck7Mc8T4W","userID":"08a8684b-db88-4b73-90a9-3cd1661f5466","username":"admin"}],"storage":{"type":"postgres"}} Config override allow template function. Database is setup on the chart global, make sure that user/password when using kubernetes secret
dex.configOverrides.enablePasswordDB bool true enable password db
dex.configOverrides.oauth2.responseTypes list ["code","token","id_token"] oauth2 response types
dex.configOverrides.oauth2.skipApprovalScreen bool true oauth2 skip approval screen
dex.configOverrides.staticPasswords[0].email string "[email protected]" static passwords email
dex.configOverrides.staticPasswords[0].hash string "$2a$10$2b2cU8CPhOTaGrs1HRQuAueS7JTT5ZHsHSzYiFPm1leZck7Mc8T4W" static passwords hash
dex.configOverrides.staticPasswords[0].userID string "08a8684b-db88-4b73-90a9-3cd1661f5466" static passwords user id
dex.configOverrides.staticPasswords[0].username string "admin" static passwords username
dex.configSecret.create bool false Dex config secret create Default secret provided by the dex chart
dex.configSecret.createConfigSecretOverrides bool true Dex config secret create config secret overrides Enable secret config overrides provided by the cloudprem chart
dex.configSecret.name string "membership-dex-config" Dex config secret name
dex.enabled bool true Enable dex
dex.envVars list [] Dex additional environment variables
dex.image.pullPolicy string "IfNotPresent" image pull policy
dex.image.repository string "ghcr.io/formancehq/dex" image repository
dex.image.tag string "v0.33.10" image tag
dex.ingress.annotations object {} Dex ingress annotations
dex.ingress.className string "" Dex ingress class name
dex.ingress.enabled bool true Dex ingress enabled
dex.ingress.hosts[0].host string "{{ tpl .Values.global.platform.membership.relyingParty.host $ }}" Dex ingress host
dex.ingress.hosts[0].paths[0].path string "/" Dex ingress path
dex.ingress.hosts[0].paths[0].pathType string "Prefix" Dex ingress path type
dex.ingress.tls list [] Dex ingress tls
dex.resources object {} Dex resources

Membership Feature

Key Type Default Description
feature.disableEvents bool true Membership feature disable events
feature.managedStacks bool true Membership feature managed stacks
feature.migrationHooks bool true Run migration in a hook

Postgresql configuration

Key Type Default Description
postgresql.architecture string "standalone" Postgresql architecture
postgresql.enabled bool true Enable postgresql
postgresql.fullnameOverride string "postgresql" Postgresql fullname override
postgresql.primary object {"persistence":{"enabled":false}} Postgresql primary persistence enabled

Other Values

Key Type Default Description
global.nats.auth.existingSecret string ""
global.nats.auth.password string ""
global.nats.auth.secretKeys.password string "password"
global.nats.auth.secretKeys.username string "username"
global.nats.auth.user string ""
global.nats.enabled bool false
affinity object {} Membership affinity
autoscaling object {} Membership autoscaling
commonLabels object {} DEPRECATED Membership service
config.additionalEnv list [] Additional Environment variables on the main deployment
config.auth.additionalOAuthClients list [] Membership additional oauth clients
config.auth.tokenValidity object {"accessToken":"5m","refreshToken":"72h"} According to "nsuµmh" And https://github.com/spf13/cast/blob/e9ba3ce83919192b29c67da5bec158ce024fdcdb/caste.go#L61C3-L61C3
config.fctl bool true Enable Fctl
config.grpc.existingSecret string ""
config.grpc.secretKeys.secret string "TOKENS"
config.grpc.tokens list [] Membership agent grpc token
config.job object {"garbageCollector":{"concurrencyPolicy":"Forbid","enabled":false,"resources":{},"restartPolicy":"Never","schedule":"0 0 * * *","startingDeadlineSeconds":200,"suspend":false,"tolerations":[],"volumeMounts":[],"volumes":[]},"stackLifeCycle":{"concurrencyPolicy":"Forbid","enabled":false,"resources":{},"restartPolicy":"Never","schedule":"*/30 * * * *","startingDeadlineSeconds":200,"suspend":false,"tolerations":[],"volumeMounts":[],"volumes":[]}} CronJob to manage the stack life cycle and the garbage collector
config.job.garbageCollector object {"concurrencyPolicy":"Forbid","enabled":false,"resources":{},"restartPolicy":"Never","schedule":"0 0 * * *","startingDeadlineSeconds":200,"suspend":false,"tolerations":[],"volumeMounts":[],"volumes":[]} Clean expired tokens and refresh tokens after X time
config.job.stackLifeCycle object {"concurrencyPolicy":"Forbid","enabled":false,"resources":{},"restartPolicy":"Never","schedule":"*/30 * * * *","startingDeadlineSeconds":200,"suspend":false,"tolerations":[],"volumeMounts":[],"volumes":[]} Job create 2 jobs to eaither warn or prune a stacks This does not change the state of the stack WARN: Mark stack Disposable -> trigger a mail PRUNE: Mark stack Warned -> trigger a mail It blocks stack cycles if supendend It is highly recommended to enable it as it is the only way we control
config.migration.annotations object {} Membership job migration annotations
config.migration.serviceAccount.annotations object {}
config.migration.serviceAccount.create bool true
config.migration.serviceAccount.name string ""
config.migration.ttlSecondsAfterFinished string ""
config.migration.volumeMounts list []
config.migration.volumes list []
config.oidc object {"clientId":"membership","clientSecret":"changeMe","existingSecret":"","scopes":["openid","email","federated:id"],"secretKeys":{"secret":""}} Membership relying party connection url
config.oidc.clientId string "membership" Membership oidc client id
config.oidc.clientSecret string "changeMe" Membership oidc client secret
config.oidc.existingSecret string "" Membership oidc existing secret
config.oidc.scopes list ["openid","email","federated:id"] Membership oidc redirect uri
config.oidc.scopes[2] string "federated:id" Membership Dex federated id scope
config.oidc.secretKeys object {"secret":""} Membership oidc secret key
config.publisher.clientID string "membership"
config.publisher.jetstream.replicas int 1
config.publisher.topicMapping string "membership"
config.stack.cycle.delay.disable string "72h"
config.stack.cycle.delay.disablePollingDelay string "1m"
config.stack.cycle.delay.disposable string "360h"
config.stack.cycle.delay.prune string "720h"
config.stack.cycle.delay.prunePollingDelay string "1m"
config.stack.cycle.delay.warn string "72h"
config.stack.cycle.dryRun bool true
config.stack.minimalStackModules[0] string "Auth"
config.stack.minimalStackModules[1] string "Ledger"
config.stack.minimalStackModules[2] string "Payments"
config.stack.minimalStackModules[3] string "Gateway"
debug bool false Membership debug
dev bool false Membership dev
fullnameOverride string "" Membership fullname override
image.pullPolicy string "IfNotPresent" Membership image pull policy
image.repository string "ghcr.io/formancehq/membership" Membership image repository
image.tag string "" Membership image tag
imagePullSecrets list [] Membership image pull secrets
ingress.annotations object {} Membership ingress annotations
ingress.className string "" Membership ingress class name
ingress.enabled bool true Membership ingress enabled
ingress.hosts[0] object {"host":"{{ tpl .Values.global.platform.membership.host $ }}","paths":[{"path":"/api","pathType":"Prefix"}]} Membership ingress host
ingress.hosts[0].paths[0].path string "/api" Membership ingress path
ingress.hosts[0].paths[0].pathType string "Prefix" Membership ingress path type
ingress.tls list [] Membership ingress tls
initContainers list [] Membership init containers
nameOverride string "" Membership name override
nodeSelector object {} Membership node selector
podDisruptionBudget.enabled bool false Enable pod disruption budget
podDisruptionBudget.maxUnavailable int 0 Maximum unavailable pods
podDisruptionBudget.minAvailable int 1 Minimum available pods
podSecurityContext object {} Membership pod security context
replicaCount int 1 Count of replicas
resources object {} Membership resources
securityContext.capabilities object {"drop":["ALL"]} Membership security context capabilities drop
securityContext.readOnlyRootFilesystem bool true Membership security context read only root filesystem
securityContext.runAsNonRoot bool true Membership security context run as non root
securityContext.runAsUser int 1000 Membership security context run as user
service.annotations object {} service annotations
service.clusterIP string "" service cluster IP
service.ports.grpc object {"port":8082} service grpc port
service.ports.http object {"port":8080} service http port
service.type string "ClusterIP" service type
serviceAccount.annotations object {} Service account annotations
serviceAccount.create bool true Service account creation
serviceAccount.name string "" Service account name
tolerations list [] Membership tolerations
volumeMounts list [] Membership volume mounts
volumes list [] Membership volumes