mirror of
https://github.com/lingble/twenty.git
synced 2025-11-06 15:47:56 +00:00
Closes #7421 This pull request consolidates Redis connection parameters into a single `REDIS_URL` environment variable across various configuration files and code modules. The most important changes include updates to environment variable files, Docker and Kubernetes configurations, and code modules to utilize the new `REDIS_URL` format. ### Environment Variable Updates: * [`packages/twenty-docker/.env.example`](diffhunk://#diff-f4b5e7acc0dde630eafb2228390ca56bd56db0d183582be6433a9ee808088a4cL8-R8): Replaced `REDIS_HOST` and `REDIS_PORT` with `REDIS_URL`. * [`packages/twenty-server/.env.example`](diffhunk://#diff-c06e244338b33286ea90221635809785352a971de53f647ea65650124ae74ad2L53-R53): Replaced `REDIS_HOST`, `REDIS_PORT`, `REDIS_USERNAME`, and `REDIS_PASSWORD` with `REDIS_URL`. * [`packages/twenty-server/.env.test`](diffhunk://#diff-def44a08e699c9deca2f72c9f87951de5d33d9ccf5621eab2f34978df8ad0954L16-R16): Replaced `REDIS_HOST`, `REDIS_PORT`, `REDIS_USERNAME`, and `REDIS_PASSWORD` with `REDIS_URL`. ### Docker and Kubernetes Configuration Updates: * [`packages/twenty-docker/docker-compose.yml`](diffhunk://#diff-545fb51ad66f93f727bb8f8b375dc6858b33348d91d5e51ad931fb0bbc1affeeL28-R28): Replaced `REDIS_HOST` and `REDIS_PORT` with `REDIS_URL` in multiple service definitions. [[1]](diffhunk://#diff-545fb51ad66f93f727bb8f8b375dc6858b33348d91d5e51ad931fb0bbc1affeeL28-R28) [[2]](diffhunk://#diff-545fb51ad66f93f727bb8f8b375dc6858b33348d91d5e51ad931fb0bbc1affeeL62-R61) * [`packages/twenty-docker/k8s/manifests/deployment-server.yaml`](diffhunk://#diff-91623ed4e8b2088947cfa9a5dad76b6013e8db0c150d84347a215fa9ad78bf04L44-R45): Replaced `REDIS_HOST` and `REDIS_PORT` with `REDIS_URL`. * [`packages/twenty-docker/k8s/manifests/deployment-worker.yaml`](diffhunk://#diff-8532debd131ce168a2527fa6a9be6405792178576ee47e2eef0cd9f3ff4a8f8cL43-R44): Replaced `REDIS_HOST` and `REDIS_PORT` with `REDIS_URL`. * [`packages/twenty-docker/k8s/terraform/deployment-server.tf`](diffhunk://#diff-b4c468660ab00bd03589d0d47502c477ca83f7d876ff196534880b02ba46dce0L64-R65): Replaced `REDIS_HOST` and `REDIS_PORT` with `REDIS_URL`. * [`packages/twenty-docker/k8s/terraform/deployment-worker.tf`](diffhunk://#diff-e5d6a1f68d5391e2120aef6261f22f905aa1ce0a567e31b21a27d44f313eaecaL62-R63): Replaced `REDIS_HOST` and `REDIS_PORT` with `REDIS_URL`. ### Code Module Updates: * [`packages/twenty-server/src/engine/core-modules/cache-storage/cache-storage.module-factory.ts`](diffhunk://#diff-06e787a7c8a48022d5909b5df9b8c6ca192521cf32f51d7f561cee937bed6678L23-R35): Replaced `REDIS_HOST` and `REDIS_PORT` with `REDIS_URL`. * [`packages/twenty-server/src/engine/core-modules/environment/environment-variables.ts`](diffhunk://#diff-26ce615693b053eda02aa48aa2e30400381a2588dcb08d4a9dc3b0bf5bdd6fe7L378-R384): Added validation for `REDIS_URL`. * [`packages/twenty-server/src/engine/core-modules/message-queue/message-queue.module-factory.ts`](diffhunk://#diff-7bd644d28bdd86c159c1d71242753df5d5acd91c73c6e60b2e35caa53ed3836bR6): Replaced `REDIS_HOST`, `REDIS_PORT`, `REDIS_USERNAME`, and `REDIS_PASSWORD` with `REDIS_URL`. [[1]](diffhunk://#diff-7bd644d28bdd86c159c1d71242753df5d5acd91c73c6e60b2e35caa53ed3836bR6) [[2]](diffhunk://#diff-7bd644d28bdd86c159c1d71242753df5d5acd91c73c6e60b2e35caa53ed3836bL35-R41) ### Documentation Updates: * [`packages/twenty-website/src/content/developers/self-hosting/self-hosting-var.mdx`](diffhunk://#diff-c4cc78a3ce18b6edb10f1aee8990271e1d2796a8c06c1c6ae3b68db8d52278a3L37-R37): Updated documentation to reflect the change to `REDIS_URL`. * [`packages/twenty-website/src/content/developers/self-hosting/upgrade-guide.mdx`](diffhunk://#diff-c7d757829f6128e1f47aa1955bde561292dce558280511fab66281afa99042a5R102-R112): Added upgrade instructions for the new `REDIS_URL` variable. --------- Co-authored-by: Weiko <corentin@twenty.com> Co-authored-by: Charles Bochet <charles@twenty.com>
187 lines
4.3 KiB
HCL
187 lines
4.3 KiB
HCL
resource "kubernetes_deployment" "twentycrm_server" {
|
|
metadata {
|
|
name = "${var.twentycrm_app_name}-server"
|
|
namespace = kubernetes_namespace.twentycrm.metadata.0.name
|
|
labels = {
|
|
app = "${var.twentycrm_app_name}-server"
|
|
}
|
|
}
|
|
|
|
spec {
|
|
replicas = var.twentycrm_server_replicas
|
|
selector {
|
|
match_labels = {
|
|
app = "${var.twentycrm_app_name}-server"
|
|
}
|
|
}
|
|
|
|
strategy {
|
|
type = "RollingUpdate"
|
|
rolling_update {
|
|
max_surge = "1"
|
|
max_unavailable = "1"
|
|
}
|
|
}
|
|
|
|
template {
|
|
metadata {
|
|
labels = {
|
|
app = "${var.twentycrm_app_name}-server"
|
|
}
|
|
}
|
|
|
|
spec {
|
|
container {
|
|
image = var.twentycrm_server_image
|
|
name = var.twentycrm_app_name
|
|
stdin = true
|
|
tty = true
|
|
|
|
env {
|
|
name = "PORT"
|
|
value = "3000"
|
|
}
|
|
# env {
|
|
# name = "DEBUG_MODE"
|
|
# value = false
|
|
# }
|
|
|
|
env {
|
|
name = "SERVER_URL"
|
|
value = var.twentycrm_app_hostname
|
|
}
|
|
|
|
env {
|
|
name = "FRONT_BASE_URL"
|
|
value = var.twentycrm_app_hostname
|
|
}
|
|
|
|
env {
|
|
name = "PG_DATABASE_URL"
|
|
value = "postgres://twenty:${var.twentycrm_pgdb_admin_password}@${kubernetes_service.twentycrm_db.metadata.0.name}.${kubernetes_namespace.twentycrm.metadata.0.name}.svc.cluster.local/default"
|
|
}
|
|
env {
|
|
name = "REDIS_URL"
|
|
value = "redis://${kubernetes_service.twentycrm_redis.metadata.0.name}.${kubernetes_namespace.twentycrm.metadata.0.name}.svc.cluster.local:6379"
|
|
}
|
|
env {
|
|
name = "ENABLE_DB_MIGRATIONS"
|
|
value = "true"
|
|
}
|
|
|
|
env {
|
|
name = "SIGN_IN_PREFILLED"
|
|
value = "true"
|
|
}
|
|
|
|
env {
|
|
name = "STORAGE_TYPE"
|
|
value = "local"
|
|
}
|
|
env {
|
|
name = "MESSAGE_QUEUE_TYPE"
|
|
value = "bull-mq"
|
|
}
|
|
env {
|
|
name = "ACCESS_TOKEN_EXPIRES_IN"
|
|
value = "7d"
|
|
}
|
|
env {
|
|
name = "LOGIN_TOKEN_EXPIRES_IN"
|
|
value = "1h"
|
|
}
|
|
env {
|
|
name = "ACCESS_TOKEN_SECRET"
|
|
value_from {
|
|
secret_key_ref {
|
|
name = "tokens"
|
|
key = "accessToken"
|
|
}
|
|
}
|
|
}
|
|
|
|
env {
|
|
name = "LOGIN_TOKEN_SECRET"
|
|
value_from {
|
|
secret_key_ref {
|
|
name = "tokens"
|
|
key = "loginToken"
|
|
}
|
|
}
|
|
}
|
|
|
|
env {
|
|
name = "REFRESH_TOKEN_SECRET"
|
|
value_from {
|
|
secret_key_ref {
|
|
name = "tokens"
|
|
key = "refreshToken"
|
|
}
|
|
}
|
|
}
|
|
|
|
env {
|
|
name = "FILE_TOKEN_SECRET"
|
|
value_from {
|
|
secret_key_ref {
|
|
name = "tokens"
|
|
key = "fileToken"
|
|
}
|
|
}
|
|
}
|
|
|
|
port {
|
|
container_port = 3000
|
|
protocol = "TCP"
|
|
}
|
|
|
|
resources {
|
|
requests = {
|
|
cpu = "250m"
|
|
memory = "256Mi"
|
|
}
|
|
limits = {
|
|
cpu = "1000m"
|
|
memory = "1024Mi"
|
|
}
|
|
}
|
|
|
|
volume_mount {
|
|
name = "server-data"
|
|
mount_path = var.twentycrm_server_data_mount_path
|
|
}
|
|
|
|
volume_mount {
|
|
name = "docker-data"
|
|
mount_path = var.twentycrm_docker_data_mount_path
|
|
}
|
|
}
|
|
|
|
volume {
|
|
name = "server-data"
|
|
|
|
persistent_volume_claim {
|
|
claim_name = kubernetes_persistent_volume_claim.server.metadata.0.name
|
|
}
|
|
}
|
|
|
|
volume {
|
|
name = "docker-data"
|
|
|
|
persistent_volume_claim {
|
|
claim_name = kubernetes_persistent_volume_claim.docker_data.metadata.0.name
|
|
}
|
|
}
|
|
|
|
dns_policy = "ClusterFirst"
|
|
restart_policy = "Always"
|
|
}
|
|
}
|
|
}
|
|
depends_on = [
|
|
kubernetes_deployment.twentycrm_db,
|
|
kubernetes_deployment.twentycrm_redis,
|
|
kubernetes_secret.twentycrm_tokens
|
|
]
|
|
}
|