Code Monkey home page Code Monkey logo

helm-charts's Introduction

convoy

Version: 2.3.0 Type: application AppVersion: 24.4.1

Open Source Webhooks Gateway

Maintainers

Name Email Url
Convoy Engineering Team [email protected] https://getconvoy.io

Requirements

Repository Name Version
https://charts.bitnami.com/bitnami postgresql 12.5.6
https://charts.bitnami.com/bitnami redis 17.11.3

Values

Key Type Default Description
global.convoy.environment string "oss" Convoy Environment
global.convoy.image string "docker.cloudsmith.io/convoy/convoy/frain-dev/convoy" Docker image tags for all convoy services
global.convoy.log_level string "error" Logger Level for all convoy services
global.convoy.tag string "v24.1.2" Docker image tags for all convoy services
global.convoy.tracer_app_name string "" NewRelic application name
global.convoy.tracer_config_enabled bool true NewRelic tracing config enabled
global.convoy.tracer_distributed_tracer_enabled bool true NewRelic distributed tracing config enabled
global.convoy.tracer_enabled bool false Tracing config for all convoy services
global.convoy.tracer_license_key string "" NewRelic license key
global.convoy.tracer_type string "" Tracing provider type
global.externalDatabase.database string "convoy" Database name for the external database
global.externalDatabase.enabled bool true Enable an external database, This will use postgresql chart, Change values if you use an external database
global.externalDatabase.host string "postgresql" Host for the external database
global.externalDatabase.options string "sslmode=disable&connect_timeout=30" Query params for the external database
global.externalDatabase.password string "postgres" Password for the external database, ignored in case of secret parameter with non-empty value
global.externalDatabase.port int 5432 Port for the external database
global.externalDatabase.postgresPassword string "postgres" Password for the external database
global.externalDatabase.scheme string "postgres" Scheme for the external database. This is postgres by default
global.externalDatabase.secret string "" If this secret parameter is not empty, password value will be ignored. The password in the secret should be in the 'password' key
global.externalDatabase.username string "postgres" Username for the external database
global.externalRedis.addresses string "" redis cluster addresses, if set the other values won't be used
global.externalRedis.database string "" Database name for the external redis.
global.externalRedis.enabled bool false Enable external redis, Enable this if you use an external redis and disable Native redis
global.externalRedis.host string "" Host for the external redis
global.externalRedis.password string "" password for the external redis, ignored in case of secret parameter with non-empty value
global.externalRedis.port string "" Port for the external redis
global.externalRedis.scheme string "" Scheme for the external redis. This can be redis, rediss, redis-socket or redis-sentinel
global.externalRedis.secret string "" If this secret parameter is not empty, password value will be ignored. The password in the secret should be in the 'password' key
global.externalRedis.username string "" username for the external redis.
global.nativeRedis.enabled bool true Enable redis, This will use redis chart, Disable if you use an external redis
global.nativeRedis.host string "redis-master" Host for the redis
global.nativeRedis.password string "convoy" password for the redis, ignored in case of secret parameter with non-empty value
global.nativeRedis.port int 6379 Port for the redis
global.nativeRedis.secret string "" If this secret parameter is not empty, password value will be ignored. The password in the secret should be in the 'password' key
ingest.autoscaling.enabled bool false Enable autoscaling for the worker
ingest.autoscaling.maxReplicas int 10
ingest.autoscaling.minReplicas int 1
ingest.autoscaling.targetCPUUtilizationPercentage int 80
ingest.autoscaling.targetMemoryUtilizationPercentage int 80
ingest.enabled bool false
ingest.env.environment string "oss"
ingest.env.interval int 60
ingest.env.log_level string "error"
ingest.image.pullPolicy string "IfNotPresent" Pull policy for the worker image
ingest.image.repository string "docker.cloudsmith.io/convoy/convoy/frain-dev/convoy" Repository to be used by the worker. The latest tag is used by default
ingest.podDisruptionBudget object {}
ingest.service.port int 80 Port for the worker service
ingest.service.type string "ClusterIP" Type of service for the worker
migrate.image.pullPolicy string "IfNotPresent" Pull policy for the migrate image
migrate.image.repository string "docker.cloudsmith.io/convoy/convoy/frain-dev/convoy" Repository to be used by to migrate. The latest tag is used by default. It will install before any other services.
server.autoscaling.enabled bool false Enable autoscaling for the server
server.autoscaling.maxReplicas int 10
server.autoscaling.minReplicas int 2
server.autoscaling.targetCPUUtilizationPercentage int 80
server.autoscaling.targetMemoryUtilizationPercentage int 80
server.env.auth.jwt.enabled bool true
server.env.auth.native.enabled bool true
server.env.environment string "oss"
server.env.host string ""
server.env.log_level string "error"
server.env.sign_up_enabled bool false
server.env.storage.enabled bool false
server.env.storage.on_prem.path string ""
server.env.storage.s3.accessKey string ""
server.env.storage.s3.bucket string ""
server.env.storage.s3.endpoint string ""
server.env.storage.s3.region string ""
server.env.storage.s3.secret string "" If this secret parameter is not empty, secretKey value will be ignored. The password in the secret should be in the 'secretKey' key
server.env.storage.s3.secretKey string "" Ignored in case of secret parameter with non-empty value
server.env.storage.s3.session_token string ""
server.env.storage.type string ""
server.image.pullPolicy string "IfNotPresent" Pull policy for the server image
server.image.repository string "docker.cloudsmith.io/convoy/convoy/frain-dev/convoy" Repository to be used by the server. The latest tag is used by default
server.ingress.annotations object {}
server.ingress.enabled bool false Enable ingress for the server
server.ingress.hosts[0].host string "test.com"
server.ingress.hosts[0].http.paths[0].path string "/"
server.ingress.hosts[0].http.paths[0].pathType string "Prefix"
server.ingress.ingressClassName string ""
server.ingress.tls[0].hosts[0] string "test.com"
server.ingress.tls[0].secretName string "test-tls-secret"
server.podDisruptionBudget object {}
server.service.port int 80 Port for the server service
server.service.type string "ClusterIP" Type of service for the server
stream.app.port int 5008
stream.app.resources.limits.cpu string "50m"
stream.app.resources.limits.memory string "60Mi"
stream.app.resources.requests.cpu string "40m"
stream.app.resources.requests.memory string "50Mi"
stream.autoscaling.enabled bool false Enable autoscaling for the stream
stream.autoscaling.maxReplicas int 10
stream.autoscaling.minReplicas int 1
stream.autoscaling.targetCPUUtilizationPercentage int 80
stream.autoscaling.targetMemoryUtilizationPercentage int 80
stream.enabled bool false
stream.env.environment string "oss"
stream.image.pullPolicy string "IfNotPresent" Pull policy for the stream image
stream.image.repository string "docker.cloudsmith.io/convoy/convoy/frain-dev/convoy" Repository to be used by the stream. The latest tag is used by default
stream.ingress.annotations object {}
stream.ingress.enabled bool false Enable ingress for the stream server
stream.ingress.hosts[0].host string "stream.test.com"
stream.ingress.hosts[0].http.paths[0].path string "/"
stream.ingress.hosts[0].http.paths[0].pathType string "Prefix"
stream.ingress.ingressClassName string ""
stream.ingress.tls[0].hosts[0] string "stream.test.com"
stream.ingress.tls[0].secretName string "test-tls-secret"
stream.service.port int 80 Port for the stream service
stream.service.type string "ClusterIP" Type of service for the stream
worker.autoscaling.enabled bool false Enable autoscaling for the worker
worker.autoscaling.maxReplicas int 10
worker.autoscaling.minReplicas int 2
worker.autoscaling.targetCPUUtilizationPercentage int 80
worker.autoscaling.targetMemoryUtilizationPercentage int 80
worker.env.environment string "oss"
worker.env.log_level string "error"
worker.env.proxy string ""
worker.env.smtp.enabled bool false
worker.env.smtp.from string ""
worker.env.smtp.password string "" Ignored in case of secret parameter with non-empty value
worker.env.smtp.port int 0
worker.env.smtp.provider string ""
worker.env.smtp.secret string "" If this secret parameter is not empty, password value will be ignored. The password in the secret should be in the 'password' key
worker.env.smtp.url string ""
worker.env.smtp.username string ""
worker.env.storage.enabled bool false
worker.env.storage.on_prem.path string ""
worker.env.storage.s3.accessKey string ""
worker.env.storage.s3.bucket string ""
worker.env.storage.s3.endpoint string ""
worker.env.storage.s3.region string ""
worker.env.storage.s3.secret string "" If this secret parameter is not empty, secretKey value will be ignored. The password in the secret should be in the 'secretKey' key
worker.env.storage.s3.secretKey string "" Ignored in case of secret parameter with non-empty value
worker.env.storage.s3.session_token string ""
worker.env.storage.type string ""
worker.env.tracer.app_name string ""
worker.env.tracer.config_enabled bool true
worker.env.tracer.distributed_tracer_enabled bool true
worker.env.tracer.enabled bool false
worker.env.tracer.license_key string ""
worker.env.tracer.type string ""
worker.image.pullPolicy string "IfNotPresent" Pull policy for the worker image
worker.image.repository string "docker.cloudsmith.io/convoy/convoy/frain-dev/convoy" Repository to be used by the worker. The latest tag is used by default
worker.podDisruptionBudget object {}
worker.service.port int 80 Port for the worker service
worker.service.type string "ClusterIP" Type of service for the worker

Autogenerated from chart metadata using helm-docs v1.11.0

helm-charts's People

Contributors

dotunj avatar gcaracuel avatar itek09 avatar jirevwe avatar nerdeveloper avatar rubenharutyunov avatar spewu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

helm-charts's Issues

Error from server (NotFound): jobs.batch "convoy-migrate" not found

k8s version: 1.28.2
helm version: v3.9.2

I use default values.yaml, and did instructions from docs:

helm repo add convoy https://frain-dev.github.io/helm-charts helm repo update helm install --values values.yaml convoy convoy/convoy -n convoy

But deployments convoy-server and convoy-worker did not started, they are stuck on init containers wait-for-migrate

In logs of wait-for-migrate container I see this logs:
Error from server (NotFound): jobs.batch "convoy-migrate" not found Waiting for migrate job to complete...

Stream, Worker, and Server Child Charts Have Identical Cmd Args That Deviate From docker-compose.yml

Comparing the docker-compose.yml provided in the convoy repo against the cmd and args config for the Stream, Worker, and Server components (child charts), there's a clear difference in configuration. For example, all three components are configured like this in their deployment.yaml templates:

...
  containers:
    - name: convoy-server
      image: docker.cloudsmith.io/convoy/convoy/frain-dev/convoy:v0.9.2
      imagePullPolicy: IfNotPresent
      volumeMounts:
        - name: convoy-config
          mountPath: /config
      command: ["/cmd"]
      args: ["server", "--config", "/config/convoy.json", "-w", "false"]
...

and

...
containers:
  - name: convoy-stream
    image: docker.cloudsmith.io/convoy/convoy/frain-dev/convoy:v0.9.2
    imagePullPolicy: IfNotPresent
    volumeMounts:
      - name: convoy-config
        mountPath: /config
    command: ["/cmd"]
    args: ["server", "--config", "/config/convoy.json", "-w", "false"]
...

Whereas the docker-compose.yml has each component configured like this:

worker:
  image: docker.cloudsmith.io/convoy/convoy/frain-dev/convoy:v0.9.2
  command: ["./cmd", "worker", "--config", "convoy.json"]
...
stream:
  image: docker.cloudsmith.io/convoy/convoy/frain-dev/convoy:v0.9.2
  command: ["./cmd", "stream", "--config", "convoy.json"]
...

The --config value being different aside, there's clearly a difference in what arg each component is running with from my examples taken from the child helm charts - notably in stream's case where it's also being started up with the worker arg.

If the docker-compose.yml is the basis for the cmd and args config for each component, the helm charts should be consistent to that.

All Deployments Fail to Start Up Due to Perceived Migration Pending

The scheduler, stream, server, and worker Deployments all error out on start up with this message:

Error: migrate: Pending migrations exist, please run convoy migrate first
time="2023-04-19T18:17:33Z" level=fatal msg="migrate: Pending migrations exist, please run convoy migrate first"
Stream closed EOF for dev/convoy-scheduler-c88dbd5c5-s7k62 (convoy-scheduler)

The migrate Job itself also errors out like so:

2023-04-19T17:53:34.565502246Z stdout F {"level":"fatal","msg":"migration up failed with error: pq: syntax error at or near \"NULLS\" handling 1677078479.sql","time":"2023-04-19 17:53:34"}

This is on a fresh rollout using AWS RDS as the DB backend. I'm happy to close this out and file in the convoy repo if that's a better place for this.

Refactor convoy/values.yaml to Consume postgresql In Lieu of config.database.dsn

The current practice of using values.yaml's config.dsn attribute to essentially stuff an entire JSON object violates security considerations. The values.postgresql attribute is already structured to build the dsn value, and would cooperate with GitOps tooling like FluxCD's helm-controller where value overrides can be injected from Secret. The current methodology:

  1. Forces users to put their DB backend credentials in plaintext - in values.yaml if not using pod local postgres
  2. Risks placing sensitive information in the open if following a GitOps model such as FluxCD where that config ends up in SCM

The JSON object for config should be compartmentalized and built via a helper template in templates/_helpers.tpl, which also affords flexibility if an end user does not want to include config like smtp setup - the helper template would simply ignore tacking on that attribute to the built JSON object.

Remove Superfluous values in Child Charts

Child charts like migrate do not have templates for Ingress resources, so they should be removed from that child chart's values.yaml. Even if helm simply disregards any declared values with defaults if they are not consumed, this is a bad practice and creates potential confusion for end users in the absence of a readme.md.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.