From 3f8a49b02575aa8a5993f5021f07c3253ef137e3 Mon Sep 17 00:00:00 2001 From: natemollica-dev Date: Wed, 21 Feb 2024 16:20:40 +0000 Subject: [PATCH 1/3] backport of commit 8e09172d79299cc4b62174500454b3c3314c8591 --- acceptance/framework/config/config.go | 7 + acceptance/framework/consul/helm_cluster.go | 48 + acceptance/framework/flags/flags.go | 25 + acceptance/framework/k8s/deploy.go | 6 +- acceptance/tests/datadog/README.md | 20 + acceptance/tests/datadog/datadog_test.go | 70 + acceptance/tests/datadog/main_test.go | 16 + .../bases/datadog-operator/clusterrole.yaml | 703 ++ .../datadog-operator/clusterrole_binding.yaml | 14 + .../datadoghq.com_datadogagents_v1.yaml | 8413 +++++++++++++++++ .../datadoghq.com_datadogmetrics_v1.yaml | 124 + .../datadoghq.com_datadogmonitors_v1.yaml | 286 + .../bases/datadog-operator/deployment.yaml | 72 + .../bases/datadog-operator/kustomization.yaml | 8 + .../datadog-operator/serviceaccount.yaml | 13 + .../tests/fixtures/bases/datadog/datadog.yaml | 248 + .../fixtures/bases/datadog/kustomization.yaml | 3 + .../cases/datadog-dogstatsd-udp/patch.yaml | 60 + .../datadog-dogstatsd-uds/kustomization.yaml | 8 + .../cases/datadog-dogstatsd-uds/patch.yaml | 64 + .../cases/datadog-openmetrics/patch.yaml | 9 + .../fixtures/cases/datadog-otlp/patch.yaml | 15 + 22 files changed, 10230 insertions(+), 2 deletions(-) create mode 100644 acceptance/tests/datadog/README.md create mode 100644 acceptance/tests/datadog/datadog_test.go create mode 100644 acceptance/tests/datadog/main_test.go create mode 100644 acceptance/tests/fixtures/bases/datadog-operator/clusterrole.yaml create mode 100644 acceptance/tests/fixtures/bases/datadog-operator/clusterrole_binding.yaml create mode 100644 acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogagents_v1.yaml create mode 100644 acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmetrics_v1.yaml create mode 100644 acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmonitors_v1.yaml create mode 100644 acceptance/tests/fixtures/bases/datadog-operator/deployment.yaml create mode 100644 acceptance/tests/fixtures/bases/datadog-operator/kustomization.yaml create mode 100644 acceptance/tests/fixtures/bases/datadog-operator/serviceaccount.yaml create mode 100644 acceptance/tests/fixtures/bases/datadog/datadog.yaml create mode 100644 acceptance/tests/fixtures/bases/datadog/kustomization.yaml create mode 100644 acceptance/tests/fixtures/cases/datadog-dogstatsd-udp/patch.yaml create mode 100644 acceptance/tests/fixtures/cases/datadog-dogstatsd-uds/kustomization.yaml create mode 100644 acceptance/tests/fixtures/cases/datadog-dogstatsd-uds/patch.yaml create mode 100644 acceptance/tests/fixtures/cases/datadog-openmetrics/patch.yaml create mode 100644 acceptance/tests/fixtures/cases/datadog-otlp/patch.yaml diff --git a/acceptance/framework/config/config.go b/acceptance/framework/config/config.go index 49a24a6d10..df4a1d9af9 100644 --- a/acceptance/framework/config/config.go +++ b/acceptance/framework/config/config.go @@ -22,6 +22,9 @@ const ( HelmChartPath = "../../../charts/consul" LicenseSecretName = "license" LicenseSecretKey = "key" + DatadogSecretName = "datadog-secret" + DatadogAPIKey = "api-key" + DatadogAppKey = "app-key" ) type KubeTestConfig struct { @@ -70,6 +73,10 @@ type TestConfig struct { EnableEnterprise bool EnterpriseLicense string + EnableDatadog bool + DatadogAPIKey string + DatadogAppKey string + EnableOpenshift bool EnablePodSecurityPolicies bool diff --git a/acceptance/framework/consul/helm_cluster.go b/acceptance/framework/consul/helm_cluster.go index fafaceaca1..77cc712763 100644 --- a/acceptance/framework/consul/helm_cluster.go +++ b/acceptance/framework/consul/helm_cluster.go @@ -94,6 +94,15 @@ func NewHelmCluster( valuesFromConfig, err := cfg.HelmValuesFromConfig() require.NoError(t, err) + if cfg.EnableDatadog { + datadogNamespace := helmValues["global.metrics.datadog.namespace"] + configureNamespace(t, ctx.KubernetesClient(t), cfg, datadogNamespace) + + if cfg.DatadogAPIKey != "" || cfg.DatadogAppKey != "" { + createOrUpdateDatadogSecret(t, ctx.KubernetesClient(t), cfg, datadogNamespace) + } + } + // Merge all helm values helpers.MergeMaps(values, valuesFromConfig) helpers.MergeMaps(values, helmValues) @@ -159,6 +168,15 @@ func (h *HelmCluster) Create(t *testing.T) { chartName = h.ChartPath } + if strings.Contains(t.Name(), "Datadog") { + helm.AddRepo(t, h.helmOptions, "datadog", "https://helm.datadoghq.com") + // Ignoring the error from `helm repo update` as it could fail due to stale cache or unreachable servers and we're + // asserting a chart version on Install which would fail in an obvious way should this not succeed. + _, err := helm.RunHelmCommandAndGetOutputE(t, &helm.Options{}, "repo", "update") + if err != nil { + logger.Logf(t, "Unable to update helm repository, proceeding anyway: %s.", err) + } + } // Retry the install in case previous tests have not finished cleaning up. retry.RunWith(&retry.Counter{Wait: 2 * time.Second, Count: 30}, t, func(r *retry.R) { err := helm.InstallE(r, h.helmOptions, chartName, h.releaseName) @@ -672,6 +690,14 @@ func createOrUpdateLicenseSecret(t *testing.T, client kubernetes.Interface, cfg CreateK8sSecret(t, client, cfg, namespace, config.LicenseSecretName, config.LicenseSecretKey, cfg.EnterpriseLicense) } +func createOrUpdateDatadogSecret(t *testing.T, client kubernetes.Interface, cfg *config.TestConfig, namespace string) { + secretMap := map[string]string{ + config.DatadogAPIKey: cfg.DatadogAPIKey, + config.DatadogAppKey: cfg.DatadogAppKey, + } + CreateMultiKeyK8sSecret(t, client, cfg, namespace, config.DatadogSecretName, secretMap) +} + func configureNamespace(t *testing.T, client kubernetes.Interface, cfg *config.TestConfig, namespace string) { ctx := context.Background() @@ -783,3 +809,25 @@ func CreateK8sSecret(t *testing.T, client kubernetes.Interface, cfg *config.Test _ = client.CoreV1().Secrets(namespace).Delete(context.Background(), secretName, metav1.DeleteOptions{}) }) } + +func CreateMultiKeyK8sSecret(t *testing.T, client kubernetes.Interface, cfg *config.TestConfig, namespace, secretName string, secretMap map[string]string) { + retry.RunWith(&retry.Counter{Wait: 2 * time.Second, Count: 15}, t, func(r *retry.R) { + _, err := client.CoreV1().Secrets(namespace).Get(context.Background(), secretName, metav1.GetOptions{}) + if errors.IsNotFound(err) { + _, err := client.CoreV1().Secrets(namespace).Create(context.Background(), &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: secretName, + }, + StringData: secretMap, + Type: corev1.SecretTypeOpaque, + }, metav1.CreateOptions{}) + require.NoError(r, err) + } else { + require.NoError(r, err) + } + }) + + helpers.Cleanup(t, cfg.NoCleanupOnFailure, cfg.NoCleanup, func() { + _ = client.CoreV1().Secrets(namespace).Delete(context.Background(), secretName, metav1.DeleteOptions{}) + }) +} diff --git a/acceptance/framework/flags/flags.go b/acceptance/framework/flags/flags.go index d16de7b5b1..638d269a06 100644 --- a/acceptance/framework/flags/flags.go +++ b/acceptance/framework/flags/flags.go @@ -23,6 +23,10 @@ type TestFlags struct { flagEnableEnterprise bool flagEnterpriseLicense string + flagEnableDatadog bool + flagDatadogAPIKey string + flagDatadogAppKey string + flagEnableOpenshift bool flagEnablePodSecurityPolicies bool @@ -109,6 +113,15 @@ func (t *TestFlags) init() { flag.StringVar(&t.flagEnterpriseLicense, "enterprise-license", "", "The enterprise license for Consul.") + flag.BoolVar(&t.flagEnableDatadog, "enable-datadog", false, + "If true, the test suite will run tests for datadog integration features. "+ + "Note that some features will require setting the Datadog API and Application keys using the 'dd-api-key' and 'dd-app-key' flag below"+ + "or the env vars DATADOG_API_KEY and DATADOG_APP_KEY") + flag.StringVar(&t.flagDatadogAPIKey, "dd-api-key", "", + "The Datadog Agent API Key used for datadog metrics tests.") + flag.StringVar(&t.flagDatadogAppKey, "dd-app-key", "", + "The Datadog Agent Application Key used for datadog metrics tests.") + flag.BoolVar(&t.flagEnableOpenshift, "enable-openshift", false, "If true, the tests will automatically add Openshift Helm value for each Helm install.") @@ -158,6 +171,14 @@ func (t *TestFlags) init() { if t.flagEnterpriseLicense == "" { t.flagEnterpriseLicense = os.Getenv("CONSUL_ENT_LICENSE") } + + if t.flagDatadogAPIKey == "" { + t.flagDatadogAPIKey = os.Getenv("DATADOG_API_KEY") + } + + if t.flagDatadogAppKey == "" { + t.flagDatadogAppKey = os.Getenv("DATADOG_APP_KEY") + } } func (t *TestFlags) Validate() error { @@ -205,6 +226,10 @@ func (t *TestFlags) TestConfigFromFlags() *config.TestConfig { EnableEnterprise: t.flagEnableEnterprise, EnterpriseLicense: t.flagEnterpriseLicense, + EnableDatadog: t.flagEnableDatadog, + DatadogAPIKey: t.flagDatadogAPIKey, + DatadogAppKey: t.flagDatadogAppKey, + KubeEnvs: kubeEnvs, EnableMultiCluster: t.flagEnableMultiCluster, diff --git a/acceptance/framework/k8s/deploy.go b/acceptance/framework/k8s/deploy.go index 37cc0fb63a..7d37e984ae 100644 --- a/acceptance/framework/k8s/deploy.go +++ b/acceptance/framework/k8s/deploy.go @@ -69,8 +69,10 @@ func DeployKustomize(t *testing.T, options *k8s.KubectlOptions, noCleanupOnFailu KubectlDeleteK(t, options, kustomizeDir) }) - // The timeout to allow for connect-init to wait for services to be registered by the endpoints controller. - RunKubectl(t, options, "wait", "--for=condition=available", "--timeout=5m", fmt.Sprintf("deploy/%s", deployment.Name)) + if !strings.Contains(t.Name(), "Datadog") { + // The timeout to allow for connect-init to wait for services to be registered by the endpoints controller. + RunKubectl(t, options, "wait", "--for=condition=available", "--timeout=5m", fmt.Sprintf("deploy/%s", deployment.Name)) + } } func DeployJob(t *testing.T, options *k8s.KubectlOptions, noCleanupOnFailure bool, noCleanup bool, debugDirectory, kustomizeDir string) { diff --git a/acceptance/tests/datadog/README.md b/acceptance/tests/datadog/README.md new file mode 100644 index 0000000000..c7451604a9 --- /dev/null +++ b/acceptance/tests/datadog/README.md @@ -0,0 +1,20 @@ +## Datadog Acceptance Testing + +Tests helm chart override automation configurations for expected operation. + + +```yaml +global: + metrics: + enabled: true + enableAgentMetrics: true + disableAgentHostName: true + enableHostMetrics: true + datadog: + enabled: true + dogstatsd: + enabled: true + socketTransportType: "UDS" + dogstatsdAddr: "/var/run/datadog/dsd.socket" + dogstatsdTags: [ "source:consul","consul_service:consul-server" ] +``` \ No newline at end of file diff --git a/acceptance/tests/datadog/datadog_test.go b/acceptance/tests/datadog/datadog_test.go new file mode 100644 index 0000000000..6ba1a1ca78 --- /dev/null +++ b/acceptance/tests/datadog/datadog_test.go @@ -0,0 +1,70 @@ +package datadog + +import ( + "fmt" + "github.com/hashicorp/consul-k8s/acceptance/framework/consul" + "github.com/hashicorp/consul-k8s/acceptance/framework/helpers" + "github.com/hashicorp/consul-k8s/acceptance/framework/k8s" + "github.com/hashicorp/consul-k8s/acceptance/framework/logger" + "github.com/hashicorp/consul/sdk/testutil/retry" + "github.com/stretchr/testify/require" + "testing" + "time" +) + +const ( + StaticClientName = "static-client" +) + +// Test that prometheus metrics, when enabled, are accessible from the +// endpoints that have been exposed on the server, client and gateways. +func TestDatadogDogstatsDUnixDomainSocket(t *testing.T) { + env := suite.Environment() + cfg := suite.Config() + ctx := env.DefaultContext(t) + // ns := ctx.KubectlOptions(t).Namespace + + helmValues := map[string]string{ + "global.datacenter": "dc1", + "global.metrics.enabled": "true", + "global.metrics.enableAgentMetrics": "true", + "global.metrics.disableAgentHostName": "true", + "global.metrics.enableHostMetrics": "true", + "global.metrics.datadog.enabled": "true", + "global.metrics.datadog.namespace": "datadog", + "global.metrics.datadog.dogstatsd.enabled": "true", + "global.metrics.datadog.dogstatsd.socketTransportType": "UDS", + } + + releaseName := helpers.RandomName() + + // Install the consul cluster in the default kubernetes ctx. + consulCluster := consul.NewHelmCluster(t, helmValues, ctx, cfg, releaseName) + consulCluster.Create(t) + + // Deploy Datadog Agent via Datadog Operator and apply dogstatsd overlay + datadogNamespace := helmValues["global.metrics.datadog.namespace"] + logger.Log(t, fmt.Sprintf("deploying datadog-agent using operator | namespace: %s", datadogNamespace)) + k8s.DeployKustomize(t, ctx.KubectlOptionsForNamespace(datadogNamespace), cfg.NoCleanupOnFailure, cfg.NoCleanup, cfg.DebugDirectory, "../fixtures/bases/datadog-operator") + k8s.WaitForAllPodsToBeReady(t, ctx.KubernetesClient(t), datadogNamespace, "app.kubernetes.io/name=datadog-operator") + + k8s.DeployKustomize(t, ctx.KubectlOptionsForNamespace(datadogNamespace), cfg.NoCleanupOnFailure, cfg.NoCleanup, cfg.DebugDirectory, "../fixtures/bases/datadog") + k8s.WaitForAllPodsToBeReady(t, ctx.KubernetesClient(t), datadogNamespace, "agent.datadoghq.com/component=agent") + + k8s.DeployKustomize(t, ctx.KubectlOptionsForNamespace(datadogNamespace), cfg.NoCleanupOnFailure, cfg.NoCleanup, cfg.DebugDirectory, "../fixtures/cases/datadog-dogstatsd-uds") + k8s.WaitForAllPodsToBeReady(t, ctx.KubernetesClient(t), datadogNamespace, "agent.datadoghq.com/component=agent") + + // Create the static-client deployment so we can use it for in-cluster calls to metrics endpoints. + // This simulates queries that would be made by a prometheus server that runs externally to the consul + // components in the cluster. + logger.Log(t, "creating static-client") + k8s.DeployKustomize(t, ctx.KubectlOptions(t), cfg.NoCleanupOnFailure, cfg.NoCleanup, cfg.DebugDirectory, "../fixtures/bases/static-client") + k8s.WaitForAllPodsToBeReady(t, ctx.KubernetesClient(t), ctx.KubectlOptions(t).Namespace, "app=static-client") + // Server Metrics + searchQuery := "?q=consul.acl" + retry.RunWith(&retry.Counter{Count: 30, Wait: 10 * time.Second}, t, func(r *retry.R) { + metricsOutput, err := k8s.RunKubectlAndGetOutputE(t, ctx.KubectlOptions(t), "exec", "deploy/"+StaticClientName, "-c", "static-client", "--", "curl", "--silent", "--show-error", fmt.Sprintf("--header \"DD-API-KEY: %s\"", cfg.DatadogAPIKey), fmt.Sprintf("--header \"DD-APP-KEY: %s\"", cfg.DatadogAppKey), fmt.Sprintf("https://api.datadoghq.com/api/v1/search%s", searchQuery)) + require.NoError(t, err) + require.Contains(t, metricsOutput, `consul.acl.ResolveToken.50percentile`) + }) +} diff --git a/acceptance/tests/datadog/main_test.go b/acceptance/tests/datadog/main_test.go new file mode 100644 index 0000000000..03033336a0 --- /dev/null +++ b/acceptance/tests/datadog/main_test.go @@ -0,0 +1,16 @@ +package datadog + +import ( + "os" + "testing" + + testsuite "github.com/hashicorp/consul-k8s/acceptance/framework/suite" +) + +var suite testsuite.Suite + +func TestMain(m *testing.M) { + suite = testsuite.NewSuite(m) + os.Exit(suite.Run()) + +} diff --git a/acceptance/tests/fixtures/bases/datadog-operator/clusterrole.yaml b/acceptance/tests/fixtures/bases/datadog-operator/clusterrole.yaml new file mode 100644 index 0000000000..b9b8051e58 --- /dev/null +++ b/acceptance/tests/fixtures/bases/datadog-operator/clusterrole.yaml @@ -0,0 +1,703 @@ +--- +# Source: datadog-operator/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: datadog-operator + labels: + app.kubernetes.io/name: datadog-operator + helm.sh/chart: datadog-operator-1.5.0 + app.kubernetes.io/instance: datadog-operator + app.kubernetes.io/version: "1.4.0" + app.kubernetes.io/managed-by: Helm +rules: +- nonResourceURLs: + - /metrics + - /metrics/slis + verbs: + - get +- apiGroups: + - "" + resources: + - componentstatuses + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - deployments + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - endpoints + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - events + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - limitranges + verbs: + - list + - watch +- apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - nodes + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - nodes/metrics + verbs: + - get +- apiGroups: + - "" + resources: + - nodes/proxy + verbs: + - get +- apiGroups: + - "" + resources: + - nodes/spec + verbs: + - get +- apiGroups: + - "" + resources: + - nodes/stats + verbs: + - get +- apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - list + - watch +- apiGroups: + - "" + resources: + - persistentvolumes + verbs: + - list + - watch +- apiGroups: + - "" + resources: + - pods + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - replicationcontrollers + verbs: + - list + - watch +- apiGroups: + - "" + resources: + - resourcequotas + verbs: + - list + - watch +- apiGroups: + - "" + resources: + - secrets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - serviceaccounts + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - services + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - '*' +- apiGroups: + - admissionregistration.k8s.io + resources: + - validatingwebhookconfigurations + verbs: + - list + - watch +- apiGroups: + - apiregistration.k8s.io + resources: + - apiservices + verbs: + - '*' +- apiGroups: + - apps + resources: + - daemonsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - apps + resources: + - deployments + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - apps + resources: + - replicasets + verbs: + - get + - list + - watch +- apiGroups: + - apps + resources: + - replicationcontrollers + verbs: + - list + - watch +- apiGroups: + - apps + resources: + - statefulsets + verbs: + - get + - list + - watch +- apiGroups: + - apps + - extensions + resources: + - daemonsets + - deployments + - replicasets + verbs: + - list + - watch +- apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - get +- apiGroups: + - authorization.k8s.io + resources: + - clusterrolebindings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - authorization.k8s.io + resources: + - clusterroles + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - authorization.k8s.io + resources: + - rolebindings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - authorization.k8s.io + resources: + - roles + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + - get +- apiGroups: + - autoscaling + resources: + - horizontalpodautoscalers + verbs: + - list + - watch +- apiGroups: + - apiextensions.k8s.io + - extensions + resources: + - customresourcedefinitions + verbs: + - list + - watch +- apiGroups: + - autoscaling.k8s.io + resources: + - verticalpodautoscalers + verbs: + - list + - watch +- apiGroups: + - batch + resources: + - cronjobs + verbs: + - get + - list + - watch +- apiGroups: + - batch + resources: + - jobs + verbs: + - get + - list + - watch +- apiGroups: + - certificates.k8s.io + resources: + - certificatesigningrequests + verbs: + - list + - watch +- apiGroups: + - cilium.io + resources: + - ciliumnetworkpolicies + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datadoghq.com + resources: + - datadogagents + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datadoghq.com + resources: + - datadogagents/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datadoghq.com + resources: + - datadogagents/status + verbs: + - get + - patch + - update +- apiGroups: + - datadoghq.com + resources: + - datadogmetrics + verbs: + - create + - delete + - list + - watch +- apiGroups: + - datadoghq.com + resources: + - datadogmetrics/status + verbs: + - update +- apiGroups: + - datadoghq.com + resources: + - datadogmonitors + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datadoghq.com + resources: + - datadogmonitors/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datadoghq.com + resources: + - datadogmonitors/status + verbs: + - get + - patch + - update +- apiGroups: + - datadoghq.com + resources: + - extendeddaemonsetreplicasets + verbs: + - get +- apiGroups: + - datadoghq.com + resources: + - extendeddaemonsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datadoghq.com + resources: + - watermarkpodautoscalers + verbs: + - get + - list + - watch +- apiGroups: + - datadoghq.com + resources: + - datadogslos + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datadoghq.com + resources: + - datadogslos/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datadoghq.com + resources: + - datadogslos/status + verbs: + - get + - patch + - update +- apiGroups: + - external.metrics.k8s.io + resources: + - '*' + verbs: + - get + - list + - watch +- apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - list + - watch +- apiGroups: + - networking.k8s.io + resources: + - networkpolicies + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - policy + resources: + - podsecuritypolicies + verbs: + - get + - list + - watch +- apiGroups: + - quota.openshift.io + resources: + - clusterresourcequotas + verbs: + - get + - list +- apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - rbac.authorization.k8s.io + resources: + - rolebindings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - rbac.authorization.k8s.io + resources: + - roles + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - roles.rbac.authorization.k8s.io + resources: + - clusterrolebindings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - roles.rbac.authorization.k8s.io + resources: + - clusterroles + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - roles.rbac.authorization.k8s.io + resources: + - rolebindings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - roles.rbac.authorization.k8s.io + resources: + - roles + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - security.openshift.io + resourceNames: + - restricted + resources: + - securitycontextconstraints + verbs: + - use +- apiGroups: + - storage.k8s.io + resources: + - storageclasses + - volumeattachments + verbs: + - list + - watch diff --git a/acceptance/tests/fixtures/bases/datadog-operator/clusterrole_binding.yaml b/acceptance/tests/fixtures/bases/datadog-operator/clusterrole_binding.yaml new file mode 100644 index 0000000000..30148d3a31 --- /dev/null +++ b/acceptance/tests/fixtures/bases/datadog-operator/clusterrole_binding.yaml @@ -0,0 +1,14 @@ +--- +# Source: datadog-operator/templates/clusterrole_binding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: datadog-operator +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: datadog-operator +subjects: + - kind: ServiceAccount + name: datadog-operator + namespace: datadog diff --git a/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogagents_v1.yaml b/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogagents_v1.yaml new file mode 100644 index 0000000000..97c3df1e75 --- /dev/null +++ b/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogagents_v1.yaml @@ -0,0 +1,8413 @@ +--- +# Source: datadog-operator/charts/datadogCRDs/templates/datadoghq.com_datadogagents_v1.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.1 + creationTimestamp: null + name: datadogagents.datadoghq.com + labels: + helm.sh/chart: 'datadogCRDs-1.4.0' + app.kubernetes.io/managed-by: 'Helm' + app.kubernetes.io/name: 'datadogCRDs' + app.kubernetes.io/instance: 'datadog-operator' +spec: + group: datadoghq.com + names: + kind: DatadogAgent + listKind: DatadogAgentList + plural: datadogagents + shortNames: + - dd + singular: datadogagent + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Active')].status + name: active + type: string + - jsonPath: .status.agent.status + name: agent + type: string + - jsonPath: .status.clusterAgent.status + name: cluster-agent + type: string + - jsonPath: .status.clusterChecksRunner.status + name: cluster-checks-runner + type: string + - jsonPath: .metadata.creationTimestamp + name: age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + agent: + properties: + additionalAnnotations: + additionalProperties: + type: string + type: object + additionalLabels: + additionalProperties: + type: string + type: object + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + type: array + required: + - nodeSelectorTerms + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + apm: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + enabled: + type: boolean + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + hostPort: + format: int32 + type: integer + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + unixDomainSocket: + properties: + enabled: + type: boolean + hostFilepath: + type: string + type: object + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + - mountPath + x-kubernetes-list-type: map + type: object + config: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + checksd: + properties: + configMapName: + type: string + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + type: object + collectEvents: + type: boolean + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + confd: + properties: + configMapName: + type: string + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + type: object + criSocket: + properties: + criSocketPath: + type: string + dockerSocketPath: + type: string + type: object + ddUrl: + type: string + dogstatsd: + properties: + dogstatsdOriginDetection: + type: boolean + mapperProfiles: + properties: + configData: + type: string + configMap: + properties: + fileKey: + type: string + name: + type: string + type: object + type: object + unixDomainSocket: + properties: + enabled: + type: boolean + hostFilepath: + type: string + type: object + type: object + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + healthPort: + format: int32 + type: integer + hostPort: + format: int32 + type: integer + kubelet: + properties: + agentCAPath: + type: string + host: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + type: object + hostCAPath: + type: string + tlsVerify: + type: boolean + type: object + leaderElection: + type: boolean + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + logLevel: + type: string + namespaceLabelsAsTags: + additionalProperties: + type: string + type: object + nodeLabelsAsTags: + additionalProperties: + type: string + type: object + podAnnotationsAsTags: + additionalProperties: + type: string + type: object + podLabelsAsTags: + additionalProperties: + type: string + type: object + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + securityContext: + properties: + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + tags: + items: + type: string + type: array + x-kubernetes-list-type: set + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + - mountPath + x-kubernetes-list-type: map + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + type: string + type: object + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + type: string + type: object + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + required: + - path + type: object + type: array + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + wwids: + items: + type: string + type: array + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + required: + - path + type: object + type: array + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + type: object + customConfig: + properties: + configData: + type: string + configMap: + properties: + fileKey: + type: string + name: + type: string + type: object + type: object + daemonsetName: + type: string + deploymentStrategy: + properties: + canary: + properties: + autoFail: + properties: + canaryTimeout: + type: string + enabled: + type: boolean + maxRestarts: + format: int32 + type: integer + maxRestartsDuration: + type: string + type: object + autoPause: + properties: + enabled: + type: boolean + maxRestarts: + format: int32 + type: integer + maxSlowStartDuration: + type: string + type: object + duration: + type: string + noRestartsDuration: + type: string + nodeAntiAffinityKeys: + items: + type: string + type: array + x-kubernetes-list-type: set + nodeSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + replicas: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + validationMode: + enum: + - auto + - manual + type: string + type: object + reconcileFrequency: + type: string + rollingUpdate: + properties: + maxParallelPodCreation: + format: int32 + type: integer + maxPodSchedulerFailure: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + maxUnavailable: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + slowStartAdditiveIncrease: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + slowStartIntervalDuration: + type: string + type: object + updateStrategyType: + type: string + type: object + dnsConfig: + properties: + nameservers: + items: + type: string + type: array + options: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + searches: + items: + type: string + type: array + type: object + dnsPolicy: + type: string + enabled: + type: boolean + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + hostNetwork: + type: boolean + hostPID: + type: boolean + image: + properties: + jmxEnabled: + type: boolean + name: + type: string + pullPolicy: + type: string + pullSecrets: + items: + properties: + name: + type: string + type: object + type: array + tag: + type: string + type: object + keepAnnotations: + type: string + keepLabels: + type: string + localService: + properties: + forceLocalServiceEnable: + type: boolean + overrideName: + type: string + type: object + log: + properties: + containerCollectUsingFiles: + type: boolean + containerLogsPath: + type: string + containerSymlinksPath: + type: string + enabled: + type: boolean + logsConfigContainerCollectAll: + type: boolean + openFilesLimit: + format: int32 + type: integer + podLogsPath: + type: string + tempStoragePath: + type: string + type: object + networkPolicy: + properties: + create: + type: boolean + dnsSelectorEndpoints: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + type: array + x-kubernetes-list-type: atomic + flavor: + type: string + type: object + otlp: + properties: + receiver: + properties: + protocols: + properties: + grpc: + properties: + enabled: + type: boolean + endpoint: + type: string + type: object + http: + properties: + enabled: + type: boolean + endpoint: + type: string + type: object + type: object + type: object + type: object + priorityClassName: + type: string + process: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + enabled: + type: boolean + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + processCollectionEnabled: + type: boolean + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + - mountPath + x-kubernetes-list-type: map + type: object + rbac: + properties: + create: + type: boolean + serviceAccountName: + type: string + type: object + security: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + compliance: + properties: + checkInterval: + type: string + configDir: + properties: + configMapName: + type: string + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + type: object + enabled: + type: boolean + type: object + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + runtime: + properties: + enabled: + type: boolean + policiesDir: + properties: + configMapName: + type: string + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + type: object + syscallMonitor: + properties: + enabled: + type: boolean + type: object + type: object + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + - mountPath + x-kubernetes-list-type: map + type: object + systemProbe: + properties: + appArmorProfileName: + type: string + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + bpfDebugEnabled: + type: boolean + collectDNSStats: + type: boolean + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + conntrackEnabled: + type: boolean + customConfig: + properties: + configData: + type: string + configMap: + properties: + fileKey: + type: string + name: + type: string + type: object + type: object + debugPort: + format: int32 + type: integer + enableOOMKill: + type: boolean + enableTCPQueueLength: + type: boolean + enabled: + type: boolean + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + secCompCustomProfileConfigMap: + type: string + secCompProfileName: + type: string + secCompRootPath: + type: string + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + capabilities: + properties: + add: + items: + type: string + type: array + drop: + items: + type: string + type: array + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + - mountPath + x-kubernetes-list-type: map + type: object + useExtendedDaemonset: + type: boolean + type: object + clusterAgent: + properties: + additionalAnnotations: + additionalProperties: + type: string + type: object + additionalLabels: + additionalProperties: + type: string + type: object + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + type: array + required: + - nodeSelectorTerms + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + config: + properties: + admissionController: + properties: + agentCommunicationMode: + type: string + enabled: + type: boolean + mutateUnlabelled: + type: boolean + serviceName: + type: string + type: object + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + clusterChecksEnabled: + type: boolean + collectEvents: + type: boolean + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + confd: + properties: + configMapName: + type: string + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + type: object + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + externalMetrics: + properties: + credentials: + properties: + apiKey: + type: string + apiKeyExistingSecret: + type: string + apiSecret: + properties: + keyName: + type: string + secretName: + type: string + required: + - secretName + type: object + appKey: + type: string + appKeyExistingSecret: + type: string + appSecret: + properties: + keyName: + type: string + secretName: + type: string + required: + - secretName + type: object + type: object + enabled: + type: boolean + endpoint: + type: string + port: + format: int32 + type: integer + useDatadogMetrics: + type: boolean + wpaController: + type: boolean + type: object + healthPort: + format: int32 + type: integer + logLevel: + type: string + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + securityContext: + properties: + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + - mountPath + x-kubernetes-list-type: map + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + type: string + type: object + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + type: string + type: object + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + required: + - path + type: object + type: array + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + wwids: + items: + type: string + type: array + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + required: + - path + type: object + type: array + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + type: object + customConfig: + properties: + configData: + type: string + configMap: + properties: + fileKey: + type: string + name: + type: string + type: object + type: object + deploymentName: + type: string + enabled: + type: boolean + image: + properties: + jmxEnabled: + type: boolean + name: + type: string + pullPolicy: + type: string + pullSecrets: + items: + properties: + name: + type: string + type: object + type: array + tag: + type: string + type: object + keepAnnotations: + type: string + keepLabels: + type: string + networkPolicy: + properties: + create: + type: boolean + dnsSelectorEndpoints: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + type: array + x-kubernetes-list-type: atomic + flavor: + type: string + type: object + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + rbac: + properties: + create: + type: boolean + serviceAccountName: + type: string + type: object + replicas: + format: int32 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + type: object + clusterChecksRunner: + properties: + additionalAnnotations: + additionalProperties: + type: string + type: object + additionalLabels: + additionalProperties: + type: string + type: object + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + type: array + required: + - nodeSelectorTerms + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + config: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + healthPort: + format: int32 + type: integer + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + logLevel: + type: string + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + securityContext: + properties: + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + - mountPath + x-kubernetes-list-type: map + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + type: string + type: object + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + type: string + type: object + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + required: + - path + type: object + type: array + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + wwids: + items: + type: string + type: array + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + required: + - path + type: object + type: array + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + type: object + customConfig: + properties: + configData: + type: string + configMap: + properties: + fileKey: + type: string + name: + type: string + type: object + type: object + deploymentName: + type: string + enabled: + type: boolean + image: + properties: + jmxEnabled: + type: boolean + name: + type: string + pullPolicy: + type: string + pullSecrets: + items: + properties: + name: + type: string + type: object + type: array + tag: + type: string + type: object + networkPolicy: + properties: + create: + type: boolean + dnsSelectorEndpoints: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + type: array + x-kubernetes-list-type: atomic + flavor: + type: string + type: object + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + rbac: + properties: + create: + type: boolean + serviceAccountName: + type: string + type: object + replicas: + format: int32 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + type: object + clusterName: + type: string + credentials: + properties: + apiKey: + type: string + apiKeyExistingSecret: + type: string + apiSecret: + properties: + keyName: + type: string + secretName: + type: string + required: + - secretName + type: object + appKey: + type: string + appKeyExistingSecret: + type: string + appSecret: + properties: + keyName: + type: string + secretName: + type: string + required: + - secretName + type: object + token: + type: string + useSecretBackend: + type: boolean + type: object + features: + properties: + kubeStateMetricsCore: + properties: + clusterCheck: + type: boolean + conf: + properties: + configData: + type: string + configMap: + properties: + fileKey: + type: string + name: + type: string + type: object + type: object + enabled: + type: boolean + type: object + logCollection: + properties: + containerCollectUsingFiles: + type: boolean + containerLogsPath: + type: string + containerSymlinksPath: + type: string + enabled: + type: boolean + logsConfigContainerCollectAll: + type: boolean + openFilesLimit: + format: int32 + type: integer + podLogsPath: + type: string + tempStoragePath: + type: string + type: object + networkMonitoring: + properties: + enabled: + type: boolean + type: object + orchestratorExplorer: + properties: + additionalEndpoints: + type: string + clusterCheck: + type: boolean + conf: + properties: + configData: + type: string + configMap: + properties: + fileKey: + type: string + name: + type: string + type: object + type: object + ddUrl: + type: string + enabled: + type: boolean + extraTags: + items: + type: string + type: array + x-kubernetes-list-type: set + scrubbing: + properties: + containers: + type: boolean + type: object + type: object + prometheusScrape: + properties: + additionalConfigs: + type: string + enabled: + type: boolean + serviceEndpoints: + type: boolean + type: object + type: object + registry: + type: string + site: + type: string + type: object + status: + properties: + agent: + properties: + available: + format: int32 + type: integer + current: + format: int32 + type: integer + currentHash: + type: string + daemonsetName: + type: string + desired: + format: int32 + type: integer + lastUpdate: + format: date-time + type: string + ready: + format: int32 + type: integer + state: + type: string + status: + type: string + upToDate: + format: int32 + type: integer + required: + - available + - current + - desired + - ready + - upToDate + type: object + clusterAgent: + properties: + availableReplicas: + format: int32 + type: integer + currentHash: + type: string + deploymentName: + type: string + generatedToken: + type: string + lastUpdate: + format: date-time + type: string + readyReplicas: + format: int32 + type: integer + replicas: + format: int32 + type: integer + state: + type: string + status: + type: string + unavailableReplicas: + format: int32 + type: integer + updatedReplicas: + format: int32 + type: integer + type: object + clusterChecksRunner: + properties: + availableReplicas: + format: int32 + type: integer + currentHash: + type: string + deploymentName: + type: string + generatedToken: + type: string + lastUpdate: + format: date-time + type: string + readyReplicas: + format: int32 + type: integer + replicas: + format: int32 + type: integer + state: + type: string + status: + type: string + unavailableReplicas: + format: int32 + type: integer + updatedReplicas: + format: int32 + type: integer + type: object + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + lastUpdateTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.agent.status + name: agent + type: string + - jsonPath: .status.clusterAgent.status + name: cluster-agent + type: string + - jsonPath: .status.clusterChecksRunner.status + name: cluster-checks-runner + type: string + - jsonPath: .metadata.creationTimestamp + name: age + type: date + name: v2alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + features: + properties: + admissionController: + properties: + agentCommunicationMode: + type: string + enabled: + type: boolean + failurePolicy: + type: string + mutateUnlabelled: + type: boolean + serviceName: + type: string + webhookName: + type: string + type: object + apm: + properties: + enabled: + type: boolean + hostPortConfig: + properties: + enabled: + type: boolean + hostPort: + format: int32 + type: integer + type: object + unixDomainSocketConfig: + properties: + enabled: + type: boolean + path: + type: string + type: object + type: object + clusterChecks: + properties: + enabled: + type: boolean + useClusterChecksRunners: + type: boolean + type: object + cspm: + properties: + checkInterval: + type: string + customBenchmarks: + properties: + configData: + type: string + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + type: string + type: object + type: object + enabled: + type: boolean + hostBenchmarks: + properties: + enabled: + type: boolean + type: object + type: object + cws: + properties: + customPolicies: + properties: + configData: + type: string + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + type: string + type: object + type: object + enabled: + type: boolean + network: + properties: + enabled: + type: boolean + type: object + remoteConfiguration: + properties: + enabled: + type: boolean + type: object + securityProfiles: + properties: + enabled: + type: boolean + type: object + syscallMonitorEnabled: + type: boolean + type: object + dogstatsd: + properties: + hostPortConfig: + properties: + enabled: + type: boolean + hostPort: + format: int32 + type: integer + type: object + mapperProfiles: + properties: + configData: + type: string + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + type: string + type: object + type: object + originDetectionEnabled: + type: boolean + tagCardinality: + type: string + unixDomainSocketConfig: + properties: + enabled: + type: boolean + path: + type: string + type: object + type: object + ebpfCheck: + properties: + enabled: + type: boolean + type: object + eventCollection: + properties: + collectKubernetesEvents: + type: boolean + type: object + externalMetricsServer: + properties: + enabled: + type: boolean + endpoint: + properties: + credentials: + properties: + apiKey: + type: string + apiSecret: + properties: + keyName: + type: string + secretName: + type: string + required: + - secretName + type: object + appKey: + type: string + appSecret: + properties: + keyName: + type: string + secretName: + type: string + required: + - secretName + type: object + type: object + url: + type: string + type: object + port: + format: int32 + type: integer + registerAPIService: + type: boolean + useDatadogMetrics: + type: boolean + wpaController: + type: boolean + type: object + kubeStateMetricsCore: + properties: + conf: + properties: + configData: + type: string + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + type: string + type: object + type: object + enabled: + type: boolean + type: object + liveContainerCollection: + properties: + enabled: + type: boolean + type: object + liveProcessCollection: + properties: + enabled: + type: boolean + scrubProcessArguments: + type: boolean + stripProcessArguments: + type: boolean + type: object + logCollection: + properties: + containerCollectAll: + type: boolean + containerCollectUsingFiles: + type: boolean + containerLogsPath: + type: string + containerSymlinksPath: + type: string + enabled: + type: boolean + openFilesLimit: + format: int32 + type: integer + podLogsPath: + type: string + tempStoragePath: + type: string + type: object + npm: + properties: + collectDNSStats: + type: boolean + enableConntrack: + type: boolean + enabled: + type: boolean + type: object + oomKill: + properties: + enabled: + type: boolean + type: object + orchestratorExplorer: + properties: + conf: + properties: + configData: + type: string + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + type: string + type: object + type: object + customResources: + items: + type: string + type: array + x-kubernetes-list-type: set + ddUrl: + type: string + enabled: + type: boolean + extraTags: + items: + type: string + type: array + x-kubernetes-list-type: set + scrubContainers: + type: boolean + type: object + otlp: + properties: + receiver: + properties: + protocols: + properties: + grpc: + properties: + enabled: + type: boolean + endpoint: + type: string + type: object + http: + properties: + enabled: + type: boolean + endpoint: + type: string + type: object + type: object + type: object + type: object + processDiscovery: + properties: + enabled: + type: boolean + type: object + prometheusScrape: + properties: + additionalConfigs: + type: string + enableServiceEndpoints: + type: boolean + enabled: + type: boolean + version: + type: integer + type: object + remoteConfiguration: + properties: + enabled: + type: boolean + type: object + sbom: + properties: + containerImage: + properties: + analyzers: + items: + type: string + type: array + x-kubernetes-list-type: set + enabled: + type: boolean + type: object + enabled: + type: boolean + host: + properties: + analyzers: + items: + type: string + type: array + x-kubernetes-list-type: set + enabled: + type: boolean + type: object + type: object + tcpQueueLength: + properties: + enabled: + type: boolean + type: object + usm: + properties: + enabled: + type: boolean + type: object + type: object + global: + properties: + clusterAgentToken: + type: string + clusterAgentTokenSecret: + properties: + keyName: + type: string + secretName: + type: string + required: + - secretName + type: object + clusterName: + type: string + containerStrategy: + type: string + credentials: + properties: + apiKey: + type: string + apiSecret: + properties: + keyName: + type: string + secretName: + type: string + required: + - secretName + type: object + appKey: + type: string + appSecret: + properties: + keyName: + type: string + secretName: + type: string + required: + - secretName + type: object + type: object + criSocketPath: + type: string + disableNonResourceRules: + type: boolean + dockerSocketPath: + type: string + endpoint: + properties: + credentials: + properties: + apiKey: + type: string + apiSecret: + properties: + keyName: + type: string + secretName: + type: string + required: + - secretName + type: object + appKey: + type: string + appSecret: + properties: + keyName: + type: string + secretName: + type: string + required: + - secretName + type: object + type: object + url: + type: string + type: object + kubelet: + properties: + agentCAPath: + type: string + host: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + type: object + hostCAPath: + type: string + tlsVerify: + type: boolean + type: object + localService: + properties: + forceEnableLocalService: + type: boolean + nameOverride: + type: string + type: object + logLevel: + type: string + namespaceLabelsAsTags: + additionalProperties: + type: string + type: object + networkPolicy: + properties: + create: + type: boolean + dnsSelectorEndpoints: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + type: array + x-kubernetes-list-type: atomic + flavor: + type: string + type: object + nodeLabelsAsTags: + additionalProperties: + type: string + type: object + podAnnotationsAsTags: + additionalProperties: + type: string + type: object + podLabelsAsTags: + additionalProperties: + type: string + type: object + registry: + type: string + site: + type: string + tags: + items: + type: string + type: array + x-kubernetes-list-type: set + type: object + override: + additionalProperties: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + type: array + required: + - nodeSelectorTerms + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + containers: + additionalProperties: + properties: + appArmorProfileName: + type: string + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + healthPort: + format: int32 + type: integer + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + logLevel: + type: string + name: + type: string + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + seccompConfig: + properties: + customProfile: + properties: + configData: + type: string + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + type: string + type: object + type: object + customRootPath: + type: string + type: object + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + capabilities: + properties: + add: + items: + type: string + type: array + drop: + items: + type: string + type: array + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + - mountPath + x-kubernetes-list-type: map + type: object + type: object + createRbac: + type: boolean + customConfigurations: + additionalProperties: + properties: + configData: + type: string + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + type: string + type: object + type: object + type: object + disabled: + type: boolean + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + extraChecksd: + properties: + configDataMap: + additionalProperties: + type: string + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + type: string + type: object + type: object + extraConfd: + properties: + configDataMap: + additionalProperties: + type: string + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + type: string + type: object + type: object + hostNetwork: + type: boolean + hostPID: + type: boolean + image: + properties: + jmxEnabled: + type: boolean + name: + type: string + pullPolicy: + type: string + pullSecrets: + items: + properties: + name: + type: string + type: object + type: array + tag: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + name: + type: string + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + replicas: + format: int32 + type: integer + securityContext: + properties: + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + serviceAccountName: + type: string + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + type: string + type: object + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + type: string + type: object + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + required: + - path + type: object + type: array + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + wwids: + items: + type: string + type: array + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + required: + - path + type: object + type: array + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + type: object + type: object + type: object + status: + properties: + agent: + properties: + available: + format: int32 + type: integer + current: + format: int32 + type: integer + currentHash: + type: string + daemonsetName: + type: string + desired: + format: int32 + type: integer + lastUpdate: + format: date-time + type: string + ready: + format: int32 + type: integer + state: + type: string + status: + type: string + upToDate: + format: int32 + type: integer + required: + - available + - current + - desired + - ready + - upToDate + type: object + agentList: + items: + properties: + available: + format: int32 + type: integer + current: + format: int32 + type: integer + currentHash: + type: string + daemonsetName: + type: string + desired: + format: int32 + type: integer + lastUpdate: + format: date-time + type: string + ready: + format: int32 + type: integer + state: + type: string + status: + type: string + upToDate: + format: int32 + type: integer + required: + - available + - current + - desired + - ready + - upToDate + type: object + type: array + x-kubernetes-list-type: atomic + clusterAgent: + properties: + availableReplicas: + format: int32 + type: integer + currentHash: + type: string + deploymentName: + type: string + generatedToken: + type: string + lastUpdate: + format: date-time + type: string + readyReplicas: + format: int32 + type: integer + replicas: + format: int32 + type: integer + state: + type: string + status: + type: string + unavailableReplicas: + format: int32 + type: integer + updatedReplicas: + format: int32 + type: integer + type: object + clusterChecksRunner: + properties: + availableReplicas: + format: int32 + type: integer + currentHash: + type: string + deploymentName: + type: string + generatedToken: + type: string + lastUpdate: + format: date-time + type: string + readyReplicas: + format: int32 + type: integer + replicas: + format: int32 + type: integer + state: + type: string + status: + type: string + unavailableReplicas: + format: int32 + type: integer + updatedReplicas: + format: int32 + type: integer + type: object + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + maxLength: 32768 + type: string + observedGeneration: + format: int64 + minimum: 0 + type: integer + reason: + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + enum: + - "True" + - "False" + - Unknown + type: string + type: + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmetrics_v1.yaml b/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmetrics_v1.yaml new file mode 100644 index 0000000000..2a528183d3 --- /dev/null +++ b/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmetrics_v1.yaml @@ -0,0 +1,124 @@ +--- +# Source: datadog-operator/charts/datadogCRDs/templates/datadoghq.com_datadogmetrics_v1.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.1 + creationTimestamp: null + name: datadogmetrics.datadoghq.com + labels: + helm.sh/chart: 'datadogCRDs-1.4.0' + app.kubernetes.io/managed-by: 'Helm' + app.kubernetes.io/name: 'datadogCRDs' + app.kubernetes.io/instance: 'datadog-operator' +spec: + group: datadoghq.com + names: + kind: DatadogMetric + listKind: DatadogMetricList + plural: datadogmetrics + singular: datadogmetric + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Active')].status + name: active + type: string + - jsonPath: .status.conditions[?(@.type=='Valid')].status + name: valid + type: string + - jsonPath: .status.currentValue + name: value + type: string + - jsonPath: .status.autoscalerReferences + name: references + type: string + - jsonPath: .status.conditions[?(@.type=='Updated')].lastUpdateTime + name: update time + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: DatadogMetric allows autoscaling on arbitrary Datadog query + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DatadogMetricSpec defines the desired state of DatadogMetric + properties: + externalMetricName: + description: ExternalMetricName is reserved for internal use + type: string + maxAge: + description: MaxAge provides the max age for the metric query (overrides the default setting `external_metrics_provider.max_age`) + type: string + query: + description: Query is the raw datadog query + type: string + timeWindow: + description: TimeWindow provides the time window for the metric query, defaults to MaxAge. + type: string + type: object + status: + description: DatadogMetricStatus defines the observed state of DatadogMetric + properties: + autoscalerReferences: + description: List of autoscalers currently using this DatadogMetric + type: string + conditions: + description: Conditions Represents the latest available observations of a DatadogMetric's current state. + items: + description: DatadogMetricCondition describes the state of a DatadogMetric at a certain point. + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + format: date-time + type: string + lastUpdateTime: + description: Last time the condition was updated. + format: date-time + type: string + message: + description: A human readable message indicating details about the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of DatadogMetric condition. + type: string + required: + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + currentValue: + description: Value is the latest value of the metric + type: string + required: + - currentValue + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmonitors_v1.yaml b/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmonitors_v1.yaml new file mode 100644 index 0000000000..3ea483a233 --- /dev/null +++ b/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmonitors_v1.yaml @@ -0,0 +1,286 @@ +--- +# Source: datadog-operator/charts/datadogCRDs/templates/datadoghq.com_datadogmonitors_v1.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.1 + creationTimestamp: null + name: datadogmonitors.datadoghq.com + labels: + helm.sh/chart: 'datadogCRDs-1.4.0' + app.kubernetes.io/managed-by: 'Helm' + app.kubernetes.io/name: 'datadogCRDs' + app.kubernetes.io/instance: 'datadog-operator' +spec: + group: datadoghq.com + names: + kind: DatadogMonitor + listKind: DatadogMonitorList + plural: datadogmonitors + singular: datadogmonitor + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.id + name: id + type: string + - jsonPath: .status.monitorState + name: monitor state + type: string + - jsonPath: .status.monitorStateLastTransitionTime + name: last state transition + type: string + - format: date + jsonPath: .status.monitorStateLastUpdateTime + name: last state sync + type: string + - jsonPath: .status.syncStatus + name: sync status + type: string + - jsonPath: .metadata.creationTimestamp + name: age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: DatadogMonitor allows to define and manage Monitors from your Kubernetes Cluster + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DatadogMonitorSpec defines the desired state of DatadogMonitor + properties: + controllerOptions: + description: ControllerOptions are the optional parameters in the DatadogMonitor controller + properties: + disableRequiredTags: + description: DisableRequiredTags disables the automatic addition of required tags to monitors. + type: boolean + type: object + message: + description: Message is a message to include with notifications for this monitor + type: string + name: + description: Name is the monitor name + type: string + options: + description: Options are the optional parameters associated with your monitor + properties: + enableLogsSample: + description: A Boolean indicating whether to send a log sample when the log monitor triggers. + type: boolean + escalationMessage: + description: A message to include with a re-notification. + type: string + evaluationDelay: + description: Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the value is set to 300 (5min), the timeframe is set to last_5m and the time is 7:00, the monitor evaluates data from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor always has data during evaluation. + format: int64 + type: integer + includeTags: + description: A Boolean indicating whether notifications from this monitor automatically inserts its triggering tags into the title. + type: boolean + locked: + description: Whether or not the monitor is locked (only editable by creator and admins). + type: boolean + newGroupDelay: + description: Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor results. Should be a non negative integer. + format: int64 + type: integer + noDataTimeframe: + description: The number of minutes before a monitor notifies after data stops reporting. Datadog recommends at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. If omitted, 2x the evaluation timeframe is used for metric alerts, and 24 hours is used for service checks. + format: int64 + type: integer + notificationPresetName: + description: An enum that toggles the display of additional content sent in the monitor notification. + type: string + notifyAudit: + description: A Boolean indicating whether tagged users are notified on changes to this monitor. + type: boolean + notifyNoData: + description: A Boolean indicating whether this monitor notifies when data stops reporting. + type: boolean + renotifyInterval: + description: The number of minutes after the last notification before a monitor re-notifies on the current status. It only re-notifies if it’s not resolved. + format: int64 + type: integer + requireFullWindow: + description: A Boolean indicating whether this monitor needs a full window of data before it’s evaluated. We highly recommend you set this to false for sparse metrics, otherwise some evaluations are skipped. Default is false. + type: boolean + thresholdWindows: + description: A struct of the alerting time window options. + properties: + recoveryWindow: + description: Describes how long an anomalous metric must be normal before the alert recovers. + type: string + triggerWindow: + description: Describes how long a metric must be anomalous before an alert triggers. + type: string + type: object + thresholds: + description: A struct of the different monitor threshold values. + properties: + critical: + description: The monitor CRITICAL threshold. + type: string + criticalRecovery: + description: The monitor CRITICAL recovery threshold. + type: string + ok: + description: The monitor OK threshold. + type: string + unknown: + description: The monitor UNKNOWN threshold. + type: string + warning: + description: The monitor WARNING threshold. + type: string + warningRecovery: + description: The monitor WARNING recovery threshold. + type: string + type: object + timeoutH: + description: The number of hours of the monitor not reporting data before it automatically resolves from a triggered state. + format: int64 + type: integer + type: object + priority: + description: Priority is an integer from 1 (high) to 5 (low) indicating alert severity + format: int64 + type: integer + query: + description: Query is the Datadog monitor query + type: string + restrictedRoles: + description: RestrictedRoles is a list of unique role identifiers to define which roles are allowed to edit the monitor. `restricted_roles` is the successor of `locked`. For more information about `locked` and `restricted_roles`, see the [monitor options docs](https://docs.datadoghq.com/monitors/guide/monitor_api_options/#permissions-options). + items: + type: string + type: array + x-kubernetes-list-type: set + tags: + description: Tags is the monitor tags associated with your monitor + items: + type: string + type: array + x-kubernetes-list-type: set + type: + description: Type is the monitor type + type: string + type: object + status: + description: DatadogMonitorStatus defines the observed state of DatadogMonitor + properties: + conditions: + description: Conditions Represents the latest available observations of a DatadogMonitor's current state. + items: + description: DatadogMonitorCondition describes the current state of a DatadogMonitor + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + format: date-time + type: string + lastUpdateTime: + description: Last time the condition was updated. + format: date-time + type: string + message: + description: A human readable message indicating details about the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of DatadogMonitor condition + type: string + required: + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + created: + description: Created is the time the monitor was created + format: date-time + type: string + creator: + description: Creator is the identify of the monitor creator + type: string + currentHash: + description: CurrentHash tracks the hash of the current DatadogMonitorSpec to know if the Spec has changed and needs an update + type: string + downtimeStatus: + description: DowntimeStatus defines whether the monitor is downtimed + properties: + downtimeId: + type: integer + isDowntimed: + type: boolean + type: object + id: + description: ID is the monitor ID generated in Datadog + type: integer + monitorLastForceSyncTime: + description: MonitorLastForceSyncTime is the last time the API monitor was last force synced with the DatadogMonitor resource + format: date-time + type: string + monitorState: + description: MonitorState is the overall state of monitor + type: string + monitorStateLastTransitionTime: + description: MonitorStateLastTransitionTime is the last time the monitor state changed + format: date-time + type: string + monitorStateLastUpdateTime: + description: MonitorStateLastUpdateTime is the last time the monitor state updated + format: date-time + type: string + primary: + description: Primary defines whether the monitor is managed by the Kubernetes custom resource (true) or outside Kubernetes (false) + type: boolean + syncStatus: + description: MonitorStateSyncStatus shows the health of syncing the monitor state to Datadog + type: string + triggeredState: + description: TriggeredState only includes details for monitor groups that are triggering + items: + description: DatadogMonitorTriggeredState represents the details of a triggering DatadogMonitor The DatadogMonitor is triggering if one of its groups is in Alert, Warn, or No Data + properties: + lastTransitionTime: + format: date-time + type: string + monitorGroup: + description: MonitorGroup is the name of the triggering group + type: string + state: + description: DatadogMonitorState represents the overall DatadogMonitor state + type: string + required: + - monitorGroup + type: object + type: array + x-kubernetes-list-map-keys: + - monitorGroup + x-kubernetes-list-type: map + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/acceptance/tests/fixtures/bases/datadog-operator/deployment.yaml b/acceptance/tests/fixtures/bases/datadog-operator/deployment.yaml new file mode 100644 index 0000000000..669dc160a5 --- /dev/null +++ b/acceptance/tests/fixtures/bases/datadog-operator/deployment.yaml @@ -0,0 +1,72 @@ +--- +# Source: datadog-operator/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: datadog-operator + namespace: datadog + labels: + app.kubernetes.io/name: datadog-operator + helm.sh/chart: datadog-operator-1.5.0 + app.kubernetes.io/instance: datadog-operator + app.kubernetes.io/version: "1.4.0" + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: datadog-operator + app.kubernetes.io/instance: datadog-operator + template: + metadata: + labels: + app.kubernetes.io/name: datadog-operator + app.kubernetes.io/instance: datadog-operator + annotations: + ad.datadoghq.com/datadog-operator.check_names: '["openmetrics"]' + ad.datadoghq.com/datadog-operator.init_configs: '[{}]' + ad.datadoghq.com/datadog-operator.instances: | + [{ + "prometheus_url": "http://%%host%%:8383/metrics", + "namespace": "datadog.operator", + "metrics": ["*"] + }] + consul.hashicorp.com/connect-inject: "false" + spec: + serviceAccountName: datadog-operator + containers: + - name: datadog-operator + image: "gcr.io/datadoghq/operator:1.4.0" + imagePullPolicy: IfNotPresent + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + args: + - "-supportExtendedDaemonset=false" + - "-logEncoder=json" + - "-metrics-addr=:8383" + - "-loglevel=info" + - "-operatorMetricsEnabled=true" + - "-webhookEnabled=false" + - "-datadogMonitorEnabled=false" + - "-datadogAgentEnabled=true" + - "-datadogSLOEnabled=false" + ports: + - name: metrics + containerPort: 8383 + protocol: TCP + livenessProbe: + httpGet: + path: /healthz/ + port: 8081 + periodSeconds: 10 + resources: + {} + volumeMounts: + volumes: diff --git a/acceptance/tests/fixtures/bases/datadog-operator/kustomization.yaml b/acceptance/tests/fixtures/bases/datadog-operator/kustomization.yaml new file mode 100644 index 0000000000..e5d90d799d --- /dev/null +++ b/acceptance/tests/fixtures/bases/datadog-operator/kustomization.yaml @@ -0,0 +1,8 @@ +resources: + - clusterrole.yaml + - clusterrole_binding.yaml + - datadoghq.com_datadogagents_v1.yaml + - datadoghq.com_datadogmetrics_v1.yaml + - datadoghq.com_datadogmonitors_v1.yaml + - deployment.yaml + - serviceaccount.yaml diff --git a/acceptance/tests/fixtures/bases/datadog-operator/serviceaccount.yaml b/acceptance/tests/fixtures/bases/datadog-operator/serviceaccount.yaml new file mode 100644 index 0000000000..a31d99fbbc --- /dev/null +++ b/acceptance/tests/fixtures/bases/datadog-operator/serviceaccount.yaml @@ -0,0 +1,13 @@ +--- +# Source: datadog-operator/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: datadog-operator + namespace: datadog + labels: + app.kubernetes.io/name: datadog-operator + helm.sh/chart: datadog-operator-1.5.0 + app.kubernetes.io/instance: datadog-operator + app.kubernetes.io/version: "1.4.0" + app.kubernetes.io/managed-by: Helm diff --git a/acceptance/tests/fixtures/bases/datadog/datadog.yaml b/acceptance/tests/fixtures/bases/datadog/datadog.yaml new file mode 100644 index 0000000000..f05c1133a2 --- /dev/null +++ b/acceptance/tests/fixtures/bases/datadog/datadog.yaml @@ -0,0 +1,248 @@ +# https://github.com/DataDog/datadog-operator/blob/main/docs/configuration.v2alpha1.md +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + global: + clusterName: dc1 + registry: gcr.io/datadoghq + logLevel: debug + # Site is the Datadog intake site Agent data are sent to. Set to 'datadoghq.com' to + # send data to the US1 site (default). Set to 'datadoghq.eu' to send data to the EU site. + # Set to 'http://fake-datadog.default.svc.cluster.local' to send data to the local testing API. + # Default: 'datadoghq.com' + site: datadoghq.com + credentials: + apiSecret: + secretName: datadog-secret + keyName: api-key + appSecret: + secretName: datadog-secret + keyName: app-key + # Requirement for kind cluster as tls verification prevents the agent from + # being able to obtain hostname from hostnameFile + # ref: https://docs.datadoghq.com/agent/troubleshooting/hostname_containers/?tab=operator + kubelet: + tlsVerify: false + features: + # This enables the cluster check setup in the Cluster Agent and allows it to process + # configurations from the Kubernetes service annotations (kube_services). + clusterChecks: + # Once this is enabled, configurations are passed to the Cluster Agent through + # - mounted configuration files + # - through Kubernetes service annotations + enabled: false + # When you use Cluster Check Runners, a small, dedicated set of Agents runs the + # cluster checks, leaving the endpoint checks to the normal Agent. + # This strategy can be beneficial to control the dispatching of cluster checks, + # especially when the scale of your cluster checks increases. + useClusterChecksRunners: false + # admission controller: datadog operator default enables this. + # it auto-injects: + # - environment variables (DD_AGENT_HOST, DD_TRACE_AGENT_URL and DD_ENTITY_ID) to + # configure DogStatsD and APM tracer libraries into the user’s application containers. + # - Datadog standard tags (env, service, version) from application labels into the container + # environment variables. These comply with DD unified service tagging (https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging/?tab=kubernetes) + # - Identify deployment impact with trace and container metrics filtered by version + # - Navigate seamlessly across traces, metrics, and logs with consistent tags + # - View service data based on environment or version in a unified fashion + admissionController: + enabled: false + mutateUnlabelled: false +# dogstatsd: +# # Sets DD_DOGSTATSD_ORIGIN_DETECTION=true on NodeAgent 'agent' container +# originDetectionEnabled: false +# +# # TagCardinality configures tag cardinality for the metrics collected using origin detection (low, orchestrator or high). +# # See also: https://docs.datadoghq.com/getting_started/tagging/assigning_tags/?tab=containerizedenvironments#environment-variables +# # Cardinality default: low +# tagCardinality: low + + # | Testing Consul to Datadog Unix Socket Connection | + # | Ref: https://docs.datadoghq.com/developers/dogstatsd/unix_socket/?tab=kubernetes#test-with-netcat | + # ---------------------------------------------------- + # Requires: netcat-openbsd (-U unix domain socket) + # - privileged consul container: apk add netcat-openbsd + # - privileged datadog agent container: apt-get update && apt-get install -y netcat-openbsd + # + # $ echo -n "custom.metric.name:1|c" | nc -U -u -v -w1 /var/run/datadog/dsd.socket + # Bound on /tmp/nc-IjJkoG/recv.sock + # + # # Check UDS Connection Established: netstat -x (-x: Unix Sockets) + # # Looking for CONNECTED state to the I-Node + # + # $ netstat -x + # Active UNIX domain sockets (w/o servers) + # Proto RefCnt Flags Type State I-Node Path + # unix 2 [ ] DGRAM CONNECTED 15952473 + # unix 2 [ ] DGRAM 15652537 @9d10c +# unixDomainSocketConfig: +# enabled: false +# path: "/var/run/datadog/dsd.socket" +# hostPortConfig: +# enabled: false +# hostPort: 8125 +# mapperProfiles: +# configData: |- +# - name: consul +# prefix: "consul." +# mappings: +# - match: 'consul\.raft\.replication\.appendEntries\.logs\.([0-9a-f-]+)' +# match_type: "regex" +# name: "consul.raft.replication.appendEntries.logs" +# tags: +# peer_id: "$1" +# - match: 'consul\.raft\.replication\.appendEntries\.rpc\.([0-9a-f-]+)' +# match_type: "regex" +# name: "consul.raft.replication.appendEntries.rpc" +# tags: +# peer_id: "$1" +# - match: 'consul\.raft\.replication\.heartbeat\.([0-9a-f-]+)' +# match_type: "regex" +# name: "consul.raft.replication.heartbeat" +# tags: +# peer_id: "$1" + apm: + enabled: false + # features.npm.enabled: false + # required as the /etc/passwd rootfs is mounted for this + # see: https://github.com/DataDog/helm-charts/issues/273 + npm: + enabled: false + logCollection: + enabled: false + containerCollectAll: false + # features.processDiscovery.enabled: false + # required as the /etc/passwd rootfs is mounted for this + # see: https://github.com/DataDog/helm-charts/issues/273 + processDiscovery: + enabled: false + # features.liveProcessCollection.enabled: false + # required as the /etc/passwd rootfs is mounted for this + # see: https://github.com/DataDog/helm-charts/issues/273 + liveProcessCollection: + enabled: false + liveContainerCollection: + enabled: false + orchestratorExplorer: + enabled: false + prometheusScrape: + enabled: false + enableServiceEndpoints: false +# otlp: +# receiver: +# protocols: +# grpc: +# enabled: true +# endpoint: "0.0.0.0:4317" +# http: +# enabled: true +# endpoint: "0.0.0.0:4318" + override: + nodeAgent: + containers: + resources: + requests: + cpu: 2 + memory: 1Gi + limits: + cpu: 2 + memory: 1Gi +# override: +# nodeAgent: +# annotations: +# 'consul.hashicorp.com/connect-inject': 'false' +# 'consul.hashicorp.com/transparent-proxy': 'false' +# volumes: +# - hostPath: +# path: /var/run/datadog/ +# name: dsdsocket +# - name: consul-ca-cert +# secret: +# secretName: consul-ca-cert +# - name: consul-server-cert +# secret: +# secretName: consul-server-cert +# +# tolerations: +# - operator: Exists +# env: +# - name: DD_HISTOGRAM_PERCENTILES +# value: '0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 0.95 0.99' +# - name: DD_SECRET_BACKEND_COMMAND +# value: /readsecret_multiple_providers.sh +# - name: DD_CLC_RUNNER_ENABLED +# value: "true" +# - name: DD_CLC_RUNNER_HOST +# valueFrom: +# fieldRef: +# fieldPath: status.podIP +# containers: +# agent: +# env: +# - name: DD_OTLP_CONFIG_LOGS_ENABLED +# value: "true" +# - name: DD_DOGSTATSD_NON_LOCAL_TRAFFIC +# value: "true" +# - name: DD_USE_V2_API_SERIES +# value: "true" +# volumeMounts: +# - name: dsdsocket +# mountPath: /var/run/datadog +# - name: consul-ca-cert +# mountPath: /etc/datadog-agent/conf.d/consul.d/ca +# - name: consul-server-cert +# mountPath: /etc/datadog-agent/conf.d/consul.d/certs +# +# extraConfd: +# configDataMap: +# # ACL Token API Endpoints Scraped: Overall permissions required -> agent:read, service:read, node:read +# # - /v1/agent/metrics | /v1/agent/self -> agent:read +# # - /v1/status/leader | /v1/status/peers -> none (not blocked by ACLs) +# # - /v1/catalog/services -> service:read +# # - /v1/health/service | /v1/health/state/any -> node:read,service:read +# # - /v1/coordinate/datacenters | /v1/coordinate/nodes -> node:read +# consul.yaml: |- +# advanced_ad_identifiers: +# - kube_service: +# name: "consul-server" +# namespace: "consul" +# init_config: +# instances: +# - url: "https://consul-server.consul.svc:8501" +# tls_cert: "ENC[k8s_secret@consul/consul-server-cert/tls.crt" +# tls_private_key: "ENC[k8s_secret@consul/consul-server-cert/tls.key" +# tls_ca_cert: "ENC[k8s_secret@consul/consul-ca-cert/tls.crt" +# acl_token: "ENC[k8s_secret@consul/datadog-agent-metrics-acl-token/token]" +# new_leader_checks: true +# network_latency_checks: true +# catalog_checks: true +# auth_type: "basic" +# envoy.yaml: |- +# ad_identifiers: +# - consul-dataplane +# init_config: {} +# instances: +# - openmetrics_endpoint: http://%%host%%:20200/metrics +# stats_url: "http://%%host%%:21200/stats" +# metrics: [ "*" ] +# +# clusterChecksRunner: +# annotations: +# 'consul.hashicorp.com/connect-inject': 'false' +# 'consul.hashicorp.com/transparent-proxy': 'false' +# clusterAgent: +# annotations: +# 'consul.hashicorp.com/connect-inject': 'false' +# 'consul.hashicorp.com/transparent-proxy': 'false' +# replicas: 1 +# env: +# # The Cluster Agent can use an advanced dispatching logic for cluster checks, +# # which takes into account the execution time and metric samples from check instances. +# # This logic enables the Cluster Agent to optimize dispatching and distribution +# # between cluster check runners. +# - name: DD_CLUSTER_CHECKS_ADVANCED_DISPATCHING_ENABLED +# value: 'true' +# - name: DD_DOGSTATSD_NON_LOCAL_TRAFFIC +# value: 'true' \ No newline at end of file diff --git a/acceptance/tests/fixtures/bases/datadog/kustomization.yaml b/acceptance/tests/fixtures/bases/datadog/kustomization.yaml new file mode 100644 index 0000000000..a88b401ed2 --- /dev/null +++ b/acceptance/tests/fixtures/bases/datadog/kustomization.yaml @@ -0,0 +1,3 @@ + +resources: + - datadog.yaml diff --git a/acceptance/tests/fixtures/cases/datadog-dogstatsd-udp/patch.yaml b/acceptance/tests/fixtures/cases/datadog-dogstatsd-udp/patch.yaml new file mode 100644 index 0000000000..24eaf7e64f --- /dev/null +++ b/acceptance/tests/fixtures/cases/datadog-dogstatsd-udp/patch.yaml @@ -0,0 +1,60 @@ +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + features: + dogstatsd: + unixDomainSocketConfig: + enabled: false + hostPortConfig: + enabled: false + hostPort: 8125 + mapperProfiles: + configData: |- + - name: consul + prefix: "consul." + mappings: + - match: 'consul\.raft\.replication\.appendEntries\.logs\.([0-9a-f-]+)' + match_type: "regex" + name: "consul.raft.replication.appendEntries.logs" + tags: + peer_id: "$1" + - match: 'consul\.raft\.replication\.appendEntries\.rpc\.([0-9a-f-]+)' + match_type: "regex" + name: "consul.raft.replication.appendEntries.rpc" + tags: + peer_id: "$1" + - match: 'consul\.raft\.replication\.heartbeat\.([0-9a-f-]+)' + match_type: "regex" + name: "consul.raft.replication.heartbeat" + tags: + peer_id: "$1" + override: + nodeAgent: + annotations: + 'consul.hashicorp.com/connect-inject': 'false' + 'consul.hashicorp.com/transparent-proxy': 'false' + volumes: + - hostPath: + path: /var/run/datadog/ + name: dsdsocket + tolerations: + - operator: Exists + env: + - name: DD_HISTOGRAM_PERCENTILES + value: '0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 0.95 0.99' + - name: DD_SECRET_BACKEND_COMMAND + value: /readsecret_multiple_providers.sh + containers: + agent: + env: + - name: DD_OTLP_CONFIG_LOGS_ENABLED + value: "true" + - name: DD_DOGSTATSD_NON_LOCAL_TRAFFIC + value: "true" + - name: DD_USE_V2_API_SERIES + value: "true" + volumeMounts: + - name: dsdsocket + mountPath: /var/run/datadog \ No newline at end of file diff --git a/acceptance/tests/fixtures/cases/datadog-dogstatsd-uds/kustomization.yaml b/acceptance/tests/fixtures/cases/datadog-dogstatsd-uds/kustomization.yaml new file mode 100644 index 0000000000..dcfce4e9f8 --- /dev/null +++ b/acceptance/tests/fixtures/cases/datadog-dogstatsd-uds/kustomization.yaml @@ -0,0 +1,8 @@ +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: MPL-2.0 +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../../bases/datadog +patches: + - path: patch.yaml \ No newline at end of file diff --git a/acceptance/tests/fixtures/cases/datadog-dogstatsd-uds/patch.yaml b/acceptance/tests/fixtures/cases/datadog-dogstatsd-uds/patch.yaml new file mode 100644 index 0000000000..f2205c4695 --- /dev/null +++ b/acceptance/tests/fixtures/cases/datadog-dogstatsd-uds/patch.yaml @@ -0,0 +1,64 @@ +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + features: + dogstatsd: + unixDomainSocketConfig: + enabled: true + path: "/var/run/datadog/dsd.socket" + hostPortConfig: + enabled: false + mapperProfiles: + configData: |- + - name: consul + prefix: "consul." + mappings: + - match: 'consul\.raft\.replication\.appendEntries\.logs\.([0-9a-f-]+)' + match_type: "regex" + name: "consul.raft.replication.appendEntries.logs" + tags: + peer_id: "$1" + - match: 'consul\.raft\.replication\.appendEntries\.rpc\.([0-9a-f-]+)' + match_type: "regex" + name: "consul.raft.replication.appendEntries.rpc" + tags: + peer_id: "$1" + - match: 'consul\.raft\.replication\.heartbeat\.([0-9a-f-]+)' + match_type: "regex" + name: "consul.raft.replication.heartbeat" + tags: + peer_id: "$1" + override: + nodeAgent: + resources: + limits: + cpu: "2" + memory: "1Gi" + annotations: + 'consul.hashicorp.com/connect-inject': 'false' + 'consul.hashicorp.com/transparent-proxy': 'false' + volumes: + - hostPath: + path: /var/run/datadog/ + name: dsdsocket + tolerations: + - operator: Exists + env: + - name: DD_HISTOGRAM_PERCENTILES + value: '0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 0.95 0.99' + - name: DD_SECRET_BACKEND_COMMAND + value: /readsecret_multiple_providers.sh + containers: + agent: + env: + - name: DD_OTLP_CONFIG_LOGS_ENABLED + value: "true" + - name: DD_DOGSTATSD_NON_LOCAL_TRAFFIC + value: "true" + - name: DD_USE_V2_API_SERIES + value: "true" + volumeMounts: + - name: dsdsocket + mountPath: /var/run/datadog diff --git a/acceptance/tests/fixtures/cases/datadog-openmetrics/patch.yaml b/acceptance/tests/fixtures/cases/datadog-openmetrics/patch.yaml new file mode 100644 index 0000000000..54cf8f99e4 --- /dev/null +++ b/acceptance/tests/fixtures/cases/datadog-openmetrics/patch.yaml @@ -0,0 +1,9 @@ +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + features: + prometheusScrape: + enabled: true + enableServiceEndpoints: false diff --git a/acceptance/tests/fixtures/cases/datadog-otlp/patch.yaml b/acceptance/tests/fixtures/cases/datadog-otlp/patch.yaml new file mode 100644 index 0000000000..fb52c0acbf --- /dev/null +++ b/acceptance/tests/fixtures/cases/datadog-otlp/patch.yaml @@ -0,0 +1,15 @@ +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + features: + otlp: + receiver: + protocols: + grpc: + enabled: true + endpoint: "0.0.0.0:4317" + http: + enabled: true + endpoint: "0.0.0.0:4318" \ No newline at end of file From f845ab199531b12f9cff35d308cb424721351ef1 Mon Sep 17 00:00:00 2001 From: natemollica-dev Date: Wed, 21 Feb 2024 16:21:26 +0000 Subject: [PATCH 2/3] backport of commit cad42f1b253e357d3bbe28496bc45beccd34f142 --- charts/consul/templates/server-statefulset.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/consul/templates/server-statefulset.yaml b/charts/consul/templates/server-statefulset.yaml index e560a75c26..ad1a57f2f8 100644 --- a/charts/consul/templates/server-statefulset.yaml +++ b/charts/consul/templates/server-statefulset.yaml @@ -131,7 +131,7 @@ spec: {{- tpl .Values.server.annotations . | nindent 8 }} {{- end }} {{- if (and .Values.global.metrics.enabled .Values.global.metrics.enableAgentMetrics) }} - {{- if not .Values.global.metrics.datadog.openMetricsPrometheus.enabled }} + {{- if (or (not .Values.global.metrics.datadog.enabled) (and .Values.global.metrics.datadog.enabled (.Values.global.metrics.datadog.dogstatsd.enabled))) }} "prometheus.io/scrape": "true" {{- if not (hasKey (default "" .Values.server.annotations | fromYaml) "prometheus.io/path")}} "prometheus.io/path": "/v1/agent/metrics" From d2e7704f01f66206a14045a5599e2ba9bdbfa046 Mon Sep 17 00:00:00 2001 From: natemollica-dev Date: Wed, 21 Feb 2024 23:52:46 +0000 Subject: [PATCH 3/3] backport of commit 61d4b2d9f1b0815da87bfd36075f151d7186977b --- acceptance/tests/datadog/datadog_test.go | 50 +- .../bases/datadog-operator/clusterrole.yaml | 703 -- .../datadog-operator/clusterrole_binding.yaml | 14 - .../datadoghq.com_datadogagents_v1.yaml | 8413 ----------------- .../datadoghq.com_datadogmetrics_v1.yaml | 124 - .../datadoghq.com_datadogmonitors_v1.yaml | 286 - .../bases/datadog-operator/deployment.yaml | 72 - .../bases/datadog-operator/kustomization.yaml | 8 - .../datadog-operator/serviceaccount.yaml | 13 - .../tests/fixtures/bases/datadog/datadog.yaml | 10 - .../cases/datadog-dogstatsd-uds/patch.yaml | 4 - 11 files changed, 28 insertions(+), 9669 deletions(-) delete mode 100644 acceptance/tests/fixtures/bases/datadog-operator/clusterrole.yaml delete mode 100644 acceptance/tests/fixtures/bases/datadog-operator/clusterrole_binding.yaml delete mode 100644 acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogagents_v1.yaml delete mode 100644 acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmetrics_v1.yaml delete mode 100644 acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmonitors_v1.yaml delete mode 100644 acceptance/tests/fixtures/bases/datadog-operator/deployment.yaml delete mode 100644 acceptance/tests/fixtures/bases/datadog-operator/kustomization.yaml delete mode 100644 acceptance/tests/fixtures/bases/datadog-operator/serviceaccount.yaml diff --git a/acceptance/tests/datadog/datadog_test.go b/acceptance/tests/datadog/datadog_test.go index 6ba1a1ca78..d955d8dda1 100644 --- a/acceptance/tests/datadog/datadog_test.go +++ b/acceptance/tests/datadog/datadog_test.go @@ -1,19 +1,16 @@ package datadog import ( + "encoding/json" "fmt" + "github.com/DataDog/datadog-api-client-go/v2/api/datadogV1" "github.com/hashicorp/consul-k8s/acceptance/framework/consul" + "github.com/hashicorp/consul-k8s/acceptance/framework/datadog" "github.com/hashicorp/consul-k8s/acceptance/framework/helpers" "github.com/hashicorp/consul-k8s/acceptance/framework/k8s" "github.com/hashicorp/consul-k8s/acceptance/framework/logger" - "github.com/hashicorp/consul/sdk/testutil/retry" "github.com/stretchr/testify/require" "testing" - "time" -) - -const ( - StaticClientName = "static-client" ) // Test that prometheus metrics, when enabled, are accessible from the @@ -36,7 +33,14 @@ func TestDatadogDogstatsDUnixDomainSocket(t *testing.T) { "global.metrics.datadog.dogstatsd.socketTransportType": "UDS", } + datadogOperatorHelmValues := map[string]string{ + "replicaCount": "1", + "image.tag": datadog.DefaultHelmChartVersion, + "image.repository": "gcr.io/datadoghq/operator", + } + releaseName := helpers.RandomName() + datadogOperatorRelease := datadog.DatadogOperatorReleaseName // Install the consul cluster in the default kubernetes ctx. consulCluster := consul.NewHelmCluster(t, helmValues, ctx, cfg, releaseName) @@ -44,27 +48,29 @@ func TestDatadogDogstatsDUnixDomainSocket(t *testing.T) { // Deploy Datadog Agent via Datadog Operator and apply dogstatsd overlay datadogNamespace := helmValues["global.metrics.datadog.namespace"] - logger.Log(t, fmt.Sprintf("deploying datadog-agent using operator | namespace: %s", datadogNamespace)) - k8s.DeployKustomize(t, ctx.KubectlOptionsForNamespace(datadogNamespace), cfg.NoCleanupOnFailure, cfg.NoCleanup, cfg.DebugDirectory, "../fixtures/bases/datadog-operator") - k8s.WaitForAllPodsToBeReady(t, ctx.KubernetesClient(t), datadogNamespace, "app.kubernetes.io/name=datadog-operator") + logger.Log(t, fmt.Sprintf("deploying datadog-operator via helm | namespace: %s | release-name: %s", datadogNamespace, datadogOperatorRelease)) + datadogCluster := datadog.NewDatadogCluster(t, ctx, cfg, datadogOperatorRelease, datadogNamespace, datadogOperatorHelmValues) + datadogCluster.Create(t) + //k8s.DeployKustomize(t, ctx.KubectlOptionsForNamespace(datadogNamespace), cfg.NoCleanupOnFailure, cfg.NoCleanup, cfg.DebugDirectory, "../fixtures/bases/datadog-operator") + //k8s.WaitForAllPodsToBeReady(t, ctx.KubernetesClient(t), datadogNamespace, "app.kubernetes.io/name=datadog-operator") + logger.Log(t, fmt.Sprintf("deploying datadog-agent | namespace: %s", datadogNamespace)) k8s.DeployKustomize(t, ctx.KubectlOptionsForNamespace(datadogNamespace), cfg.NoCleanupOnFailure, cfg.NoCleanup, cfg.DebugDirectory, "../fixtures/bases/datadog") k8s.WaitForAllPodsToBeReady(t, ctx.KubernetesClient(t), datadogNamespace, "agent.datadoghq.com/component=agent") + logger.Log(t, fmt.Sprintf("applying dogstatd over unix domain sockets patch to datadog-agent | namespace: %s", datadogNamespace)) k8s.DeployKustomize(t, ctx.KubectlOptionsForNamespace(datadogNamespace), cfg.NoCleanupOnFailure, cfg.NoCleanup, cfg.DebugDirectory, "../fixtures/cases/datadog-dogstatsd-uds") k8s.WaitForAllPodsToBeReady(t, ctx.KubernetesClient(t), datadogNamespace, "agent.datadoghq.com/component=agent") - // Create the static-client deployment so we can use it for in-cluster calls to metrics endpoints. - // This simulates queries that would be made by a prometheus server that runs externally to the consul - // components in the cluster. - logger.Log(t, "creating static-client") - k8s.DeployKustomize(t, ctx.KubectlOptions(t), cfg.NoCleanupOnFailure, cfg.NoCleanup, cfg.DebugDirectory, "../fixtures/bases/static-client") - k8s.WaitForAllPodsToBeReady(t, ctx.KubernetesClient(t), ctx.KubectlOptions(t).Namespace, "app=static-client") - // Server Metrics - searchQuery := "?q=consul.acl" - retry.RunWith(&retry.Counter{Count: 30, Wait: 10 * time.Second}, t, func(r *retry.R) { - metricsOutput, err := k8s.RunKubectlAndGetOutputE(t, ctx.KubectlOptions(t), "exec", "deploy/"+StaticClientName, "-c", "static-client", "--", "curl", "--silent", "--show-error", fmt.Sprintf("--header \"DD-API-KEY: %s\"", cfg.DatadogAPIKey), fmt.Sprintf("--header \"DD-APP-KEY: %s\"", cfg.DatadogAppKey), fmt.Sprintf("https://api.datadoghq.com/api/v1/search%s", searchQuery)) - require.NoError(t, err) - require.Contains(t, metricsOutput, `consul.acl.ResolveToken.50percentile`) - }) + datadogAPIClient := datadogCluster.DatadogClient(t) + api := datadogV1.NewMetricsApi(datadogAPIClient.ApiClient) + + response, fullResponse, err := api.ListMetrics(datadogAPIClient.Ctx, "consul.acl") + if err != nil { + logger.Logf(t, "Error when calling MetricsApi.ListMetris: %v", err) + logger.Logf(t, "Full Response: %v", fullResponse) + } + content, _ := json.MarshalIndent(response, "", " ") + logger.Logf(t, "Full Response: %v", string(content)) + require.Contains(t, string(content), `consul.acl.ResolveToken.50percentile`) } diff --git a/acceptance/tests/fixtures/bases/datadog-operator/clusterrole.yaml b/acceptance/tests/fixtures/bases/datadog-operator/clusterrole.yaml deleted file mode 100644 index b9b8051e58..0000000000 --- a/acceptance/tests/fixtures/bases/datadog-operator/clusterrole.yaml +++ /dev/null @@ -1,703 +0,0 @@ ---- -# Source: datadog-operator/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: datadog-operator - labels: - app.kubernetes.io/name: datadog-operator - helm.sh/chart: datadog-operator-1.5.0 - app.kubernetes.io/instance: datadog-operator - app.kubernetes.io/version: "1.4.0" - app.kubernetes.io/managed-by: Helm -rules: -- nonResourceURLs: - - /metrics - - /metrics/slis - verbs: - - get -- apiGroups: - - "" - resources: - - componentstatuses - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - - configmaps - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - - deployments - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - - endpoints - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - - events - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - - limitranges - verbs: - - list - - watch -- apiGroups: - - "" - resources: - - namespaces - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - - nodes - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - - nodes/metrics - verbs: - - get -- apiGroups: - - "" - resources: - - nodes/proxy - verbs: - - get -- apiGroups: - - "" - resources: - - nodes/spec - verbs: - - get -- apiGroups: - - "" - resources: - - nodes/stats - verbs: - - get -- apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - list - - watch -- apiGroups: - - "" - resources: - - persistentvolumes - verbs: - - list - - watch -- apiGroups: - - "" - resources: - - pods - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - - replicationcontrollers - verbs: - - list - - watch -- apiGroups: - - "" - resources: - - resourcequotas - verbs: - - list - - watch -- apiGroups: - - "" - resources: - - secrets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - - serviceaccounts - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - - services - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - admissionregistration.k8s.io - resources: - - mutatingwebhookconfigurations - verbs: - - '*' -- apiGroups: - - admissionregistration.k8s.io - resources: - - validatingwebhookconfigurations - verbs: - - list - - watch -- apiGroups: - - apiregistration.k8s.io - resources: - - apiservices - verbs: - - '*' -- apiGroups: - - apps - resources: - - daemonsets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - apps - resources: - - deployments - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - apps - resources: - - replicasets - verbs: - - get - - list - - watch -- apiGroups: - - apps - resources: - - replicationcontrollers - verbs: - - list - - watch -- apiGroups: - - apps - resources: - - statefulsets - verbs: - - get - - list - - watch -- apiGroups: - - apps - - extensions - resources: - - daemonsets - - deployments - - replicasets - verbs: - - list - - watch -- apiGroups: - - authentication.k8s.io - resources: - - tokenreviews - verbs: - - create - - get -- apiGroups: - - authorization.k8s.io - resources: - - clusterrolebindings - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - authorization.k8s.io - resources: - - clusterroles - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - authorization.k8s.io - resources: - - rolebindings - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - authorization.k8s.io - resources: - - roles - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - authorization.k8s.io - resources: - - subjectaccessreviews - verbs: - - create - - get -- apiGroups: - - autoscaling - resources: - - horizontalpodautoscalers - verbs: - - list - - watch -- apiGroups: - - apiextensions.k8s.io - - extensions - resources: - - customresourcedefinitions - verbs: - - list - - watch -- apiGroups: - - autoscaling.k8s.io - resources: - - verticalpodautoscalers - verbs: - - list - - watch -- apiGroups: - - batch - resources: - - cronjobs - verbs: - - get - - list - - watch -- apiGroups: - - batch - resources: - - jobs - verbs: - - get - - list - - watch -- apiGroups: - - certificates.k8s.io - resources: - - certificatesigningrequests - verbs: - - list - - watch -- apiGroups: - - cilium.io - resources: - - ciliumnetworkpolicies - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - datadoghq.com - resources: - - datadogagents - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - datadoghq.com - resources: - - datadogagents/finalizers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - datadoghq.com - resources: - - datadogagents/status - verbs: - - get - - patch - - update -- apiGroups: - - datadoghq.com - resources: - - datadogmetrics - verbs: - - create - - delete - - list - - watch -- apiGroups: - - datadoghq.com - resources: - - datadogmetrics/status - verbs: - - update -- apiGroups: - - datadoghq.com - resources: - - datadogmonitors - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - datadoghq.com - resources: - - datadogmonitors/finalizers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - datadoghq.com - resources: - - datadogmonitors/status - verbs: - - get - - patch - - update -- apiGroups: - - datadoghq.com - resources: - - extendeddaemonsetreplicasets - verbs: - - get -- apiGroups: - - datadoghq.com - resources: - - extendeddaemonsets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - datadoghq.com - resources: - - watermarkpodautoscalers - verbs: - - get - - list - - watch -- apiGroups: - - datadoghq.com - resources: - - datadogslos - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - datadoghq.com - resources: - - datadogslos/finalizers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - datadoghq.com - resources: - - datadogslos/status - verbs: - - get - - patch - - update -- apiGroups: - - external.metrics.k8s.io - resources: - - '*' - verbs: - - get - - list - - watch -- apiGroups: - - networking.k8s.io - resources: - - ingresses - verbs: - - list - - watch -- apiGroups: - - networking.k8s.io - resources: - - networkpolicies - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - policy - resources: - - podsecuritypolicies - verbs: - - get - - list - - watch -- apiGroups: - - quota.openshift.io - resources: - - clusterresourcequotas - verbs: - - get - - list -- apiGroups: - - rbac.authorization.k8s.io - resources: - - clusterrolebindings - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - rbac.authorization.k8s.io - resources: - - clusterroles - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - rbac.authorization.k8s.io - resources: - - rolebindings - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - rbac.authorization.k8s.io - resources: - - roles - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - roles.rbac.authorization.k8s.io - resources: - - clusterrolebindings - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - roles.rbac.authorization.k8s.io - resources: - - clusterroles - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - roles.rbac.authorization.k8s.io - resources: - - rolebindings - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - roles.rbac.authorization.k8s.io - resources: - - roles - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - security.openshift.io - resourceNames: - - restricted - resources: - - securitycontextconstraints - verbs: - - use -- apiGroups: - - storage.k8s.io - resources: - - storageclasses - - volumeattachments - verbs: - - list - - watch diff --git a/acceptance/tests/fixtures/bases/datadog-operator/clusterrole_binding.yaml b/acceptance/tests/fixtures/bases/datadog-operator/clusterrole_binding.yaml deleted file mode 100644 index 30148d3a31..0000000000 --- a/acceptance/tests/fixtures/bases/datadog-operator/clusterrole_binding.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -# Source: datadog-operator/templates/clusterrole_binding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: datadog-operator -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: datadog-operator -subjects: - - kind: ServiceAccount - name: datadog-operator - namespace: datadog diff --git a/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogagents_v1.yaml b/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogagents_v1.yaml deleted file mode 100644 index 97c3df1e75..0000000000 --- a/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogagents_v1.yaml +++ /dev/null @@ -1,8413 +0,0 @@ ---- -# Source: datadog-operator/charts/datadogCRDs/templates/datadoghq.com_datadogagents_v1.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.6.1 - creationTimestamp: null - name: datadogagents.datadoghq.com - labels: - helm.sh/chart: 'datadogCRDs-1.4.0' - app.kubernetes.io/managed-by: 'Helm' - app.kubernetes.io/name: 'datadogCRDs' - app.kubernetes.io/instance: 'datadog-operator' -spec: - group: datadoghq.com - names: - kind: DatadogAgent - listKind: DatadogAgentList - plural: datadogagents - shortNames: - - dd - singular: datadogagent - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=='Active')].status - name: active - type: string - - jsonPath: .status.agent.status - name: agent - type: string - - jsonPath: .status.clusterAgent.status - name: cluster-agent - type: string - - jsonPath: .status.clusterChecksRunner.status - name: cluster-checks-runner - type: string - - jsonPath: .metadata.creationTimestamp - name: age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - properties: - agent: - properties: - additionalAnnotations: - additionalProperties: - type: string - type: object - additionalLabels: - additionalProperties: - type: string - type: object - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - type: object - weight: - format: int32 - type: integer - required: - - preference - - weight - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - type: object - type: array - required: - - nodeSelectorTerms - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - type: object - type: object - apm: - properties: - args: - items: - type: string - type: array - x-kubernetes-list-type: atomic - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - enabled: - type: boolean - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - hostPort: - format: int32 - type: integer - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - unixDomainSocket: - properties: - enabled: - type: boolean - hostFilepath: - type: string - type: object - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - - mountPath - x-kubernetes-list-type: map - type: object - config: - properties: - args: - items: - type: string - type: array - x-kubernetes-list-type: atomic - checksd: - properties: - configMapName: - type: string - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-map-keys: - - key - x-kubernetes-list-type: map - type: object - collectEvents: - type: boolean - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - confd: - properties: - configMapName: - type: string - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-map-keys: - - key - x-kubernetes-list-type: map - type: object - criSocket: - properties: - criSocketPath: - type: string - dockerSocketPath: - type: string - type: object - ddUrl: - type: string - dogstatsd: - properties: - dogstatsdOriginDetection: - type: boolean - mapperProfiles: - properties: - configData: - type: string - configMap: - properties: - fileKey: - type: string - name: - type: string - type: object - type: object - unixDomainSocket: - properties: - enabled: - type: boolean - hostFilepath: - type: string - type: object - type: object - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - healthPort: - format: int32 - type: integer - hostPort: - format: int32 - type: integer - kubelet: - properties: - agentCAPath: - type: string - host: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - hostCAPath: - type: string - tlsVerify: - type: boolean - type: object - leaderElection: - type: boolean - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - logLevel: - type: string - namespaceLabelsAsTags: - additionalProperties: - type: string - type: object - nodeLabelsAsTags: - additionalProperties: - type: string - type: object - podAnnotationsAsTags: - additionalProperties: - type: string - type: object - podLabelsAsTags: - additionalProperties: - type: string - type: object - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - securityContext: - properties: - fsGroup: - format: int64 - type: integer - fsGroupChangePolicy: - type: string - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - supplementalGroups: - items: - format: int64 - type: integer - type: array - sysctls: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - tags: - items: - type: string - type: array - x-kubernetes-list-type: set - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - x-kubernetes-list-type: atomic - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - - mountPath - x-kubernetes-list-type: map - volumes: - items: - properties: - awsElasticBlockStore: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - azureDisk: - properties: - cachingMode: - type: string - diskName: - type: string - diskURI: - type: string - fsType: - type: string - kind: - type: string - readOnly: - type: boolean - required: - - diskName - - diskURI - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - required: - - secretName - - shareName - type: object - cephfs: - properties: - monitors: - items: - type: string - type: array - path: - type: string - readOnly: - type: boolean - secretFile: - type: string - secretRef: - properties: - name: - type: string - type: object - user: - type: string - required: - - monitors - type: object - cinder: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - volumeID: - type: string - required: - - volumeID - type: object - configMap: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - csi: - properties: - driver: - type: string - fsType: - type: string - nodePublishSecretRef: - properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - required: - - driver - type: object - downwardAPI: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - required: - - path - type: object - type: array - type: object - emptyDir: - properties: - medium: - type: string - sizeLimit: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - ephemeral: - properties: - volumeClaimTemplate: - properties: - metadata: - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - required: - - spec - type: object - type: object - fc: - properties: - fsType: - type: string - lun: - format: int32 - type: integer - readOnly: - type: boolean - targetWWNs: - items: - type: string - type: array - wwids: - items: - type: string - type: array - type: object - flexVolume: - properties: - driver: - type: string - fsType: - type: string - options: - additionalProperties: - type: string - type: object - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - required: - - driver - type: object - flocker: - properties: - datasetName: - type: string - datasetUUID: - type: string - type: object - gcePersistentDisk: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - pdName: - type: string - readOnly: - type: boolean - required: - - pdName - type: object - gitRepo: - properties: - directory: - type: string - repository: - type: string - revision: - type: string - required: - - repository - type: object - glusterfs: - properties: - endpoints: - type: string - path: - type: string - readOnly: - type: boolean - required: - - endpoints - - path - type: object - hostPath: - properties: - path: - type: string - type: - type: string - required: - - path - type: object - iscsi: - properties: - chapAuthDiscovery: - type: boolean - chapAuthSession: - type: boolean - fsType: - type: string - initiatorName: - type: string - iqn: - type: string - iscsiInterface: - type: string - lun: - format: int32 - type: integer - portals: - items: - type: string - type: array - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - targetPortal: - type: string - required: - - iqn - - lun - - targetPortal - type: object - name: - type: string - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - required: - - path - - server - type: object - persistentVolumeClaim: - properties: - claimName: - type: string - readOnly: - type: boolean - required: - - claimName - type: object - photonPersistentDisk: - properties: - fsType: - type: string - pdID: - type: string - required: - - pdID - type: object - portworxVolume: - properties: - fsType: - type: string - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - projected: - properties: - defaultMode: - format: int32 - type: integer - sources: - items: - properties: - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - downwardAPI: - properties: - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - required: - - path - type: object - type: array - type: object - secret: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - serviceAccountToken: - properties: - audience: - type: string - expirationSeconds: - format: int64 - type: integer - path: - type: string - required: - - path - type: object - type: object - type: array - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - registry: - type: string - tenant: - type: string - user: - type: string - volume: - type: string - required: - - registry - - volume - type: object - rbd: - properties: - fsType: - type: string - image: - type: string - keyring: - type: string - monitors: - items: - type: string - type: array - pool: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - user: - type: string - required: - - image - - monitors - type: object - scaleIO: - properties: - fsType: - type: string - gateway: - type: string - protectionDomain: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - sslEnabled: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - volumeName: - type: string - required: - - gateway - - secretRef - - system - type: object - secret: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - volumeName: - type: string - volumeNamespace: - type: string - type: object - vsphereVolume: - properties: - fsType: - type: string - storagePolicyID: - type: string - storagePolicyName: - type: string - volumePath: - type: string - required: - - volumePath - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - customConfig: - properties: - configData: - type: string - configMap: - properties: - fileKey: - type: string - name: - type: string - type: object - type: object - daemonsetName: - type: string - deploymentStrategy: - properties: - canary: - properties: - autoFail: - properties: - canaryTimeout: - type: string - enabled: - type: boolean - maxRestarts: - format: int32 - type: integer - maxRestartsDuration: - type: string - type: object - autoPause: - properties: - enabled: - type: boolean - maxRestarts: - format: int32 - type: integer - maxSlowStartDuration: - type: string - type: object - duration: - type: string - noRestartsDuration: - type: string - nodeAntiAffinityKeys: - items: - type: string - type: array - x-kubernetes-list-type: set - nodeSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - replicas: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - validationMode: - enum: - - auto - - manual - type: string - type: object - reconcileFrequency: - type: string - rollingUpdate: - properties: - maxParallelPodCreation: - format: int32 - type: integer - maxPodSchedulerFailure: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - slowStartAdditiveIncrease: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - slowStartIntervalDuration: - type: string - type: object - updateStrategyType: - type: string - type: object - dnsConfig: - properties: - nameservers: - items: - type: string - type: array - options: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - searches: - items: - type: string - type: array - type: object - dnsPolicy: - type: string - enabled: - type: boolean - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - hostNetwork: - type: boolean - hostPID: - type: boolean - image: - properties: - jmxEnabled: - type: boolean - name: - type: string - pullPolicy: - type: string - pullSecrets: - items: - properties: - name: - type: string - type: object - type: array - tag: - type: string - type: object - keepAnnotations: - type: string - keepLabels: - type: string - localService: - properties: - forceLocalServiceEnable: - type: boolean - overrideName: - type: string - type: object - log: - properties: - containerCollectUsingFiles: - type: boolean - containerLogsPath: - type: string - containerSymlinksPath: - type: string - enabled: - type: boolean - logsConfigContainerCollectAll: - type: boolean - openFilesLimit: - format: int32 - type: integer - podLogsPath: - type: string - tempStoragePath: - type: string - type: object - networkPolicy: - properties: - create: - type: boolean - dnsSelectorEndpoints: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - type: array - x-kubernetes-list-type: atomic - flavor: - type: string - type: object - otlp: - properties: - receiver: - properties: - protocols: - properties: - grpc: - properties: - enabled: - type: boolean - endpoint: - type: string - type: object - http: - properties: - enabled: - type: boolean - endpoint: - type: string - type: object - type: object - type: object - type: object - priorityClassName: - type: string - process: - properties: - args: - items: - type: string - type: array - x-kubernetes-list-type: atomic - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - enabled: - type: boolean - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - processCollectionEnabled: - type: boolean - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - - mountPath - x-kubernetes-list-type: map - type: object - rbac: - properties: - create: - type: boolean - serviceAccountName: - type: string - type: object - security: - properties: - args: - items: - type: string - type: array - x-kubernetes-list-type: atomic - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - compliance: - properties: - checkInterval: - type: string - configDir: - properties: - configMapName: - type: string - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-map-keys: - - key - x-kubernetes-list-type: map - type: object - enabled: - type: boolean - type: object - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - runtime: - properties: - enabled: - type: boolean - policiesDir: - properties: - configMapName: - type: string - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-map-keys: - - key - x-kubernetes-list-type: map - type: object - syscallMonitor: - properties: - enabled: - type: boolean - type: object - type: object - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - - mountPath - x-kubernetes-list-type: map - type: object - systemProbe: - properties: - appArmorProfileName: - type: string - args: - items: - type: string - type: array - x-kubernetes-list-type: atomic - bpfDebugEnabled: - type: boolean - collectDNSStats: - type: boolean - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - conntrackEnabled: - type: boolean - customConfig: - properties: - configData: - type: string - configMap: - properties: - fileKey: - type: string - name: - type: string - type: object - type: object - debugPort: - format: int32 - type: integer - enableOOMKill: - type: boolean - enableTCPQueueLength: - type: boolean - enabled: - type: boolean - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - secCompCustomProfileConfigMap: - type: string - secCompProfileName: - type: string - secCompRootPath: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - privileged: - type: boolean - procMount: - type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - - mountPath - x-kubernetes-list-type: map - type: object - useExtendedDaemonset: - type: boolean - type: object - clusterAgent: - properties: - additionalAnnotations: - additionalProperties: - type: string - type: object - additionalLabels: - additionalProperties: - type: string - type: object - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - type: object - weight: - format: int32 - type: integer - required: - - preference - - weight - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - type: object - type: array - required: - - nodeSelectorTerms - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - type: object - type: object - config: - properties: - admissionController: - properties: - agentCommunicationMode: - type: string - enabled: - type: boolean - mutateUnlabelled: - type: boolean - serviceName: - type: string - type: object - args: - items: - type: string - type: array - x-kubernetes-list-type: atomic - clusterChecksEnabled: - type: boolean - collectEvents: - type: boolean - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - confd: - properties: - configMapName: - type: string - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-map-keys: - - key - x-kubernetes-list-type: map - type: object - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - externalMetrics: - properties: - credentials: - properties: - apiKey: - type: string - apiKeyExistingSecret: - type: string - apiSecret: - properties: - keyName: - type: string - secretName: - type: string - required: - - secretName - type: object - appKey: - type: string - appKeyExistingSecret: - type: string - appSecret: - properties: - keyName: - type: string - secretName: - type: string - required: - - secretName - type: object - type: object - enabled: - type: boolean - endpoint: - type: string - port: - format: int32 - type: integer - useDatadogMetrics: - type: boolean - wpaController: - type: boolean - type: object - healthPort: - format: int32 - type: integer - logLevel: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - securityContext: - properties: - fsGroup: - format: int64 - type: integer - fsGroupChangePolicy: - type: string - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - supplementalGroups: - items: - format: int64 - type: integer - type: array - sysctls: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - - mountPath - x-kubernetes-list-type: map - volumes: - items: - properties: - awsElasticBlockStore: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - azureDisk: - properties: - cachingMode: - type: string - diskName: - type: string - diskURI: - type: string - fsType: - type: string - kind: - type: string - readOnly: - type: boolean - required: - - diskName - - diskURI - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - required: - - secretName - - shareName - type: object - cephfs: - properties: - monitors: - items: - type: string - type: array - path: - type: string - readOnly: - type: boolean - secretFile: - type: string - secretRef: - properties: - name: - type: string - type: object - user: - type: string - required: - - monitors - type: object - cinder: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - volumeID: - type: string - required: - - volumeID - type: object - configMap: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - csi: - properties: - driver: - type: string - fsType: - type: string - nodePublishSecretRef: - properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - required: - - driver - type: object - downwardAPI: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - required: - - path - type: object - type: array - type: object - emptyDir: - properties: - medium: - type: string - sizeLimit: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - ephemeral: - properties: - volumeClaimTemplate: - properties: - metadata: - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - required: - - spec - type: object - type: object - fc: - properties: - fsType: - type: string - lun: - format: int32 - type: integer - readOnly: - type: boolean - targetWWNs: - items: - type: string - type: array - wwids: - items: - type: string - type: array - type: object - flexVolume: - properties: - driver: - type: string - fsType: - type: string - options: - additionalProperties: - type: string - type: object - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - required: - - driver - type: object - flocker: - properties: - datasetName: - type: string - datasetUUID: - type: string - type: object - gcePersistentDisk: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - pdName: - type: string - readOnly: - type: boolean - required: - - pdName - type: object - gitRepo: - properties: - directory: - type: string - repository: - type: string - revision: - type: string - required: - - repository - type: object - glusterfs: - properties: - endpoints: - type: string - path: - type: string - readOnly: - type: boolean - required: - - endpoints - - path - type: object - hostPath: - properties: - path: - type: string - type: - type: string - required: - - path - type: object - iscsi: - properties: - chapAuthDiscovery: - type: boolean - chapAuthSession: - type: boolean - fsType: - type: string - initiatorName: - type: string - iqn: - type: string - iscsiInterface: - type: string - lun: - format: int32 - type: integer - portals: - items: - type: string - type: array - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - targetPortal: - type: string - required: - - iqn - - lun - - targetPortal - type: object - name: - type: string - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - required: - - path - - server - type: object - persistentVolumeClaim: - properties: - claimName: - type: string - readOnly: - type: boolean - required: - - claimName - type: object - photonPersistentDisk: - properties: - fsType: - type: string - pdID: - type: string - required: - - pdID - type: object - portworxVolume: - properties: - fsType: - type: string - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - projected: - properties: - defaultMode: - format: int32 - type: integer - sources: - items: - properties: - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - downwardAPI: - properties: - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - required: - - path - type: object - type: array - type: object - secret: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - serviceAccountToken: - properties: - audience: - type: string - expirationSeconds: - format: int64 - type: integer - path: - type: string - required: - - path - type: object - type: object - type: array - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - registry: - type: string - tenant: - type: string - user: - type: string - volume: - type: string - required: - - registry - - volume - type: object - rbd: - properties: - fsType: - type: string - image: - type: string - keyring: - type: string - monitors: - items: - type: string - type: array - pool: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - user: - type: string - required: - - image - - monitors - type: object - scaleIO: - properties: - fsType: - type: string - gateway: - type: string - protectionDomain: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - sslEnabled: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - volumeName: - type: string - required: - - gateway - - secretRef - - system - type: object - secret: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - volumeName: - type: string - volumeNamespace: - type: string - type: object - vsphereVolume: - properties: - fsType: - type: string - storagePolicyID: - type: string - storagePolicyName: - type: string - volumePath: - type: string - required: - - volumePath - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - customConfig: - properties: - configData: - type: string - configMap: - properties: - fileKey: - type: string - name: - type: string - type: object - type: object - deploymentName: - type: string - enabled: - type: boolean - image: - properties: - jmxEnabled: - type: boolean - name: - type: string - pullPolicy: - type: string - pullSecrets: - items: - properties: - name: - type: string - type: object - type: array - tag: - type: string - type: object - keepAnnotations: - type: string - keepLabels: - type: string - networkPolicy: - properties: - create: - type: boolean - dnsSelectorEndpoints: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - type: array - x-kubernetes-list-type: atomic - flavor: - type: string - type: object - nodeSelector: - additionalProperties: - type: string - type: object - priorityClassName: - type: string - rbac: - properties: - create: - type: boolean - serviceAccountName: - type: string - type: object - replicas: - format: int32 - type: integer - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - x-kubernetes-list-type: atomic - type: object - clusterChecksRunner: - properties: - additionalAnnotations: - additionalProperties: - type: string - type: object - additionalLabels: - additionalProperties: - type: string - type: object - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - type: object - weight: - format: int32 - type: integer - required: - - preference - - weight - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - type: object - type: array - required: - - nodeSelectorTerms - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - type: object - type: object - config: - properties: - args: - items: - type: string - type: array - x-kubernetes-list-type: atomic - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - healthPort: - format: int32 - type: integer - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - logLevel: - type: string - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - securityContext: - properties: - fsGroup: - format: int64 - type: integer - fsGroupChangePolicy: - type: string - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - supplementalGroups: - items: - format: int64 - type: integer - type: array - sysctls: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - - mountPath - x-kubernetes-list-type: map - volumes: - items: - properties: - awsElasticBlockStore: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - azureDisk: - properties: - cachingMode: - type: string - diskName: - type: string - diskURI: - type: string - fsType: - type: string - kind: - type: string - readOnly: - type: boolean - required: - - diskName - - diskURI - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - required: - - secretName - - shareName - type: object - cephfs: - properties: - monitors: - items: - type: string - type: array - path: - type: string - readOnly: - type: boolean - secretFile: - type: string - secretRef: - properties: - name: - type: string - type: object - user: - type: string - required: - - monitors - type: object - cinder: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - volumeID: - type: string - required: - - volumeID - type: object - configMap: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - csi: - properties: - driver: - type: string - fsType: - type: string - nodePublishSecretRef: - properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - required: - - driver - type: object - downwardAPI: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - required: - - path - type: object - type: array - type: object - emptyDir: - properties: - medium: - type: string - sizeLimit: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - ephemeral: - properties: - volumeClaimTemplate: - properties: - metadata: - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - required: - - spec - type: object - type: object - fc: - properties: - fsType: - type: string - lun: - format: int32 - type: integer - readOnly: - type: boolean - targetWWNs: - items: - type: string - type: array - wwids: - items: - type: string - type: array - type: object - flexVolume: - properties: - driver: - type: string - fsType: - type: string - options: - additionalProperties: - type: string - type: object - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - required: - - driver - type: object - flocker: - properties: - datasetName: - type: string - datasetUUID: - type: string - type: object - gcePersistentDisk: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - pdName: - type: string - readOnly: - type: boolean - required: - - pdName - type: object - gitRepo: - properties: - directory: - type: string - repository: - type: string - revision: - type: string - required: - - repository - type: object - glusterfs: - properties: - endpoints: - type: string - path: - type: string - readOnly: - type: boolean - required: - - endpoints - - path - type: object - hostPath: - properties: - path: - type: string - type: - type: string - required: - - path - type: object - iscsi: - properties: - chapAuthDiscovery: - type: boolean - chapAuthSession: - type: boolean - fsType: - type: string - initiatorName: - type: string - iqn: - type: string - iscsiInterface: - type: string - lun: - format: int32 - type: integer - portals: - items: - type: string - type: array - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - targetPortal: - type: string - required: - - iqn - - lun - - targetPortal - type: object - name: - type: string - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - required: - - path - - server - type: object - persistentVolumeClaim: - properties: - claimName: - type: string - readOnly: - type: boolean - required: - - claimName - type: object - photonPersistentDisk: - properties: - fsType: - type: string - pdID: - type: string - required: - - pdID - type: object - portworxVolume: - properties: - fsType: - type: string - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - projected: - properties: - defaultMode: - format: int32 - type: integer - sources: - items: - properties: - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - downwardAPI: - properties: - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - required: - - path - type: object - type: array - type: object - secret: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - serviceAccountToken: - properties: - audience: - type: string - expirationSeconds: - format: int64 - type: integer - path: - type: string - required: - - path - type: object - type: object - type: array - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - registry: - type: string - tenant: - type: string - user: - type: string - volume: - type: string - required: - - registry - - volume - type: object - rbd: - properties: - fsType: - type: string - image: - type: string - keyring: - type: string - monitors: - items: - type: string - type: array - pool: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - user: - type: string - required: - - image - - monitors - type: object - scaleIO: - properties: - fsType: - type: string - gateway: - type: string - protectionDomain: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - sslEnabled: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - volumeName: - type: string - required: - - gateway - - secretRef - - system - type: object - secret: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - volumeName: - type: string - volumeNamespace: - type: string - type: object - vsphereVolume: - properties: - fsType: - type: string - storagePolicyID: - type: string - storagePolicyName: - type: string - volumePath: - type: string - required: - - volumePath - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - customConfig: - properties: - configData: - type: string - configMap: - properties: - fileKey: - type: string - name: - type: string - type: object - type: object - deploymentName: - type: string - enabled: - type: boolean - image: - properties: - jmxEnabled: - type: boolean - name: - type: string - pullPolicy: - type: string - pullSecrets: - items: - properties: - name: - type: string - type: object - type: array - tag: - type: string - type: object - networkPolicy: - properties: - create: - type: boolean - dnsSelectorEndpoints: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - type: array - x-kubernetes-list-type: atomic - flavor: - type: string - type: object - nodeSelector: - additionalProperties: - type: string - type: object - priorityClassName: - type: string - rbac: - properties: - create: - type: boolean - serviceAccountName: - type: string - type: object - replicas: - format: int32 - type: integer - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - x-kubernetes-list-type: atomic - type: object - clusterName: - type: string - credentials: - properties: - apiKey: - type: string - apiKeyExistingSecret: - type: string - apiSecret: - properties: - keyName: - type: string - secretName: - type: string - required: - - secretName - type: object - appKey: - type: string - appKeyExistingSecret: - type: string - appSecret: - properties: - keyName: - type: string - secretName: - type: string - required: - - secretName - type: object - token: - type: string - useSecretBackend: - type: boolean - type: object - features: - properties: - kubeStateMetricsCore: - properties: - clusterCheck: - type: boolean - conf: - properties: - configData: - type: string - configMap: - properties: - fileKey: - type: string - name: - type: string - type: object - type: object - enabled: - type: boolean - type: object - logCollection: - properties: - containerCollectUsingFiles: - type: boolean - containerLogsPath: - type: string - containerSymlinksPath: - type: string - enabled: - type: boolean - logsConfigContainerCollectAll: - type: boolean - openFilesLimit: - format: int32 - type: integer - podLogsPath: - type: string - tempStoragePath: - type: string - type: object - networkMonitoring: - properties: - enabled: - type: boolean - type: object - orchestratorExplorer: - properties: - additionalEndpoints: - type: string - clusterCheck: - type: boolean - conf: - properties: - configData: - type: string - configMap: - properties: - fileKey: - type: string - name: - type: string - type: object - type: object - ddUrl: - type: string - enabled: - type: boolean - extraTags: - items: - type: string - type: array - x-kubernetes-list-type: set - scrubbing: - properties: - containers: - type: boolean - type: object - type: object - prometheusScrape: - properties: - additionalConfigs: - type: string - enabled: - type: boolean - serviceEndpoints: - type: boolean - type: object - type: object - registry: - type: string - site: - type: string - type: object - status: - properties: - agent: - properties: - available: - format: int32 - type: integer - current: - format: int32 - type: integer - currentHash: - type: string - daemonsetName: - type: string - desired: - format: int32 - type: integer - lastUpdate: - format: date-time - type: string - ready: - format: int32 - type: integer - state: - type: string - status: - type: string - upToDate: - format: int32 - type: integer - required: - - available - - current - - desired - - ready - - upToDate - type: object - clusterAgent: - properties: - availableReplicas: - format: int32 - type: integer - currentHash: - type: string - deploymentName: - type: string - generatedToken: - type: string - lastUpdate: - format: date-time - type: string - readyReplicas: - format: int32 - type: integer - replicas: - format: int32 - type: integer - state: - type: string - status: - type: string - unavailableReplicas: - format: int32 - type: integer - updatedReplicas: - format: int32 - type: integer - type: object - clusterChecksRunner: - properties: - availableReplicas: - format: int32 - type: integer - currentHash: - type: string - deploymentName: - type: string - generatedToken: - type: string - lastUpdate: - format: date-time - type: string - readyReplicas: - format: int32 - type: integer - replicas: - format: int32 - type: integer - state: - type: string - status: - type: string - unavailableReplicas: - format: int32 - type: integer - updatedReplicas: - format: int32 - type: integer - type: object - conditions: - items: - properties: - lastTransitionTime: - format: date-time - type: string - lastUpdateTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - required: - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .status.agent.status - name: agent - type: string - - jsonPath: .status.clusterAgent.status - name: cluster-agent - type: string - - jsonPath: .status.clusterChecksRunner.status - name: cluster-checks-runner - type: string - - jsonPath: .metadata.creationTimestamp - name: age - type: date - name: v2alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - properties: - features: - properties: - admissionController: - properties: - agentCommunicationMode: - type: string - enabled: - type: boolean - failurePolicy: - type: string - mutateUnlabelled: - type: boolean - serviceName: - type: string - webhookName: - type: string - type: object - apm: - properties: - enabled: - type: boolean - hostPortConfig: - properties: - enabled: - type: boolean - hostPort: - format: int32 - type: integer - type: object - unixDomainSocketConfig: - properties: - enabled: - type: boolean - path: - type: string - type: object - type: object - clusterChecks: - properties: - enabled: - type: boolean - useClusterChecksRunners: - type: boolean - type: object - cspm: - properties: - checkInterval: - type: string - customBenchmarks: - properties: - configData: - type: string - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-map-keys: - - key - x-kubernetes-list-type: map - name: - type: string - type: object - type: object - enabled: - type: boolean - hostBenchmarks: - properties: - enabled: - type: boolean - type: object - type: object - cws: - properties: - customPolicies: - properties: - configData: - type: string - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-map-keys: - - key - x-kubernetes-list-type: map - name: - type: string - type: object - type: object - enabled: - type: boolean - network: - properties: - enabled: - type: boolean - type: object - remoteConfiguration: - properties: - enabled: - type: boolean - type: object - securityProfiles: - properties: - enabled: - type: boolean - type: object - syscallMonitorEnabled: - type: boolean - type: object - dogstatsd: - properties: - hostPortConfig: - properties: - enabled: - type: boolean - hostPort: - format: int32 - type: integer - type: object - mapperProfiles: - properties: - configData: - type: string - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-map-keys: - - key - x-kubernetes-list-type: map - name: - type: string - type: object - type: object - originDetectionEnabled: - type: boolean - tagCardinality: - type: string - unixDomainSocketConfig: - properties: - enabled: - type: boolean - path: - type: string - type: object - type: object - ebpfCheck: - properties: - enabled: - type: boolean - type: object - eventCollection: - properties: - collectKubernetesEvents: - type: boolean - type: object - externalMetricsServer: - properties: - enabled: - type: boolean - endpoint: - properties: - credentials: - properties: - apiKey: - type: string - apiSecret: - properties: - keyName: - type: string - secretName: - type: string - required: - - secretName - type: object - appKey: - type: string - appSecret: - properties: - keyName: - type: string - secretName: - type: string - required: - - secretName - type: object - type: object - url: - type: string - type: object - port: - format: int32 - type: integer - registerAPIService: - type: boolean - useDatadogMetrics: - type: boolean - wpaController: - type: boolean - type: object - kubeStateMetricsCore: - properties: - conf: - properties: - configData: - type: string - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-map-keys: - - key - x-kubernetes-list-type: map - name: - type: string - type: object - type: object - enabled: - type: boolean - type: object - liveContainerCollection: - properties: - enabled: - type: boolean - type: object - liveProcessCollection: - properties: - enabled: - type: boolean - scrubProcessArguments: - type: boolean - stripProcessArguments: - type: boolean - type: object - logCollection: - properties: - containerCollectAll: - type: boolean - containerCollectUsingFiles: - type: boolean - containerLogsPath: - type: string - containerSymlinksPath: - type: string - enabled: - type: boolean - openFilesLimit: - format: int32 - type: integer - podLogsPath: - type: string - tempStoragePath: - type: string - type: object - npm: - properties: - collectDNSStats: - type: boolean - enableConntrack: - type: boolean - enabled: - type: boolean - type: object - oomKill: - properties: - enabled: - type: boolean - type: object - orchestratorExplorer: - properties: - conf: - properties: - configData: - type: string - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-map-keys: - - key - x-kubernetes-list-type: map - name: - type: string - type: object - type: object - customResources: - items: - type: string - type: array - x-kubernetes-list-type: set - ddUrl: - type: string - enabled: - type: boolean - extraTags: - items: - type: string - type: array - x-kubernetes-list-type: set - scrubContainers: - type: boolean - type: object - otlp: - properties: - receiver: - properties: - protocols: - properties: - grpc: - properties: - enabled: - type: boolean - endpoint: - type: string - type: object - http: - properties: - enabled: - type: boolean - endpoint: - type: string - type: object - type: object - type: object - type: object - processDiscovery: - properties: - enabled: - type: boolean - type: object - prometheusScrape: - properties: - additionalConfigs: - type: string - enableServiceEndpoints: - type: boolean - enabled: - type: boolean - version: - type: integer - type: object - remoteConfiguration: - properties: - enabled: - type: boolean - type: object - sbom: - properties: - containerImage: - properties: - analyzers: - items: - type: string - type: array - x-kubernetes-list-type: set - enabled: - type: boolean - type: object - enabled: - type: boolean - host: - properties: - analyzers: - items: - type: string - type: array - x-kubernetes-list-type: set - enabled: - type: boolean - type: object - type: object - tcpQueueLength: - properties: - enabled: - type: boolean - type: object - usm: - properties: - enabled: - type: boolean - type: object - type: object - global: - properties: - clusterAgentToken: - type: string - clusterAgentTokenSecret: - properties: - keyName: - type: string - secretName: - type: string - required: - - secretName - type: object - clusterName: - type: string - containerStrategy: - type: string - credentials: - properties: - apiKey: - type: string - apiSecret: - properties: - keyName: - type: string - secretName: - type: string - required: - - secretName - type: object - appKey: - type: string - appSecret: - properties: - keyName: - type: string - secretName: - type: string - required: - - secretName - type: object - type: object - criSocketPath: - type: string - disableNonResourceRules: - type: boolean - dockerSocketPath: - type: string - endpoint: - properties: - credentials: - properties: - apiKey: - type: string - apiSecret: - properties: - keyName: - type: string - secretName: - type: string - required: - - secretName - type: object - appKey: - type: string - appSecret: - properties: - keyName: - type: string - secretName: - type: string - required: - - secretName - type: object - type: object - url: - type: string - type: object - kubelet: - properties: - agentCAPath: - type: string - host: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - hostCAPath: - type: string - tlsVerify: - type: boolean - type: object - localService: - properties: - forceEnableLocalService: - type: boolean - nameOverride: - type: string - type: object - logLevel: - type: string - namespaceLabelsAsTags: - additionalProperties: - type: string - type: object - networkPolicy: - properties: - create: - type: boolean - dnsSelectorEndpoints: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - type: array - x-kubernetes-list-type: atomic - flavor: - type: string - type: object - nodeLabelsAsTags: - additionalProperties: - type: string - type: object - podAnnotationsAsTags: - additionalProperties: - type: string - type: object - podLabelsAsTags: - additionalProperties: - type: string - type: object - registry: - type: string - site: - type: string - tags: - items: - type: string - type: array - x-kubernetes-list-type: set - type: object - override: - additionalProperties: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - type: object - weight: - format: int32 - type: integer - required: - - preference - - weight - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - type: object - type: array - required: - - nodeSelectorTerms - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - type: object - type: object - annotations: - additionalProperties: - type: string - type: object - containers: - additionalProperties: - properties: - appArmorProfileName: - type: string - args: - items: - type: string - type: array - x-kubernetes-list-type: atomic - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - healthPort: - format: int32 - type: integer - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - logLevel: - type: string - name: - type: string - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - seccompConfig: - properties: - customProfile: - properties: - configData: - type: string - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-map-keys: - - key - x-kubernetes-list-type: map - name: - type: string - type: object - type: object - customRootPath: - type: string - type: object - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - privileged: - type: boolean - procMount: - type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - - mountPath - x-kubernetes-list-type: map - type: object - type: object - createRbac: - type: boolean - customConfigurations: - additionalProperties: - properties: - configData: - type: string - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-map-keys: - - key - x-kubernetes-list-type: map - name: - type: string - type: object - type: object - type: object - disabled: - type: boolean - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - extraChecksd: - properties: - configDataMap: - additionalProperties: - type: string - type: object - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-map-keys: - - key - x-kubernetes-list-type: map - name: - type: string - type: object - type: object - extraConfd: - properties: - configDataMap: - additionalProperties: - type: string - type: object - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-map-keys: - - key - x-kubernetes-list-type: map - name: - type: string - type: object - type: object - hostNetwork: - type: boolean - hostPID: - type: boolean - image: - properties: - jmxEnabled: - type: boolean - name: - type: string - pullPolicy: - type: string - pullSecrets: - items: - properties: - name: - type: string - type: object - type: array - tag: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - name: - type: string - nodeSelector: - additionalProperties: - type: string - type: object - priorityClassName: - type: string - replicas: - format: int32 - type: integer - securityContext: - properties: - fsGroup: - format: int64 - type: integer - fsGroupChangePolicy: - type: string - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - supplementalGroups: - items: - format: int64 - type: integer - type: array - sysctls: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - serviceAccountName: - type: string - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - x-kubernetes-list-type: atomic - volumes: - items: - properties: - awsElasticBlockStore: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - azureDisk: - properties: - cachingMode: - type: string - diskName: - type: string - diskURI: - type: string - fsType: - type: string - kind: - type: string - readOnly: - type: boolean - required: - - diskName - - diskURI - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - required: - - secretName - - shareName - type: object - cephfs: - properties: - monitors: - items: - type: string - type: array - path: - type: string - readOnly: - type: boolean - secretFile: - type: string - secretRef: - properties: - name: - type: string - type: object - user: - type: string - required: - - monitors - type: object - cinder: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - volumeID: - type: string - required: - - volumeID - type: object - configMap: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - csi: - properties: - driver: - type: string - fsType: - type: string - nodePublishSecretRef: - properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - required: - - driver - type: object - downwardAPI: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - required: - - path - type: object - type: array - type: object - emptyDir: - properties: - medium: - type: string - sizeLimit: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - ephemeral: - properties: - volumeClaimTemplate: - properties: - metadata: - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - required: - - spec - type: object - type: object - fc: - properties: - fsType: - type: string - lun: - format: int32 - type: integer - readOnly: - type: boolean - targetWWNs: - items: - type: string - type: array - wwids: - items: - type: string - type: array - type: object - flexVolume: - properties: - driver: - type: string - fsType: - type: string - options: - additionalProperties: - type: string - type: object - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - required: - - driver - type: object - flocker: - properties: - datasetName: - type: string - datasetUUID: - type: string - type: object - gcePersistentDisk: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - pdName: - type: string - readOnly: - type: boolean - required: - - pdName - type: object - gitRepo: - properties: - directory: - type: string - repository: - type: string - revision: - type: string - required: - - repository - type: object - glusterfs: - properties: - endpoints: - type: string - path: - type: string - readOnly: - type: boolean - required: - - endpoints - - path - type: object - hostPath: - properties: - path: - type: string - type: - type: string - required: - - path - type: object - iscsi: - properties: - chapAuthDiscovery: - type: boolean - chapAuthSession: - type: boolean - fsType: - type: string - initiatorName: - type: string - iqn: - type: string - iscsiInterface: - type: string - lun: - format: int32 - type: integer - portals: - items: - type: string - type: array - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - targetPortal: - type: string - required: - - iqn - - lun - - targetPortal - type: object - name: - type: string - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - required: - - path - - server - type: object - persistentVolumeClaim: - properties: - claimName: - type: string - readOnly: - type: boolean - required: - - claimName - type: object - photonPersistentDisk: - properties: - fsType: - type: string - pdID: - type: string - required: - - pdID - type: object - portworxVolume: - properties: - fsType: - type: string - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - projected: - properties: - defaultMode: - format: int32 - type: integer - sources: - items: - properties: - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - downwardAPI: - properties: - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - required: - - path - type: object - type: array - type: object - secret: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - serviceAccountToken: - properties: - audience: - type: string - expirationSeconds: - format: int64 - type: integer - path: - type: string - required: - - path - type: object - type: object - type: array - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - registry: - type: string - tenant: - type: string - user: - type: string - volume: - type: string - required: - - registry - - volume - type: object - rbd: - properties: - fsType: - type: string - image: - type: string - keyring: - type: string - monitors: - items: - type: string - type: array - pool: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - user: - type: string - required: - - image - - monitors - type: object - scaleIO: - properties: - fsType: - type: string - gateway: - type: string - protectionDomain: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - sslEnabled: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - volumeName: - type: string - required: - - gateway - - secretRef - - system - type: object - secret: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - volumeName: - type: string - volumeNamespace: - type: string - type: object - vsphereVolume: - properties: - fsType: - type: string - storagePolicyID: - type: string - storagePolicyName: - type: string - volumePath: - type: string - required: - - volumePath - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - type: object - type: object - status: - properties: - agent: - properties: - available: - format: int32 - type: integer - current: - format: int32 - type: integer - currentHash: - type: string - daemonsetName: - type: string - desired: - format: int32 - type: integer - lastUpdate: - format: date-time - type: string - ready: - format: int32 - type: integer - state: - type: string - status: - type: string - upToDate: - format: int32 - type: integer - required: - - available - - current - - desired - - ready - - upToDate - type: object - agentList: - items: - properties: - available: - format: int32 - type: integer - current: - format: int32 - type: integer - currentHash: - type: string - daemonsetName: - type: string - desired: - format: int32 - type: integer - lastUpdate: - format: date-time - type: string - ready: - format: int32 - type: integer - state: - type: string - status: - type: string - upToDate: - format: int32 - type: integer - required: - - available - - current - - desired - - ready - - upToDate - type: object - type: array - x-kubernetes-list-type: atomic - clusterAgent: - properties: - availableReplicas: - format: int32 - type: integer - currentHash: - type: string - deploymentName: - type: string - generatedToken: - type: string - lastUpdate: - format: date-time - type: string - readyReplicas: - format: int32 - type: integer - replicas: - format: int32 - type: integer - state: - type: string - status: - type: string - unavailableReplicas: - format: int32 - type: integer - updatedReplicas: - format: int32 - type: integer - type: object - clusterChecksRunner: - properties: - availableReplicas: - format: int32 - type: integer - currentHash: - type: string - deploymentName: - type: string - generatedToken: - type: string - lastUpdate: - format: date-time - type: string - readyReplicas: - format: int32 - type: integer - replicas: - format: int32 - type: integer - state: - type: string - status: - type: string - unavailableReplicas: - format: int32 - type: integer - updatedReplicas: - format: int32 - type: integer - type: object - conditions: - items: - properties: - lastTransitionTime: - format: date-time - type: string - message: - maxLength: 32768 - type: string - observedGeneration: - format: int64 - minimum: 0 - type: integer - reason: - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - enum: - - "True" - - "False" - - Unknown - type: string - type: - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmetrics_v1.yaml b/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmetrics_v1.yaml deleted file mode 100644 index 2a528183d3..0000000000 --- a/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmetrics_v1.yaml +++ /dev/null @@ -1,124 +0,0 @@ ---- -# Source: datadog-operator/charts/datadogCRDs/templates/datadoghq.com_datadogmetrics_v1.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.6.1 - creationTimestamp: null - name: datadogmetrics.datadoghq.com - labels: - helm.sh/chart: 'datadogCRDs-1.4.0' - app.kubernetes.io/managed-by: 'Helm' - app.kubernetes.io/name: 'datadogCRDs' - app.kubernetes.io/instance: 'datadog-operator' -spec: - group: datadoghq.com - names: - kind: DatadogMetric - listKind: DatadogMetricList - plural: datadogmetrics - singular: datadogmetric - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=='Active')].status - name: active - type: string - - jsonPath: .status.conditions[?(@.type=='Valid')].status - name: valid - type: string - - jsonPath: .status.currentValue - name: value - type: string - - jsonPath: .status.autoscalerReferences - name: references - type: string - - jsonPath: .status.conditions[?(@.type=='Updated')].lastUpdateTime - name: update time - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: DatadogMetric allows autoscaling on arbitrary Datadog query - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DatadogMetricSpec defines the desired state of DatadogMetric - properties: - externalMetricName: - description: ExternalMetricName is reserved for internal use - type: string - maxAge: - description: MaxAge provides the max age for the metric query (overrides the default setting `external_metrics_provider.max_age`) - type: string - query: - description: Query is the raw datadog query - type: string - timeWindow: - description: TimeWindow provides the time window for the metric query, defaults to MaxAge. - type: string - type: object - status: - description: DatadogMetricStatus defines the observed state of DatadogMetric - properties: - autoscalerReferences: - description: List of autoscalers currently using this DatadogMetric - type: string - conditions: - description: Conditions Represents the latest available observations of a DatadogMetric's current state. - items: - description: DatadogMetricCondition describes the state of a DatadogMetric at a certain point. - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - format: date-time - type: string - lastUpdateTime: - description: Last time the condition was updated. - format: date-time - type: string - message: - description: A human readable message indicating details about the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of DatadogMetric condition. - type: string - required: - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - currentValue: - description: Value is the latest value of the metric - type: string - required: - - currentValue - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmonitors_v1.yaml b/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmonitors_v1.yaml deleted file mode 100644 index 3ea483a233..0000000000 --- a/acceptance/tests/fixtures/bases/datadog-operator/datadoghq.com_datadogmonitors_v1.yaml +++ /dev/null @@ -1,286 +0,0 @@ ---- -# Source: datadog-operator/charts/datadogCRDs/templates/datadoghq.com_datadogmonitors_v1.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.6.1 - creationTimestamp: null - name: datadogmonitors.datadoghq.com - labels: - helm.sh/chart: 'datadogCRDs-1.4.0' - app.kubernetes.io/managed-by: 'Helm' - app.kubernetes.io/name: 'datadogCRDs' - app.kubernetes.io/instance: 'datadog-operator' -spec: - group: datadoghq.com - names: - kind: DatadogMonitor - listKind: DatadogMonitorList - plural: datadogmonitors - singular: datadogmonitor - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.id - name: id - type: string - - jsonPath: .status.monitorState - name: monitor state - type: string - - jsonPath: .status.monitorStateLastTransitionTime - name: last state transition - type: string - - format: date - jsonPath: .status.monitorStateLastUpdateTime - name: last state sync - type: string - - jsonPath: .status.syncStatus - name: sync status - type: string - - jsonPath: .metadata.creationTimestamp - name: age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: DatadogMonitor allows to define and manage Monitors from your Kubernetes Cluster - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DatadogMonitorSpec defines the desired state of DatadogMonitor - properties: - controllerOptions: - description: ControllerOptions are the optional parameters in the DatadogMonitor controller - properties: - disableRequiredTags: - description: DisableRequiredTags disables the automatic addition of required tags to monitors. - type: boolean - type: object - message: - description: Message is a message to include with notifications for this monitor - type: string - name: - description: Name is the monitor name - type: string - options: - description: Options are the optional parameters associated with your monitor - properties: - enableLogsSample: - description: A Boolean indicating whether to send a log sample when the log monitor triggers. - type: boolean - escalationMessage: - description: A message to include with a re-notification. - type: string - evaluationDelay: - description: Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the value is set to 300 (5min), the timeframe is set to last_5m and the time is 7:00, the monitor evaluates data from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor always has data during evaluation. - format: int64 - type: integer - includeTags: - description: A Boolean indicating whether notifications from this monitor automatically inserts its triggering tags into the title. - type: boolean - locked: - description: Whether or not the monitor is locked (only editable by creator and admins). - type: boolean - newGroupDelay: - description: Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor results. Should be a non negative integer. - format: int64 - type: integer - noDataTimeframe: - description: The number of minutes before a monitor notifies after data stops reporting. Datadog recommends at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. If omitted, 2x the evaluation timeframe is used for metric alerts, and 24 hours is used for service checks. - format: int64 - type: integer - notificationPresetName: - description: An enum that toggles the display of additional content sent in the monitor notification. - type: string - notifyAudit: - description: A Boolean indicating whether tagged users are notified on changes to this monitor. - type: boolean - notifyNoData: - description: A Boolean indicating whether this monitor notifies when data stops reporting. - type: boolean - renotifyInterval: - description: The number of minutes after the last notification before a monitor re-notifies on the current status. It only re-notifies if it’s not resolved. - format: int64 - type: integer - requireFullWindow: - description: A Boolean indicating whether this monitor needs a full window of data before it’s evaluated. We highly recommend you set this to false for sparse metrics, otherwise some evaluations are skipped. Default is false. - type: boolean - thresholdWindows: - description: A struct of the alerting time window options. - properties: - recoveryWindow: - description: Describes how long an anomalous metric must be normal before the alert recovers. - type: string - triggerWindow: - description: Describes how long a metric must be anomalous before an alert triggers. - type: string - type: object - thresholds: - description: A struct of the different monitor threshold values. - properties: - critical: - description: The monitor CRITICAL threshold. - type: string - criticalRecovery: - description: The monitor CRITICAL recovery threshold. - type: string - ok: - description: The monitor OK threshold. - type: string - unknown: - description: The monitor UNKNOWN threshold. - type: string - warning: - description: The monitor WARNING threshold. - type: string - warningRecovery: - description: The monitor WARNING recovery threshold. - type: string - type: object - timeoutH: - description: The number of hours of the monitor not reporting data before it automatically resolves from a triggered state. - format: int64 - type: integer - type: object - priority: - description: Priority is an integer from 1 (high) to 5 (low) indicating alert severity - format: int64 - type: integer - query: - description: Query is the Datadog monitor query - type: string - restrictedRoles: - description: RestrictedRoles is a list of unique role identifiers to define which roles are allowed to edit the monitor. `restricted_roles` is the successor of `locked`. For more information about `locked` and `restricted_roles`, see the [monitor options docs](https://docs.datadoghq.com/monitors/guide/monitor_api_options/#permissions-options). - items: - type: string - type: array - x-kubernetes-list-type: set - tags: - description: Tags is the monitor tags associated with your monitor - items: - type: string - type: array - x-kubernetes-list-type: set - type: - description: Type is the monitor type - type: string - type: object - status: - description: DatadogMonitorStatus defines the observed state of DatadogMonitor - properties: - conditions: - description: Conditions Represents the latest available observations of a DatadogMonitor's current state. - items: - description: DatadogMonitorCondition describes the current state of a DatadogMonitor - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - format: date-time - type: string - lastUpdateTime: - description: Last time the condition was updated. - format: date-time - type: string - message: - description: A human readable message indicating details about the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of DatadogMonitor condition - type: string - required: - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - created: - description: Created is the time the monitor was created - format: date-time - type: string - creator: - description: Creator is the identify of the monitor creator - type: string - currentHash: - description: CurrentHash tracks the hash of the current DatadogMonitorSpec to know if the Spec has changed and needs an update - type: string - downtimeStatus: - description: DowntimeStatus defines whether the monitor is downtimed - properties: - downtimeId: - type: integer - isDowntimed: - type: boolean - type: object - id: - description: ID is the monitor ID generated in Datadog - type: integer - monitorLastForceSyncTime: - description: MonitorLastForceSyncTime is the last time the API monitor was last force synced with the DatadogMonitor resource - format: date-time - type: string - monitorState: - description: MonitorState is the overall state of monitor - type: string - monitorStateLastTransitionTime: - description: MonitorStateLastTransitionTime is the last time the monitor state changed - format: date-time - type: string - monitorStateLastUpdateTime: - description: MonitorStateLastUpdateTime is the last time the monitor state updated - format: date-time - type: string - primary: - description: Primary defines whether the monitor is managed by the Kubernetes custom resource (true) or outside Kubernetes (false) - type: boolean - syncStatus: - description: MonitorStateSyncStatus shows the health of syncing the monitor state to Datadog - type: string - triggeredState: - description: TriggeredState only includes details for monitor groups that are triggering - items: - description: DatadogMonitorTriggeredState represents the details of a triggering DatadogMonitor The DatadogMonitor is triggering if one of its groups is in Alert, Warn, or No Data - properties: - lastTransitionTime: - format: date-time - type: string - monitorGroup: - description: MonitorGroup is the name of the triggering group - type: string - state: - description: DatadogMonitorState represents the overall DatadogMonitor state - type: string - required: - - monitorGroup - type: object - type: array - x-kubernetes-list-map-keys: - - monitorGroup - x-kubernetes-list-type: map - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/acceptance/tests/fixtures/bases/datadog-operator/deployment.yaml b/acceptance/tests/fixtures/bases/datadog-operator/deployment.yaml deleted file mode 100644 index 669dc160a5..0000000000 --- a/acceptance/tests/fixtures/bases/datadog-operator/deployment.yaml +++ /dev/null @@ -1,72 +0,0 @@ ---- -# Source: datadog-operator/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: datadog-operator - namespace: datadog - labels: - app.kubernetes.io/name: datadog-operator - helm.sh/chart: datadog-operator-1.5.0 - app.kubernetes.io/instance: datadog-operator - app.kubernetes.io/version: "1.4.0" - app.kubernetes.io/managed-by: Helm -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: datadog-operator - app.kubernetes.io/instance: datadog-operator - template: - metadata: - labels: - app.kubernetes.io/name: datadog-operator - app.kubernetes.io/instance: datadog-operator - annotations: - ad.datadoghq.com/datadog-operator.check_names: '["openmetrics"]' - ad.datadoghq.com/datadog-operator.init_configs: '[{}]' - ad.datadoghq.com/datadog-operator.instances: | - [{ - "prometheus_url": "http://%%host%%:8383/metrics", - "namespace": "datadog.operator", - "metrics": ["*"] - }] - consul.hashicorp.com/connect-inject: "false" - spec: - serviceAccountName: datadog-operator - containers: - - name: datadog-operator - image: "gcr.io/datadoghq/operator:1.4.0" - imagePullPolicy: IfNotPresent - env: - - name: WATCH_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - args: - - "-supportExtendedDaemonset=false" - - "-logEncoder=json" - - "-metrics-addr=:8383" - - "-loglevel=info" - - "-operatorMetricsEnabled=true" - - "-webhookEnabled=false" - - "-datadogMonitorEnabled=false" - - "-datadogAgentEnabled=true" - - "-datadogSLOEnabled=false" - ports: - - name: metrics - containerPort: 8383 - protocol: TCP - livenessProbe: - httpGet: - path: /healthz/ - port: 8081 - periodSeconds: 10 - resources: - {} - volumeMounts: - volumes: diff --git a/acceptance/tests/fixtures/bases/datadog-operator/kustomization.yaml b/acceptance/tests/fixtures/bases/datadog-operator/kustomization.yaml deleted file mode 100644 index e5d90d799d..0000000000 --- a/acceptance/tests/fixtures/bases/datadog-operator/kustomization.yaml +++ /dev/null @@ -1,8 +0,0 @@ -resources: - - clusterrole.yaml - - clusterrole_binding.yaml - - datadoghq.com_datadogagents_v1.yaml - - datadoghq.com_datadogmetrics_v1.yaml - - datadoghq.com_datadogmonitors_v1.yaml - - deployment.yaml - - serviceaccount.yaml diff --git a/acceptance/tests/fixtures/bases/datadog-operator/serviceaccount.yaml b/acceptance/tests/fixtures/bases/datadog-operator/serviceaccount.yaml deleted file mode 100644 index a31d99fbbc..0000000000 --- a/acceptance/tests/fixtures/bases/datadog-operator/serviceaccount.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -# Source: datadog-operator/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: datadog-operator - namespace: datadog - labels: - app.kubernetes.io/name: datadog-operator - helm.sh/chart: datadog-operator-1.5.0 - app.kubernetes.io/instance: datadog-operator - app.kubernetes.io/version: "1.4.0" - app.kubernetes.io/managed-by: Helm diff --git a/acceptance/tests/fixtures/bases/datadog/datadog.yaml b/acceptance/tests/fixtures/bases/datadog/datadog.yaml index f05c1133a2..b14c930bb2 100644 --- a/acceptance/tests/fixtures/bases/datadog/datadog.yaml +++ b/acceptance/tests/fixtures/bases/datadog/datadog.yaml @@ -139,16 +139,6 @@ spec: # http: # enabled: true # endpoint: "0.0.0.0:4318" - override: - nodeAgent: - containers: - resources: - requests: - cpu: 2 - memory: 1Gi - limits: - cpu: 2 - memory: 1Gi # override: # nodeAgent: # annotations: diff --git a/acceptance/tests/fixtures/cases/datadog-dogstatsd-uds/patch.yaml b/acceptance/tests/fixtures/cases/datadog-dogstatsd-uds/patch.yaml index f2205c4695..c9294b9a2a 100644 --- a/acceptance/tests/fixtures/cases/datadog-dogstatsd-uds/patch.yaml +++ b/acceptance/tests/fixtures/cases/datadog-dogstatsd-uds/patch.yaml @@ -32,10 +32,6 @@ spec: peer_id: "$1" override: nodeAgent: - resources: - limits: - cpu: "2" - memory: "1Gi" annotations: 'consul.hashicorp.com/connect-inject': 'false' 'consul.hashicorp.com/transparent-proxy': 'false'