This repository contains everything needed to deploy and operate Astroshop, a Dynatrace adaptation of the OpenTelemetry Demo application.
| Directory | Description |
|---|---|
charts/astroshop |
Helm chart for the Astroshop application |
kustomize/ |
Example kustomize deployments that use the Helm chart |
config/ |
Example deployments for cluster-level prerequisites (Dynatrace operator, ingress) |
image-provider/ |
AWS Lambda code and Terraform config for the optional image provider feature |
flagd/ |
ArgoCD-managed feature flag configs used to trigger problem patterns at runtime |
- A running Kubernetes cluster
- Helm >= 3.18
- kustomize >= 5.7
- kubectl configured to point at your cluster
- A Dynatrace tenant
These tools must be present on the cluster before deploying Astroshop. Sample deployments are provided but you can install them however you prefer, or reuse existing installations.
The operator handles Kubernetes monitoring and injects the OneAgent into workloads.
Follow the official guide or use the sample deployment in config/dt-operator/.
Required only if you want to expose Astroshop via an ingress resource (controlled by components.ingress.enabled in values). If you already have an ingress controller running, make sure it is instrumented with Dynatrace.
See config/ingress/ for a sample nginx setup.
Open kustomize/base/values.yaml and fill in your Dynatrace tenant details:
components:
dt-credentials:
tenantEndpoint: https://<your-tenant-id>.live.dynatrace.com/api/v2/otlp
tenantToken: <your-data-ingest-token>tenantEndpoint— your tenant URL with the/api/v2/otlppath appendedtenantToken— an access token created using theKubernetes: Data Ingesttemplate
You can see all available chart values in charts/astroshop/values.yaml.
Run the deploy script from the root of the repository:
./deployThe script runs kustomize build --enable-helm against kustomize/base and pipes the output to kubectl apply. Astroshop is deployed into the astroshop namespace, which is created automatically.
kubectl get pods -n astroshopAll pods should reach Running state within a few minutes.
If you deployed without an ingress controller, you can reach the Astroshop frontend via port-forwarding:
kubectl port-forward svc/astroshop-frontendproxy 8080:8080 -n astroshopThe application will then be available at http://localhost:8080.
Overlays extend the base deployment with optional components. To deploy with an overlay:
./deploy <overlay-name>| Overlay | What it adds |
|---|---|
all-components |
SQS connection + image provider integration |
Note: overlays may require additional configuration — see the relevant component READMEs before deploying.
For the image provider specifically, see image-provider/ for setup steps and the required Terraform infrastructure.
The flagd/ directory contains feature flag configurations that are monitored by ArgoCD. Changing a flag value and pushing the change is enough to toggle a problem pattern in the running application — ArgoCD will sync the ConfigMap and restart Flagd automatically.
See flagd/README.md for details.