diff --git a/marketplaces/charts/operator-eks-addon/aws_mp_configuration_schema.json b/marketplaces/charts/operator-eks-addon/aws_mp_configuration_schema.json index d23e5c70aa..2bab8a994b 100644 --- a/marketplaces/charts/operator-eks-addon/aws_mp_configuration_schema.json +++ b/marketplaces/charts/operator-eks-addon/aws_mp_configuration_schema.json @@ -124,6 +124,46 @@ "collectOperatorMetrics": { "type": "boolean" }, + "datadogCRDs": { + "type": "object", + "properties": { + "crds": { + "type": "object", + "properties": { + "datadogAgentProfiles": { + "type": "boolean" + } + } + } + } + }, + "datadogAgentProfile": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "remoteConfiguration": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "remoteUpdates": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "createControllerRevisions": { + "type": "boolean" + }, "watchNamespaces": { "type": "array", "items": {} @@ -164,6 +204,79 @@ } }, "additionalProperties": false + }, + "managedAgentInstallation": { + "type": [ + "object", + "null" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "v1" + ] + }, + "installationID": { + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" + }, + "eksARNSHA256": { + "type": "string", + "pattern": "^[0-9a-f]{64}$" + }, + "operationID": { + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" + }, + "desiredState": { + "type": "string", + "enum": [ + "installed", + "absent" + ] + }, + "acknowledgedOperationID": { + "type": "string", + "pattern": "^$|^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" + }, + "bootstrap": { + "type": "object", + "properties": { + "clusterName": { + "type": "string", + "minLength": 1, + "maxLength": 100 + }, + "site": { + "type": "string", + "enum": [ + "datadoghq.com", + "datadoghq.eu", + "us3.datadoghq.com", + "us5.datadoghq.com", + "ddog-gov.com", + "ap1.datadoghq.com", + "ap2.datadoghq.com" + ] + } + }, + "required": [ + "clusterName", + "site" + ], + "additionalProperties": false + } + }, + "required": [ + "version", + "installationID", + "eksARNSHA256", + "operationID", + "desiredState", + "bootstrap" + ], + "additionalProperties": false } } } diff --git a/marketplaces/charts/operator-eks-addon/templates/managed_agent_installation.yaml b/marketplaces/charts/operator-eks-addon/templates/managed_agent_installation.yaml new file mode 100644 index 0000000000..7c91ede773 --- /dev/null +++ b/marketplaces/charts/operator-eks-addon/templates/managed_agent_installation.yaml @@ -0,0 +1,39 @@ +{{- with .Values.managedAgentInstallation }} +{{- $intent := dict + "version" .version + "installationID" .installationID + "eksARNSHA256" .eksARNSHA256 + "operationID" .operationID + "desiredState" .desiredState + "bootstrap" .bootstrap +-}} +{{- with .acknowledgedOperationID }} +{{- $_ := set $intent "acknowledgedOperationID" . -}} +{{- end }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: datadog-agent-managed-installation-intent + namespace: {{ $.Release.Namespace }} + labels: + app.kubernetes.io/managed-by: eks-addon +data: + intent.json: |- + {{ $intent | toJson }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: datadog-agent-managed-installation-runtime + namespace: {{ $.Release.Namespace }} + labels: + app.kubernetes.io/managed-by: eks-addon +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: datadog-agent-managed-installation-runtime + labels: + app.kubernetes.io/managed-by: eks-addon +rules: [] +{{- end }} diff --git a/marketplaces/charts/operator-eks-addon/values.yaml b/marketplaces/charts/operator-eks-addon/values.yaml index 5b774e331a..28452dcd24 100644 --- a/marketplaces/charts/operator-eks-addon/values.yaml +++ b/marketplaces/charts/operator-eks-addon/values.yaml @@ -24,3 +24,9 @@ credentialsSecretSync: apiKeySecretId: # credentialsSecretSync.appKeySecretId -- AWS Secrets Manager ARN or name for the Datadog application key appKeySecretId: + +# managedAgentInstallation -- Enables Datadog-managed Agent installation through the Operator EKS add-on +## This lifecycle request is populated automatically by Datadog and is not intended for manual configuration. +## The managed workflow uses `credentialsSecretSync` +## to deliver credentials to a Kubernetes Secret in the add-on namespace. +managedAgentInstallation: null