-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lumosviridi v0.30.0 kubernetes updates #21
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
apiVersion: apps/v1 | ||
kind: Deployment | ||
metadata: | ||
labels: | ||
app: twentycrm-redis | ||
name: twentycrm-redis | ||
namespace: twentycrm | ||
spec: | ||
progressDeadlineSeconds: 600 | ||
replicas: 1 | ||
strategy: | ||
rollingUpdate: | ||
maxSurge: 1 | ||
maxUnavailable: 1 | ||
type: RollingUpdate | ||
selector: | ||
matchLabels: | ||
app: twentycrm-redis | ||
template: | ||
metadata: | ||
labels: | ||
app: twentycrm-redis | ||
spec: | ||
containers: | ||
- env: | ||
- name: PORT | ||
value: 6379 | ||
- image: redis/redis-stack-server:latest | ||
Comment on lines
+24
to
+28
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. logic: The configuration defines two separate containers incorrectly. The env section is defined as a separate container from the Redis container. This will cause deployment issues. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. style: Using 'latest' tag for production deployments is risky - should specify exact version for stability and reproducibility |
||
imagePullPolicy: Always | ||
name: redis | ||
ports: | ||
- containerPort: 6379 | ||
name: redis | ||
protocol: TCP | ||
resources: | ||
requests: | ||
memory: "1024Mi" | ||
cpu: "250m" | ||
limits: | ||
memory: "2048Mi" | ||
cpu: "500m" | ||
stdin: true | ||
tty: true | ||
|
||
dnsPolicy: ClusterFirst | ||
restartPolicy: Always |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,6 +25,9 @@ spec: | |
- name: twentycrm-server-data | ||
persistentVolumeClaim: | ||
claimName: twentycrm-server-pvc | ||
- name: twentycrm-docker-data | ||
persistentVolumeClaim: | ||
claimName: twentycrm-docker-data-pvc | ||
containers: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. logic: Environment variables block appears before container image definition - this may cause issues as the env block is not properly nested under a specific container |
||
- env: | ||
- name: PORT | ||
|
@@ -33,16 +36,26 @@ spec: | |
value: "https://crm.example.com:443" | ||
- name: FRONT_BASE_URL | ||
value: "https://crm.example.com:443" | ||
- name: PG_DATABASE_URL | ||
- name : "BACKEND_SERVER_URL" | ||
value: var.twentycrm_app_hostname | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. logic: Invalid variable reference syntax - 'var.twentycrm_app_hostname' is Terraform syntax but this is a Kubernetes manifest. Should be a literal URL value. |
||
- name: "PG_DATABASE_URL" | ||
value: "postgres://twenty:twenty@twenty-db.twentycrm.svc.cluster.local/default" | ||
- name: "REDIS_HOST" | ||
value: "twentycrm-redis.twentycrm.svc.cluster.local" | ||
- name: "REDIS_PORT" | ||
value: 6379 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. syntax: REDIS_PORT value should be quoted as a string since all env values must be strings in Kubernetes manifests |
||
- name: ENABLE_DB_MIGRATIONS | ||
value: "true" | ||
- name: SIGN_IN_PREFILLED | ||
value: "true" | ||
- name: STORAGE_TYPE | ||
value: "local" | ||
- name: "MESSAGE_QUEUE_TYPE" | ||
value: "pg-boss" | ||
value: "bull-mq" | ||
- name: "ACCESS_TOKEN_EXPIRES_IN" | ||
value: "7d" | ||
- name: "LOGIN_TOKEN_EXPIRES_IN" | ||
value: "1h" | ||
- name: ACCESS_TOKEN_SECRET | ||
valueFrom: | ||
secretKeyRef: | ||
|
@@ -81,8 +94,8 @@ spec: | |
tty: true | ||
volumeMounts: | ||
- mountPath: /app/docker-data | ||
name: twentycrm-server-data | ||
- mountPath: /app/.local-storage | ||
name: twentycrm-docker-data | ||
- mountPath: /app/packages/twenty-server/.local-storage | ||
name: twentycrm-server-data | ||
dnsPolicy: ClusterFirst | ||
restartPolicy: Always |
Original file line number | Diff line number | Diff line change | ||||||
---|---|---|---|---|---|---|---|---|
|
@@ -38,7 +38,13 @@ spec: | |||||||
- name: STORAGE_TYPE | ||||||||
value: "local" | ||||||||
- name: "MESSAGE_QUEUE_TYPE" | ||||||||
value: "pg-boss" | ||||||||
value: "bull-mq" | ||||||||
- name: "CACHE_STORAGE_TYPE" | ||||||||
value: "redis" | ||||||||
- name : "REDIS_HOST" | ||||||||
value: "twentycrm-redis.twentycrm.svc.cluster.local" | ||||||||
- name: "REDIS_PORT" | ||||||||
value: 6379 | ||||||||
Comment on lines
+46
to
+47
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. syntax: REDIS_PORT value needs to be quoted as a string since it's an environment variable
Suggested change
|
||||||||
- name: ACCESS_TOKEN_SECRET | ||||||||
valueFrom: | ||||||||
secretKeyRef: | ||||||||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
apiVersion: v1 | ||
kind: PersistentVolume | ||
metadata: | ||
name: twentycrm-docker-data-pv | ||
spec: | ||
storageClassName: default | ||
capacity: | ||
storage: 10Gi | ||
accessModes: | ||
- ReadWriteOnce | ||
persistentVolumeReclaimPolicy: Retain | ||
Comment on lines
+5
to
+11
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. logic: Missing required storage backend configuration (hostPath, nfs, etc). PV needs to specify where and how the actual storage is provisioned. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
apiVersion: v1 | ||
kind: PersistentVolumeClaim | ||
metadata: | ||
name: twentycrm-docker-data-pvc | ||
namespace: twentycrm | ||
spec: | ||
storageClassName: default | ||
volumeName: twentycrm-docker-data-pv | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. style: explicitly binding to PV reduces flexibility - consider removing volumeName for dynamic provisioning |
||
accessModes: | ||
- ReadWriteOnce | ||
resources: | ||
requests: | ||
storage: 10Gi |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
apiVersion: v1 | ||
kind: Service | ||
metadata: | ||
name: twentycrm-redis | ||
namespace: twentycrm | ||
spec: | ||
internalTrafficPolicy: Cluster | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. style: internalTrafficPolicy: Cluster is redundant when type is ClusterIP - this is the default behavior |
||
ports: | ||
- port: 6379 | ||
protocol: TCP | ||
targetPort: 6379 | ||
selector: | ||
app: twentycrm-redis | ||
sessionAffinity: ClientIP | ||
sessionAffinityConfig: | ||
clientIP: | ||
timeoutSeconds: 10800 | ||
Comment on lines
+14
to
+17
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. style: 3-hour session affinity timeout (10800 seconds) may be excessive for Redis connections. Consider reducing to 1-2 hours to prevent stale connections. |
||
type: ClusterIP |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,12 +15,12 @@ output: | |
<!-- BEGIN_TF_DOCS --> | ||
# TwentyCRM Terraform Docs | ||
|
||
This file was generated by [terraform-docs](https://terraform-docs.io/), for more information on how to install, configure and use visit their website. | ||
This file was generated by [terraform-docs](https://terraform-docs.io/), for more information on how to install, configure, and use visit their website. | ||
|
||
To update this `README.md` after changes to the Terraform code in this folder, run: `terraform-docs .` | ||
To update this `README.md` after changes to the Terraform code in this folder, run: `terraform-docs -c `./.terraform-docs.yml .` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. syntax: command includes unnecessary backticks around the path - should be |
||
|
||
To make configuration changes to how this doc is generated, see `./.terraform-docs.yml` | ||
|
||
{{ .Content }} | ||
<!-- END_TF_DOCS --> | ||
|
||
|
@@ -45,4 +45,3 @@ settings: | |
read-comments: true | ||
required: true | ||
sensitive: true | ||
type: true |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,64 +1,73 @@ | ||
<!-- BEGIN_TF_DOCS --> | ||
# TwentyCRM Terraform Docs | ||
|
||
This file was generated by [terraform-docs](https://terraform-docs.io/), for more information on how to install, configure and use visit their website. | ||
This file was generated by [terraform-docs](https://terraform-docs.io/), for more information on how to install, configure, and use visit their website. | ||
|
||
To update this `README.md` after changes to the Terraform code in this folder, run: `terraform-docs .` | ||
To update this `README.md` after changes to the Terraform code in this folder, run: `terraform-docs -c `./.terraform-docs.yml .` | ||
|
||
To make configuration changes to how this doc is generated, see `./.terraform-docs.yml` | ||
|
||
## Requirements | ||
|
||
| Name | Version | | ||
|------|---------| | ||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.9.2 | | ||
| <a name="requirement_kubernetes"></a> [kubernetes](#requirement\_kubernetes) | >= 2.31.0 | | ||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.7.4 | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. logic: downgrading Terraform version requirement from 1.9.2 to 1.7.4 may introduce compatibility issues with newer features |
||
| <a name="requirement_kubernetes"></a> [kubernetes](#requirement\_kubernetes) | >= 2.32.0 | | ||
| <a name="requirement_random"></a> [random](#requirement\_random) | >= 3.6.3 | | ||
|
||
## Providers | ||
|
||
| Name | Version | | ||
|------|---------| | ||
| <a name="provider_kubernetes"></a> [kubernetes](#provider\_kubernetes) | >= 2.31.0 | | ||
| <a name="provider_kubernetes"></a> [kubernetes](#provider\_kubernetes) | 2.32.0 | | ||
| <a name="provider_random"></a> [random](#provider\_random) | 3.6.3 | | ||
|
||
## Resources | ||
|
||
| Name | Type | | ||
|------|------| | ||
| [kubernetes_deployment.twentycrm_db](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/deployment) | resource | | ||
| [kubernetes_deployment.twentycrm_redis](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/deployment) | resource | | ||
| [kubernetes_deployment.twentycrm_server](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/deployment) | resource | | ||
| [kubernetes_deployment.twentycrm_worker](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/deployment) | resource | | ||
| [kubernetes_ingress.twentycrm](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/ingress) | resource | | ||
| [kubernetes_namespace.twentycrm](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/namespace) | resource | | ||
| [kubernetes_persistent_volume.db](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/persistent_volume) | resource | | ||
| [kubernetes_persistent_volume.docker_data](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/persistent_volume) | resource | | ||
| [kubernetes_persistent_volume.server](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/persistent_volume) | resource | | ||
| [kubernetes_persistent_volume_claim.db](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/persistent_volume_claim) | resource | | ||
| [kubernetes_persistent_volume_claim.docker_data](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/persistent_volume_claim) | resource | | ||
| [kubernetes_persistent_volume_claim.server](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/persistent_volume_claim) | resource | | ||
| [kubernetes_secret.twentycrm_tokens](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/secret) | resource | | ||
| [kubernetes_service.twentycrm_db](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/service) | resource | | ||
| [kubernetes_service.twentycrm_redis](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/service) | resource | | ||
| [kubernetes_service.twentycrm_server](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/service) | resource | | ||
| [random_bytes.this](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/bytes) | resource | | ||
|
||
## Inputs | ||
|
||
| Name | Description | Type | Default | Required | | ||
|------|-------------|------|---------|:--------:| | ||
| <a name="input_twentycrm_app_hostname"></a> [twentycrm\_app\_hostname](#input\_twentycrm\_app\_hostname) | The protocol, DNS fully qualified hostname, and port used to access TwentyCRM in your environment. Ex: https://crm.example.com:443 | `string` | n/a | yes | | ||
| <a name="input_twentycrm_pgdb_admin_password"></a> [twentycrm\_pgdb\_admin\_password](#input\_twentycrm\_pgdb\_admin\_password) | TwentyCRM password for postgres database. | `string` | n/a | yes | | ||
| <a name="input_twentycrm_token_accessToken"></a> [twentycrm\_token\_accessToken](#input\_twentycrm\_token\_accessToken) | TwentyCRM access Token | `string` | n/a | yes | | ||
| <a name="input_twentycrm_token_fileToken"></a> [twentycrm\_token\_fileToken](#input\_twentycrm\_token\_fileToken) | TwentyCRM file Token | `string` | n/a | yes | | ||
| <a name="input_twentycrm_token_loginToken"></a> [twentycrm\_token\_loginToken](#input\_twentycrm\_token\_loginToken) | TwentyCRM login Token | `string` | n/a | yes | | ||
| <a name="input_twentycrm_token_refreshToken"></a> [twentycrm\_token\_refreshToken](#input\_twentycrm\_token\_refreshToken) | TwentyCRM refresh Token | `string` | n/a | yes | | ||
| <a name="input_twentycrm_app_name"></a> [twentycrm\_app\_name](#input\_twentycrm\_app\_name) | A friendly name prefix to use for every component deployed. | `string` | `"twentycrm"` | no | | ||
| <a name="input_twentycrm_db_image"></a> [twentycrm\_db\_image](#input\_twentycrm\_db\_image) | TwentyCRM image for database deployment. This defaults to latest. | `string` | `"twentycrm/twenty-postgres:latest"` | no | | ||
| <a name="input_twentycrm_db_pv_capacity"></a> [twentycrm\_db\_pv\_capacity](#input\_twentycrm\_db\_pv\_capacity) | Storage capacity provisioned for database persistent volume. | `string` | `"10Gi"` | no | | ||
| <a name="input_twentycrm_db_pv_path"></a> [twentycrm\_db\_pv\_path](#input\_twentycrm\_db\_pv\_path) | Local path to use to store the physical volume if using local storage on nodes. | `string` | `""` | no | | ||
| <a name="input_twentycrm_db_pvc_requests"></a> [twentycrm\_db\_pvc\_requests](#input\_twentycrm\_db\_pvc\_requests) | Storage capacity reservation for database persistent volume claim. | `string` | `"10Gi"` | no | | ||
| <a name="input_twentycrm_db_replicas"></a> [twentycrm\_db\_replicas](#input\_twentycrm\_db\_replicas) | Number of replicas for the TwentyCRM database deployment. This defaults to 1. | `number` | `1` | no | | ||
| <a name="input_twentycrm_docker_data_mount_path"></a> [twentycrm\_docker\_data\_mount\_path](#input\_twentycrm\_docker\_data\_mount\_path) | TwentyCRM mount path for servers application data. Defaults to '/app/docker-data'. | `string` | `"/app/docker-data"` | no | | ||
| <a name="input_twentycrm_docker_data_pv_capacity"></a> [twentycrm\_docker\_data\_pv\_capacity](#input\_twentycrm\_docker\_data\_pv\_capacity) | Storage capacity provisioned for server persistent volume. | `string` | `"10Gi"` | no | | ||
| <a name="input_twentycrm_docker_data_pv_path"></a> [twentycrm\_docker\_data\_pv\_path](#input\_twentycrm\_docker\_data\_pv\_path) | Local path to use to store the physical volume if using local storage on nodes. | `string` | `""` | no | | ||
| <a name="input_twentycrm_docker_data_pvc_requests"></a> [twentycrm\_docker\_data\_pvc\_requests](#input\_twentycrm\_docker\_data\_pvc\_requests) | Storage capacity reservation for server persistent volume claim. | `string` | `"10Gi"` | no | | ||
| <a name="input_twentycrm_namespace"></a> [twentycrm\_namespace](#input\_twentycrm\_namespace) | Namespace for all TwentyCRM resources | `string` | `"twentycrm"` | no | | ||
| <a name="input_twentycrm_server_data_mount_path"></a> [twentycrm\_server\_data\_mount\_path](#input\_twentycrm\_server\_data\_mount\_path) | TwentyCRM mount path for servers application data. Defaults to '/app/docker-data'. | `string` | `"/app/docker-data"` | no | | ||
| <a name="input_twentycrm_redis_image"></a> [twentycrm\_redis\_image](#input\_twentycrm\_redis\_image) | TwentyCRM image for Redis deployment. This defaults to latest. | `string` | `"redis/redis-stack-server:latest"` | no | | ||
| <a name="input_twentycrm_redis_replicas"></a> [twentycrm\_redis\_replicas](#input\_twentycrm\_redis\_replicas) | Number of replicas for the TwentyCRM Redis deployment. This defaults to 1. | `string` | `"1"` | no | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. logic: twentycrm_redis_replicas should be type |
||
| <a name="input_twentycrm_server_data_mount_path"></a> [twentycrm\_server\_data\_mount\_path](#input\_twentycrm\_server\_data\_mount\_path) | TwentyCRM mount path for servers application data. Defaults to '/app/packages/twenty-server/.local-storage. | `string` | `"/app/packages/twenty-server/.local-storage"` | no | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. syntax: description is missing a closing quote after '.local-storage' |
||
| <a name="input_twentycrm_server_image"></a> [twentycrm\_server\_image](#input\_twentycrm\_server\_image) | TwentyCRM server image for the server deployment. This defaults to latest. This value is also used for the workers image. | `string` | `"twentycrm/twenty:latest"` | no | | ||
| <a name="input_twentycrm_server_pv_capacity"></a> [twentycrm\_server\_pv\_capacity](#input\_twentycrm\_server\_pv\_capacity) | Storage capacity provisioned for server persistent volume. | `string` | `"10Gi"` | no | | ||
| <a name="input_twentycrm_server_pv_path"></a> [twentycrm\_server\_pv\_path](#input\_twentycrm\_server\_pv\_path) | Local path to use to store the physical volume if using local storage on nodes. | `string` | `""` | no | | ||
| <a name="input_twentycrm_server_pvc_requests"></a> [twentycrm\_server\_pvc\_requests](#input\_twentycrm\_server\_pvc\_requests) | Storage capacity reservation for server persistent volume claim. | `string` | `"10Gi"` | no | | ||
| <a name="input_twentycrm_server_replicas"></a> [twentycrm\_server\_replicas](#input\_twentycrm\_server\_replicas) | Number of replicas for the TwentyCRM server deployment. This defaults to 1. | `number` | `1` | no | | ||
| <a name="input_twentycrm_worker_replicas"></a> [twentycrm\_worker\_replicas](#input\_twentycrm\_worker\_replicas) | Number of replicas for the TwentyCRM worker deployment. This defaults to 1. | `number` | `1` | no | | ||
<!-- END_TF_DOCS --> | ||
<!-- END_TF_DOCS --> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
resource "kubernetes_deployment" "twentycrm_redis" { | ||
metadata { | ||
name = "${var.twentycrm_app_name}-redis" | ||
namespace = kubernetes_namespace.twentycrm.metadata.0.name | ||
|
||
labels = { | ||
app = "${var.twentycrm_app_name}-redis" | ||
} | ||
} | ||
|
||
spec { | ||
replicas = var.twentycrm_redis_replicas | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. logic: var.twentycrm_redis_replicas is used but not defined in the variables.tf file shown in the context |
||
selector { | ||
match_labels = { | ||
app = "${var.twentycrm_app_name}-redis" | ||
} | ||
} | ||
|
||
strategy { | ||
type = "RollingUpdate" | ||
rolling_update { | ||
max_surge = "1" | ||
max_unavailable = "1" | ||
} | ||
} | ||
|
||
template { | ||
metadata { | ||
labels = { | ||
app = "${var.twentycrm_app_name}-redis" | ||
} | ||
} | ||
|
||
spec { | ||
container { | ||
image = var.twentycrm_redis_image | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. logic: var.twentycrm_redis_image is used but not defined in the variables.tf file shown in the context |
||
name = "redis" | ||
stdin = true | ||
tty = true | ||
Comment on lines
+38
to
+39
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. style: stdin and tty are set to true but may not be necessary for a Redis container as it typically runs as a daemon |
||
|
||
port { | ||
container_port = 6379 | ||
protocol = "TCP" | ||
} | ||
|
||
resources { | ||
requests = { | ||
cpu = "250m" | ||
memory = "1024Mi" | ||
} | ||
limits = { | ||
cpu = "500m" | ||
memory = "2048Mi" | ||
} | ||
} | ||
Comment on lines
+46
to
+55
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. style: memory requests and limits are quite high for a basic Redis instance - consider reducing unless there's a specific requirement |
||
} | ||
dns_policy = "ClusterFirst" | ||
restart_policy = "Always" | ||
} | ||
} | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
syntax: The PORT environment variable value should be an integer or string, not an unquoted number