Open juliendeveloper opened 1 year ago
This is most likely not an issue with the helm chart but because of https://github.com/RocketChat/Rocket.Chat/issues/26505
Or do you get a log line when starting (re)starting the pod that goes like this:
Change Stream is available for your installation, give admin permissions to your database user to use this improved version
?
Yes i do here is my log (i use latest version of the helm chart without any big changes. Just some ingress changes)
MessageType.render is deprecated. Use MessageType.message instead. livechat_webrtc_video_call
{"level":40,"time":"2022-09-28T11:10:53.294Z","pid":1,"hostname":"rocketchat-rocketchat-6cd7fc9889-5gdr7","name":"VoIPService","msg":"Voip is not enabled. Cant start the service"}
Change Stream is available for your installation, give admin permissions to your database user to use this improved version.
[DatabaseWatcher] Using oplog
Exception in callback of async function: errorClass [Error]: [You must set "intervalTimeInMS" property in rateLimiter for REST API endpoint]
at APIClass.addRateLimiterRuleForRoutes (app/api/server/api.js:267:10)
at app/api/server/api.js:252:10
at Array.forEach (<anonymous>)
at APIClass.reloadRoutesToRefreshRateLimiter (app/api/server/api.js:250:16)
at app/api/server/api.js:849:9
at runWithEnvironment (packages/meteor.js:1320:24)
at packages/meteor.js:1333:14
at runWithEnvironment (packages/meteor.js:1320:24) {
isClientSafe: true,
error: 'You must set "intervalTimeInMS" property in rateLimiter for REST API endpoint',
reason: undefined,
details: undefined,
errorType: 'Meteor.Error'
}
{"level":40,"time":"2022-09-28T11:10:57.496Z","pid":1,"hostname":"rocketchat-rocketchat-6cd7fc9889-5gdr7","name":"VoIPService","msg":"VoIP service already stopped"}
=== UnHandledPromiseRejection ===
MongoParseError: Password contains unescaped characters
at new ConnectionString (/app/bundle/programs/server/npm/node_modules/mongodb-connection-string-url/lib/index.js:115:23)
at parseOptions (/app/bundle/programs/server/npm/node_modules/mongodb/lib/connection_string.js:209:17)
at new MongoClient (/app/bundle/programs/server/npm/node_modules/mongodb/lib/mongo_client.js:62:63)
at server/database/DatabaseWatcher.ts:93:18
at /app/bundle/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/fiber_pool.js:43:40
---------------------------------
Errors like this can cause oplog processing errors.
Setting EXIT_UNHANDLEDPROMISEREJECTION will cause the process to exit allowing your service to automatically restart the process
Future node.js versions will automatically exit the process
=================================
ufs: temp directory created at "/tmp/ufs"
Loaded the Apps Framework and loaded a total of 0 Apps!
+-------------------------------------------------+
| SERVER RUNNING |
+-------------------------------------------------+
| |
| Rocket.Chat Version: 5.1.0 |
| NodeJS Version: 14.19.3 - x64 |
| MongoDB Version: 4.4.11 |
| MongoDB Engine: unknown |
| Platform: linux |
| Process Port: 3000 |
| Site URL: https://rchat.partii.app |
| ReplicaSet OpLog: Enabled |
| Commit Hash: 34df27ac14 |
| Commit Branch: HEAD |
| |
+-------------------------------------------------+
Exception in defer callback: Error: You have not provided a mail URL. You can provide it by using the environment variable MAIL_URL or your settings. You can read more about it here: https://docs.meteor.com/api/email.html.
at Object.Email.send (packages/email/email.js:259:11)
at AccountsServer.Accounts.sendEnrollmentEmail (packages/accounts-password/password_server.js:553:9)
at app/lib/server/functions/setUsername.ts:47:14
at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1257:12)
at packages/meteor.js:555:25
at runWithEnvironment (packages/meteor.js:1320:24)
{"level":50,"time":"2022-09-28T11:12:43.668Z","pid":1,"hostname":"rocketchat-rocketchat-6cd7fc9889-5gdr7","name":"System","msg":"Exception while invoking method autoTranslate.getSupportedLanguages 'Auto-Translate is disabled [error-autotranslate-disabled]'"}
{"level":50,"time":"2022-09-28T11:12:55.314Z","pid":1,"hostname":"rocketchat-rocketchat-6cd7fc9889-5gdr7","name":"System","msg":"Exception while invoking method autoTranslate.getSupportedLanguages 'Auto-Translate is disabled [error-autotranslate-disabled]'"}
{"level":50,"time":"2022-09-28T12:47:57.580Z","pid":1,"hostname":"rocketchat-rocketchat-6cd7fc9889-5gdr7","name":"System","msg":"Exception while invoking method autoTranslate.getSupportedLanguages 'Auto-Translate is disabled [error-autotranslate-disabled]'"}
{"level":50,"time":"2022-09-28T12:49:31.103Z","pid":1,"hostname":"rocketchat-rocketchat-6cd7fc9889-5gdr7","name":"System","msg":"Exception while invoking method saveSettings 'TOTP Required [totp-required]'"}
{"level":50,"time":"2022-09-28T12:49:45.850Z","pid":1,"hostname":"rocketchat-rocketchat-6cd7fc9889-5gdr7","name":"System","msg":"Exception while invoking method autoTranslate.getSupportedLanguages 'Auto-Translate is disabled [error-autotranslate-disabled]'"}
{"level":50,"time":"2022-09-28T12:49:53.836Z","pid":1,"hostname":"rocketchat-rocketchat-6cd7fc9889-5gdr7","name":"System","msg":"Exception while invoking method autoTranslate.getSupportedLanguages 'Auto-Translate is disabled [error-autotranslate-disabled]'"}
{"level":50,"time":"2022-09-28T12:59:51.822Z","pid":1,"hostname":"rocketchat-rocketchat-6cd7fc9889-5gdr7","name":"System","msg":"Exception while invoking method autoTranslate.getSupportedLanguages 'Auto-Translate is disabled [error-autotranslate-disabled]'"}
{"level":50,"time":"2022-09-28T13:00:00.273Z","pid":1,"hostname":"rocketchat-rocketchat-6cd7fc9889-5gdr7","name":"System","msg":"Exception while invoking method autoTranslate.getSupportedLanguages 'Auto-Translate is disabled [error-autotranslate-disabled]'"}
Here is my helm chart values.yaml
## Rocket Chat image version
## ref: https://hub.docker.com/r/rocketchat/rocket.chat/tags
##
image:
repository: registry.rocket.chat/rocketchat/rocket.chat
pullPolicy: IfNotPresent
imagePullSecrets: []
## Host for the application
## set it to a domain pointing to your loadbalancer
host: rchat.partii.app
replicaCount: 1
minAvailable: 1
smtp:
enabled: false
username:
password:
host:
port: 587
# Extra env vars for Rocket.Chat:
extraEnv:
# - name: MONGO_OPTIONS
# value: '{"ssl": "true"}'
# - name: MONGO_OPLOG_URL
# value: mongodb://oploguser:password@rocket-1:27017/local&replicaSet=rs0
# Extra volumes for Rocket.Chat...
extraVolumes:
# - name: etc-certs
# hostPath:
# path: /etc/ssl/certs
# type: Directory
# - name: usr-certs
# hostPath:
# path: /usr/share/ca-certificates
# type: Directory
# ... and where they should be mounted inside the container
extraVolumeMounts:
# - mountPath: /etc/ssl/certs
# name: etc-certs
# readOnly: true
# - mountPath: /usr/share/ca-certificates
# name: usr-certs
# readOnly: true
## Specifies a Registration Token (obtainable at https://cloud.rocket.chat)
#registrationToken: ""
## Specifies an Enterprise License
# license: ""
## Pod anti-affinity can prevent the scheduler from placing RocketChat replicas on the same node.
## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
##
podAntiAffinity: ""
## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
##
podAntiAffinityTopologyKey: kubernetes.io/hostname
## Assign custom affinity rules to the RocketChat instance
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
##
affinity: {}
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# - key: kubernetes.io/e2e-az-name
# operator: In
# values:
# - e2e-az1
# - e2e-az2
## Use an existing secret file with the MongoDB Url and OplogUrl
existingMongodbSecret: ""
## MongoDB URL if using an externally provisioned MongoDB
externalMongodbUrl: # mongodb://user:password@localhost:27017/rocketchat
externalMongodbOplogUrl: # mongodb://user:password@localhost:27017/local?replicaSet=rs0&authSource=admin
##
## MongoDB chart configuration
### ref https://github.com/helm/charts/tree/master/stable/mongodb#configuration
##
mongodb:
## Enable or disable MongoDB dependency completely.
enabled: true
auth:
# rootPassword:
username: rocketchat
# password:
database: rocketchat
architecture: replicaset
replicaCount: 1
arbiter:
enabled: false
pdb:
minAvailable: 0
pdb:
minAvailable: 0
# key:
persistence:
enabled: true
## mongodb data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner. (gp2 on AWS, standard on
## GKE, AWS & OpenStack)
##
# storageClass: "-"
accessMode: ReadWriteOnce
size: 8Gi
volumePermissions: { enabled: true }
## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
##
persistence:
enabled: false
# existingClaim: existingClaimName
## rocketchat data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner. (gp2 on AWS, standard on
## GKE, AWS & OpenStack)
##
# storageClass: "-"
accessMode: ReadWriteOnce
size: 8Gi
## Configure resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
# resources:
# requests:
# memory: 512Mi
# cpu: 300m
securityContext:
enabled: true
runAsUser: 999
fsGroup: 999
serviceAccount:
# Specifies whether a ServiceAccount should be created
create: true
# Annotations to add to the ServiceAccount
annotations: {}
# eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/dummyRole
# The name of the ServiceAccount to use.
# If not set and create is true, a name is generated using the fullname template
name:
## Configure the ingress object to hook into existing infastructure
### ref : http://kubernetes.io/docs/user-guide/ingress/
###
ingress:
enabled: true
pathType: Prefix
# ingressClassName: "nxinx"
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
# kubernetes.io/ingress.class: "nginx"
path: /
tls:
- hosts:
- rchat.partii.app
secretName: rchat.partii.app-tls
service:
annotations: {}
# service.beta.kubernetes.io/aws-load-balancer-internal: "0.0.0.0/0"
labels: {}
# key: value
## ServiceType
## ref: https://kubernetes.io/docs/user-guide/services/#publishing-services---service-types
type: ClusterIP
## Optional static port assignment for service type NodePort.
# nodePort: 30000
port: 80
## Optional custom labels for the deployment resource.
deploymentLabels: {}
## Optional Pod Labels.
podLabels: {}
## Optional Pod Annotations.
podAnnotations:
{}
# prometheus.io/port: "9458"
# prometheus.io/path: "/metrics"
# prometheus.io/scrape: "true"
## Optional Prometheus scraping Settings
prometheusScraping:
enabled: false
port: 9100 # Avoid using 9458: conflicts with Moleculer Exporter
serviceMonitor:
## serviceMonitor.enabled Create ServiceMonitor resource(s) for scraping metrics using PrometheusOperator
## prometheusScraping.enabled should be also enabled
##
enabled: false
## metrics.serviceMonitor.interval The interval at which metrics should be scraped
##
interval: 30s
## metrics.serviceMonitor.port The port name at which container exposes Prometheus metrics
##
port: metrics
## Liveness and readiness probe values
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
##
livenessProbe:
enabled: true
initialDelaySeconds: 60
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
successThreshold: 1
readinessProbe:
enabled: true
initialDelaySeconds: 10
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
successThreshold: 1
podDisruptionBudget:
enabled: true
# # # # # # # # # # # # # # # # #
# M I C R O S E R V I C E S #
# Only available to E.E users #
# # # # # # # # # # # # # # # # #
## Deploy as microservices?
# Monolithic architecture, by default
microservices:
enabled: false
logLevel: warn
heartbeatInterval: 10
heartbeatTimeout: 30
## Parameters for each deployment:
presence:
replicas: 1
image:
repository: rocketchat/presence-service
pullPolicy: IfNotPresent
ddpStreamer:
replicas: 1
image:
repository: rocketchat/ddp-streamer-service
pullPolicy: IfNotPresent
account:
replicas: 1
image:
repository: rocketchat/account-service
pullPolicy: IfNotPresent
authorization:
replicas: 1
image:
repository: rocketchat/authorization-service
pullPolicy: IfNotPresent
streamHub:
replicas: 1
image:
repository: rocketchat/stream-hub-service
pullPolicy: IfNotPresent
nats:
replicas: 1
## Parameters for each Kubernetes service
# NOTE: reserved for future usage still
presenceService:
ddpStreamerService:
natsService:
streamHubService:
accountService:
authorizationService:
nats:
nats:
image: nats:2.4-alpine
Not sure if it is possible to fix this directly in the chart. But if you don't deploy many fresh instances just manually alter the DB Permissions like this and you are good to go: https://github.com/RocketChat/docs/pull/1853/files
Unfortunately this is not an option
I created Rocketchat through the Helm Chart and that all worked so far. However, after testing, I noticed that many of the socket functions do not work. Updating the status only works through the REST API and after sending messages they are grayed out.
Latest Version