diff --git a/k8s-manifests/README.md b/k8s-manifests/README.md index 8bc8ea57..e3ddc9c5 100644 --- a/k8s-manifests/README.md +++ b/k8s-manifests/README.md @@ -82,7 +82,8 @@ export REGISTRY_URL=localhost:5000 > Building and pushing containers to the local registry needs to be done on the worker node. ```bash -docker build -t $REGISTRY_URL/backend:latest ./services/backend && docker push $REGISTRY_URL/backend:latest +SERVICE_NAME=ads +docker build -t $REGISTRY_URL/$SERVICE_NAME:latest ./services/$SERVICE_NAME && docker push $REGISTRY_URL/$SERVICE_NAME:latest ``` ## Prerequisites @@ -140,7 +141,7 @@ export SD_TAG=1.4.0 export DD_VERSION_ADS=1.0.0 export DD_VERSION_BACKEND=1.0.0 export DD_VERSION_DISCOUNTS=1.0.0 -export DD_VERSION_NGINX=1.0.0 +export DD_VERSION_NGINX=1.28.0 export NEXT_PUBLIC_DD_SERVICE_FRONTEND=store-frontend export NEXT_PUBLIC_DD_VERSION_FRONTEND=1.0.0 export DD_ENV=development @@ -174,7 +175,7 @@ The storedog-app definition files contain variables which need to be set before 1. **Deploy Cluster Components (one-time setup per cluster):** -This single command installs the storage provisioner and the ingress controller. +Install the storage provisioner and the ingress controller. ```bash kubectl apply -R -f k8s-manifests/cluster-setup/ diff --git a/k8s-manifests/storedog-app/configmaps/feature-flags-config.yaml b/k8s-manifests/storedog-app/configmaps/feature-flags-config.yaml new file mode 100644 index 00000000..60d9451c --- /dev/null +++ b/k8s-manifests/storedog-app/configmaps/feature-flags-config.yaml @@ -0,0 +1,34 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: feature-flags-config + labels: + app: frontend + managed-by: storedog + purpose: feature-flags + environment: development + tier: application +data: + featureFlags.config.json: | + [ + { + "id": "1", + "name": "dbm", + "active": false + }, + { + "id": "2", + "name": "error-tracking", + "active": false + }, + { + "id": "3", + "name": "api-errors", + "active": false + }, + { + "id": "4", + "name": "product-card-frustration", + "active": false + } + ] diff --git a/k8s-manifests/storedog-app/deployments/backend.yaml b/k8s-manifests/storedog-app/deployments/backend.yaml index 8553aa7c..31498d6a 100644 --- a/k8s-manifests/storedog-app/deployments/backend.yaml +++ b/k8s-manifests/storedog-app/deployments/backend.yaml @@ -24,7 +24,7 @@ spec: labels: app: backend annotations: - ad.datadoghq.com/backend.logs: '[{"source": "ruby"}, "auto_multi_line_detection":true }]' + ad.datadoghq.com/backend.logs: '[{"source": "ruby", "auto_multi_line_detection":true}]' spec: volumes: - name: apmsocketpath @@ -39,7 +39,6 @@ spec: image: ${REGISTRY_URL}/backend:${SD_TAG} ports: - containerPort: 4000 - command: ["bundle", "exec", "rails", "s", "-b", "0.0.0.0", "-p", "4000"] env: - name: REDIS_URL valueFrom: diff --git a/k8s-manifests/storedog-app/deployments/discounts.yaml b/k8s-manifests/storedog-app/deployments/discounts.yaml index 5f0ede42..c448005c 100644 --- a/k8s-manifests/storedog-app/deployments/discounts.yaml +++ b/k8s-manifests/storedog-app/deployments/discounts.yaml @@ -39,10 +39,11 @@ spec: image: ${REGISTRY_URL}/discounts:${SD_TAG} ports: - containerPort: 2814 - command: ["ddtrace-run", "flask", "run", "--port=2814", "--host=0.0.0.0"] env: - name: FLASK_APP value: "discounts.py" + - name: DISCOUNTS_PORT + value: "2814" - name: FLASK_DEBUG value: "0" - name: POSTGRES_PASSWORD diff --git a/k8s-manifests/storedog-app/deployments/frontend.yaml b/k8s-manifests/storedog-app/deployments/frontend.yaml index e7c029ab..18da8998 100644 --- a/k8s-manifests/storedog-app/deployments/frontend.yaml +++ b/k8s-manifests/storedog-app/deployments/frontend.yaml @@ -30,6 +30,9 @@ spec: - name: apmsocketpath hostPath: path: /var/run/datadog/ + - name: feature-flags-config + configMap: + name: feature-flags-config initContainers: - name: wait-for-backend image: busybox @@ -106,6 +109,9 @@ spec: volumeMounts: - name: apmsocketpath mountPath: /var/run/datadog + - name: feature-flags-config + mountPath: /app/featureFlags.config.json + subPath: featureFlags.config.json livenessProbe: httpGet: path: / diff --git a/k8s-manifests/storedog-app/deployments/nginx.yaml b/k8s-manifests/storedog-app/deployments/nginx.yaml index 9437cc96..90fa2be5 100644 --- a/k8s-manifests/storedog-app/deployments/nginx.yaml +++ b/k8s-manifests/storedog-app/deployments/nginx.yaml @@ -30,8 +30,8 @@ spec: tags.datadoghq.com/service: service-proxy tags.datadoghq.com/version: 1.28.0 annotations: - ad.datadoghq.com/nginx.logs: '[{"source": "nginx"}]' - ad.datadoghq.com/nginx.checks: | + ad.datadoghq.com/service-proxy.logs: '[{"source": "nginx"}]' + ad.datadoghq.com/service-proxy.checks: | { "nginx": { "init_config": {}, diff --git a/k8s-manifests/storedog-app/deployments/worker.yaml b/k8s-manifests/storedog-app/deployments/worker.yaml index 1ab25be1..5a4f2bb3 100644 --- a/k8s-manifests/storedog-app/deployments/worker.yaml +++ b/k8s-manifests/storedog-app/deployments/worker.yaml @@ -12,7 +12,7 @@ spec: labels: app: worker annotations: - ad.datadoghq.com/worker.logs: '[{"source": "ruby"}, "auto_multi_line_detection":true }]' + ad.datadoghq.com/worker.logs: '[{"source": "ruby", "auto_multi_line_detection":true}]' spec: volumes: - name: apmsocketpath diff --git a/k8s-manifests/storedog-app/ingress/nginx-ingress.yaml b/k8s-manifests/storedog-app/ingress/nginx-ingress.yaml index 1f40edaa..081bec8e 100644 --- a/k8s-manifests/storedog-app/ingress/nginx-ingress.yaml +++ b/k8s-manifests/storedog-app/ingress/nginx-ingress.yaml @@ -2,7 +2,6 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: storedog-ingress - namespace: storedog spec: ingressClassName: nginx # All traffic that doesn't match a more specific rule below will diff --git a/k8s-manifests/storedog-app/statefulsets/postgres.yaml b/k8s-manifests/storedog-app/statefulsets/postgres.yaml index 877d9e02..e614275e 100644 --- a/k8s-manifests/storedog-app/statefulsets/postgres.yaml +++ b/k8s-manifests/storedog-app/statefulsets/postgres.yaml @@ -15,6 +15,7 @@ kind: StatefulSet metadata: name: postgres labels: + tags.datadoghq.com/env: ${DD_ENV} tags.datadoghq.com/service: store-db tags.datadoghq.com/version: "15.0" spec: @@ -27,16 +28,11 @@ spec: metadata: labels: app: postgres + tags.datadoghq.com/env: ${DD_ENV} tags.datadoghq.com/service: store-db tags.datadoghq.com/version: "15.0" annotations: - ad.datadoghq.com/postgres.logs: | - { - "source": "postgresql", - "auto_multi_line_detection":true, - "path": "/var/log/pg_log/postgresql*.json", - "type": "file" - } + ad.datadoghq.com/postgres.logs: '[{"source": "postgresql", "auto_multi_line_detection":true}]' ad.datadoghq.com/postgres.checks: | { "postgres": { diff --git a/k8s-manifests/storedog-app/statefulsets/redis.yaml b/k8s-manifests/storedog-app/statefulsets/redis.yaml index 08878297..bfadf8cd 100644 --- a/k8s-manifests/storedog-app/statefulsets/redis.yaml +++ b/k8s-manifests/storedog-app/statefulsets/redis.yaml @@ -15,6 +15,7 @@ kind: StatefulSet metadata: name: redis labels: + tags.datadoghq.com/env: ${DD_ENV} tags.datadoghq.com/service: redis tags.datadoghq.com/version: "6.2" spec: @@ -27,6 +28,7 @@ spec: metadata: labels: app: redis + tags.datadoghq.com/env: ${DD_ENV} tags.datadoghq.com/service: redis tags.datadoghq.com/version: "6.2" annotations: