{"id":20317551,"url":"https://github.com/dynatrace/demo-crossplane","last_synced_at":"2025-08-02T04:37:06.806Z","repository":{"id":258472860,"uuid":"865692500","full_name":"Dynatrace/demo-crossplane","owner":"Dynatrace","description":"Fully automated Dynatrace configuration as code using Kubernetes and Crossplane","archived":false,"fork":false,"pushed_at":"2025-06-12T04:05:17.000Z","size":1491,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-12T04:35:32.658Z","etag":null,"topics":["configuration-as-code","crossplane","demo","dynatrace","kubernetes","obslab"],"latest_commit_sha":null,"homepage":"https://dynatrace.github.io/demo-crossplane/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dynatrace.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-01T00:51:28.000Z","updated_at":"2025-06-12T04:05:09.000Z","dependencies_parsed_at":"2024-10-19T06:51:18.973Z","dependency_job_id":"7d8eb0d1-23fd-42ba-a67d-5bd328b5fa99","html_url":"https://github.com/Dynatrace/demo-crossplane","commit_stats":null,"previous_names":["dynatrace/demo-crossplane"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Dynatrace/demo-crossplane","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dynatrace%2Fdemo-crossplane","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dynatrace%2Fdemo-crossplane/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dynatrace%2Fdemo-crossplane/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dynatrace%2Fdemo-crossplane/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dynatrace","download_url":"https://codeload.github.com/Dynatrace/demo-crossplane/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dynatrace%2Fdemo-crossplane/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268334644,"owners_count":24233796,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["configuration-as-code","crossplane","demo","dynatrace","kubernetes","obslab"],"created_at":"2024-11-14T18:33:14.914Z","updated_at":"2025-08-02T04:37:06.753Z","avatar_url":"https://github.com/Dynatrace.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Observability Lab: Using Crossplane to Automate Dynatrace Configuration as Code on Kubernetes\n\n![logical flow](docs/images/auto-tags-dt-ui.png)\n\nDynatrace has long been compatible with [configuration as code](https://docs.dynatrace.com/docs/manage/configuration-as-code) using both [Monaco](https://docs.dynatrace.com/docs/manage/configuration-as-code/monaco) and [Terraform](https://docs.dynatrace.com/docs/manage/configuration-as-code/terraform).\n\nBoth Monaco and Terraform need to be triggered so usually this is handled by a pipeline, CRON Job or another regularly executing task.\n\nCrossplane provides a way to have a 24/7 automated reconciliation loop without needing to trigger Monaco or Terraform on demand.\n\n## Quick overview of Crossplane\n\n[Crossplane](https://www.crossplane.io/) is a CNCF project which can bring true automated GitOps workflows to managing Dynatrace configuration.\n\nCrossplane itself, of course, doesn't know how to talk to infrastructure providers like AWS or Dynatrace. So you need to install a Crossplane Provider.\n\nThese providers contain the \"know how\" to communicate with individual backends (like AWS) or in this case, Terraform.\n\nThis tutorial uses Crossplane with the [Terraform provider](https://marketplace.upbound.io/providers/upbound/provider-terraform/v0.18.0).\nThe tutorial also specifies [the Dynatrace terraform provider](https://registry.terraform.io/providers/dynatrace-oss/dynatrace/latest) which \"knows\" how speak to Dynatrace.\n\n\u003e So, crossplane has a Terraform provider and the Terraform provider in turn has a Dynatrace provider.\n\nCrossplane will be configured to watch a repository (your fork of this repository) for new Terraform configurations which it will then automatically apply to your Dynatrace environment.\n\n![architecture diagram](docs/images/crossplane-architecture.jpg)\n\n## Fork this repository\n\nYou will be making changes to the code in this repo. So begin by forking this repo to your own account.\n\nMake all changes in your fork.\n\n## [Start the hands-on here \u003e\u003e](https://dynatrace.github.io/demo-crossplane)\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdynatrace%2Fdemo-crossplane","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdynatrace%2Fdemo-crossplane","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdynatrace%2Fdemo-crossplane/lists"}