provider-datadog

module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 5, 2024 License: Apache-2.0

README

Provider Datadog

provider-datadog is a Crossplane provider that is built using Upjet code generation tools and exposes XRM-conformant managed resources for the Datadog API.

Prerequisites

This provider interacts with a Datadog account. It authenticates to the account using a Datadog API Key, an Application key, and a Datadog account endpoint URL. The keys can be generated inside the account and be stored in a Kubernetes secret on the Crossplane management cluster. The format of the secret is as follows:

    {
      "api_key": "INSERT_API_KEY",
      "app_key": "INSERT_APP_KEY",
      "api_url": "https://api.datadoghq.com/"
    }

Note that your preferred endpoint may differ. The Kubernertes secret can be referenced by the ProviderConfig, so that the provider-datadog can connect to the desired Datadog account. A ProviderConfig may look as follows:

apiVersion: datadog.upbound.io/v1beta1
kind: ProviderConfig
metadata:
  name: default
spec:
  credentials:
    source: Secret
    secretRef:
      name: datadog-creds
      namespace: upbound-system
      key: credentials

To run local tests, create a datadog-secret file per above. Then create an UPTEST_CLOUD_CREDENTIALS environment variable as follows

export UPTEST_CLOUD_CREDENTIALS=$(cat <PATH-TO-DATADOG-SECRET-FILE> )

Once complete, specify the tests that you would like to run in the UPTEST_EXAMPLE_LIST environment variable. An example is as follows:

export UPTEST_EXAMPLE_LIST="./examples/datadog/dashboardjson.yaml"

Note that you may specify multiple comma separated tests. Now run UPTEST_EXAMPLE_LIST="./examples/datadog/v1alpha1/dashboardjson.yaml" make e2e. This will create a local kind cluster, install Crossplane and the provider-datadog from a local build and run Uptests managed resources apply, update, import, delete tests.

Getting Started

Install the provider by using the following command after changing the image tag to the latest release:

up ctp provider install upbound/provider-datadog:v0.1.0

Alternatively, you can use declarative installation:

cat <<EOF | kubectl apply -f -
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
  name: provider-datadog
spec:
  package: upbound/provider-datadog:v0.1.0
EOF

You can see the API reference here.

Developing

Run code-generation pipeline:

make clean; make generate

Run against a Kubernetes cluster:

make run

Build, push, and install:

make all

Build binary:

make build

Report a Bug

For filing bugs, suggesting improvements, or requesting new features, please open an issue.

Directories

Path Synopsis
Package apis contains Kubernetes API for the provider.
Package apis contains Kubernetes API for the provider.
apm/v1alpha1
+kubebuilder:object:generate=true +groupName=apm.datadog.upbound.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=apm.datadog.upbound.io +versionName=v1alpha1
cloud/v1alpha1
+kubebuilder:object:generate=true +groupName=cloud.datadog.upbound.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=cloud.datadog.upbound.io +versionName=v1alpha1
datadog/v1alpha1
+kubebuilder:object:generate=true +groupName=datadog.upbound.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=datadog.upbound.io +versionName=v1alpha1
integration/v1alpha1
+kubebuilder:object:generate=true +groupName=integration.datadog.upbound.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=integration.datadog.upbound.io +versionName=v1alpha1
logs/v1alpha1
+kubebuilder:object:generate=true +groupName=logs.datadog.upbound.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=logs.datadog.upbound.io +versionName=v1alpha1
metric/v1alpha1
+kubebuilder:object:generate=true +groupName=metric.datadog.upbound.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=metric.datadog.upbound.io +versionName=v1alpha1
securitymonitoring/v1alpha1
+kubebuilder:object:generate=true +groupName=securitymonitoring.datadog.upbound.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=securitymonitoring.datadog.upbound.io +versionName=v1alpha1
sensitivedatascanner/v1alpha1
+kubebuilder:object:generate=true +groupName=sensitivedatascanner.datadog.upbound.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=sensitivedatascanner.datadog.upbound.io +versionName=v1alpha1
synthetics/v1alpha1
+kubebuilder:object:generate=true +groupName=synthetics.datadog.upbound.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=synthetics.datadog.upbound.io +versionName=v1alpha1
v1alpha1
Package v1alpha1 contains the core resources of the datadog jet provider.
Package v1alpha1 contains the core resources of the datadog jet provider.
v1beta1
Package v1beta1 contains the core resources of the datadog upjet provider.
Package v1beta1 contains the core resources of the datadog upjet provider.
cmd
api
apm
ip
rum
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL