Observability as Code: DIY with Crossplane
Blog post from Dynatrace
Managing observability efficiently in cloud-native environments can significantly enhance platform performance, as demonstrated in a tech talk at #KCDAustria about using the Upjet project to create a custom Crossplane Dynatrace provider. This process allows for deploying a monitoring dashboard with alerts as a single Kubernetes resource, leveraging the operator pattern in Kubernetes to extend its API through custom resource definitions (CRDs) for managing external systems like AWS, GCP, and Azure. The talk highlighted the benefits of Configuration as Code, where configurations are treated as declarative code to simplify infrastructure management. The Upjet project streamlines the creation of Crossplane providers by transforming Terraform provider schemas into Crossplane CRDs, allowing for faster development and reuse of Terraform providers. The demonstration included steps to configure provider resources, generate the necessary code, and deploy the provider to manage Dynatrace resources in a Kubernetes environment. The session addressed key questions about the advantages of using Crossplane over Terraform, state management, the practicality of using Upjet in production, and the mapping between Terraform objects and Kubernetes CRs. The discussion also touched on the potential impact of Crossplane v2.0 on provider creation processes, emphasizing the benefits of using Crossplane for infrastructure automation by extending the Kubernetes API and using compositions to automate the observability stack.