Skip to content

Conversation

@spottsdd
Copy link
Contributor

Description

This update improves the K8s manifest files and makes changes to the services for better compatibility when running in K8s.

k8s datadog config:

  • set DD_ENV
  • Add DD_CLOUD_PROVIDER_METADATA setting

Storedog files:

  • remove unnecessary envars
  • add and update labels
  • add files to setup AB testing

README files:

  • Update AB Testing with K8s instructions
  • Update Ads readme details
  • K8s readme: review for clarity and flow

Docker Compose:

  • Remove unnecessary envars
  • Add DD_CLOUD_PROVIDER_METADATA setting
  • Update Ruby commands to match Profiling docs

Services files:

  • Discounts: remove variable for port
  • Update dd-trace library versions

How to test

In Datadog
Infrastructure: Confirm that Instruqt tags are not listed on hosts
Logs: Confirm no logs have empty Env by looking at facet menu
APM: Look at traces to confirm traces are received, including service-proxy
APM: Software Catalog, confirm services listed, including service-proxy

Docker

  • clone the repo
  • checkout this branch
  • run docker compose -f docker-compose.dev.yml up -d
    • This will build and run all services.

Kubernetes

K8s testing steps are outline in the k8s-manifests/README.md. It's important to note that unlike Docker compose, K8s won't build container images. Images must be pre-built and hosted in a registry. For development, you can run a local registry. Then build and push images. The images must be built and pushed on the worker node as that is where the services will run and look for localhost.

The development K8s Sandbox is currently set to test.

  • clone the repo
  • checkout this branch
  • Follow the steps in the readme to setup the Datadog Operator and start Storedog.

Use the Storedog tab to the right of the worker tabs to load the site. Again, the pods are running on the worker node.

@spottsdd spottsdd requested review from a team as code owners September 23, 2025 12:49
@arosenkranz
Copy link
Collaborator

I followed the steps outlined in the branch's k8s README (starting from installing the Datadog Operator) and when I went to actually spin up the Storedog services, I got a bunch of errors:

root@control-plane:~/lab/storedog# for file in k8s-manifests/storedog-app/**/*.yaml; do envsubst < "$file" | kubectl apply -n storedog -f -; done
configmap/feature-flags-config created
configmap/postgres-config created
configmap/postgres-scripts created
configmap/storedog-config created
service/ads created
error: error parsing STDIN: error converting YAML to JSON: yaml: line 27: mapping values are not allowed in this context
service/backend created
error: error parsing STDIN: error converting YAML to JSON: yaml: line 31: mapping values are not allowed in this context
service/discounts created
error: error parsing STDIN: error converting YAML to JSON: yaml: line 31: mapping values are not allowed in this context
service/frontend created
error: error parsing STDIN: error converting YAML to JSON: yaml: line 34: mapping values are not allowed in this context
service/service-proxy created
error: error parsing STDIN: error converting YAML to JSON: yaml: line 38: mapping values are not allowed in this context
error: error parsing STDIN: error converting YAML to JSON: yaml: line 31: mapping values are not allowed in this context
ingress.networking.k8s.io/storedog-ingress created
secret/storedog-secrets created
service/postgres created
error: error parsing STDIN: error converting YAML to JSON: yaml: line 35: mapping values are not allowed in this context
service/redis created
statefulset.apps/redis created

@spottsdd spottsdd merged commit 33a692b into main Sep 26, 2025
1 check passed
@spottsdd spottsdd deleted the TRAIN-3428-k8s-update branch September 26, 2025 10:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants