This repository contains helm charts for Chatwoot.
helm repo add chatwoot https://chatwoot.github.io/charts
helm install chatwoot chatwoot/chatwoot
Check the README.md
Helm Charts for Chatwoot
License: MIT License
Hello!
Is this possible to add possibility for adding custom labels in metadata in deployment ?
Look into
How to
I dread ChatWoot upgrades.
I haven't had a clean upgrade since we started using it.
There's always something being changed in the chart that breaks things.
This time it's something about imagePullSecrets
.
Error: Command failed: /tmp/.mount_Lens-2EH4iuK/resources/x64/helm upgrade caitwoot chatwoot/chatwoot --version 1.1.8 --values /tmp/14d923a3-b9c6-43fd-b3ad-aa1326fd1162-values.yaml --namespace woot --kubeconfig /tmp/kubeconfig-c98c68b5fd67d453a90b0076edf39f54
Error: UPGRADE FAILED: cannot patch "caitwoot-chatwoot-web" with kind Deployment: "" is invalid: patch: Invalid value: "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{\"deployment.kubernetes.io/revision\":\"20\",\"meta.helm.sh/release-name\":\"caitwoot\",\"meta.helm.sh/release-namespace\":\"woot\"},\"creationTimestamp\":\"2022-12-21T16:11:08Z\",\"generation\":21,\"labels\":{\"app\":\"caitwoot-chatwoot\",\"app.kubernetes.io/managed-by\":\"Helm\",\"chart\":\"chatwoot-1.1.8\",\"heritage\":\"Helm\",\"release\":\"caitwoot\"},\"managedFields\":[{\"manager\":\"node-fetch\",\"operation\":\"Update\",\"apiVersion\":\"apps/v1\",\"time\":\"2023-02-13T15:08:34Z\",\"fieldsType\":\"FieldsV1\",\"fieldsV1\":{\"f:spec\":{\"f:template\":{\"f:metadata\":{\"f:annotations\":{\"f:kubectl.kubernetes.io/restartedAt\":{}}}}}}},{\"manager\":\"helm\",\"operation\":\"Update\",\"apiVersion\":\"apps/v1\",\"time\":\"2024-02-28T14:58:25Z\",\"fieldsType\":\"FieldsV1\",\"fieldsV1\":{\"f:metadata\":{\"f:annotations\":{\".\":{},\"f:meta.helm.sh/release-name\":{},\"f:meta.helm.sh/release-namespace\":{}},\"f:labels\":{\".\":{},\"f:app\":{},\"f:app.kubernetes.io/managed-by\":{},\"f:chart\":{},\"f:heritage\":{},\"f:release\":{}}},\"f:spec\":{\"f:progressDeadlineSeconds\":{},\"f:replicas\":{},\"f:revisionHistoryLimit\":{},\"f:selector\":{},\"f:strategy\":{\"f:rollingUpdate\":{\".\":{},\"f:maxSurge\":{},\"f:maxUnavailable\":{}},\"f:type\":{}},\"f:template\":{\"f:metadata\":{\"f:annotations\":{\".\":{},\"f:checksum/config\":{}},\"f:labels\":{\".\":{},\"f:app\":{},\"f:release\":{},\"f:role\":{}}},\"f:spec\":{\"f:containers\":{\"k:{\\\"name\\\":\\\"chatwoot-web\\\"}\":{\".\":{},\"f:args\":{},\"f:command\":{},\"f:envFrom\":{},\"f:image\":{},\"f:imagePullPolicy\":{},\"f:name\":{},\"f:ports\":{\".\":{},\"k:{\\\"containerPort\\\":3000,\\\"protocol\\\":\\\"TCP\\\"}\":{\".\":{},\"f:containerPort\":{},\"f:protocol\":{}}},\"f:resources\":{},\"f:terminationMessagePath\":{},\"f:terminationMessagePolicy\":{},\"f:volumeMounts\":{\".\":{},\"k:{\\\"mountPath\\\":\\\"/app/tmp\\\"}\":{\".\":{},\"f:mountPath\":{},\"f:name\":{}}}}},\"f:dnsPolicy\":{},\"f:restartPolicy\":{},\"f:schedulerName\":{},\"f:securityContext\":{},\"f:serviceAccount\":{},\"f:serviceAccountName\":{},\"f:terminationGracePeriodSeconds\":{},\"f:volumes\":{\".\":{},\"k:{\\\"name\\\":\\\"cache\\\"}\":{\".\":{},\"f:emptyDir\":{},\"f:name\":{}}}}}}}},{\"manager\":\"kube-controller-manager\",\"operation\":\"Update\",\"apiVersion\":\"apps/v1\",\"time\":\"2024-03-18T17:55:50Z\",\"fieldsType\":\"FieldsV1\",\"fieldsV1\":{\"f:metadata\":{\"f:annotations\":{\"f:deployment.kubernetes.io/revision\":{}}},\"f:status\":{\"f:availableReplicas\":{},\"f:conditions\":{\".\":{},\"k:{\\\"type\\\":\\\"Available\\\"}\":{\".\":{},\"f:lastTransitionTime\":{},\"f:lastUpdateTime\":{},\"f:message\":{},\"f:reason\":{},\"f:status\":{},\"f:type\":{}},\"k:{\\\"type\\\":\\\"Progressing\\\"}\":{\".\":{},\"f:lastTransitionTime\":{},\"f:lastUpdateTime\":{},\"f:message\":{},\"f:reason\":{},\"f:status\":{},\"f:type\":{}}},\"f:observedGeneration\":{},\"f:readyReplicas\":{},\"f:replicas\":{},\"f:updatedReplicas\":{}}},\"subresource\":\"status\"}],\"name\":\"caitwoot-chatwoot-web\",\"namespace\":\"woot\",\"resourceVersion\":\"384969638\",\"uid\":\"4f2d70d5-2948-4694-8e80-18735ed1bb57\"},\"spec\":{\"progressDeadlineSeconds\":600,\"replicas\":1,\"revisionHistoryLimit\":10,\"selector\":{\"matchLabels\":{\"app\":\"caitwoot-chatwoot\",\"release\":\"caitwoot\",\"role\":\"web\"}},\"strategy\":{\"type\":\"RollingUpdate\",\"rollingUpdate\":{\"maxUnavailable\":\"25%!\(MISSING)",\"maxSurge\":\"25%!\(MISSING)"}},\"template\":{\"metadata\":{\"annotations\":{\"checksum/config\":\"e013226117bca079b0bafe2427a0acfd4ec5feb680f512ee6239ad3ca22ecd61\",\"kubectl.kubernetes.io/restartedAt\":\"2023-02-13T15:08:34Z\"},\"creationTimestamp\":null,\"labels\":{\"app\":\"caitwoot-chatwoot\",\"release\":\"caitwoot\",\"role\":\"web\"}},\"spec\":{\"containers\":[{\"args\":[\"bundle\",\"exec\",\"rails\",\"s\",\"-p\",\"3000\",\"-b\",\"0.0.0.0\"],\"command\":[\"docker/entrypoints/rails.sh\"],\"envFrom\":[{\"secretRef\":{\"name\":\"caitwoot-chatwoot-env\"}}],\"image\":\"chatwoot/chatwoot:v3.7.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"chatwoot-web\",\"ports\":[{\"containerPort\":3000}],\"volumeMounts\":[{\"mountPath\":\"/app/tmp\",\"name\":\"cache\"}]}],\"dnsPolicy\":\"ClusterFirst\",\"imagePullSecrets\":[\"docker-io-key\"],\"restartPolicy\":\"Always\",\"schedulerName\":\"default-scheduler\",\"securityContext\":{},\"serviceAccount\":\"caitwoot-chatwoot\",\"serviceAccountName\":\"caitwoot-chatwoot\",\"terminationGracePeriodSeconds\":30,\"volumes\":[{\"name\":\"cache\",\"emptyDir\":{}}]}}},\"status\":{\"observedGeneration\":21,\"replicas\":1,\"updatedReplicas\":1,\"readyReplicas\":1,\"availableReplicas\":1,\"conditions\":[{\"type\":\"Progressing\",\"status\":\"True\",\"lastUpdateTime\":\"2024-02-28T14:59:27Z\",\"lastTransitionTime\":\"2023-04-11T23:28:26Z\",\"reason\":\"NewReplicaSetAvailable\",\"message\":\"ReplicaSet \\\"caitwoot-chatwoot-web-6988b4897b\\\" has successfully progressed.\"},{\"type\":\"Available\",\"status\":\"True\",\"lastUpdateTime\":\"2024-03-18T17:55:50Z\",\"lastTransitionTime\":\"2024-03-18T17:55:50Z\",\"reason\":\"MinimumReplicasAvailable\",\"message\":\"Deployment has minimum availability.\"}]}}": json: cannot unmarshal string into Go struct field PodSpec.spec.template.spec.imagePullSecrets of type v1.LocalObjectReference && cannot patch "caitwoot-chatwoot-worker" with kind Deployment: "" is invalid: patch: Invalid value: "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{\"deployment.kubernetes.io/revision\":\"20\",\"meta.helm.sh/release-name\":\"caitwoot\",\"meta.helm.sh/release-namespace\":\"woot\"},\"creationTimestamp\":\"2022-12-21T16:11:08Z\",\"generation\":20,\"labels\":{\"app\":\"caitwoot-chatwoot\",\"app.kubernetes.io/managed-by\":\"Helm\",\"chart\":\"chatwoot-1.1.8\",\"heritage\":\"Helm\",\"release\":\"caitwoot\"},\"managedFields\":[{\"manager\":\"node-fetch\",\"operation\":\"Update\",\"apiVersion\":\"apps/v1\",\"time\":\"2023-02-13T15:08:37Z\",\"fieldsType\":\"FieldsV1\",\"fieldsV1\":{\"f:spec\":{\"f:template\":{\"f:metadata\":{\"f:annotations\":{\"f:kubectl.kubernetes.io/restartedAt\":{}}}}}}},{\"manager\":\"helm\",\"operation\":\"Update\",\"apiVersion\":\"apps/v1\",\"time\":\"2024-02-28T14:58:25Z\",\"fieldsType\":\"FieldsV1\",\"fieldsV1\":{\"f:metadata\":{\"f:annotations\":{\".\":{},\"f:meta.helm.sh/release-name\":{},\"f:meta.helm.sh/release-namespace\":{}},\"f:labels\":{\".\":{},\"f:app\":{},\"f:app.kubernetes.io/managed-by\":{},\"f:chart\":{},\"f:heritage\":{},\"f:release\":{}}},\"f:spec\":{\"f:progressDeadlineSeconds\":{},\"f:replicas\":{},\"f:revisionHistoryLimit\":{},\"f:selector\":{},\"f:strategy\":{\"f:rollingUpdate\":{\".\":{},\"f:maxSurge\":{},\"f:maxUnavailable\":{}},\"f:type\":{}},\"f:template\":{\"f:metadata\":{\"f:annotations\":{\".\":{},\"f:checksum/config\":{}},\"f:labels\":{\".\":{},\"f:app\":{},\"f:release\":{},\"f:role\":{}}},\"f:spec\":{\"f:containers\":{\"k:{\\\"name\\\":\\\"chatwoot-workers\\\"}\":{\".\":{},\"f:args\":{},\"f:envFrom\":{},\"f:image\":{},\"f:imagePullPolicy\":{},\"f:name\":{},\"f:resources\":{},\"f:terminationMessagePath\":{},\"f:terminationMessagePolicy\":{},\"f:volumeMounts\":{\".\":{},\"k:{\\\"mountPath\\\":\\\"/app/tmp\\\"}\":{\".\":{},\"f:mountPath\":{},\"f:name\":{}}}}},\"f:dnsPolicy\":{},\"f:restartPolicy\":{},\"f:schedulerName\":{},\"f:securityContext\":{},\"f:serviceAccount\":{},\"f:serviceAccountName\":{},\"f:terminationGracePeriodSeconds\":{},\"f:volumes\":{\".\":{},\"k:{\\\"name\\\":\\\"cache\\\"}\":{\".\":{},\"f:emptyDir\":{},\"f:name\":{}}}}}}}},{\"manager\":\"kube-controller-manager\",\"operation\":\"Update\",\"apiVersion\":\"apps/v1\",\"time\":\"2024-03-18T18:02:27Z\",\"fieldsType\":\"FieldsV1\",\"fieldsV1\":{\"f:metadata\":{\"f:annotations\":{\"f:deployment.kubernetes.io/revision\":{}}},\"f:status\":{\"f:availableReplicas\":{},\"f:conditions\":{\".\":{},\"k:{\\\"type\\\":\\\"Available\\\"}\":{\".\":{},\"f:lastTransitionTime\":{},\"f:lastUpdateTime\":{},\"f:message\":{},\"f:reason\":{},\"f:status\":{},\"f:type\":{}},\"k:{\\\"type\\\":\\\"Progressing\\\"}\":{\".\":{},\"f:lastTransitionTime\":{},\"f:lastUpdateTime\":{},\"f:message\":{},\"f:reason\":{},\"f:status\":{},\"f:type\":{}}},\"f:observedGeneration\":{},\"f:readyReplicas\":{},\"f:replicas\":{},\"f:updatedReplicas\":{}}},\"subresource\":\"status\"}],\"name\":\"caitwoot-chatwoot-worker\",\"namespace\":\"woot\",\"resourceVersion\":\"384977169\",\"uid\":\"f8d4c4d3-b741-4a6c-a501-93ce5b47e86f\"},\"spec\":{\"progressDeadlineSeconds\":600,\"replicas\":2,\"revisionHistoryLimit\":10,\"selector\":{\"matchLabels\":{\"app\":\"caitwoot-chatwoot\",\"release\":\"caitwoot\",\"role\":\"worker\"}},\"strategy\":{\"type\":\"RollingUpdate\",\"rollingUpdate\":{\"maxUnavailable\":\"25%!\(MISSING)",\"maxSurge\":\"25%!\(MISSING)"}},\"template\":{\"metadata\":{\"annotations\":{\"checksum/config\":\"e013226117bca079b0bafe2427a0acfd4ec5feb680f512ee6239ad3ca22ecd61\",\"kubectl.kubernetes.io/restartedAt\":\"2023-02-13T15:08:37Z\"},\"creationTimestamp\":null,\"labels\":{\"app\":\"caitwoot-chatwoot\",\"release\":\"caitwoot\",\"role\":\"worker\"}},\"spec\":{\"containers\":[{\"args\":[\"bundle\",\"exec\",\"sidekiq\",\"-C\",\"config/sidekiq.yml\"],\"envFrom\":[{\"secretRef\":{\"name\":\"caitwoot-chatwoot-env\"}}],\"image\":\"chatwoot/chatwoot:v3.7.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"chatwoot-workers\",\"volumeMounts\":[{\"mountPath\":\"/app/tmp\",\"name\":\"cache\"}]}],\"dnsPolicy\":\"ClusterFirst\",\"imagePullSecrets\":[\"docker-io-key\"],\"restartPolicy\":\"Always\",\"schedulerName\":\"default-scheduler\",\"securityContext\":{},\"serviceAccount\":\"caitwoot-chatwoot\",\"serviceAccountName\":\"caitwoot-chatwoot\",\"terminationGracePeriodSeconds\":30,\"volumes\":[{\"name\":\"cache\",\"emptyDir\":{}}]}}},\"status\":{\"observedGeneration\":20,\"replicas\":2,\"updatedReplicas\":2,\"readyReplicas\":2,\"availableReplicas\":2,\"conditions\":[{\"type\":\"Progressing\",\"status\":\"True\",\"lastUpdateTime\":\"2024-02-28T15:00:28Z\",\"lastTransitionTime\":\"2023-04-11T23:28:26Z\",\"reason\":\"NewReplicaSetAvailable\",\"message\":\"ReplicaSet \\\"caitwoot-chatwoot-worker-7ff456dc5b\\\" has successfully progressed.\"},{\"type\":\"Available\",\"status\":\"True\",\"lastUpdateTime\":\"2024-03-18T18:02:26Z\",\"lastTransitionTime\":\"2024-03-18T18:02:26Z\",\"reason\":\"MinimumReplicasAvailable\",\"message\":\"Deployment has minimum availability.\"}]}}": json: cannot unmarshal string into Go struct field PodSpec.spec.template.spec.imagePullSecrets of type v1.LocalObjectReference
I have it defined and the secret exists:
imagePullSecrets:
- docker-io-key
Removing it allows the upgrade to continue...right into the brick wall that is docker.io rate-limiting.
Chart version 1.1.8.
When issuing the helm upgrade command, I get:
init-postgres pgb-pgbouncer.ops:5432 - accepting connections │
│ init-postgres Database ready to accept connections. │
│ Stream closed EOF for support/chatwoot-migrate-dgd7r (init-postgres) │
│ Stream closed EOF for support/chatwoot-migrate-dgd7r (init-redis) │
│ db-migrate-job fatal: not a git repository (or any of the parent directories): .git │
│ db-migrate-job I, [2023-09-27T12:13:35.132167 chatwoot/chatwoot#1] INFO -- : Migrating to UpdateReportingEventsFirstResponseTime (20230302054408) │
│ db-migrate-job == 20230302054408 UpdateReportingEventsFirstResponseTime: migrating =========== │
│ db-migrate-job rails aborted! │
│ db-migrate-job StandardError: An error has occurred, this and all later migrations canceled: │
│ db-migrate-job │
│ db-migrate-job PG::SyntaxError: ERROR: zero-length delimited identifier at or near """" │
│ db-migrate-job LINE 1: ... "accounts".* FROM "accounts" ORDER BY "accounts"."" ASC LIM... │
│ db-migrate-job ^ │
│ db-migrate-job /app/db/migrate/20230302054408_update_reporting_events_first_response_time.rb:3:in `change' │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:26:in `block (3 levels) in <main>' │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:18:in `each' │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:18:in `block (2 levels) in <main>' │
│ db-migrate-job │
│ db-migrate-job Caused by: │
│ db-migrate-job ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR: zero-length delimited identifier at or near """" │
│ db-migrate-job LINE 1: ... "accounts".* FROM "accounts" ORDER BY "accounts"."" ASC LIM... │
│ db-migrate-job ^ │
│ db-migrate-job /app/db/migrate/20230302054408_update_reporting_events_first_response_time.rb:3:in `change' │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:26:in `block (3 levels) in <main>' │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:18:in `each' │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:18:in `block (2 levels) in <main>' │
│ db-migrate-job │
│ db-migrate-job Caused by: │
│ db-migrate-job PG::SyntaxError: ERROR: zero-length delimited identifier at or near """" │
│ db-migrate-job LINE 1: ... "accounts".* FROM "accounts" ORDER BY "accounts"."" ASC LIM... │
│ db-migrate-job ^ │
│ db-migrate-job /app/db/migrate/20230302054408_update_reporting_events_first_response_time.rb:3:in `change' │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:26:in `block (3 levels) in <main>' │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:18:in `each' │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:18:in `block (2 levels) in <main>' │
│ db-migrate-job Tasks: TOP => db:migrate │
│ db-migrate-job (See full trace by running task with --trace)
No response
Kubernetes
Other [please specify in the description]
None
No response
No response
No response
i am unable to run chatwoot stack on k8s using helm chart in development mode
image:
repository: chatwoot/chatwoot
tag: v3.0.0
pullPolicy: IfNotPresent
autoscaling:
apiVersion: autoscaling/v2
services:
name: chatwoot
internalPort: 3000
targetPort: 3000
type: ClusterIP
serviceAccount:
create: true
service:
type: ClusterIP
port: 80
postgresql:
enabled: false
auth:
username: .........
postgresPassword: ...............
database: chatwoot_dev
postgresqlHost:........................
postgresqlPort: 5432
redis:
enabled: true
nameOverride: chatwoot-redis
auth:
password: redis
master:
persistence:
enabled: false
replica:
replicaCount: 1
hooks:
affinity: {}
migrate:
env: []
resources:
limits:
memory: 100Mi
requests:
memory: 100Mi
hookAnnotation: "post-install,post-upgrade"
env:
ACTIVE_STORAGE_SERVICE: local
ANDROID_BUNDLE_ID: com.chatwoot.app
ANDROID_SHA256_CERT_FINGERPRINT: "AC:73:8E:DE:EB:56:EA:CC:10:87:02:A7:65:37:7B:38:D4:5D:D4:53:F8:3B:FB:D3:C6:28:64:1D:AA:08:1E:D8"
ENABLE_ACCOUNT_SIGNUP: false
FORCE_SSL: false
FRONTEND_URL: "*..*.com"
INSTALLATION_ENV: helm
IOS_APP_ID: 6C953F3RX2.com.chatwoot.app
LOG_LEVEL: info
LOG_SIZE: 500
RAILS_ENV: development
RAILS_LOG_TO_STDOUT: true
RAILS_MAX_THREADS: 5
REDIS_TLS: false
SECRET_KEY_BASE: 1vbpySIMyz720flTsnOELWVcFlZpjNGUw==
it is working if i switch RAILS_ENV production
& it should work if i switch back RAILS_ENV to devlopment
Kubernetes
AWS
None
i am using custom k8s deployed on aws ec2
No response
No response
log of chatwoot-web pod
10566534Z Using web-push 3.0.0
2023-09-07T09:46:10.211475477Z Using webpacker 5.4.4
2023-09-07T09:46:10.212098375Z Using wisper 2.0.0
2023-09-07T09:46:10.212839615Z Using working_hours 1.4.1
2023-09-07T09:46:10.248566357Z Bundle complete! 123 Gemfile dependencies, 245 gems now installed.
2023-09-07T09:46:10.248684028Z Gems in the groups 'development' and 'test' were not installed.
2023-09-07T09:46:10.248767419Z Bundled gems are installed into `/gems`
2023-09-07T09:46:10.257619861Z + BUNDLE='bundle check'
2023-09-07T09:46:10.257667382Z + bundle check
2023-09-07T09:46:10.708885707Z The Gemfile's dependencies are satisfied
2023-09-07T09:46:10.712534957Z + exec bundle exec rails s -p 3000 -b 0.0.0.0
2023-09-07T09:46:16.778826349Z => Booting Puma
2023-09-07T09:46:16.778845299Z => Rails 7.0.5.1 application starting in development
2023-09-07T09:46:16.778869579Z => Run `bin/rails server --help` for more startup options
2023-09-07T09:46:16.798705582Z Exiting
2023-09-07T09:46:16.869913691Z <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require': cannot load such file -- listen (LoadError)
2023-09-07T09:46:16.869957472Z from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T09:46:16.869962112Z from /gems/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
2023-09-07T09:46:16.869965652Z from /gems/ruby/3.2.0/gems/zeitwerk-2.6.9/lib/zeitwerk/kernel.rb:38:in `require'
2023-09-07T09:46:16.869969222Z from /gems/ruby/3.2.0/gems/activesupport-7.0.5.1/lib/active_support/evented_file_update_checker.rb:6:in `<main>'
2023-09-07T09:46:16.869972442Z from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T09:46:16.869975032Z from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T09:46:16.869977692Z from /gems/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
2023-09-07T09:46:16.869980342Z from /gems/ruby/3.2.0/gems/zeitwerk-2.6.9/lib/zeitwerk/kernel.rb:38:in `require'
2023-09-07T09:46:16.869983442Z from /app/config/environments/development.rb:61:in `block in <main>'
2023-09-07T09:46:16.869986092Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/railtie.rb:257:in `instance_eval'
2023-09-07T09:46:16.869988742Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/railtie.rb:257:in `configure'
2023-09-07T09:46:16.869992042Z from /app/config/environments/development.rb:1:in `<main>'
2023-09-07T09:46:16.869995052Z from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T09:46:16.869997822Z from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T09:46:16.870000442Z from /gems/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
2023-09-07T09:46:16.870003013Z from /gems/ruby/3.2.0/gems/zeitwerk-2.6.9/lib/zeitwerk/kernel.rb:38:in `require'
2023-09-07T09:46:16.870006073Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/engine.rb:562:in `block (2 levels) in <class:Engine>'
2023-09-07T09:46:16.870008623Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/engine.rb:561:in `each'
2023-09-07T09:46:16.870019853Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/engine.rb:561:in `block in <class:Engine>'
2023-09-07T09:46:16.870022743Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/initializable.rb:32:in `instance_exec'
2023-09-07T09:46:16.870025513Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/initializable.rb:32:in `run'
2023-09-07T09:46:16.870028413Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/initializable.rb:61:in `block in run_initializers'
2023-09-07T09:46:16.870030933Z from /usr/local/lib/ruby/3.2.0/tsort.rb:228:in `block in tsort_each'
2023-09-07T09:46:16.870033543Z from /usr/local/lib/ruby/3.2.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
2023-09-07T09:46:16.870036273Z from /usr/local/lib/ruby/3.2.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from'
2023-09-07T09:46:16.870038943Z from /usr/local/lib/ruby/3.2.0/tsort.rb:431:in `each_strongly_connected_component_from'
2023-09-07T09:46:16.870041833Z from /usr/local/lib/ruby/3.2.0/tsort.rb:421:in `block in each_strongly_connected_component_from'
2023-09-07T09:46:16.870044733Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/initializable.rb:50:in `each'
2023-09-07T09:46:16.870047363Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/initializable.rb:50:in `tsort_each_child'
2023-09-07T09:46:16.870049973Z from /usr/local/lib/ruby/3.2.0/tsort.rb:415:in `call'
2023-09-07T09:46:16.870055893Z from /usr/local/lib/ruby/3.2.0/tsort.rb:415:in `each_strongly_connected_component_from'
2023-09-07T09:46:16.870059363Z from /usr/local/lib/ruby/3.2.0/tsort.rb:349:in `block in each_strongly_connected_component'
2023-09-07T09:46:16.870062073Z from /usr/local/lib/ruby/3.2.0/tsort.rb:347:in `each'
2023-09-07T09:46:16.870065303Z from /usr/local/lib/ruby/3.2.0/tsort.rb:347:in `call'
2023-09-07T09:46:16.870068313Z from /usr/local/lib/ruby/3.2.0/tsort.rb:347:in `each_strongly_connected_component'
2023-09-07T09:46:16.870071943Z from /usr/local/lib/ruby/3.2.0/tsort.rb:226:in `tsort_each'
2023-09-07T09:46:16.870075114Z from /usr/local/lib/ruby/3.2.0/tsort.rb:205:in `tsort_each'
2023-09-07T09:46:16.870078444Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/initializable.rb:60:in `run_initializers'
2023-09-07T09:46:16.870081194Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/application.rb:372:in `initialize!'
2023-09-07T09:46:16.870084524Z from /app/config/environment.rb:5:in `<main>'
2023-09-07T09:46:16.870087244Z from config.ru:3:in `require_relative'
2023-09-07T09:46:16.870089864Z from config.ru:3:in `block in <main>'
2023-09-07T09:46:16.870092944Z from /gems/ruby/3.2.0/gems/rack-2.2.8/lib/rack/builder.rb:116:in `eval'
2023-09-07T09:46:16.870095784Z from /gems/ruby/3.2.0/gems/rack-2.2.8/lib/rack/builder.rb:116:in `new_from_string'
2023-09-07T09:46:16.870098634Z from /gems/ruby/3.2.0/gems/rack-2.2.8/lib/rack/builder.rb:105:in `load_file'
2023-09-07T09:46:16.870101544Z from /gems/ruby/3.2.0/gems/rack-2.2.8/lib/rack/builder.rb:66:in `parse_file'
2023-09-07T09:46:16.870109494Z from /gems/ruby/3.2.0/gems/rack-2.2.8/lib/rack/server.rb:349:in `build_app_and_options_from_config'
2023-09-07T09:46:16.870112694Z from /gems/ruby/3.2.0/gems/rack-2.2.8/lib/rack/server.rb:249:in `app'
2023-09-07T09:46:16.870115354Z from /gems/ruby/3.2.0/gems/rack-2.2.8/lib/rack/server.rb:422:in `wrapped_app'
2023-09-07T09:46:16.870118224Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/commands/server/server_command.rb:76:in `log_to_stdout'
2023-09-07T09:46:16.870121474Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/commands/server/server_command.rb:36:in `start'
2023-09-07T09:46:16.870124174Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/commands/server/server_command.rb:143:in `block in perform'
2023-09-07T09:46:16.870131614Z from <internal:kernel>:90:in `tap'
2023-09-07T09:46:16.870134534Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/commands/server/server_command.rb:134:in `perform'
2023-09-07T09:46:16.870137334Z from /gems/ruby/3.2.0/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'
2023-09-07T09:46:16.870140094Z from /gems/ruby/3.2.0/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'
2023-09-07T09:46:16.870142994Z from /gems/ruby/3.2.0/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'
2023-09-07T09:46:16.870145805Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/command/base.rb:87:in `perform'
2023-09-07T09:46:16.870148515Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/command.rb:48:in `invoke'
2023-09-07T09:46:16.870151425Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/commands.rb:18:in `<main>'
2023-09-07T09:46:16.870154165Z from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T09:46:16.870156915Z from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T09:46:16.870159605Z from /gems/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
2023-09-07T09:46:16.870162885Z from bin/rails:4:in `<main>'
log of migration pod
2023-09-07T09:57:12.386468810Z rails aborted!
2023-09-07T09:57:12.386563131Z LoadError: cannot load such file -- annotate
2023-09-07T09:57:12.386854034Z <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T09:57:12.386861874Z <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T09:57:12.386865204Z /gems/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
2023-09-07T09:57:12.386868334Z /gems/ruby/3.2.0/gems/zeitwerk-2.6.9/lib/zeitwerk/kernel.rb:38:in `require'
2023-09-07T09:57:12.386871154Z /app/lib/tasks/auto_annotate_models.rake:5:in `<main>'
2023-09-07T09:57:12.386873944Z /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/engine.rb:661:in `load'
2023-09-07T09:57:12.386876584Z /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/engine.rb:661:in `block in run_tasks_blocks'
2023-09-07T09:57:12.386879705Z /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/engine.rb:661:in `each'
2023-09-07T09:57:12.386885445Z /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/engine.rb:661:in `run_tasks_blocks'
2023-09-07T09:57:12.386888665Z /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/application.rb:501:in `run_tasks_blocks'
log of worker node
2023-09-07T10:02:05.264453503Z bundler: failed to load command: sidekiq (/gems/ruby/3.2.0/bin/sidekiq)
2023-09-07T10:02:05.271858633Z <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require': cannot load such file -- listen (LoadError)
2023-09-07T10:02:05.271874483Z from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T10:02:05.271877273Z from /gems/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
2023-09-07T10:02:05.271879673Z from /gems/ruby/3.2.0/gems/zeitwerk-2.6.9/lib/zeitwerk/kernel.rb:38:in `require'
2023-09-07T10:02:05.271882123Z from /gems/ruby/3.2.0/gems/activesupport-7.0.5.1/lib/active_support/evented_file_update_checker.rb:6:in `<main>'
2023-09-07T10:02:05.271884284Z from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T10:02:05.271886414Z from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T10:02:05.271888624Z from /gems/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
2023-09-07T10:02:05.271890804Z from /gems/ruby/3.2.0/gems/zeitwerk-2.6.9/lib/zeitwerk/kernel.rb:38:in `require'
2023-09-07T10:02:05.271893384Z from /app/config/environments/development.rb:61:in `block in <main>'
2023-09-07T10:02:05.271895894Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/railtie.rb:257:in `instance_eval'
2023-09-07T10:02:05.271898124Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/railtie.rb:257:in `configure'
2023-09-07T10:02:05.271914504Z from /app/config/environments/development.rb:1:in `<main>'
2023-09-07T10:02:05.271917124Z from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T10:02:05.271919334Z from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T10:02:05.271921494Z from /gems/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
2023-09-07T10:02:05.271923624Z from /gems/ruby/3.2.0/gems/zeitwerk-2.6.9/lib/zeitwerk/kernel.rb:38:in `require'
2023-09-07T10:02:05.271926044Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/engine.rb:562:in `block (2 levels) in <class:Engine>'
2023-09-07T10:02:05.271928204Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/engine.rb:561:in `each'
2023-09-07T10:02:05.271930314Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/engine.rb:561:in `block in <class:Engine>'
2023-09-07T10:02:05.271932474Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/initializable.rb:32:in `instance_exec'
2023-09-07T10:02:05.271934624Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/initializable.rb:32:in `run'
2023-09-07T10:02:05.271936764Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/initializable.rb:61:in `block in run_initializers'
2023-09-07T10:02:05.271938934Z from /usr/local/lib/ruby/3.2.0/tsort.rb:228:in `block in tsort_each'
2023-09-07T10:02:05.271941044Z from /usr/local/lib/ruby/3.2.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
2023-09-07T10:02:05.271943174Z from /usr/local/lib/ruby/3.2.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from'
2023-09-07T10:02:05.271945414Z from /usr/local/lib/ruby/3.2.0/tsort.rb:431:in `each_strongly_connected_component_from'
2023-09-07T10:02:05.271947534Z from /usr/local/lib/ruby/3.2.0/tsort.rb:421:in `block in each_strongly_connected_component_from'
2023-09-07T10:02:05.271949684Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/initializable.rb:50:in `each'
2023-09-07T10:02:05.271951844Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/initializable.rb:50:in `tsort_each_child'
2023-09-07T10:02:05.271960855Z from /usr/local/lib/ruby/3.2.0/tsort.rb:415:in `call'
2023-09-07T10:02:05.271963255Z from /usr/local/lib/ruby/3.2.0/tsort.rb:415:in `each_strongly_connected_component_from'
2023-09-07T10:02:05.271965515Z from /usr/local/lib/ruby/3.2.0/tsort.rb:349:in `block in each_strongly_connected_component'
2023-09-07T10:02:05.271967815Z from /usr/local/lib/ruby/3.2.0/tsort.rb:347:in `each'
2023-09-07T10:02:05.271970085Z from /usr/local/lib/ruby/3.2.0/tsort.rb:347:in `call'
2023-09-07T10:02:05.271972215Z from /usr/local/lib/ruby/3.2.0/tsort.rb:347:in `each_strongly_connected_component'
2023-09-07T10:02:05.271974375Z from /usr/local/lib/ruby/3.2.0/tsort.rb:226:in `tsort_each'
2023-09-07T10:02:05.271976515Z from /usr/local/lib/ruby/3.2.0/tsort.rb:205:in `tsort_each'
2023-09-07T10:02:05.271978645Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/initializable.rb:60:in `run_initializers'
2023-09-07T10:02:05.271980845Z from /gems/ruby/3.2.0/gems/railties-7.0.5.1/lib/rails/application.rb:372:in `initialize!'
2023-09-07T10:02:05.271983035Z from /app/config/environment.rb:5:in `<top (required)>'
2023-09-07T10:02:05.271985155Z from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T10:02:05.271987265Z from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
2023-09-07T10:02:05.271989505Z from /gems/ruby/3.2.0/gems/sidekiq-7.1.2/lib/sidekiq/cli.rb:303:in `boot_application'
2023-09-07T10:02:05.271991625Z from /gems/ruby/3.2.0/gems/sidekiq-7.1.2/lib/sidekiq/cli.rb:42:in `run'
2023-09-07T10:02:05.271993765Z from /gems/ruby/3.2.0/gems/sidekiq-7.1.2/bin/sidekiq:31:in `<top (required)>'
2023-09-07T10:02:05.271999865Z from /gems/ruby/3.2.0/bin/sidekiq:25:in `load'
2023-09-07T10:02:05.272002225Z from /gems/ruby/3.2.0/bin/sidekiq:25:in `<top (required)>'
2023-09-07T10:02:05.272004395Z from /usr/local/bundle/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `load'
2023-09-07T10:02:05.272006545Z from /usr/local/bundle/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `kernel_load'
2023-09-07T10:02:05.272008685Z from /usr/local/bundle/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:23:in `run'
2023-09-07T10:02:05.272010815Z from /usr/local/bundle/gems/bundler-2.4.13/lib/bundler/cli.rb:492:in `exec'
2023-09-07T10:02:05.272012915Z from /usr/local/bundle/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
2023-09-07T10:02:05.272015005Z from /usr/local/bundle/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
2023-09-07T10:02:05.272017205Z from /usr/local/bundle/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
2023-09-07T10:02:05.272019335Z from /usr/local/bundle/gems/bundler-2.4.13/lib/bundler/cli.rb:34:in `dispatch'
2023-09-07T10:02:05.272021455Z from /usr/local/bundle/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
2023-09-07T10:02:05.272023595Z from /usr/local/bundle/gems/bundler-2.4.13/lib/bundler/cli.rb:28:in `start'
2023-09-07T10:02:05.272025735Z from /usr/local/bundle/gems/bundler-2.4.13/exe/bundle:45:in `block in <top (required)>'
2023-09-07T10:02:05.272027865Z from /usr/local/bundle/gems/bundler-2.4.13/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
2023-09-07T10:02:05.272030085Z from /usr/local/bundle/gems/bundler-2.4.13/exe/bundle:33:in `<top (required)>'
2023-09-07T10:02:05.272032326Z from /usr/local/bundle/bin/bundle:25:in `load'
2023-09-07T10:02:05.272034566Z from /usr/local/bundle/bin/bundle:25:in `<main>'
redis instances are running. & i have tested the connection to external postgres by changing RAILS_ENV to production
Hello!
I have tried to connect to both AWS products RDS and Redis by TLS/SSL
But first I can't find any documentation this and the second is this possible ?
Can you help ?
Thank you
Chatwoot running in kubernetes by your official chart
And i can't connect by TLS/SSL to Redis and RDS
No response
Kubernetes
AWS
None
No response
No response
No response
No response
I am trying to setup chatwoot on a local Kubernetes cluster using helm charts, and the debug mode shows the following output periodically:
ready.go:258: [debug] Service does not have load balancer ingress IP address: default/chatwoot
The kubectl versions are as follows:
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.5", GitCommit:"c285e781331a3785a7f436042c65c5641ce8a9e9", GitTreeState:"archive", BuildDate:"2022-03-17T21:14:47Z", GoVersion:"go1.18", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.4", GitCommit:"e6c093d87ea4cbb530a7b2ae91e54c0842d8308a", GitTreeState:"clean", BuildDate:"2022-03-06T21:32:53Z", GoVersion:"go1.17.7", Compiler:"gc", Platform:"linux/amd64"}
How to fix this debug message?
We use kvrocks as a drop-in replacement for redis. kvrocks does have username and password to connect. Currently the helm chart doesn't have any user_name for redis. It only assumes password and redis host. Can you please add support for taking username also for redis URL?
I use Traefik as a reverse proxy for my Kubernetes cluster. I configured the Chatwoot service to be type ClusterIP
and I created a traefik IngressRoute
for the service which worked fine, but the /cable
websocket endpoint didn't work. After a bit of research, I added the following middlwares to make it work:
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: chatwoot-websocket
spec:
headers:
customRequestHeaders:
Connection: keep-alive, Upgrade
Upgrade: WebSocket
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: chatwoot-forward-headers
spec:
headers:
customRequestHeaders:
X-Forwarded-Proto: https
Now the websocket connection works fine, but I currently have only one web
pod. For now this is fine for me since I don't have a ton of users for chatwoot, but I was wondering how I can make this work with multiple web
pods. As far as I understand the setup this would break the websocket connection since Traefik is distributing the requests randomly between the existing pods to distribute the load. My kubernetes cluster has multiple nodes and is behind a managed load balancer that is created by the Traefik service with type LoadBalancer
.
I would love to see support for a local relay, based on Postfix or Exim, to accept emails and post them to the endpoint provided by Action Mailbox: https://guides.rubyonrails.org/v6.0/action_mailbox_basics.html#postfix
This would simplify setups in which emails are sent to Google Workspace, Microsoft 365, or a self-hosted mail server, as one could simply set up a routing rule to forward the messages meant for Chatwoot to the Postfix/Exim relay and eliminate the need for an external service.
To secure the relay, one could use IP ranges of the service/server accepting the messages and/or a secret local alias.
When a nodeSelector
value is present, the templates call a function that's not present.
error calling include: template: no template "common.tplvalues.render"
Details -
│ Error: malformed chart or values:
│ templates/: template: chatwoot/charts/chatwoot/templates/tests/test-connection.yaml:19:20: executing "chatwoot/charts/chatwoot/templates/tests/test-connection.yaml" at <include "common.tplvalues.render" (dict "value" .Values.nodeSelector "context" $)>: error calling include: template: no template "common.tplvalues.render" associated with template "gotpl"
Reproduce:
Custom values:
nodeSelector:
environment: support
postgresql:
enabled: false
redis:
enabled: false
Apply
helm upgrade --install --version 1.1.3 --wait --timeout 300s --debug --dry-run -f values.yaml chatwoot chatwoot/chatwoot
Output:
history.go:56: [debug] getting history for release chatwoot
Release "chatwoot" does not exist. Installing it now.
install.go:214: [debug] Original chart version: "1.1.3"
install.go:231: [debug] CHART PATH: /home/arch/.cache/helm/repository/chatwoot-1.1.3.tgz
Error: template: chatwoot/templates/tests/test-connection.yaml:19:20: executing "chatwoot/templates/tests/test-connection.yaml" at <include "common.tplvalues.render" (dict "value" .Values.nodeSelector "context" $)>: error calling include: template: no template "common.tplvalues.render" associated with template "gotpl"
helm.go:84: [debug] template: chatwoot/templates/tests/test-connection.yaml:19:20: executing "chatwoot/templates/tests/test-connection.yaml" at <include "common.tplvalues.render" (dict "value" .Values.nodeSelector "context" $)>: error calling include: template: no template "common.tplvalues.render" associated with template "gotpl"
Should be removed in favor of services?
https://github.com/search?q=repo%3Achatwoot%2Fcharts%20Values.service&type=code
Hello!
Can you add variables for turning on SSL for connection to RDS postgres and add variable for user REDIS instead of using default user ?
Because your solution add to ENV REDIS_URL and DATABASE_URL looks bad
Thank you
Hello!
I did whate you wrote:
redis:
enabled: false
#auth:
#password: redis
# when defined the password field is ignored
# existingSecret: secret-name
# existingSecretPasswordKey: ""
host: redis
port: 6379
And i'm getting error with connection to AWS Redis
Caused by:
RedisClient::CommandError: ERR AUTH called without any password configured for the default user. Are you sure your configuration is correct?
need to Migrate manifests and API clients to use the autoscaling/v2 API version, available since v1.23
see https://kubernetes.io/docs/reference/using-api/deprecation-guide/#horizontalpodautoscaler-v126
This prevents deploying chatwoot on kubernetes versions >1.26
Possible solutions are to either use autoscaling/v2 (a drop in replacement), or to set the API version to a configurable value.
when I deploy the chart I am getting failures like:
+ exec bundle exec rails s -p 3000 -b 0.0.0.0
=> Booting Puma
=> Rails 6.1.6.1 application starting in production
=> Run `bin/rails server --help` for more startup options
Exiting
/usr/local/lib/ruby/3.0.0/uri/rfc3986_parser.rb:67:in `split': bad URI(is not URI?): "redis://:$(REDIS_PASSWORD)@cache.chat.svc.cluster.local:<no value>" (URI::InvalidURIError)
from /usr/local/lib/ruby/3.0.0/uri/rfc3986_parser.rb:72:in `parse'
from /usr/local/lib/ruby/3.0.0/uri/common.rb:171:in `parse'
from /gems/ruby/3.0.0/gems/sidekiq-6.4.2/lib/sidekiq/redis_connection.rb:102:in `log_info'
from /gems/ruby/3.0.0/gems/sidekiq-6.4.2/lib/sidekiq/redis_connection.rb:32:in `create'
from /gems/ruby/3.0.0/gems/sidekiq-6.4.2/lib/sidekiq.rb:136:in `redis='
from /app/config/initializers/sidekiq.rb:6:in `block in <main>'
from /gems/ruby/3.0.0/gems/sidekiq-6.4.2/lib/sidekiq.rb:83:in `configure_client'
from /app/config/initializers/sidekiq.rb:5:in `<main>'
from /gems/ruby/3.0.0/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:39:in `load'
from /gems/ruby/3.0.0/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:39:in `load'
from /gems/ruby/3.0.0/gems/activesupport-6.1.6.1/lib/active_support/dependencies.rb:326:in `block in load'
from /gems/ruby/3.0.0/gems/activesupport-6.1.6.1/lib/active_support/dependencies.rb:299:in `load_dependency'
from /gems/ruby/3.0.0/gems/activesupport-6.1.6.1/lib/active_support/dependencies.rb:326:in `load'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/engine.rb:681:in `block in load_config_initializer'
from /gems/ruby/3.0.0/gems/activesupport-6.1.6.1/lib/active_support/notifications.rb:205:in `instrument'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/engine.rb:680:in `load_config_initializer'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/engine.rb:634:in `block (2 levels) in <class:Engine>'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/engine.rb:633:in `each'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/engine.rb:633:in `block in <class:Engine>'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/initializable.rb:32:in `instance_exec'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/initializable.rb:32:in `run'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/initializable.rb:61:in `block in run_initializers'
from /usr/local/lib/ruby/3.0.0/tsort.rb:228:in `block in tsort_each'
from /usr/local/lib/ruby/3.0.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
from /usr/local/lib/ruby/3.0.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from'
from /usr/local/lib/ruby/3.0.0/tsort.rb:431:in `each_strongly_connected_component_from'
from /usr/local/lib/ruby/3.0.0/tsort.rb:421:in `block in each_strongly_connected_component_from'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/initializable.rb:50:in `each'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/initializable.rb:50:in `tsort_each_child'
from /usr/local/lib/ruby/3.0.0/tsort.rb:415:in `call'
from /usr/local/lib/ruby/3.0.0/tsort.rb:415:in `each_strongly_connected_component_from'
from /usr/local/lib/ruby/3.0.0/tsort.rb:349:in `block in each_strongly_connected_component'
from /usr/local/lib/ruby/3.0.0/tsort.rb:347:in `each'
from /usr/local/lib/ruby/3.0.0/tsort.rb:347:in `call'
from /usr/local/lib/ruby/3.0.0/tsort.rb:347:in `each_strongly_connected_component'
from /usr/local/lib/ruby/3.0.0/tsort.rb:226:in `tsort_each'
from /usr/local/lib/ruby/3.0.0/tsort.rb:205:in `tsort_each'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/initializable.rb:60:in `run_initializers'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/application.rb:391:in `initialize!'
from /app/config/environment.rb:5:in `<main>'
from config.ru:3:in `require_relative'
from config.ru:3:in `block in <main>'
from /gems/ruby/3.0.0/gems/rack-2.2.4/lib/rack/builder.rb:116:in `eval'
from /gems/ruby/3.0.0/gems/rack-2.2.4/lib/rack/builder.rb:116:in `new_from_string'
from /gems/ruby/3.0.0/gems/rack-2.2.4/lib/rack/builder.rb:105:in `load_file'
from /gems/ruby/3.0.0/gems/rack-2.2.4/lib/rack/builder.rb:66:in `parse_file'
from /gems/ruby/3.0.0/gems/rack-2.2.4/lib/rack/server.rb:349:in `build_app_and_options_from_config'
from /gems/ruby/3.0.0/gems/rack-2.2.4/lib/rack/server.rb:249:in `app'
from /gems/ruby/3.0.0/gems/rack-2.2.4/lib/rack/server.rb:422:in `wrapped_app'
from /gems/ruby/3.0.0/gems/rack-2.2.4/lib/rack/server.rb:312:in `block in start'
from /gems/ruby/3.0.0/gems/rack-2.2.4/lib/rack/server.rb:379:in `handle_profiling'
from /gems/ruby/3.0.0/gems/rack-2.2.4/lib/rack/server.rb:311:in `start'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/commands/server/server_command.rb:39:in `start'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/commands/server/server_command.rb:144:in `block in perform'
from <internal:kernel>:90:in `tap'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/commands/server/server_command.rb:135:in `perform'
from /gems/ruby/3.0.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
from /gems/ruby/3.0.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
from /gems/ruby/3.0.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/command/base.rb:69:in `perform'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/command.rb:48:in `invoke'
from /gems/ruby/3.0.0/gems/railties-6.1.6.1/lib/rails/commands.rb:18:in `<main>'
from /gems/ruby/3.0.0/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from /gems/ruby/3.0.0/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from bin/rails:4:in `<main>'
Error: Command failed: /tmp/.mount_Lens-2ygw8Fg/resources/x64/helm upgrade mywoot chatwoot/chatwoot --version 1.0.10 --values /tmp/dfd79a845ebbb7ba234e5349dc0c4604/values.yaml --namespace woot --kubeconfig /tmp/kubeconfig-c98c68b5fd67d453a90b0076edf39f54
coalesce.go:202: warning: destination for initContainers is a table. Ignoring non-table value []
coalesce.go:202: warning: destination for sidecars is a table. Ignoring non-table value []
Error: UPGRADE FAILED: cannot patch "mywoot-chatwoot" with kind Service: Service "mywoot-chatwoot" is invalid: spec.ports[1].name: Duplicate value: "chatwoot"
Hello everyone!
Thanks for this amazing project.
I have created an instance in Kubernetes using Helm and created an inbox inside that is used by a website running with Ghost.
But only the first log in work after I always have in the Ghost console website:
Failed to load resource: the server responded with a status of 429 (Too Many Requests)
The ConfigMap used to set the environment variables contains many passwords or associated secrets. Rather than using a ConfigMap, it would be better to use a secret to store these values.
The current nslookup
method being used is not ideal and is causing intermittent failures. Switch to a better implementation.
Hello!
There is no possibility for add volumes to values.yaml in chart
Hi,
When deploying the helm chart, I want to use the existing persistent volumes. For example, if I want to delete and redeploy the chart, or restore from a backup, I will have to move the existing data from previous volumes to the newly created ones. I checked the values.yaml
, but couldn't find a relevant configuration option, Is the chart configurable for such a case?
Hello!
We have a database rds postgres with ssl/tls
Can you tell me how chatwoot can connect to it ?
Because i dont see any description about this
Thank you
The helm chart doesn't work out of the box when using PgBouncer in transaction pooling mode because it doesn't support prepared statements. An issue I've encountered is that the page would reload multiple times when trying to login, due to PG error in the background.
I've tested the solution suggested in here and this solves the login issue for me. Having a parameter to configure these values would be nice.
i can see in template affinity is not utilized to use with web & worker deployments.
Use Case:- chatwoot don't have arm based docker image , so helpfull in pod scheduling in amd64 based node groups
Hi guys 👋! Can you give me hand ? I am trying to test chatwoot for our company, but I can't connect our twitter account.
Chat version: 1.0.19
Chatwoot (docker version): 2.16.0-ce
Error:
INFO -- : Started GET "/twitter/callback?oauth_token=[FILTERED]&oauth_verifier=[FILTERED]" for 181.43.242.56 at 2023-05-24 13:36:00 +0000
DEBUG -- : source=rack-timeout id=4b81052d-ed27-4114-90c9-5454389febda timeout=15000ms service=1ms state=active
INFO -- : Processing by Twitter::CallbacksController#show as HTML
INFO -- : Parameters: {"oauth_token"=>"[FILTERED]", "oauth_verifier"=>"[FILTERED]"}
DEBUG -- : TRANSACTION (0.5ms) BEGIN
DEBUG -- : Account Load (0.4ms) SELECT "accounts".* FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", 2], ["LIMIT", 1]]
DEBUG -- : Channel::TwitterProfile Exists? (0.9ms) SELECT 1 AS one FROM "channel_twitter_profiles" WHERE "channel_twitter_profiles"."profile_id" = $1 AND "channel_twitter_profiles"."account_id" = $2 LIMIT $3 [["profile_id", "1633846729178255360"], ["account_id", 2], ["LIMIT", 1]]
DEBUG -- : Channel::TwitterProfile Create (0.6ms) INSERT INTO "channel_twitter_profiles" ("profile_id", "twitter_access_token", "twitter_access_token_secret", "account_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id" [["profile_id", "1234567890"], ["twitter_access_token", "aaabbb-cccddd"], ["twitter_access_token_secret", "twitteraccesssecrettoken"], ["account_id", 2], ["created_at", "2023-05-24 13:36:01.316407"], ["updated_at", "2023-05-24 13:36:01.316407"]]
DEBUG -- : Inbox Load (0.5ms) SELECT "inboxes".* FROM "inboxes" WHERE "inboxes"."channel_id" = $1 AND "inboxes"."channel_type" = $2 LIMIT $3 [["channel_id", 10], ["channel_type", "Channel::TwitterProfile"], ["LIMIT", 1]]
DEBUG -- : Inbox Create (0.6ms) INSERT INTO "inboxes" ("channel_id", "account_id", "name", "created_at", "updated_at", "channel_type") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id" [["channel_id", 10], ["account_id", 2], ["name", "PatagonLabs"], ["created_at", "2023-05-24 13:36:01.319793"], ["updated_at", "2023-05-24 13:36:01.319793"], ["channel_type", "Channel::TwitterProfile"]]
DEBUG -- : WorkingHour Create (0.6ms) INSERT INTO "working_hours" ("inbox_id", "account_id", "day_of_week", "closed_all_day", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id" [["inbox_id", 15], ["account_id", 2], ["day_of_week", 0], ["closed_all_day", true], ["created_at", "2023-05-24 13:36:01.321623"], ["updated_at", "2023-05-24 13:36:01.321623"]]
DEBUG -- : WorkingHour Create (0.6ms) INSERT INTO "working_hours" ("inbox_id", "account_id", "day_of_week", "open_hour", "open_minutes", "close_hour", "close_minutes", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING "id" [["inbox_id", 15], ["account_id", 2], ["day_of_week", 1], ["open_hour", 9], ["open_minutes", 0], ["close_hour", 17], ["close_minutes", 0], ["created_at", "2023-05-24 13:36:01.323981"], ["updated_at", "2023-05-24 13:36:01.323981"]]
DEBUG -- : WorkingHour Create (0.5ms) INSERT INTO "working_hours" ("inbox_id", "account_id", "day_of_week", "open_hour", "open_minutes", "close_hour", "close_minutes", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING "id" [["inbox_id", 15], ["account_id", 2], ["day_of_week", 2], ["open_hour", 9], ["open_minutes", 0], ["close_hour", 17], ["close_minutes", 0], ["created_at", "2023-05-24 13:36:01.326315"], ["updated_at", "2023-05-24 13:36:01.326315"]]
DEBUG -- : WorkingHour Create (0.5ms) INSERT INTO "working_hours" ("inbox_id", "account_id", "day_of_week", "open_hour", "open_minutes", "close_hour", "close_minutes", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING "id" [["inbox_id", 15], ["account_id", 2], ["day_of_week", 3], ["open_hour", 9], ["open_minutes", 0], ["close_hour", 17], ["close_minutes", 0], ["created_at", "2023-05-24 13:36:01.328460"], ["updated_at", "2023-05-24 13:36:01.328460"]]
DEBUG -- : WorkingHour Create (0.5ms) INSERT INTO "working_hours" ("inbox_id", "account_id", "day_of_week", "open_hour", "open_minutes", "close_hour", "close_minutes", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING "id" [["inbox_id", 15], ["account_id", 2], ["day_of_week", 4], ["open_hour", 9], ["open_minutes", 0], ["close_hour", 17], ["close_minutes", 0], ["created_at", "2023-05-24 13:36:01.330657"], ["updated_at", "2023-05-24 13:36:01.330657"]]
DEBUG -- : WorkingHour Create (0.5ms) INSERT INTO "working_hours" ("inbox_id", "account_id", "day_of_week", "open_hour", "open_minutes", "close_hour", "close_minutes", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING "id" [["inbox_id", 15], ["account_id", 2], ["day_of_week", 5], ["open_hour", 9], ["open_minutes", 0], ["close_hour", 17], ["close_minutes", 0], ["created_at", "2023-05-24 13:36:01.333223"], ["updated_at", "2023-05-24 13:36:01.333223"]]
DEBUG -- : WorkingHour Create (0.4ms) INSERT INTO "working_hours" ("inbox_id", "account_id", "day_of_week", "closed_all_day", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id" [["inbox_id", 15], ["account_id", 2], ["day_of_week", 6], ["closed_all_day", true], ["created_at", "2023-05-24 13:36:01.334970"], ["updated_at", "2023-05-24 13:36:01.334970"]]
DEBUG -- : Inbox Load (0.7ms) SELECT "inboxes".* FROM "inboxes" WHERE "inboxes"."id" = $1 LIMIT $2 [["id", 15], ["LIMIT", 1]]
DEBUG -- : Channel::TwitterProfile Load (0.5ms) SELECT "channel_twitter_profiles".* FROM "channel_twitter_profiles" WHERE "channel_twitter_profiles"."id" = $1 LIMIT $2 [["id", 10], ["LIMIT", 1]]
DEBUG -- : TRANSACTION (0.6ms) ROLLBACK
ERROR -- : no implicit conversion of String into Integer
INFO -- : Redirected to https://chatwoot.patagon.dev/app/accounts/2/settings/inboxes/new/twitter
INFO -- : Completed 302 Found in 643ms (ActiveRecord: 8.8ms | Allocations: 12809)
The error seems similar to #1796, but I have configure the FRONTEND_URL
with my custom domain already. (screenrecording)
Not sure what to do now... appreciate any hint/advice 🙏. Thanks !
This is the custom values.yaml we are using to deploy the chart:
image:
repository: chatwoot/chatwoot
tag: v2.16.0-ce
pullPolicy: Always
ingress:
enabled: enable
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/router.entrypoints: websecure
cert-manager.io/issuer: http-issuer
hosts:
- host: "chatwoot.patagon.dev"
paths:
- path: /
pathType: Prefix
backend:
service:
name: chatwoot
port:
number: 3000
tls: true
tls:
- secretName: chatwoot.patagon.dev
hosts:
- chatwoot.patagon.dev
redis:
enabled: true
architecture: standalone
nameOverride: chatwoot-redis
image:
tag: 7.0.11-debian-11-r7
auth:
password: "redis"
master:
persistence:
enabled: true
# ENVIRONMENT VARIABLES
env:
ACTIVE_STORAGE_SERVICE: amazon
AWS_ACCESS_KEY_ID: "xxxyyy"
AWS_REGION: "us-east-1"
AWS_SECRET_ACCESS_KEY: "xxxyyyzzz"
ENABLE_ACCOUNT_SIGNUP: true
FORCE_SSL: false
FRONTEND_URL: "https://chatwoot.patagon.dev"
INSTALLATION_ENV: helm
LOG_LEVEL: debug
LOG_SIZE: 500
RAILS_ENV: production
S3_BUCKET_NAME: "mybucket"
SECRET_KEY_BASE: xxxyyyzzzaaabbb
TWITTER_APP_ID: "1234567"
TWITTER_CONSUMER_KEY: "aaaabbbcccddd"
TWITTER_CONSUMER_SECRET: "mysecret"
TWITTER_ENVIRONMENT: ""
USE_INBOX_AVATAR_FOR_BOT: true
Fix security issues reported from artifacthub scans
With the new ingress API, we don't need to use the kubernetes.io/ingress.class
annotation anymore. Instead the new ingressClassName
must be specified.
We run a self hosted Chatwoot in Kubernetes installed with helm chart.
It used to work well up until 3.0 (we use 3.5.1 now). Since the update everything works well for about 7 days. Then when we receive a message form a user we get the email and we can see the message in the chat. When we send the reply to the user it shows as sent but the user does not receive it and if the user writes more messages we don't receive it either. If the user refreshes the webpage then they will see all the messages but not new ones. It is the same on the agent side as well.
The only solution I found for this is to remove the chart and reinstall it with the same config. After that it works okay for 7 days and the issue starts again.
Here is a recording that may explain it better:
Thanks!
Chats updating when a message sent
Kubernetes
Other [please specify in the description]
Browser
Windows 11
Chrome 120.0.6099.225
docker version:
Client:
Version: 19.03.6
API version: 1.40
Go version: go1.12.17
Git commit: 369ce74a3c
Built: Fri Dec 18 12:21:44 2020
OS/Arch: linux/amd64
Experimental: falseServer:
Engine:
Version: 19.03.6
API version: 1.40 (minimum version 1.12)
Go version: go1.12.17
Git commit: 369ce74a3c
Built: Thu Dec 10 13:23:49 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.3.3-0ubuntu1~18.04.4
GitCommit:
runc:
Version: spec: 1.0.1-dev
GitCommit:
docker-init:
Version: 0.18.0
GitCommit:
kubectl version:
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.15", GitCommit:"8f1e5bf0b9729a899b8df86249b56e2c74aebc55", GitTreeState:"clean", BuildDate:"2022-01-19T17:27:39Z", GoVersion:"go1.15.15", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.15", GitCommit:"8f1e5bf0b9729a899b8df86249b56e2c74aebc55", GitTreeState:"clean", BuildDate:"2022-01-19T17:23:01Z", GoVersion:"go1.15.15", Compiler:"gc", Platform:"linux/amd64"}
helm -n chatwoot list:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
chatwoot chatwoot 1 2024-01-30 15:11:53.475189328 +0100 CET deployed chatwoot-1.1.7 v3.5.1
My config file for the chart is:
postgresql:
primary:
persistence:
storageClass: chatwoot-postgresql-standard
size: 8Gi
redis:
master:
persistence:
enabled: false
replica:
persistence:
enabled: false
services:
type: ClusterIP
ingress:
enabled: ture
ingressClassName: nginx
annotations:
nginx.org/proxy-body-size: "100m"
nginx.org/client-max-body-size: "100m"
nginx.org/location-snippets: |
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header X-Forwarded-Proto https;
hosts:
- host: xxxxxxxxxx
paths:
- pathType: Prefix
path: /
backend:
service:
name: chatwoot
port:
number: 3000
env:
FRONTEND_URL: 'https://xxxxxxxxxxx'
DISABLE_TELEMETRY: true
FORCE_SSL: false
SMTP_ADDRESS: xxxxxxxxx
SMTP_PORT: xxxxxxx
MAILER_SENDER_EMAIL: xxxxxxxxxxx
SMTP_USERNAME: xxxxxxxxxxxx
SMTP_PASSWORD: xxxxxxxxx
SMTP_AUTHENTICATION: login
SMTP_ENABLE_STARTTLS_AUTO: true
ACTIVE_STORAGE_SERVICE: s3_compatible
STORAGE_BUCKET_NAME: chatwoot-assets
STORAGE_ACCESS_KEY_ID: xxxxxxxxxxxxx
STORAGE_SECRET_ACCESS_KEY: xxxxxxxxxxx
STORAGE_REGION: localCluster
STORAGE_ENDPOINT: https://xxxxxxxx
STORAGE_FORCE_PATH_STYLE: true
A significant challenge we're facing is the integration of Chatwoot, particularly due to its current limitation in the Helm chart (web-deployment.yaml), which only supports IPv4 (specified as 0.0.0.0)
Our infrastructure primarily relies on IPv6, and the lack of IPv6 support in Chatwoot's Helm chart deployment is hindering our ability to effectively incorporate Chatwoot into our IPv6-based network environment. This limitation is a crucial barrier for seamless integration and full utilization of Chatwoot in our setup.
Make an update in Chatwoot Helm chart to support IPv6 addressing. This can be achieved by modifying the web-deployment.yaml
to allow configuration for IPv6 addresses or by automatically detecting and adapting to the network environment (IPv4 or IPv6). The ideal solution would provide flexibility in specifying the IP version in the deployment configurations."
Suggestion
web-deployment.yaml
spec:
...
template:
...
spec:
...
containers:
- args:
- bundle
- exec
- rails
- s
- -p
- {{ .Values.services.internalPort | quote}}
- -b
- {{ .Values.services.internalHost | quote}}
and in values.yaml
, we can specify internalHost value to be either 0.0.0.0
(for IPv4) and ::
(for IPv6)
Currently (on v1.1.7)
spec:
...
template:
...
spec:
...
containers:
- args:
- bundle
- exec
- rails
- s
- -p
- {{ .Values.services.internalPort | quote}}
- -b
- 0.0.0.0
No response
No response
Right now chatwoot:db-prepare
is being executed via initContainers
. Switch to Kubernetes jobs.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.