From feee1abdd786367ea1360adca0db4a3e612ff86b Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Fri, 17 May 2024 18:47:26 -0400 Subject: [PATCH 01/27] add agent-with-operator install method --- common/config/environment.go | 9 +- .../datadog/agent/kubernetes_helm_operator.go | 297 ++++++++++++++++++ go.mod | 2 +- scenarios/aws/kindvm/run.go | 23 +- tasks/deploy.py | 5 + tasks/doc.py | 1 + tasks/kind.py | 3 + tasks/tool.py | 4 + 8 files changed, 341 insertions(+), 3 deletions(-) create mode 100644 components/datadog/agent/kubernetes_helm_operator.go diff --git a/common/config/environment.go b/common/config/environment.go index 3efbc620b..55f7734c8 100644 --- a/common/config/environment.go +++ b/common/config/environment.go @@ -7,9 +7,10 @@ import ( "os/user" "strings" - "github.com/DataDog/test-infra-definitions/common/namer" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" sdkconfig "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" + + "github.com/DataDog/test-infra-definitions/common/namer" ) const ( @@ -33,6 +34,7 @@ const ( // Agent Namespace DDAgentDeployParamName = "deploy" + DDAgentDeployWithOperatorParamName = "deployWithOperator" DDAgentVersionParamName = "version" DDAgentPipelineID = "pipeline_id" DDAgentCommitSHA = "commit_sha" @@ -142,6 +144,7 @@ func NewCommonEnvironment(ctx *pulumi.Context) (CommonEnvironment, error) { ctx.Log.Debug(fmt.Sprintf("agent version: %s", env.AgentVersion()), nil) ctx.Log.Debug(fmt.Sprintf("pipeline id: %s", env.PipelineID()), nil) ctx.Log.Debug(fmt.Sprintf("deploy: %v", env.AgentDeploy()), nil) + ctx.Log.Debug(fmt.Sprintf("deploy with Operator: %v", env.AgentDeployWithOperator()), nil) ctx.Log.Debug(fmt.Sprintf("full image path: %v", env.AgentFullImagePath()), nil) return env, nil } @@ -222,6 +225,10 @@ func (e *CommonEnvironment) AgentDeploy() bool { return e.GetBoolWithDefault(e.AgentConfig, DDAgentDeployParamName, true) } +func (e *CommonEnvironment) AgentDeployWithOperator() bool { + return e.GetBoolWithDefault(e.AgentConfig, DDAgentDeployWithOperatorParamName, false) +} + func (e *CommonEnvironment) AgentVersion() string { return e.AgentConfig.Get(DDAgentVersionParamName) } diff --git a/components/datadog/agent/kubernetes_helm_operator.go b/components/datadog/agent/kubernetes_helm_operator.go new file mode 100644 index 000000000..9509fd89e --- /dev/null +++ b/components/datadog/agent/kubernetes_helm_operator.go @@ -0,0 +1,297 @@ +package agent + +import ( + "dario.cat/mergo" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions" + corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1" + kubeHelm "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v3" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "gopkg.in/yaml.v3" + + "github.com/DataDog/test-infra-definitions/common/config" + "github.com/DataDog/test-infra-definitions/common/utils" + "github.com/DataDog/test-infra-definitions/components/datadog/fakeintake" + componentskube "github.com/DataDog/test-infra-definitions/components/kubernetes" + "github.com/DataDog/test-infra-definitions/resources/helm" +) + +// OperatorHelmInstallationArgs is the set of arguments for creating a new HelmInstallation component +type OperatorHelmInstallationArgs struct { + // KubeProvider is the Kubernetes provider to use + KubeProvider *kubernetes.Provider + // Namespace is the namespace in which to install the agent + Namespace string + // ValuesYAML is used to provide installation-specific values + ValuesYAML pulumi.AssetOrArchiveArrayInput + // OperatorFullImagePath is used to specify the full image path for the cluster agent + OperatorFullImagePath string +} + +type OperatorHelmComponent struct { + pulumi.ResourceState + + LinuxHelmReleaseName pulumi.StringPtrOutput + LinuxHelmReleaseStatus kubeHelm.ReleaseStatusOutput +} + +func NewOperatorHelmInstallation(e config.Env, args OperatorHelmInstallationArgs, opts ...pulumi.ResourceOption) (*HelmComponent, error) { + apiKey := e.AgentAPIKey() + appKey := e.AgentAPPKey() + baseName := "dd-operator" + opts = append(opts, pulumi.Providers(args.KubeProvider), e.WithProviders(config.ProviderRandom), pulumi.Parent(args.KubeProvider), pulumi.DeletedWith(args.KubeProvider)) + + helmComponent := &HelmComponent{} + if err := e.Ctx().RegisterComponentResource("dd:agent-with-operator", "operator", helmComponent, opts...); err != nil { + return nil, err + } + opts = append(opts, pulumi.Parent(helmComponent)) + + // Create namespace if necessary + ns, err := corev1.NewNamespace(e.Ctx(), args.Namespace, &corev1.NamespaceArgs{ + Metadata: metav1.ObjectMetaArgs{ + Name: pulumi.String(args.Namespace), + }, + }, opts...) + if err != nil { + return nil, err + } + opts = append(opts, utils.PulumiDependsOn(ns)) + + // Create secret if necessary + secret, err := corev1.NewSecret(e.Ctx(), "datadog-credentials", &corev1.SecretArgs{ + Metadata: metav1.ObjectMetaArgs{ + Namespace: ns.Metadata.Name(), + Name: pulumi.Sprintf("%s-datadog-credentials", baseName), + }, + StringData: pulumi.StringMap{ + "api-key": apiKey, + "app-key": appKey, + }, + }, opts...) + if err != nil { + return nil, err + } + opts = append(opts, utils.PulumiDependsOn(secret)) + + // Create image pull secret if necessary + var imgPullSecret *corev1.Secret + if e.ImagePullRegistry() != "" { + imgPullSecret, err = NewImagePullSecret(e, args.Namespace, opts...) + if err != nil { + return nil, err + } + opts = append(opts, utils.PulumiDependsOn(imgPullSecret)) + } + + operatorImagePath, operatorImageTag := utils.ParseImageReference(args.OperatorFullImagePath) + linuxInstallName := baseName + "-linux" + + values := buildLinuxOperatorHelmValues(baseName, operatorImagePath, operatorImageTag) + values.configureOperatorImagePullSecret(imgPullSecret) + + linux, err := helm.NewInstallation(e, helm.InstallArgs{ + RepoURL: DatadogHelmRepo, + ChartName: "datadog-operator", + InstallName: linuxInstallName, + Namespace: args.Namespace, + ValuesYAML: args.ValuesYAML, + Values: pulumi.Map(values), + }, opts...) + + if err != nil { + return nil, err + } + + helmComponent.LinuxHelmReleaseName = linux.Name + helmComponent.LinuxHelmReleaseStatus = linux.Status + + resourceOutputs := pulumi.Map{ + "linuxHelmReleaseName": linux.Name, + "linuxHelmReleaseStatus": linux.Status, + } + + if err := e.Ctx().RegisterResourceOutputs(helmComponent, resourceOutputs); err != nil { + return nil, err + } + + return helmComponent, nil +} + +func buildLinuxOperatorHelmValues(baseName string, operatorImagePath string, operatorImageTag string) HelmValues { + return HelmValues{ + "apiKeyExistingSecret": pulumi.String(baseName + "-datadog-credentials"), + "appKeyExistingSecret": pulumi.String(baseName + "-datadog-credentials"), + "image": pulumi.Map{ + "repository": pulumi.String(operatorImagePath), + "tag": pulumi.String(operatorImageTag), + }, + "logLevel": pulumi.String("debug"), + "introspection": pulumi.Map{ + "enabled": pulumi.Bool(false), + }, + "datadogAgentProfile": pulumi.Map{ + "enabled": pulumi.Bool(false), + }, + "supportExtendedDaemonset": pulumi.Bool(false), + "operatorMetricsEnabled": pulumi.Bool(true), + "metricsPort": pulumi.Int(8383), + "datadogAgent": pulumi.Map{ + "enabled": pulumi.Bool(true), + }, + "datadogMonitor": pulumi.Map{ + "enabled": pulumi.Bool(false), + }, + "datadogSLO": pulumi.Map{ + "enabled": pulumi.Bool(false), + }, + "resources": pulumi.Map{ + "limits": pulumi.Map{ + "cpu": pulumi.String("100m"), + "memory": pulumi.String("250Mi"), + }, + "requests": pulumi.Map{ + "cpu": pulumi.String("100m"), + "memory": pulumi.String("250Mi"), + }, + }, + "installCRDs": pulumi.Bool(true), + "datadogCRDs": pulumi.Map{ + "crds": pulumi.Map{ + "datadogAgents": pulumi.Bool(true), + "datadogMetrics": pulumi.Bool(true), + "datadogMonitors": pulumi.Bool(true), + "datadogSLOs": pulumi.Bool(true), + }, + }, + } +} + +func (values HelmValues) configureOperatorImagePullSecret(secret *corev1.Secret) { + if secret == nil { + return + } + + values["imagePullSecrets"] = pulumi.MapArray{ + pulumi.Map{ + "name": secret.Metadata.Name(), + }, + } + +} + +func K8sAppDefinition(e config.Env, kubeProvider *kubernetes.Provider, namespace string, fakeIntake *fakeintake.Fakeintake, kubeletTLSVerify bool, clusterName string, customDda string, opts ...pulumi.ResourceOption) (*componentskube.Workload, error) { + opts = append(opts, pulumi.Provider(kubeProvider), pulumi.Parent(kubeProvider), pulumi.DeletedWith(kubeProvider)) + + k8sComponent := &componentskube.Workload{} + if err := e.Ctx().RegisterComponentResource("dd:agent-with-operator", "dda", k8sComponent, opts...); err != nil { + return nil, err + } + + opts = append(opts, pulumi.Parent(k8sComponent)) + + ns, err := corev1.NewNamespace( + e.Ctx(), + namespace, + &corev1.NamespaceArgs{ + Metadata: metav1.ObjectMetaArgs{ + Name: pulumi.String(namespace), + }, + }, + opts..., + ) + if err != nil { + return nil, err + } + + opts = append(opts, utils.PulumiDependsOn(ns)) + + var imagePullSecrets corev1.LocalObjectReferenceArray + if e.ImagePullRegistry() != "" { + imgPullSecret, err := NewImagePullSecret(e, namespace, opts...) + if err != nil { + return nil, err + } + + imagePullSecrets = append(imagePullSecrets, corev1.LocalObjectReferenceArgs{ + Name: imgPullSecret.Metadata.Name(), + }) + } + + ddaArgs := kubernetes.UntypedArgs{} + err = yaml.Unmarshal([]byte(customDda), &ddaArgs) + if err != nil { + return nil, err + } + + defaultArgs := kubernetes.UntypedArgs{ + "spec": pulumi.Map{ + "global": pulumi.Map{ + "credentials": pulumi.Map{ + "apiKey": pulumi.StringInput(e.AgentAPIKey()), + "appKey": pulumi.StringInput(e.AgentAPPKey()), + }, + "clusterName": pulumi.String(clusterName), + "kubelet": pulumi.Map{ + "tlsVerify": pulumi.Bool(kubeletTLSVerify), + }, + }, + }, + } + + if e.AgentUseFakeintake() { + err = mergo.Merge(&ddaArgs, kubernetes.UntypedArgs{ + "spec": pulumi.Map{ + "override": pulumi.Map{ + "nodeAgent": pulumi.Map{ + "env": pulumi.MapArray{ + pulumi.Map{ + "name": pulumi.String("DD_ADDITIONAL_ENDPOINTS"), + "value": pulumi.Sprintf(`{"%s": ["FAKEAPIKEY"]}`, fakeIntake.URL), + }, + }, + }, + "clusterAgent": pulumi.Map{ + "env": pulumi.MapArray{ + pulumi.Map{ + "name": pulumi.String("DD_ADDITIONAL_ENDPOINTS"), + "value": pulumi.Sprintf(`{"%s": ["FAKEAPIKEY"]}`, fakeIntake.URL), + }, + }, + }, + "clusterChecksRunner": pulumi.Map{ + "env": pulumi.MapArray{ + pulumi.Map{ + "name": pulumi.String("DD_ADDITIONAL_ENDPOINTS"), + "value": pulumi.Sprintf(`{"%s": ["FAKEAPIKEY"]}`, fakeIntake.URL), + }, + }, + }, + }}, + }) + if err != nil { + return nil, err + } + } + + err = mergo.Merge(&ddaArgs, defaultArgs) + if err != nil { + return nil, err + } + + _, err = apiextensions.NewCustomResource(e.Ctx(), "datadog-agent", &apiextensions.CustomResourceArgs{ + ApiVersion: pulumi.String("datadoghq.com/v2alpha1"), + Kind: pulumi.String("DatadogAgent"), + Metadata: &metav1.ObjectMetaArgs{ + Name: pulumi.String("datadog"), + Namespace: pulumi.String("datadog"), + }, + OtherFields: ddaArgs, + }, opts...) + if err != nil { + return nil, err + } + + return k8sComponent, nil +} diff --git a/go.mod b/go.mod index bab69fc72..6f500ad42 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module github.com/DataDog/test-infra-definitions go 1.21 require ( + dario.cat/mergo v1.0.0 github.com/DataDog/datadog-agent/pkg/util/optional v0.52.1 github.com/Masterminds/semver v1.5.0 github.com/alessio/shellescape v1.4.2 @@ -34,7 +35,6 @@ require ( ) require ( - dario.cat/mergo v1.0.0 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v1.0.0 // indirect github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect diff --git a/scenarios/aws/kindvm/run.go b/scenarios/aws/kindvm/run.go index 86a6be7da..8b52f225d 100644 --- a/scenarios/aws/kindvm/run.go +++ b/scenarios/aws/kindvm/run.go @@ -84,7 +84,7 @@ func Run(ctx *pulumi.Context) error { } // Deploy the agent - if awsEnv.AgentDeploy() { + if awsEnv.AgentDeploy() && !awsEnv.AgentDeployWithOperator() { customValues := fmt.Sprintf(` datadog: kubelet: @@ -112,6 +112,27 @@ agents: dependsOnCrd = utils.PulumiDependsOn(helmComponent) } + // Deploy the operator + if awsEnv.AgentDeploy() && awsEnv.AgentDeployWithOperator() { + operatorHelmComponent, err := agent.NewOperatorHelmInstallation(&awsEnv, agent.OperatorHelmInstallationArgs{ + KubeProvider: kindKubeProvider, + Namespace: "datadog", + ValuesYAML: pulumi.AssetOrArchiveArray{}, + OperatorFullImagePath: "gcr.io/datadoghq/operator:1.6.0", + }, nil) + if err != nil { + return err + } + ctx.Export("operator-linux-helm-install-name", operatorHelmComponent.LinuxHelmReleaseName) + ctx.Export("operator-linux-helm-install-status", operatorHelmComponent.LinuxHelmReleaseStatus) + + dependsOnCrd = utils.PulumiDependsOn(operatorHelmComponent) + + if _, err := agent.K8sAppDefinition(&awsEnv, kindKubeProvider, "datadog", fakeIntake, false, kindClusterName, ""); err != nil { + return err + } + } + // Deploy standalone dogstatsd if awsEnv.DogstatsdDeploy() { if _, err := dogstatsdstandalone.K8sAppDefinition(&awsEnv, kindKubeProvider, "dogstatsd-standalone", fakeIntake, false, kindClusterName); err != nil { diff --git a/tasks/deploy.py b/tasks/deploy.py index a6ec0e0b7..a2257a087 100644 --- a/tasks/deploy.py +++ b/tasks/deploy.py @@ -24,6 +24,7 @@ def deploy( stack_name: Optional[str] = None, pipeline_id: Optional[str] = None, install_agent: Optional[bool] = None, + install_agent_with_operator: Optional[bool] = None, install_updater: Optional[bool] = None, install_workload: Optional[bool] = None, agent_version: Optional[str] = None, @@ -42,6 +43,10 @@ def deploy( flags["ddagent:deploy"] = install_agent and not install_updater flags["ddupdater:deploy"] = install_updater + if install_agent_with_operator is None: + install_agent_with_operator = tool.get_default_agent_with_operator_install() + flags["ddagent:deployWithOperator"] = install_agent_with_operator + if install_workload is None: install_workload = tool.get_default_workload_install() flags["ddtestworkload:deploy"] = install_workload diff --git a/tasks/doc.py b/tasks/doc.py index dcc0f2a52..d1526683f 100644 --- a/tasks/doc.py +++ b/tasks/doc.py @@ -1,6 +1,7 @@ from . import tool install_agent: str = f"Install the Agent (default {tool.get_default_agent_install()})." +install_agent_with_operator: str = f"Install the Agent with Operator (default {tool.get_default_agent_with_operator_install()})." install_updater: str = "Install the Updater (default False)." install_workload: str = f"Install test workload (default {tool.get_default_workload_install()})." pipeline_id: str = ( diff --git a/tasks/kind.py b/tasks/kind.py index 4baef1034..760b57365 100644 --- a/tasks/kind.py +++ b/tasks/kind.py @@ -17,6 +17,7 @@ help={ "config_path": doc.config_path, "install_agent": doc.install_agent, + "install_agent_with_operator": doc.install_agent_with_operator, "agent_version": doc.container_agent_version, "stack_name": doc.stack_name, "architecture": doc.architecture, @@ -31,6 +32,7 @@ def create_kind( config_path: Optional[str] = None, stack_name: Optional[str] = None, install_agent: Optional[bool] = True, + install_agent_with_operator: Optional[bool] = False, agent_version: Optional[str] = None, architecture: Optional[str] = None, use_fakeintake: Optional[bool] = False, @@ -54,6 +56,7 @@ def create_kind( key_pair_required=True, stack_name=stack_name, install_agent=install_agent, + install_agent_with_operator=install_agent_with_operator, agent_version=agent_version, use_fakeintake=use_fakeintake, extra_flags=extra_flags, diff --git a/tasks/tool.py b/tasks/tool.py index 467b62f78..77b868230 100644 --- a/tasks/tool.py +++ b/tasks/tool.py @@ -125,6 +125,10 @@ def get_default_agent_install() -> bool: return True +def get_default_agent_with_operator_install() -> bool: + return False + + def get_default_workload_install() -> bool: return True From ea948606fa094e9819a300ff1818ac019bf2b342 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Wed, 12 Jun 2024 16:45:19 -0400 Subject: [PATCH 02/27] Refactor helm kubernetes agent --- .../datadog/agent/helm/kubernetes_agent.go | 36 +++++++++++++++++ components/datadog/agent/kubernetes.go | 39 ------------------- scenarios/aws/eks/run.go | 32 ++++++++------- scenarios/aws/kindvm/run.go | 27 +++++++------ scenarios/azure/aks/run.go | 21 +++++----- 5 files changed, 77 insertions(+), 78 deletions(-) create mode 100644 components/datadog/agent/helm/kubernetes_agent.go diff --git a/components/datadog/agent/helm/kubernetes_agent.go b/components/datadog/agent/helm/kubernetes_agent.go new file mode 100644 index 000000000..19e68c56e --- /dev/null +++ b/components/datadog/agent/helm/kubernetes_agent.go @@ -0,0 +1,36 @@ +package helm + +import ( + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes" + + "github.com/DataDog/test-infra-definitions/components/datadog/agent" + + "github.com/DataDog/test-infra-definitions/common/config" + "github.com/DataDog/test-infra-definitions/components" + "github.com/DataDog/test-infra-definitions/components/datadog/kubernetesagentparams" +) + +func NewKubernetesAgent(e config.Env, resourceName string, kubeProvider *kubernetes.Provider, options ...kubernetesagentparams.Option) (*agent.KubernetesAgent, error) { + return components.NewComponent(e, resourceName, func(comp *agent.KubernetesAgent) error { + params, err := kubernetesagentparams.NewParams(e, options...) + if err != nil { + return err + } + + _, err = agent.NewHelmInstallation(e, agent.HelmInstallationArgs{ + KubeProvider: kubeProvider, + DeployWindows: params.DeployWindows, + Namespace: params.Namespace, + ValuesYAML: params.HelmValues, + Fakeintake: params.FakeIntake, + AgentFullImagePath: params.AgentFullImagePath, + ClusterAgentFullImagePath: params.ClusterAgentFullImagePath, + DisableLogsContainerCollectAll: params.DisableLogsContainerCollectAll, + }, params.PulumiResourceOptions...) + if err != nil { + return err + } + + return nil + }) +} diff --git a/components/datadog/agent/kubernetes.go b/components/datadog/agent/kubernetes.go index 38279f5e3..418422087 100644 --- a/components/datadog/agent/kubernetes.go +++ b/components/datadog/agent/kubernetes.go @@ -1,60 +1,21 @@ package agent import ( - "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" - "github.com/DataDog/test-infra-definitions/common/config" "github.com/DataDog/test-infra-definitions/components" - "github.com/DataDog/test-infra-definitions/components/datadog/kubernetesagentparams" ) type KubernetesAgentOutput struct { components.JSONImporter - - InstallNameLinux string `json:"installNameLinux"` - InstallNameWindows string `json:"installNameWindows"` } // KubernetesAgent is an installer to install the Datadog Agent on a Kubernetes cluster. type KubernetesAgent struct { pulumi.ResourceState components.Component - - InstallNameLinux pulumi.StringOutput `pulumi:"installNameLinux"` - InstallNameWindows pulumi.StringOutput `pulumi:"installNameWindows"` } func (h *KubernetesAgent) Export(ctx *pulumi.Context, out *KubernetesAgentOutput) error { return components.Export(ctx, h, out) } - -func NewKubernetesAgent(e config.Env, resourceName string, kubeProvider *kubernetes.Provider, options ...kubernetesagentparams.Option) (*KubernetesAgent, error) { - return components.NewComponent(e, resourceName, func(comp *KubernetesAgent) error { - params, err := kubernetesagentparams.NewParams(e, options...) - if err != nil { - return err - } - - helmComponent, err := NewHelmInstallation(e, HelmInstallationArgs{ - KubeProvider: kubeProvider, - DeployWindows: params.DeployWindows, - Namespace: params.Namespace, - ValuesYAML: params.HelmValues, - Fakeintake: params.FakeIntake, - AgentFullImagePath: params.AgentFullImagePath, - ClusterAgentFullImagePath: params.ClusterAgentFullImagePath, - DisableLogsContainerCollectAll: params.DisableLogsContainerCollectAll, - }, params.PulumiResourceOptions...) - if err != nil { - return err - } - - // Fill component - comp.InstallNameLinux = helmComponent.LinuxHelmReleaseName.Elem() - if params.DeployWindows { - comp.InstallNameWindows = helmComponent.WindowsHelmReleaseName.Elem() - } - return nil - }) -} diff --git a/scenarios/aws/eks/run.go b/scenarios/aws/eks/run.go index 35ae10b90..bbb5982fd 100644 --- a/scenarios/aws/eks/run.go +++ b/scenarios/aws/eks/run.go @@ -4,7 +4,7 @@ import ( "github.com/DataDog/test-infra-definitions/common/config" "github.com/DataDog/test-infra-definitions/common/utils" "github.com/DataDog/test-infra-definitions/components" - "github.com/DataDog/test-infra-definitions/components/datadog/agent" + "github.com/DataDog/test-infra-definitions/components/datadog/agent/helm" "github.com/DataDog/test-infra-definitions/components/datadog/apps/cpustress" "github.com/DataDog/test-infra-definitions/components/datadog/apps/dogstatsd" "github.com/DataDog/test-infra-definitions/components/datadog/apps/mutatedbyadmissioncontroller" @@ -14,6 +14,7 @@ import ( "github.com/DataDog/test-infra-definitions/components/datadog/apps/tracegen" dogstatsdstandalone "github.com/DataDog/test-infra-definitions/components/datadog/dogstatsd-standalone" fakeintakeComp "github.com/DataDog/test-infra-definitions/components/datadog/fakeintake" + "github.com/DataDog/test-infra-definitions/components/datadog/kubernetesagentparams" kubeComp "github.com/DataDog/test-infra-definitions/components/kubernetes" resourcesAws "github.com/DataDog/test-infra-definitions/resources/aws" localEks "github.com/DataDog/test-infra-definitions/resources/aws/eks" @@ -271,24 +272,25 @@ func Run(ctx *pulumi.Context) error { copy(workloadWithCRDDeps, workloadDeps) if awsEnv.AgentDeploy() { - helmComponent, err := agent.NewHelmInstallation(&awsEnv, agent.HelmInstallationArgs{ - KubeProvider: eksKubeProvider, - Namespace: "datadog", - Fakeintake: fakeIntake, - DeployWindows: awsEnv.EKSWindowsNodeGroup(), - }, utils.PulumiDependsOn(workloadDeps...)) - if err != nil { - return err - } + k8sAgentOptions := make([]kubernetesagentparams.Option, 0) + k8sAgentOptions = append( + k8sAgentOptions, + kubernetesagentparams.WithNamespace("datadog"), + kubernetesagentparams.WithFakeintake(fakeIntake), + kubernetesagentparams.WithPulumiResourceOptions(utils.PulumiDependsOn(workloadDeps...)), + ) - ctx.Export("agent-linux-helm-install-name", helmComponent.LinuxHelmReleaseName) - ctx.Export("agent-linux-helm-install-status", helmComponent.LinuxHelmReleaseStatus) if awsEnv.EKSWindowsNodeGroup() { - ctx.Export("agent-windows-helm-install-name", helmComponent.WindowsHelmReleaseName) - ctx.Export("agent-windows-helm-install-status", helmComponent.WindowsHelmReleaseStatus) + k8sAgentOptions = append(k8sAgentOptions, kubernetesagentparams.WithDeployWindows()) + } + + k8sAgentComponent, err := helm.NewKubernetesAgent(&awsEnv, awsEnv.Namer.ResourceName("datadog-agent"), eksKubeProvider, k8sAgentOptions...) + + if err != nil { + return err } - workloadWithCRDDeps = append(workloadWithCRDDeps, helmComponent) + workloadWithCRDDeps = append(workloadWithCRDDeps, k8sAgentComponent) } // Deploy standalone dogstatsd diff --git a/scenarios/aws/kindvm/run.go b/scenarios/aws/kindvm/run.go index 86a6be7da..dcb3b1a85 100644 --- a/scenarios/aws/kindvm/run.go +++ b/scenarios/aws/kindvm/run.go @@ -4,7 +4,7 @@ import ( "fmt" "github.com/DataDog/test-infra-definitions/common/utils" - "github.com/DataDog/test-infra-definitions/components/datadog/agent" + "github.com/DataDog/test-infra-definitions/components/datadog/agent/helm" "github.com/DataDog/test-infra-definitions/components/datadog/apps/cpustress" "github.com/DataDog/test-infra-definitions/components/datadog/apps/dogstatsd" "github.com/DataDog/test-infra-definitions/components/datadog/apps/mutatedbyadmissioncontroller" @@ -14,6 +14,7 @@ import ( "github.com/DataDog/test-infra-definitions/components/datadog/apps/tracegen" dogstatsdstandalone "github.com/DataDog/test-infra-definitions/components/datadog/dogstatsd-standalone" fakeintakeComp "github.com/DataDog/test-infra-definitions/components/datadog/fakeintake" + "github.com/DataDog/test-infra-definitions/components/datadog/kubernetesagentparams" localKubernetes "github.com/DataDog/test-infra-definitions/components/kubernetes" "github.com/DataDog/test-infra-definitions/components/os" resAws "github.com/DataDog/test-infra-definitions/resources/aws" @@ -94,22 +95,20 @@ agents: useHostNetwork: true `, kindClusterName) - helmComponent, err := agent.NewHelmInstallation(&awsEnv, agent.HelmInstallationArgs{ - KubeProvider: kindKubeProvider, - Namespace: "datadog", - ValuesYAML: pulumi.AssetOrArchiveArray{ - pulumi.NewStringAsset(customValues), - }, - Fakeintake: fakeIntake, - }, nil) + k8sAgentOptions := make([]kubernetesagentparams.Option, 0) + k8sAgentOptions = append( + k8sAgentOptions, + kubernetesagentparams.WithNamespace("datadog"), + kubernetesagentparams.WithHelmValues(customValues), + kubernetesagentparams.WithFakeintake(fakeIntake), + ) + + k8sAgentComponent, err := helm.NewKubernetesAgent(&awsEnv, awsEnv.Namer.ResourceName("datadog-agent"), kindKubeProvider, k8sAgentOptions...) + if err != nil { return err } - - ctx.Export("agent-linux-helm-install-name", helmComponent.LinuxHelmReleaseName) - ctx.Export("agent-linux-helm-install-status", helmComponent.LinuxHelmReleaseStatus) - - dependsOnCrd = utils.PulumiDependsOn(helmComponent) + dependsOnCrd = utils.PulumiDependsOn(k8sAgentComponent) } // Deploy standalone dogstatsd diff --git a/scenarios/azure/aks/run.go b/scenarios/azure/aks/run.go index 2d3c65bc0..9217e6ec5 100644 --- a/scenarios/azure/aks/run.go +++ b/scenarios/azure/aks/run.go @@ -4,7 +4,7 @@ import ( "github.com/DataDog/test-infra-definitions/common/config" "github.com/DataDog/test-infra-definitions/common/utils" "github.com/DataDog/test-infra-definitions/components" - "github.com/DataDog/test-infra-definitions/components/datadog/agent" + "github.com/DataDog/test-infra-definitions/components/datadog/agent/helm" "github.com/DataDog/test-infra-definitions/components/datadog/apps/cpustress" "github.com/DataDog/test-infra-definitions/components/datadog/apps/dogstatsd" "github.com/DataDog/test-infra-definitions/components/datadog/apps/mutatedbyadmissioncontroller" @@ -12,6 +12,7 @@ import ( "github.com/DataDog/test-infra-definitions/components/datadog/apps/prometheus" "github.com/DataDog/test-infra-definitions/components/datadog/apps/redis" dogstatsdstandalone "github.com/DataDog/test-infra-definitions/components/datadog/dogstatsd-standalone" + "github.com/DataDog/test-infra-definitions/components/datadog/kubernetesagentparams" kubeComp "github.com/DataDog/test-infra-definitions/components/kubernetes" "github.com/DataDog/test-infra-definitions/resources/azure" "github.com/DataDog/test-infra-definitions/resources/azure/aks" @@ -70,20 +71,20 @@ providers: aks: enabled: true ` + k8sAgentOptions := make([]kubernetesagentparams.Option, 0) + k8sAgentOptions = append( + k8sAgentOptions, + kubernetesagentparams.WithNamespace("datadog"), + kubernetesagentparams.WithHelmValues(customValues), + ) + + k8sAgentComponent, err := helm.NewKubernetesAgent(&env, env.Namer.ResourceName("datadog-agent"), aksKubeProvider, k8sAgentOptions...) - helmComponent, err := agent.NewHelmInstallation(&env, agent.HelmInstallationArgs{ - KubeProvider: aksKubeProvider, - Namespace: "datadog", - ValuesYAML: pulumi.AssetOrArchiveArray{pulumi.NewStringAsset(customValues)}, - }, nil) if err != nil { return err } - ctx.Export("agent-linux-helm-install-name", helmComponent.LinuxHelmReleaseName) - ctx.Export("agent-linux-helm-install-status", helmComponent.LinuxHelmReleaseStatus) - - dependsOnCrd = utils.PulumiDependsOn(helmComponent) + dependsOnCrd = utils.PulumiDependsOn(k8sAgentComponent) } // Deploy standalone dogstatsd From cc40cd7be73c01c586a5d9958b4687a88cd0e82e Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Fri, 14 Jun 2024 19:32:42 -0400 Subject: [PATCH 03/27] export kubernetes obj ref --- .../datadog/agent/helm/kubernetes_agent.go | 75 ++++++++++++++++++- components/datadog/agent/kubernetes.go | 19 +++++ .../datadog/agent/kubernetes_object_ref.go | 48 ++++++++++++ go.mod | 15 +++- go.sum | 29 ++++++- 5 files changed, 182 insertions(+), 4 deletions(-) create mode 100644 components/datadog/agent/kubernetes_object_ref.go diff --git a/components/datadog/agent/helm/kubernetes_agent.go b/components/datadog/agent/helm/kubernetes_agent.go index 19e68c56e..501a2e97f 100644 --- a/components/datadog/agent/helm/kubernetes_agent.go +++ b/components/datadog/agent/helm/kubernetes_agent.go @@ -2,6 +2,7 @@ package helm import ( "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" "github.com/DataDog/test-infra-definitions/components/datadog/agent" @@ -17,7 +18,7 @@ func NewKubernetesAgent(e config.Env, resourceName string, kubeProvider *kuberne return err } - _, err = agent.NewHelmInstallation(e, agent.HelmInstallationArgs{ + helmComponent, err := agent.NewHelmInstallation(e, agent.HelmInstallationArgs{ KubeProvider: kubeProvider, DeployWindows: params.DeployWindows, Namespace: params.Namespace, @@ -31,6 +32,78 @@ func NewKubernetesAgent(e config.Env, resourceName string, kubeProvider *kuberne return err } + platform := "linux" + appVersion := helmComponent.LinuxHelmReleaseStatus.AppVersion().Elem() + version := helmComponent.LinuxHelmReleaseStatus.Version().Elem() + + if params.DeployWindows { + platform = "windows" + appVersion = helmComponent.WindowsHelmReleaseStatus.AppVersion().Elem() + version = helmComponent.WindowsHelmReleaseStatus.Version().Elem() + } + + baseName := "dda-" + platform + + comp.NodeAgent, err = agent.NewKubernetesObjRef(e, baseName+"-nodeAgent", params.Namespace, "Pod", appVersion, version, pulumi.Map{ + "app": pulumi.String(baseName + "-datadog"), + }) + + if err != nil { + return err + } + + comp.ClusterAgent, err = agent.NewKubernetesObjRef(e, baseName+"-clusterAgent", params.Namespace, "Pod", appVersion, version, pulumi.Map{ + "app": pulumi.String(baseName + "-datadog-cluster-agent"), + }) + + if err != nil { + return err + } + + comp.ClusterChecks, err = agent.NewKubernetesObjRef(e, baseName+"-clusterChecks", params.Namespace, "Pod", appVersion, version, pulumi.Map{ + "app": pulumi.String(baseName + "-datadog-clusterchecks"), + }) + + if err != nil { + return err + } + //nodeAgentOutput = map[string]pulumi.Output{ + // "Name": pulumi.ToOutput(baseName), + // "Namespace": pulumi.ToOutput(params.Namespace), + // "AppVersion": appVersion, + // "Version": version, + // "Kind": pulumi.ToOutput("Pod"), + // "LabelSelectors": pulumi.ToOutput(metav1.ListOptions{ + // LabelSelector: fields.OneTermEqualSelector("app", baseName+"-datadog").String(), + // }), + //} + + //clusterAgentOutput := map[string]pulumi.Output{ + // "Name": pulumi.ToOutput(baseName), + // "Namespace": pulumi.ToOutput(params.Namespace), + // "AppVersion": appVersion, + // "Version": version, + // "Kind": pulumi.ToOutput("Pod"), + // "LabelSelectors": pulumi.ToOutput(metav1.ListOptions{ + // LabelSelector: fields.OneTermEqualSelector("app", baseName+"-datadog-cluster-agent").String(), + // }), + //} + + //clusterChecksOutput := map[string]pulumi.Output{ + // "Name": pulumi.ToOutput(baseName), + // "Namespace": pulumi.ToOutput(params.Namespace), + // "AppVersion": appVersion, + // "Version": version, + // "Kind": pulumi.ToOutput("Pod"), + // "LabelSelectors": pulumi.ToOutput(metav1.ListOptions{ + // LabelSelector: fields.OneTermEqualSelector("app", baseName+"-datadog-clusterchecks").String(), + // }), + //} + + //e.Ctx().Export("dd-node-agent", pulumi.JSONMarshal(pulumi.ToMapOutput(nodeAgentOutput))) + //e.Ctx().Export("dd-cluster-agent", pulumi.JSONMarshal(pulumi.ToMapOutput(clusterAgentOutput))) + //e.Ctx().Export("dd-cluster-checks", pulumi.JSONMarshal(pulumi.ToMapOutput(clusterChecksOutput))) + return nil }) } diff --git a/components/datadog/agent/kubernetes.go b/components/datadog/agent/kubernetes.go index 418422087..f6d26ef76 100644 --- a/components/datadog/agent/kubernetes.go +++ b/components/datadog/agent/kubernetes.go @@ -8,14 +8,33 @@ import ( type KubernetesAgentOutput struct { components.JSONImporter + + NodeAgent KubernetesObjRefOutput `json:"nodeAgent"` + ClusterAgent KubernetesObjRefOutput `json:"clusterAgent"` + ClusterChecks KubernetesObjRefOutput `json:"clusterChecks"` } // KubernetesAgent is an installer to install the Datadog Agent on a Kubernetes cluster. type KubernetesAgent struct { pulumi.ResourceState components.Component + + NodeAgent *KubernetesObjectRef `pulumi:"nodeAgent"` + ClusterAgent *KubernetesObjectRef `pulumi:"clusterAgent"` + ClusterChecks *KubernetesObjectRef `pulumi:"clusterChecks"` } func (h *KubernetesAgent) Export(ctx *pulumi.Context, out *KubernetesAgentOutput) error { return components.Export(ctx, h, out) } + +// agent-linux-helm-install-name : "dda-linux" +// agent-linux-helm-install-status: { +// appVersion: "7" +// chart : "datadog" +// name : "dda-linux" +// namespace : "datadog" +// revision : 1 +// status : "deployed" +// version : "3.66.0" +// } diff --git a/components/datadog/agent/kubernetes_object_ref.go b/components/datadog/agent/kubernetes_object_ref.go new file mode 100644 index 000000000..0b3e31309 --- /dev/null +++ b/components/datadog/agent/kubernetes_object_ref.go @@ -0,0 +1,48 @@ +package agent + +import ( + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + + "github.com/DataDog/test-infra-definitions/common/config" + "github.com/DataDog/test-infra-definitions/components" +) + +type KubernetesObjRefOutput struct { + components.JSONImporter + + Namespace pulumi.String `json:"namespace"` + Name pulumi.String `json:"name"` + Kind pulumi.String `json:"kind"` + AppVersion pulumi.StringOutput `json:"installAppVersion"` + Version pulumi.StringOutput `json:"installVersion"` + LabelSelector pulumi.Output `json:"labelSelectors"` +} + +type KubernetesObjectRef struct { + pulumi.ResourceState + components.Component + + Namespace pulumi.String `pulumi:"namespace"` + Name pulumi.String `pulumi:"name"` + Kind pulumi.String `pulumi:"kind"` + AppVersion pulumi.StringOutput `pulumi:"installAppVersion"` + Version pulumi.StringOutput `pulumi:"installVersion"` + LabelSelector pulumi.Output `pulumi:"labelSelectors"` +} + +func NewKubernetesObjRef(e config.Env, name string, namespace string, kind string, appVersion pulumi.StringOutput, version pulumi.StringOutput, labelSelectors pulumi.Map) (*KubernetesObjectRef, error) { + return components.NewComponent(e, name, func(comp *KubernetesObjectRef) error { + comp.Name = pulumi.String(name) + comp.Namespace = pulumi.String(namespace) + comp.Kind = pulumi.String(kind) + comp.AppVersion = appVersion + comp.Version = version + comp.LabelSelector = labelSelectors.ToMapOutput() + + return nil + }) +} + +func (h *KubernetesObjectRef) Export(ctx *pulumi.Context, out *KubernetesObjRefOutput) error { + return components.Export(ctx, h, out) +} diff --git a/go.mod b/go.mod index f19cffa67..39670ae32 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,8 @@ module github.com/DataDog/test-infra-definitions -go 1.21 +go 1.22.0 + +toolchain go1.22.4 require ( github.com/DataDog/datadog-agent/pkg/util/optional v0.52.1 @@ -31,6 +33,7 @@ require ( github.com/stretchr/testify v1.9.0 golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 gopkg.in/yaml.v3 v3.0.1 + k8s.io/apimachinery v0.30.2 ) require ( @@ -72,6 +75,7 @@ require ( github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-git/go-git/v5 v5.12.0 // indirect + github.com/go-logr/logr v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/glog v1.2.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -83,6 +87,7 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect @@ -90,6 +95,8 @@ require ( github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/reflow v0.3.0 // indirect @@ -131,7 +138,13 @@ require ( google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect google.golang.org/grpc v1.63.2 // indirect google.golang.org/protobuf v1.33.0 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect lukechampine.com/frand v1.4.2 // indirect + sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect ) diff --git a/go.sum b/go.sum index 03cbd2f5f..ba9371af1 100644 --- a/go.sum +++ b/go.sum @@ -113,6 +113,8 @@ github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMj github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -122,8 +124,10 @@ github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -145,6 +149,8 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= @@ -176,6 +182,11 @@ github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= @@ -186,8 +197,8 @@ github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= -github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= -github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= +github.com/onsi/gomega v1.31.0 h1:54UJxxj6cPInHS3a35wm6BK/F9nHYueZ1NVujHDrnXE= +github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk= github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0= github.com/opentracing/basictracer-go v1.1.0/go.mod h1:V2HZueSJEp879yv285Aap1BS69fQMD+MNP1mRs6mBQc= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -391,6 +402,8 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= @@ -402,7 +415,19 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +k8s.io/apimachinery v0.30.2 h1:fEMcnBj6qkzzPGSVsAZtQThU62SmQ4ZymlXRC5yFSCg= +k8s.io/apimachinery v0.30.2/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw= lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s= pgregory.net/rapid v0.6.1 h1:4eyrDxyht86tT4Ztm+kvlyNBLIk071gR+ZQdhphc9dQ= pgregory.net/rapid v0.6.1/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= +sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= From 5c2a4a92d4e711bf4f13c08a4436d4e6e7f46e1c Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Mon, 17 Jun 2024 16:15:33 -0400 Subject: [PATCH 04/27] fix component export and cleanup --- .../datadog/agent/helm/kubernetes_agent.go | 49 +++---------------- components/datadog/agent/kubernetes.go | 17 ++----- .../datadog/agent/kubernetes_object_ref.go | 35 +++++++------ go.mod | 16 +----- go.sum | 25 ---------- scenarios/aws/eks/run.go | 4 ++ scenarios/aws/kindvm/run.go | 5 ++ scenarios/azure/aks/run.go | 4 ++ 8 files changed, 45 insertions(+), 110 deletions(-) diff --git a/components/datadog/agent/helm/kubernetes_agent.go b/components/datadog/agent/helm/kubernetes_agent.go index 501a2e97f..984648015 100644 --- a/components/datadog/agent/helm/kubernetes_agent.go +++ b/components/datadog/agent/helm/kubernetes_agent.go @@ -2,7 +2,6 @@ package helm import ( "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" "github.com/DataDog/test-infra-definitions/components/datadog/agent" @@ -44,65 +43,29 @@ func NewKubernetesAgent(e config.Env, resourceName string, kubeProvider *kuberne baseName := "dda-" + platform - comp.NodeAgent, err = agent.NewKubernetesObjRef(e, baseName+"-nodeAgent", params.Namespace, "Pod", appVersion, version, pulumi.Map{ - "app": pulumi.String(baseName + "-datadog"), + comp.NodeAgent, err = agent.NewKubernetesObjRef(e, baseName+"-nodeAgent", params.Namespace, "Pod", appVersion, version, map[string]string{ + "app": baseName + "-datadog", }) if err != nil { return err } - comp.ClusterAgent, err = agent.NewKubernetesObjRef(e, baseName+"-clusterAgent", params.Namespace, "Pod", appVersion, version, pulumi.Map{ - "app": pulumi.String(baseName + "-datadog-cluster-agent"), + comp.ClusterAgent, err = agent.NewKubernetesObjRef(e, baseName+"-clusterAgent", params.Namespace, "Pod", appVersion, version, map[string]string{ + "app": baseName + "-datadog-cluster-agent", }) if err != nil { return err } - comp.ClusterChecks, err = agent.NewKubernetesObjRef(e, baseName+"-clusterChecks", params.Namespace, "Pod", appVersion, version, pulumi.Map{ - "app": pulumi.String(baseName + "-datadog-clusterchecks"), + comp.ClusterChecks, err = agent.NewKubernetesObjRef(e, baseName+"-clusterChecks", params.Namespace, "Pod", appVersion, version, map[string]string{ + "app": baseName + "-datadog-clusterchecks", }) if err != nil { return err } - //nodeAgentOutput = map[string]pulumi.Output{ - // "Name": pulumi.ToOutput(baseName), - // "Namespace": pulumi.ToOutput(params.Namespace), - // "AppVersion": appVersion, - // "Version": version, - // "Kind": pulumi.ToOutput("Pod"), - // "LabelSelectors": pulumi.ToOutput(metav1.ListOptions{ - // LabelSelector: fields.OneTermEqualSelector("app", baseName+"-datadog").String(), - // }), - //} - - //clusterAgentOutput := map[string]pulumi.Output{ - // "Name": pulumi.ToOutput(baseName), - // "Namespace": pulumi.ToOutput(params.Namespace), - // "AppVersion": appVersion, - // "Version": version, - // "Kind": pulumi.ToOutput("Pod"), - // "LabelSelectors": pulumi.ToOutput(metav1.ListOptions{ - // LabelSelector: fields.OneTermEqualSelector("app", baseName+"-datadog-cluster-agent").String(), - // }), - //} - - //clusterChecksOutput := map[string]pulumi.Output{ - // "Name": pulumi.ToOutput(baseName), - // "Namespace": pulumi.ToOutput(params.Namespace), - // "AppVersion": appVersion, - // "Version": version, - // "Kind": pulumi.ToOutput("Pod"), - // "LabelSelectors": pulumi.ToOutput(metav1.ListOptions{ - // LabelSelector: fields.OneTermEqualSelector("app", baseName+"-datadog-clusterchecks").String(), - // }), - //} - - //e.Ctx().Export("dd-node-agent", pulumi.JSONMarshal(pulumi.ToMapOutput(nodeAgentOutput))) - //e.Ctx().Export("dd-cluster-agent", pulumi.JSONMarshal(pulumi.ToMapOutput(clusterAgentOutput))) - //e.Ctx().Export("dd-cluster-checks", pulumi.JSONMarshal(pulumi.ToMapOutput(clusterChecksOutput))) return nil }) diff --git a/components/datadog/agent/kubernetes.go b/components/datadog/agent/kubernetes.go index f6d26ef76..bf5f5ea5c 100644 --- a/components/datadog/agent/kubernetes.go +++ b/components/datadog/agent/kubernetes.go @@ -9,9 +9,9 @@ import ( type KubernetesAgentOutput struct { components.JSONImporter - NodeAgent KubernetesObjRefOutput `json:"nodeAgent"` - ClusterAgent KubernetesObjRefOutput `json:"clusterAgent"` - ClusterChecks KubernetesObjRefOutput `json:"clusterChecks"` + NodeAgent map[string]string `json:"nodeAgent"` + ClusterAgent map[string]string `json:"clusterAgent"` + ClusterChecks map[string]string `json:"clusterChecks"` } // KubernetesAgent is an installer to install the Datadog Agent on a Kubernetes cluster. @@ -27,14 +27,3 @@ type KubernetesAgent struct { func (h *KubernetesAgent) Export(ctx *pulumi.Context, out *KubernetesAgentOutput) error { return components.Export(ctx, h, out) } - -// agent-linux-helm-install-name : "dda-linux" -// agent-linux-helm-install-status: { -// appVersion: "7" -// chart : "datadog" -// name : "dda-linux" -// namespace : "datadog" -// revision : 1 -// status : "deployed" -// version : "3.66.0" -// } diff --git a/components/datadog/agent/kubernetes_object_ref.go b/components/datadog/agent/kubernetes_object_ref.go index 0b3e31309..fa1ef52f4 100644 --- a/components/datadog/agent/kubernetes_object_ref.go +++ b/components/datadog/agent/kubernetes_object_ref.go @@ -1,6 +1,8 @@ package agent import ( + "encoding/json" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" "github.com/DataDog/test-infra-definitions/common/config" @@ -10,34 +12,39 @@ import ( type KubernetesObjRefOutput struct { components.JSONImporter - Namespace pulumi.String `json:"namespace"` - Name pulumi.String `json:"name"` - Kind pulumi.String `json:"kind"` - AppVersion pulumi.StringOutput `json:"installAppVersion"` - Version pulumi.StringOutput `json:"installVersion"` - LabelSelector pulumi.Output `json:"labelSelectors"` + Namespace string `json:"namespace"` + Name string `json:"name"` + Kind string `json:"kind"` + AppVersion string `json:"installAppVersion"` + Version string `json:"installVersion"` + LabelSelectors string `json:"labelSelectors"` } type KubernetesObjectRef struct { pulumi.ResourceState components.Component - Namespace pulumi.String `pulumi:"namespace"` - Name pulumi.String `pulumi:"name"` - Kind pulumi.String `pulumi:"kind"` - AppVersion pulumi.StringOutput `pulumi:"installAppVersion"` - Version pulumi.StringOutput `pulumi:"installVersion"` - LabelSelector pulumi.Output `pulumi:"labelSelectors"` + Namespace pulumi.String `pulumi:"namespace"` + Name pulumi.String `pulumi:"name"` + Kind pulumi.String `pulumi:"kind"` + AppVersion pulumi.StringOutput `pulumi:"installAppVersion"` + Version pulumi.StringOutput `pulumi:"installVersion"` + LabelSelectors pulumi.String `pulumi:"labelSelectors"` } -func NewKubernetesObjRef(e config.Env, name string, namespace string, kind string, appVersion pulumi.StringOutput, version pulumi.StringOutput, labelSelectors pulumi.Map) (*KubernetesObjectRef, error) { +func NewKubernetesObjRef(e config.Env, name string, namespace string, kind string, appVersion pulumi.StringOutput, version pulumi.StringOutput, labelSelectors map[string]string) (*KubernetesObjectRef, error) { return components.NewComponent(e, name, func(comp *KubernetesObjectRef) error { comp.Name = pulumi.String(name) comp.Namespace = pulumi.String(namespace) comp.Kind = pulumi.String(kind) comp.AppVersion = appVersion comp.Version = version - comp.LabelSelector = labelSelectors.ToMapOutput() + + labelSelectorsJsonStr, err := json.Marshal(labelSelectors) + if err != nil { + return err + } + comp.LabelSelectors = pulumi.String(labelSelectorsJsonStr) return nil }) diff --git a/go.mod b/go.mod index 39670ae32..3ed70a0eb 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,6 @@ module github.com/DataDog/test-infra-definitions -go 1.22.0 - -toolchain go1.22.4 +go 1.21 require ( github.com/DataDog/datadog-agent/pkg/util/optional v0.52.1 @@ -33,7 +31,6 @@ require ( github.com/stretchr/testify v1.9.0 golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 gopkg.in/yaml.v3 v3.0.1 - k8s.io/apimachinery v0.30.2 ) require ( @@ -75,7 +72,6 @@ require ( github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-git/go-git/v5 v5.12.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/glog v1.2.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -87,7 +83,6 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect @@ -95,13 +90,12 @@ require ( github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/reflow v0.3.0 // indirect github.com/muesli/termenv v0.15.2 // indirect github.com/nxadm/tail v1.4.11 // indirect + github.com/onsi/gomega v1.31.0 // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pgavlin/fx v0.1.6 // indirect @@ -138,13 +132,7 @@ require ( google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect google.golang.org/grpc v1.63.2 // indirect google.golang.org/protobuf v1.33.0 // indirect - gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect - k8s.io/klog/v2 v2.120.1 // indirect - k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect lukechampine.com/frand v1.4.2 // indirect - sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect ) diff --git a/go.sum b/go.sum index ba9371af1..1da048008 100644 --- a/go.sum +++ b/go.sum @@ -113,8 +113,6 @@ github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMj github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -124,10 +122,8 @@ github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -149,8 +145,6 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= @@ -182,11 +176,6 @@ github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= @@ -402,8 +391,6 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= @@ -415,19 +402,7 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/apimachinery v0.30.2 h1:fEMcnBj6qkzzPGSVsAZtQThU62SmQ4ZymlXRC5yFSCg= -k8s.io/apimachinery v0.30.2/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= -k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= -k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw= lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s= pgregory.net/rapid v0.6.1 h1:4eyrDxyht86tT4Ztm+kvlyNBLIk071gR+ZQdhphc9dQ= pgregory.net/rapid v0.6.1/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= diff --git a/scenarios/aws/eks/run.go b/scenarios/aws/eks/run.go index bbb5982fd..1ecb63c47 100644 --- a/scenarios/aws/eks/run.go +++ b/scenarios/aws/eks/run.go @@ -290,6 +290,10 @@ func Run(ctx *pulumi.Context) error { return err } + if err := k8sAgentComponent.Export(awsEnv.Ctx(), nil); err != nil { + return err + } + workloadWithCRDDeps = append(workloadWithCRDDeps, k8sAgentComponent) } diff --git a/scenarios/aws/kindvm/run.go b/scenarios/aws/kindvm/run.go index dcb3b1a85..bf2df434c 100644 --- a/scenarios/aws/kindvm/run.go +++ b/scenarios/aws/kindvm/run.go @@ -108,6 +108,11 @@ agents: if err != nil { return err } + + if err := k8sAgentComponent.Export(awsEnv.Ctx(), nil); err != nil { + return err + } + dependsOnCrd = utils.PulumiDependsOn(k8sAgentComponent) } diff --git a/scenarios/azure/aks/run.go b/scenarios/azure/aks/run.go index 9217e6ec5..c696405bf 100644 --- a/scenarios/azure/aks/run.go +++ b/scenarios/azure/aks/run.go @@ -84,6 +84,10 @@ providers: return err } + if err := k8sAgentComponent.Export(env.Ctx(), nil); err != nil { + return err + } + dependsOnCrd = utils.PulumiDependsOn(k8sAgentComponent) } From 72dd87b43d242243b2300e94b0579ce0031e2c64 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Mon, 17 Jun 2024 16:34:40 -0400 Subject: [PATCH 05/27] fix var naming --- components/datadog/agent/kubernetes_object_ref.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/datadog/agent/kubernetes_object_ref.go b/components/datadog/agent/kubernetes_object_ref.go index fa1ef52f4..6c1d95103 100644 --- a/components/datadog/agent/kubernetes_object_ref.go +++ b/components/datadog/agent/kubernetes_object_ref.go @@ -40,11 +40,11 @@ func NewKubernetesObjRef(e config.Env, name string, namespace string, kind strin comp.AppVersion = appVersion comp.Version = version - labelSelectorsJsonStr, err := json.Marshal(labelSelectors) + labelSelectorsJSONStr, err := json.Marshal(labelSelectors) if err != nil { return err } - comp.LabelSelectors = pulumi.String(labelSelectorsJsonStr) + comp.LabelSelectors = pulumi.String(labelSelectorsJSONStr) return nil }) From b6aa46e9e8ca5331f7957bfe529c93eda83e4ff3 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Fri, 28 Jun 2024 16:32:56 -0400 Subject: [PATCH 06/27] wip --- common/config/environment.go | 35 +++- common/config/helpers.go | 4 + common/utils/kubernetes.go | 39 +++++ .../datadog/agent/agent_with_operator.go | 68 ++++++++ .../datadog/agentwithoperatorparams/params.go | 68 ++++++++ components/datadog/apps/dda/datadogagent.go | 131 ++++++++++++++ components/datadog/operator/docker_image.go | 52 ++++++ .../helm.go} | 161 +++--------------- components/datadog/operator/operator.go | 46 +++++ components/datadog/operatorparams/params.go | 73 ++++++++ go.sum | 136 +++++++++++++++ integration-tests/invoke_test.go | 21 +++ scenarios/aws/kindvm/run.go | 30 ++-- 13 files changed, 710 insertions(+), 154 deletions(-) create mode 100644 components/datadog/agent/agent_with_operator.go create mode 100644 components/datadog/agentwithoperatorparams/params.go create mode 100644 components/datadog/apps/dda/datadogagent.go create mode 100644 components/datadog/operator/docker_image.go rename components/datadog/{agent/kubernetes_helm_operator.go => operator/helm.go} (51%) create mode 100644 components/datadog/operator/operator.go create mode 100644 components/datadog/operatorparams/params.go diff --git a/common/config/environment.go b/common/config/environment.go index 55f7734c8..a0e6628ba 100644 --- a/common/config/environment.go +++ b/common/config/environment.go @@ -22,6 +22,7 @@ const ( DDTestingWorkloadNamespace = "ddtestworkload" DDDogstatsdNamespace = "dddogstatsd" DDUpdaterConfigNamespace = "ddupdater" + DDOperatorConfigNamespace = "ddoperator" // Infra namespace DDInfraEnvironment = "env" @@ -41,13 +42,16 @@ const ( DDAgentFullImagePathParamName = "fullImagePath" DDClusterAgentVersionParamName = "clusterAgentVersion" DDClusterAgentFullImagePathParamName = "clusterAgentFullImagePath" - DDImagePullRegistryParamName = "imagePullRegistry" - DDImagePullUsernameParamName = "imagePullUsername" - DDImagePullPasswordParamName = "imagePullPassword" - DDAgentAPIKeyParamName = "apiKey" - DDAgentAPPKeyParamName = "appKey" - DDAgentFakeintake = "fakeintake" - DDAgentSite = "site" + DDOperatorVersionParamName = "operatorVersion" + DDOperatorFullImagePathParamName = "operatorFullImagePath" + + DDImagePullRegistryParamName = "imagePullRegistry" + DDImagePullUsernameParamName = "imagePullUsername" + DDImagePullPasswordParamName = "imagePullPassword" + DDAgentAPIKeyParamName = "apiKey" + DDAgentAPPKeyParamName = "appKey" + DDAgentFakeintake = "fakeintake" + DDAgentSite = "site" // Updater Namespace DDUpdaterParamName = "deploy" @@ -71,6 +75,7 @@ type CommonEnvironment struct { TestingWorkloadConfig *sdkconfig.Config DogstatsdConfig *sdkconfig.Config UpdaterConfig *sdkconfig.Config + OperatorConfig *sdkconfig.Config username string } @@ -97,6 +102,8 @@ type Env interface { ClusterAgentVersion() string AgentFullImagePath() string ClusterAgentFullImagePath() string + OperatorFullImagePath() string + OperatorVersion() string ImagePullRegistry() string ImagePullUsername() string ImagePullPassword() pulumi.StringOutput @@ -130,6 +137,7 @@ func NewCommonEnvironment(ctx *pulumi.Context) (CommonEnvironment, error) { DogstatsdConfig: sdkconfig.New(ctx, DDDogstatsdNamespace), UpdaterConfig: sdkconfig.New(ctx, DDUpdaterConfigNamespace), commonNamer: namer.NewNamer(ctx, ""), + OperatorConfig: sdkconfig.New(ctx, DDOperatorConfigNamespace), providerRegistry: newProviderRegistry(ctx), } // store username @@ -144,8 +152,9 @@ func NewCommonEnvironment(ctx *pulumi.Context) (CommonEnvironment, error) { ctx.Log.Debug(fmt.Sprintf("agent version: %s", env.AgentVersion()), nil) ctx.Log.Debug(fmt.Sprintf("pipeline id: %s", env.PipelineID()), nil) ctx.Log.Debug(fmt.Sprintf("deploy: %v", env.AgentDeploy()), nil) - ctx.Log.Debug(fmt.Sprintf("deploy with Operator: %v", env.AgentDeployWithOperator()), nil) ctx.Log.Debug(fmt.Sprintf("full image path: %v", env.AgentFullImagePath()), nil) + ctx.Log.Debug(fmt.Sprintf("deploy with Operator: %v", env.AgentDeployWithOperator()), nil) + ctx.Log.Debug(fmt.Sprintf("operator full image path: %v", env.AgentFullImagePath()), nil) return env, nil } @@ -226,7 +235,7 @@ func (e *CommonEnvironment) AgentDeploy() bool { } func (e *CommonEnvironment) AgentDeployWithOperator() bool { - return e.GetBoolWithDefault(e.AgentConfig, DDAgentDeployWithOperatorParamName, false) + return e.GetBoolWithDefault(e.OperatorConfig, DDAgentDeployWithOperatorParamName, false) } func (e *CommonEnvironment) AgentVersion() string { @@ -253,6 +262,14 @@ func (e *CommonEnvironment) ClusterAgentFullImagePath() string { return e.AgentConfig.Get(DDClusterAgentFullImagePathParamName) } +func (e *CommonEnvironment) OperatorVersion() string { + return e.OperatorConfig.Get(DDOperatorVersionParamName) +} + +func (e *CommonEnvironment) OperatorFullImagePath() string { + return e.OperatorConfig.Get(DDOperatorFullImagePathParamName) +} + func (e *CommonEnvironment) ImagePullRegistry() string { return e.AgentConfig.Get(DDImagePullRegistryParamName) } diff --git a/common/config/helpers.go b/common/config/helpers.go index a24555abc..78692dd72 100644 --- a/common/config/helpers.go +++ b/common/config/helpers.go @@ -42,6 +42,10 @@ func ClusterAgentSemverVersion(e Env) (*semver.Version, error) { return anyAgentSemverVersion(e.ClusterAgentVersion()) } +func OperatorSemverVersion(e Env) (*semver.Version, error) { + return anyAgentSemverVersion(e.OperatorVersion()) +} + func tagListToKeyValueMap(tagList []string) (map[string]string, error) { tags := map[string]string{} for _, tag := range tagList { diff --git a/common/utils/kubernetes.go b/common/utils/kubernetes.go index 63d0eeff9..51f4eb624 100644 --- a/common/utils/kubernetes.go +++ b/common/utils/kubernetes.go @@ -1,12 +1,19 @@ package utils import ( + "encoding/base64" "encoding/json" + corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" "gopkg.in/yaml.v3" + + "github.com/DataDog/test-infra-definitions/common/config" ) +const imagePullSecretName = "registry-credentials" + // KubeConfigYAMLToJSON safely converts a yaml kubeconfig to a json string. func KubeConfigYAMLToJSON(kubeConfig pulumi.StringOutput) pulumi.StringInput { return kubeConfig.ApplyT(func(config string) (string, error) { @@ -23,3 +30,35 @@ func KubeConfigYAMLToJSON(kubeConfig pulumi.StringOutput) pulumi.StringInput { return string(jsonConfig), nil }).(pulumi.StringInput) } + +// NewImagePullSecret creates an image pull secret based on environment +func NewImagePullSecret(e config.Env, namespace string, opts ...pulumi.ResourceOption) (*corev1.Secret, error) { + dockerConfigJSON := e.ImagePullPassword().ApplyT(func(password string) (string, error) { + dockerConfigJSON, err := json.Marshal(map[string]map[string]map[string]string{ + "auths": { + e.ImagePullRegistry(): { + "username": e.ImagePullUsername(), + "password": password, + "auth": base64.StdEncoding.EncodeToString([]byte(e.ImagePullUsername() + ":" + password)), + }, + }, + }) + return string(dockerConfigJSON), err + }).(pulumi.StringOutput) + + return corev1.NewSecret( + e.Ctx(), + imagePullSecretName, + &corev1.SecretArgs{ + Metadata: metav1.ObjectMetaArgs{ + Namespace: pulumi.StringPtr(namespace), + Name: pulumi.StringPtr(imagePullSecretName), + }, + StringData: pulumi.StringMap{ + ".dockerconfigjson": dockerConfigJSON, + }, + Type: pulumi.StringPtr("kubernetes.io/dockerconfigjson"), + }, + opts..., + ) +} diff --git a/components/datadog/agent/agent_with_operator.go b/components/datadog/agent/agent_with_operator.go new file mode 100644 index 000000000..b46d1983f --- /dev/null +++ b/components/datadog/agent/agent_with_operator.go @@ -0,0 +1,68 @@ +package agent + +import ( + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + + "github.com/DataDog/test-infra-definitions/common/config" + "github.com/DataDog/test-infra-definitions/common/utils" + "github.com/DataDog/test-infra-definitions/components" + "github.com/DataDog/test-infra-definitions/components/datadog/agentwithoperatorparams" + "github.com/DataDog/test-infra-definitions/components/datadog/apps/dda" + "github.com/DataDog/test-infra-definitions/components/datadog/operator" + "github.com/DataDog/test-infra-definitions/components/datadog/operatorparams" +) + +func NewDDAWithOperator(e config.Env, resourceName string, kubeProvider *kubernetes.Provider, operatorOpts []operatorparams.Option, ddaOptions ...agentwithoperatorparams.Option) (*KubernetesAgent, error) { + return components.NewComponent(e, resourceName, func(comp *KubernetesAgent) error { + + operatorParams, err := operatorparams.NewParams(e, operatorOpts...) + if err != nil { + return err + } + + ddaParams, err := agentwithoperatorparams.NewParams(ddaOptions...) + + if err != nil { + return err + } + + operatorComp, err := operator.NewOperator(e, resourceName, kubeProvider, operatorOpts...) + + if err != nil { + return err + } + + _, err = dda.K8sAppDefinition(e, kubeProvider, "datadog", operatorParams.FakeIntake, ddaParams.KubeletTLSVerify, e.Ctx().Stack(), ddaParams.DDAConfig, utils.PulumiDependsOn(operatorComp)) + + if err != nil { + return err + } + + baseName := "dda-linux" + + comp.NodeAgent, err = NewKubernetesObjRef(e, baseName+"-nodeAgent", operatorParams.Namespace, "Pod", pulumi.String("appVersion").ToStringOutput(), pulumi.String("Version").ToStringOutput(), map[string]string{"app": baseName + "-datadog"}) + + if err != nil { + return err + } + + comp.ClusterAgent, err = NewKubernetesObjRef(e, baseName+"-clusterAgent", operatorParams.Namespace, "Pod", pulumi.String("appVersion").ToStringOutput(), pulumi.String("Version").ToStringOutput(), map[string]string{ + "app": baseName + "-datadog-cluster-agent", + }) + + if err != nil { + return err + } + + comp.ClusterChecks, err = NewKubernetesObjRef(e, baseName+"-clusterChecks", operatorParams.Namespace, "Pod", pulumi.String("appVersion").ToStringOutput(), pulumi.String("version").ToStringOutput(), map[string]string{ + "app": baseName + "-datadog-clusterchecks", + }) + + if err != nil { + return err + } + + return nil + }) +} diff --git a/components/datadog/agentwithoperatorparams/params.go b/components/datadog/agentwithoperatorparams/params.go new file mode 100644 index 000000000..d3841f458 --- /dev/null +++ b/components/datadog/agentwithoperatorparams/params.go @@ -0,0 +1,68 @@ +package agentwithoperatorparams + +import ( + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + + "github.com/DataDog/test-infra-definitions/common" + "github.com/DataDog/test-infra-definitions/common/utils" + "github.com/DataDog/test-infra-definitions/components/datadog/fakeintake" +) + +type Params struct { + PulumiResourceOptions []pulumi.ResourceOption + + Namespace string + FakeIntake *fakeintake.Fakeintake + DDAConfig string + KubeletTLSVerify bool +} + +type Option = func(*Params) error + +func NewParams(options ...Option) (*Params, error) { + version := &Params{ + Namespace: "datadog", + } + return common.ApplyOption(version, options) +} + +// WithNamespace sets the namespace to deploy the agent to. +func WithNamespace(namespace string) func(*Params) error { + return func(p *Params) error { + p.Namespace = namespace + return nil + } +} + +// WithTLSKubeletVerify toggles kubelet TLS verification. +func WithTLSKubeletVerify(verify bool) func(*Params) error { + return func(p *Params) error { + p.KubeletTLSVerify = verify + return nil + } +} + +// WithPulumiResourceOptions sets the resources to depend on. +func WithPulumiResourceOptions(resources ...pulumi.ResourceOption) func(*Params) error { + return func(p *Params) error { + p.PulumiResourceOptions = append(p.PulumiResourceOptions, resources...) + return nil + } +} + +// WithDDAConfig configures the DatadogAgent resource. +func WithDDAConfig(config string) func(*Params) error { + return func(p *Params) error { + p.DDAConfig = p.DDAConfig + config + return nil + } +} + +// WithFakeintake configures the Agent to use the given fake intake. +func WithFakeintake(fakeintake *fakeintake.Fakeintake) func(*Params) error { + return func(p *Params) error { + p.PulumiResourceOptions = append(p.PulumiResourceOptions, utils.PulumiDependsOn(fakeintake)) + p.FakeIntake = fakeintake + return nil + } +} diff --git a/components/datadog/apps/dda/datadogagent.go b/components/datadog/apps/dda/datadogagent.go new file mode 100644 index 000000000..21518dd46 --- /dev/null +++ b/components/datadog/apps/dda/datadogagent.go @@ -0,0 +1,131 @@ +package dda + +import ( + "dario.cat/mergo" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions" + corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "gopkg.in/yaml.v3" + + "github.com/DataDog/test-infra-definitions/common/config" + "github.com/DataDog/test-infra-definitions/common/utils" + "github.com/DataDog/test-infra-definitions/components/datadog/fakeintake" + componentskube "github.com/DataDog/test-infra-definitions/components/kubernetes" +) + +func K8sAppDefinition(e config.Env, kubeProvider *kubernetes.Provider, namespace string, fakeIntake *fakeintake.Fakeintake, kubeletTLSVerify bool, clusterName string, customDda string, opts ...pulumi.ResourceOption) (*componentskube.Workload, error) { + opts = append(opts, pulumi.Provider(kubeProvider), pulumi.Parent(kubeProvider), pulumi.DeletedWith(kubeProvider)) + + k8sComponent := &componentskube.Workload{} + if err := e.Ctx().RegisterComponentResource("dd:agent-with-operator", "dda", k8sComponent, opts...); err != nil { + return nil, err + } + + opts = append(opts, pulumi.Parent(k8sComponent)) + + ns, err := corev1.NewNamespace( + e.Ctx(), + namespace, + &corev1.NamespaceArgs{ + Metadata: metav1.ObjectMetaArgs{ + Name: pulumi.String(namespace), + }, + }, + opts..., + ) + if err != nil { + return nil, err + } + + opts = append(opts, utils.PulumiDependsOn(ns)) + + var imagePullSecrets corev1.LocalObjectReferenceArray + if e.ImagePullRegistry() != "" { + imgPullSecret, err := utils.NewImagePullSecret(e, namespace, opts...) + if err != nil { + return nil, err + } + + imagePullSecrets = append(imagePullSecrets, corev1.LocalObjectReferenceArgs{ + Name: imgPullSecret.Metadata.Name(), + }) + } + + ddaArgs := kubernetes.UntypedArgs{} + err = yaml.Unmarshal([]byte(customDda), &ddaArgs) + if err != nil { + return nil, err + } + + defaultArgs := kubernetes.UntypedArgs{ + "spec": pulumi.Map{ + "global": pulumi.Map{ + "credentials": pulumi.Map{ + "apiKey": pulumi.StringInput(e.AgentAPIKey()), + "appKey": pulumi.StringInput(e.AgentAPPKey()), + }, + "clusterName": pulumi.String(clusterName), + "kubelet": pulumi.Map{ + "tlsVerify": pulumi.Bool(kubeletTLSVerify), + }, + }, + }, + } + + if e.AgentUseFakeintake() { + err = mergo.Merge(&ddaArgs, kubernetes.UntypedArgs{ + "spec": pulumi.Map{ + "override": pulumi.Map{ + "nodeAgent": pulumi.Map{ + "env": pulumi.MapArray{ + pulumi.Map{ + "name": pulumi.String("DD_ADDITIONAL_ENDPOINTS"), + "value": pulumi.Sprintf(`{"%s": ["FAKEAPIKEY"]}`, fakeIntake.URL), + }, + }, + }, + "clusterAgent": pulumi.Map{ + "env": pulumi.MapArray{ + pulumi.Map{ + "name": pulumi.String("DD_ADDITIONAL_ENDPOINTS"), + "value": pulumi.Sprintf(`{"%s": ["FAKEAPIKEY"]}`, fakeIntake.URL), + }, + }, + }, + "clusterChecksRunner": pulumi.Map{ + "env": pulumi.MapArray{ + pulumi.Map{ + "name": pulumi.String("DD_ADDITIONAL_ENDPOINTS"), + "value": pulumi.Sprintf(`{"%s": ["FAKEAPIKEY"]}`, fakeIntake.URL), + }, + }, + }, + }}, + }) + if err != nil { + return nil, err + } + } + + err = mergo.Merge(&ddaArgs, defaultArgs) + if err != nil { + return nil, err + } + + _, err = apiextensions.NewCustomResource(e.Ctx(), "datadog-agent", &apiextensions.CustomResourceArgs{ + ApiVersion: pulumi.String("datadoghq.com/v2alpha1"), + Kind: pulumi.String("DatadogAgent"), + Metadata: &metav1.ObjectMetaArgs{ + Name: pulumi.String("datadog"), + Namespace: pulumi.String("datadog"), + }, + OtherFields: ddaArgs, + }, opts...) + if err != nil { + return nil, err + } + + return k8sComponent, nil +} diff --git a/components/datadog/operator/docker_image.go b/components/datadog/operator/docker_image.go new file mode 100644 index 000000000..a46db56d7 --- /dev/null +++ b/components/datadog/operator/docker_image.go @@ -0,0 +1,52 @@ +package operator + +import ( + "fmt" + + "github.com/Masterminds/semver" + + "github.com/DataDog/test-infra-definitions/common/config" + "github.com/DataDog/test-infra-definitions/common/utils" + "github.com/DataDog/test-infra-definitions/resources/aws" +) + +const ( + defaultOperatorImageRepo = "gcr.io/datadoghq/operator" + defaultOperatorImageTag = "latest" +) + +func dockerOperatorFullImagePath(e config.Env, repositoryPath, imageTag string) string { + // return operator image path if defined + if e.OperatorFullImagePath() != "" { + return e.OperatorFullImagePath() + } + + // if agent pipeline id and commit sha are defined, use the image from the pipeline pushed on agent QA registry + if e.PipelineID() != "" && e.CommitSHA() != "" { + return utils.BuildDockerImagePath(fmt.Sprintf("%s/operator", aws.AgentQAECR), fmt.Sprintf("%s-%s", e.PipelineID(), e.CommitSHA())) + } + + if repositoryPath == "" { + repositoryPath = defaultOperatorImageRepo + } + if imageTag == "" { + imageTag = dockerOperatorImageTag(e, config.OperatorSemverVersion) + } + + return utils.BuildDockerImagePath(repositoryPath, imageTag) +} + +func dockerOperatorImageTag(e config.Env, semverVersion func(config.Env) (*semver.Version, error)) string { + // default tag + operatorImageTag := defaultOperatorImageTag + + // try parse operator version + operatorVersion, err := semverVersion(e) + if operatorVersion != nil && err == nil { + operatorImageTag = operatorVersion.String() + } else { + e.Ctx().Log.Debug("Unable to parse operator version, using latest", nil) + } + + return operatorImageTag +} diff --git a/components/datadog/agent/kubernetes_helm_operator.go b/components/datadog/operator/helm.go similarity index 51% rename from components/datadog/agent/kubernetes_helm_operator.go rename to components/datadog/operator/helm.go index 9509fd89e..fd2d035ce 100644 --- a/components/datadog/agent/kubernetes_helm_operator.go +++ b/components/datadog/operator/helm.go @@ -1,51 +1,51 @@ -package agent +package operator import ( - "dario.cat/mergo" "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes" - "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions" corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1" kubeHelm "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v3" metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" - "gopkg.in/yaml.v3" "github.com/DataDog/test-infra-definitions/common/config" "github.com/DataDog/test-infra-definitions/common/utils" - "github.com/DataDog/test-infra-definitions/components/datadog/fakeintake" - componentskube "github.com/DataDog/test-infra-definitions/components/kubernetes" "github.com/DataDog/test-infra-definitions/resources/helm" ) -// OperatorHelmInstallationArgs is the set of arguments for creating a new HelmInstallation component -type OperatorHelmInstallationArgs struct { +const ( + DatadogHelmRepo = "https://helm.datadoghq.com" +) + +// HelmInstallationArgs is the set of arguments for creating a new HelmInstallation component +type HelmInstallationArgs struct { // KubeProvider is the Kubernetes provider to use KubeProvider *kubernetes.Provider - // Namespace is the namespace in which to install the agent + // Namespace is the namespace in which to install the operator Namespace string // ValuesYAML is used to provide installation-specific values ValuesYAML pulumi.AssetOrArchiveArrayInput - // OperatorFullImagePath is used to specify the full image path for the cluster agent + // OperatorFullImagePath is used to specify the full image path for the agent OperatorFullImagePath string } -type OperatorHelmComponent struct { +type HelmComponent struct { pulumi.ResourceState LinuxHelmReleaseName pulumi.StringPtrOutput LinuxHelmReleaseStatus kubeHelm.ReleaseStatusOutput } -func NewOperatorHelmInstallation(e config.Env, args OperatorHelmInstallationArgs, opts ...pulumi.ResourceOption) (*HelmComponent, error) { +func NewHelmInstallation(e config.Env, args HelmInstallationArgs, opts ...pulumi.ResourceOption) (*HelmComponent, error) { apiKey := e.AgentAPIKey() appKey := e.AgentAPPKey() - baseName := "dd-operator" + baseName := "dda" opts = append(opts, pulumi.Providers(args.KubeProvider), e.WithProviders(config.ProviderRandom), pulumi.Parent(args.KubeProvider), pulumi.DeletedWith(args.KubeProvider)) helmComponent := &HelmComponent{} - if err := e.Ctx().RegisterComponentResource("dd:agent-with-operator", "operator", helmComponent, opts...); err != nil { + if err := e.Ctx().RegisterComponentResource("dd:operator", "operator", helmComponent, opts...); err != nil { return nil, err } + opts = append(opts, pulumi.Parent(helmComponent)) // Create namespace if necessary @@ -78,18 +78,23 @@ func NewOperatorHelmInstallation(e config.Env, args OperatorHelmInstallationArgs // Create image pull secret if necessary var imgPullSecret *corev1.Secret if e.ImagePullRegistry() != "" { - imgPullSecret, err = NewImagePullSecret(e, args.Namespace, opts...) + imgPullSecret, err = utils.NewImagePullSecret(e, args.Namespace, opts...) if err != nil { return nil, err } opts = append(opts, utils.PulumiDependsOn(imgPullSecret)) } + // Compute some values + operatorImagePath := dockerOperatorFullImagePath(e, "", "") + if args.OperatorFullImagePath != "" { + operatorImagePath = args.OperatorFullImagePath + } operatorImagePath, operatorImageTag := utils.ParseImageReference(args.OperatorFullImagePath) linuxInstallName := baseName + "-linux" - values := buildLinuxOperatorHelmValues(baseName, operatorImagePath, operatorImageTag) - values.configureOperatorImagePullSecret(imgPullSecret) + values := buildLinuxHelmValues(baseName, operatorImagePath, operatorImageTag) + values.configureImagePullSecret(imgPullSecret) linux, err := helm.NewInstallation(e, helm.InstallArgs{ RepoURL: DatadogHelmRepo, @@ -99,7 +104,6 @@ func NewOperatorHelmInstallation(e config.Env, args OperatorHelmInstallationArgs ValuesYAML: args.ValuesYAML, Values: pulumi.Map(values), }, opts...) - if err != nil { return nil, err } @@ -119,7 +123,9 @@ func NewOperatorHelmInstallation(e config.Env, args OperatorHelmInstallationArgs return helmComponent, nil } -func buildLinuxOperatorHelmValues(baseName string, operatorImagePath string, operatorImageTag string) HelmValues { +type HelmValues pulumi.Map + +func buildLinuxHelmValues(baseName string, operatorImagePath string, operatorImageTag string) HelmValues { return HelmValues{ "apiKeyExistingSecret": pulumi.String(baseName + "-datadog-credentials"), "appKeyExistingSecret": pulumi.String(baseName + "-datadog-credentials"), @@ -168,7 +174,7 @@ func buildLinuxOperatorHelmValues(baseName string, operatorImagePath string, ope } } -func (values HelmValues) configureOperatorImagePullSecret(secret *corev1.Secret) { +func (values HelmValues) configureImagePullSecret(secret *corev1.Secret) { if secret == nil { return } @@ -180,118 +186,3 @@ func (values HelmValues) configureOperatorImagePullSecret(secret *corev1.Secret) } } - -func K8sAppDefinition(e config.Env, kubeProvider *kubernetes.Provider, namespace string, fakeIntake *fakeintake.Fakeintake, kubeletTLSVerify bool, clusterName string, customDda string, opts ...pulumi.ResourceOption) (*componentskube.Workload, error) { - opts = append(opts, pulumi.Provider(kubeProvider), pulumi.Parent(kubeProvider), pulumi.DeletedWith(kubeProvider)) - - k8sComponent := &componentskube.Workload{} - if err := e.Ctx().RegisterComponentResource("dd:agent-with-operator", "dda", k8sComponent, opts...); err != nil { - return nil, err - } - - opts = append(opts, pulumi.Parent(k8sComponent)) - - ns, err := corev1.NewNamespace( - e.Ctx(), - namespace, - &corev1.NamespaceArgs{ - Metadata: metav1.ObjectMetaArgs{ - Name: pulumi.String(namespace), - }, - }, - opts..., - ) - if err != nil { - return nil, err - } - - opts = append(opts, utils.PulumiDependsOn(ns)) - - var imagePullSecrets corev1.LocalObjectReferenceArray - if e.ImagePullRegistry() != "" { - imgPullSecret, err := NewImagePullSecret(e, namespace, opts...) - if err != nil { - return nil, err - } - - imagePullSecrets = append(imagePullSecrets, corev1.LocalObjectReferenceArgs{ - Name: imgPullSecret.Metadata.Name(), - }) - } - - ddaArgs := kubernetes.UntypedArgs{} - err = yaml.Unmarshal([]byte(customDda), &ddaArgs) - if err != nil { - return nil, err - } - - defaultArgs := kubernetes.UntypedArgs{ - "spec": pulumi.Map{ - "global": pulumi.Map{ - "credentials": pulumi.Map{ - "apiKey": pulumi.StringInput(e.AgentAPIKey()), - "appKey": pulumi.StringInput(e.AgentAPPKey()), - }, - "clusterName": pulumi.String(clusterName), - "kubelet": pulumi.Map{ - "tlsVerify": pulumi.Bool(kubeletTLSVerify), - }, - }, - }, - } - - if e.AgentUseFakeintake() { - err = mergo.Merge(&ddaArgs, kubernetes.UntypedArgs{ - "spec": pulumi.Map{ - "override": pulumi.Map{ - "nodeAgent": pulumi.Map{ - "env": pulumi.MapArray{ - pulumi.Map{ - "name": pulumi.String("DD_ADDITIONAL_ENDPOINTS"), - "value": pulumi.Sprintf(`{"%s": ["FAKEAPIKEY"]}`, fakeIntake.URL), - }, - }, - }, - "clusterAgent": pulumi.Map{ - "env": pulumi.MapArray{ - pulumi.Map{ - "name": pulumi.String("DD_ADDITIONAL_ENDPOINTS"), - "value": pulumi.Sprintf(`{"%s": ["FAKEAPIKEY"]}`, fakeIntake.URL), - }, - }, - }, - "clusterChecksRunner": pulumi.Map{ - "env": pulumi.MapArray{ - pulumi.Map{ - "name": pulumi.String("DD_ADDITIONAL_ENDPOINTS"), - "value": pulumi.Sprintf(`{"%s": ["FAKEAPIKEY"]}`, fakeIntake.URL), - }, - }, - }, - }}, - }) - if err != nil { - return nil, err - } - } - - err = mergo.Merge(&ddaArgs, defaultArgs) - if err != nil { - return nil, err - } - - _, err = apiextensions.NewCustomResource(e.Ctx(), "datadog-agent", &apiextensions.CustomResourceArgs{ - ApiVersion: pulumi.String("datadoghq.com/v2alpha1"), - Kind: pulumi.String("DatadogAgent"), - Metadata: &metav1.ObjectMetaArgs{ - Name: pulumi.String("datadog"), - Namespace: pulumi.String("datadog"), - }, - OtherFields: ddaArgs, - }, opts...) - if err != nil { - return nil, err - } - - return k8sComponent, nil -} diff --git a/components/datadog/operator/operator.go b/components/datadog/operator/operator.go new file mode 100644 index 000000000..a06c3ef5f --- /dev/null +++ b/components/datadog/operator/operator.go @@ -0,0 +1,46 @@ +package operator + +import ( + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + + "github.com/DataDog/test-infra-definitions/common/config" + "github.com/DataDog/test-infra-definitions/components" + "github.com/DataDog/test-infra-definitions/components/datadog/operatorparams" +) + +// OperatorOutput is used to import the Operator component +type OperatorOutput struct { + components.JSONImporter +} + +// Operator represents an Operator installation +type Operator struct { + pulumi.ResourceState + components.Component +} + +func (h *Operator) Export(ctx *pulumi.Context, out *OperatorOutput) error { + return components.Export(ctx, h, out) +} + +func NewOperator(e config.Env, resourceName string, kubeProvider *kubernetes.Provider, options ...operatorparams.Option) (*Operator, error) { + return components.NewComponent(e, resourceName, func(comp *Operator) error { + params, err := operatorparams.NewParams(e, options...) + if err != nil { + return err + } + + _, err = NewHelmInstallation(e, HelmInstallationArgs{ + KubeProvider: kubeProvider, + Namespace: params.Namespace, + ValuesYAML: params.HelmValues, + OperatorFullImagePath: params.OperatorFullImagePath, + }, params.PulumiResourceOptions...) + if err != nil { + return err + } + + return nil + }) +} diff --git a/components/datadog/operatorparams/params.go b/components/datadog/operatorparams/params.go new file mode 100644 index 000000000..bdca7a2df --- /dev/null +++ b/components/datadog/operatorparams/params.go @@ -0,0 +1,73 @@ +package operatorparams + +import ( + "fmt" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + + "github.com/DataDog/test-infra-definitions/common" + "github.com/DataDog/test-infra-definitions/common/config" + "github.com/DataDog/test-infra-definitions/common/utils" + "github.com/DataDog/test-infra-definitions/components/datadog/fakeintake" +) + +type Params struct { + // OperatorFullImagePath is the full path of the docker agent image to use. + OperatorFullImagePath string + // Namespace is the namespace to deploy the agent to. + Namespace string + // HelmValues is the Helm values to use for the agent installation. + HelmValues pulumi.AssetOrArchiveArray + // PulumiDependsOn is a list of resources to depend on. + FakeIntake *fakeintake.Fakeintake + PulumiResourceOptions []pulumi.ResourceOption +} + +type Option = func(*Params) error + +func NewParams(e config.Env, options ...Option) (*Params, error) { + version := &Params{ + Namespace: "datadog", + OperatorFullImagePath: "gcr.io/datadoghq/operator:latest", + } + + if e.PipelineID() != "" && e.CommitSHA() != "" { + options = append(options, WithOperatorFullImagePath(utils.BuildDockerImagePath(fmt.Sprintf("%s/operator", e.InternalRegistry()), fmt.Sprintf("%s-%s", e.PipelineID(), e.CommitSHA())))) + } + + return common.ApplyOption(version, options) +} + +// WithNamespace sets the namespace to deploy the agent to. +func WithNamespace(namespace string) func(*Params) error { + return func(p *Params) error { + p.Namespace = namespace + return nil + } +} + +// WithOperatorFullImagePath sets the namespace to deploy the agent to. +func WithOperatorFullImagePath(path string) func(*Params) error { + return func(p *Params) error { + p.OperatorFullImagePath = path + return nil + } +} + +// WithFakeIntake configures the Agent to use the given fake intake. +func WithFakeIntake(fakeintake *fakeintake.Fakeintake) func(*Params) error { + return func(p *Params) error { + p.PulumiResourceOptions = append(p.PulumiResourceOptions, utils.PulumiDependsOn(fakeintake)) + p.FakeIntake = fakeintake + return nil + } +} + +// WithHelmValues adds helm values to the agent installation. If used several times, the helm values are merged together +// If the same values is defined several times the latter call will override the previous one. +func WithHelmValues(values string) func(*Params) error { + return func(p *Params) error { + p.HelmValues = append(p.HelmValues, pulumi.NewStringAsset(values)) + return nil + } +} diff --git a/go.sum b/go.sum index 1da048008..65e32aa5d 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,30 @@ +cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= +cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= +cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= +cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= +cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/AlecAivazis/survey/v2 v2.3.7/go.mod h1:xUTIdE4KCOIjsBAE1JYsUPoCqYdZ1reCfTwbto0Fduo= +github.com/Azure/azure-sdk-for-go v66.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0/go.mod h1:+6sju8gk8FRmSajX3Oz4G5Gm7P+mbqE9FVaXXFYTkCM= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1/go.mod h1:eZ4g6GUvXiGulfIbbhh1Xr4XwUYaYaWMqzGD/284wCA= +github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest v0.11.28/go.mod h1:MrkzG3Y3AH668QyF9KRk5neJnGgmhQ6krbhR8Q5eMvA= +github.com/Azure/go-autorest/autorest/adal v0.9.21/go.mod h1:zua7mBUaCc5YnSLKYgGJR/w5ePdMDA6H56upLsHzA9U= +github.com/Azure/go-autorest/autorest/azure/auth v0.5.11/go.mod h1:84w/uV8E37feW2NCJ08uT9VBfjfUHpgLVnG2InYD6cg= +github.com/Azure/go-autorest/autorest/azure/cli v0.4.6/go.mod h1:piCfgPho7BiIDdEQ1+g4VmKyD5y+p/XtSNqE6Hc4QD0= +github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= +github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= +github.com/Azure/go-autorest/autorest/validation v0.3.1/go.mod h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E= +github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= +github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= github.com/DataDog/datadog-agent/pkg/util/optional v0.52.1 h1:mQQ54mKj9E3hVFppFFedxo9UTZcSzxqvpiphU3Nvwa8= github.com/DataDog/datadog-agent/pkg/util/optional v0.52.1/go.mod h1:th8Bo5fv4Kxe+GVS5LvPT4J5p/y0asz4WysHK2G+lRM= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= @@ -11,20 +36,28 @@ github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migc github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo= +github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= +github.com/alecthomas/chroma v0.10.0/go.mod h1:jtJATyUxlIORhUOFNA9NZDWGAQ8wpxQQqNSB4rjA/1s= github.com/alessio/shellescape v1.4.2 h1:MHPfaU+ddJ0/bYWpgIeUnQUqKrlJ1S7BfEYPM4uEoM0= github.com/alessio/shellescape v1.4.2/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= +github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= +github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= +github.com/armon/go-metrics v0.4.0/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= +github.com/aws/aws-sdk-go v1.44.298/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 h1:gTK2uhtAPtFcdRRJilZPx8uJLL2J85xK11nKtWL0wfU= @@ -35,6 +68,7 @@ github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHH github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.21/go.mod h1:iIYPrQ2rYfZiB/iADYlhj9HHZ9TTi6PqKQPAqygohbE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0= @@ -53,6 +87,7 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/g github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.2 h1:1oY1AVEisRI4HNuFoLdRUB0hC63ylDAN6Me3MrfclEg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.2/go.mod h1:KZ03VgvZwSjkT7fOetQ/wF3MZUvYFirlI1H5NklUNsY= +github.com/aws/aws-sdk-go-v2/service/kms v1.18.1/go.mod h1:4PZMUkc9rXHWGVB5J9vKaZy3D7Nai79ORworQ3ASMiM= github.com/aws/aws-sdk-go-v2/service/s3 v1.51.3 h1:7cR4xxS480TI0R6Bd75g9Npdw89VriquvQPlMNmuds4= github.com/aws/aws-sdk-go-v2/service/s3 v1.51.3/go.mod h1:zb72GZ2MvfCX5ynVJ+Mc/NCx7hncbsko4NZm5E+p6J4= github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w= @@ -65,15 +100,22 @@ github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= +github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= +github.com/ccojocar/zxcvbn-go v1.0.1/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60= +github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charmbracelet/bubbles v0.18.0 h1:PYv1A036luoBGroX6VWjQIE9Syf2Wby2oOl/39KLfy0= github.com/charmbracelet/bubbles v0.18.0/go.mod h1:08qhZhtIwzgrtBjAcJnij1t1H0ZRjwHyGsy6AL11PSw= github.com/charmbracelet/bubbletea v0.25.0 h1:bAfwk7jRz7FKFl9RzlIULPkStffg5k6pNt5dywy4TcM= github.com/charmbracelet/bubbletea v0.25.0/go.mod h1:EN3QDR1T5ZdWmdfDzYcqOCAps45+QIJbLOBxmVNWNNg= +github.com/charmbracelet/glamour v0.6.0/go.mod h1:taqWV4swIMMbWALc0m7AfE9JkPSU8om2538k9ITBxOc= +github.com/charmbracelet/harmonica v0.2.0/go.mod h1:KSri/1RMQOZLbw7AHqgcBycp8pgJnQMYYT8QZRqZ1Ao= github.com/charmbracelet/lipgloss v0.10.0 h1:KWeXFSexGcfahHX+54URiZGkBFazf70JNMtwg/AFW3s= github.com/charmbracelet/lipgloss v0.10.0/go.mod h1:Wig9DSfvANsxqkRsqj6x87irdy123SR4dOXlKa91ciE= github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo= @@ -81,6 +123,7 @@ github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuP github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/containerd/console v1.0.4 h1:F2g4+oChYvBTsASRTz8NP6iIAi97J3TtSAsLbIFn4ro= github.com/containerd/console v1.0.4/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -89,12 +132,19 @@ github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxG github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/deckarep/golang-set/v2 v2.5.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/djherbis/times v1.6.0 h1:w2ctJ92J8fBvWPxugmXIv7Nz7Q3iDMKNx9v5ocVH20c= github.com/djherbis/times v1.6.0/go.mod h1:gOHeRAz2h+VJNZ5Gmc/o7iD9k4wW7NMVqieYCY99oc0= +github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= +github.com/envoyproxy/go-control-plane v0.12.0/go.mod h1:ZBTaoJ23lqITozF0M6G4/IragXCQKCnYbmlmtHvwRG0= +github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= @@ -113,30 +163,65 @@ github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMj github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= +github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/wire v0.5.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU= +github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= +github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +github.com/hashicorp/go-hclog v1.2.2/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/go-plugin v1.4.6/go.mod h1:viDMjcLJuDui6pXb8U4HVfb8AamCWhHGUjr2IrTF67s= +github.com/hashicorp/go-retryablehttp v0.7.1/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-secure-stdlib/mlock v0.1.2/go.mod h1:zq93CJChV6L9QTfGKtfBxKqD7BqqXx5O04A/ns2p5+I= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.6/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= +github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4= +github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= +github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.20.0 h1:l++cRs/5jQOiKVvqXZm/P1ZEfVXJmvLS9WSVxkaeTb4= github.com/hashicorp/hcl/v2 v2.20.0/go.mod h1:WmcD/Ym72MDOOx5F62Ly+leloeu6H7m0pG7VBiU6pQk= +github.com/hashicorp/vault/api v1.8.2/go.mod h1:ML8aYzBIhY5m1MD1B2Q0JV89cC85YVH4t5kBaZiyVaE= +github.com/hashicorp/vault/sdk v0.6.1/go.mod h1:Ck4JuAC6usTphfrrRJCRH+7/N7O2ozZzkm/fzQFt4uM= +github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= +github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= +github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= @@ -145,6 +230,8 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= @@ -157,6 +244,7 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -172,10 +260,20 @@ github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= +github.com/microcosm-cc/bluemonday v1.0.21/go.mod h1:ytNkv4RrDrLJ2pqlsSI46O6IVXmZOBBD4SaJyDwwTkM= +github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= +github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/mmcloughlin/avo v0.5.0/go.mod h1:ChHFdoV7ql95Wi7vuq2YT1bwCJqiWdZrQ1im3VujLYM= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= @@ -184,8 +282,12 @@ github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= +github.com/natefinch/atomic v1.0.1/go.mod h1:N/D/ELrljoqDyT3rZrsUmtsuzvHkeB/wWjHV22AZRbM= github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= +github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= +github.com/onsi/ginkgo/v2 v2.13.2/go.mod h1:XStQ8QcGwLyF4HdfcZB8SFOS/MWCgDuXMSBe6zrvLgM= github.com/onsi/gomega v1.31.0 h1:54UJxxj6cPInHS3a35wm6BK/F9nHYueZ1NVujHDrnXE= github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk= github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0= @@ -193,10 +295,16 @@ github.com/opentracing/basictracer-go v1.1.0/go.mod h1:V2HZueSJEp879yv285Aap1BS6 github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/petar-dambovaliev/aho-corasick v0.0.0-20230725210150-fb29fc3c913e/go.mod h1:EHPiTAKtiFmrMldLUNswFwfZ2eJIYBHktdaUTZxYWRw= +github.com/pgavlin/diff v0.0.0-20230503175810-113847418e2e/go.mod h1:WGwlmuPAiQTGQUjxyAfP7j4JgbgiFvFpI/qRtsQtS/4= github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU= github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M= +github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386/go.mod h1:MRxHTJrf9FhdfNQ8Hdeh9gmHevC9RJE/fu8M3JIGjoE= +github.com/pgavlin/text v0.0.0-20230428184845-84c285f11d2f/go.mod h1:fk4+YyTLi0Ap0CsL1HA70/tAs6evqw3hbPGdR8rD/3E= +github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= +github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk= @@ -233,6 +341,7 @@ github.com/pulumi/pulumi-random/sdk/v4 v4.16.0 h1:H6gGA1hnprPB7SWC11giI93tVRxuSx github.com/pulumi/pulumi-random/sdk/v4 v4.16.0/go.mod h1:poNUvMquwCDb7AqxqBBWcZEn6ADhoDPml2j43wZtzkU= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1 h1:tXemWrzeVTqG8zq6hBdv1TdPFXjgZ+dob63a/6GlF1o= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1/go.mod h1:hODo3iEmmXDFOXqPK+V+vwI0a3Ww7BLjs5Tgamp86Ng= +github.com/pulumi/pulumi/pkg/v3 v3.98.0/go.mod h1:aeQmrCMwvMOIz1s6qOk+vg1oCWff5hmeRrg1vYv8eRU= github.com/pulumi/pulumi/sdk/v3 v3.116.1 h1:P/bIDPQYy1UJogLeV/zY+bG4iTZgEEJLlwyUYEW3NPc= github.com/pulumi/pulumi/sdk/v3 v3.116.1/go.mod h1:d6LZJHqEfpgXUd8rFSSsbaPJcocZObXeaUr87jbA5MY= github.com/pulumiverse/pulumi-time/sdk v0.0.16 h1:6Ry9qOVtgaM9Gr+HedAOdqd7VcNqwKCbCOm/IAYfYDM= @@ -244,15 +353,20 @@ github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUc github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs= +github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= github.com/samber/lo v1.39.0 h1:4gTz1wUhNYLhFSKl6O+8peW0v2F4BCY034GRpU9WnuA= github.com/samber/lo v1.39.0/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY= +github.com/segmentio/asm v1.1.3/go.mod h1:Ld3L4ZXGNcSLRg4JBsZ3//1+f/TjYl0Mzen/DQy1EJg= +github.com/segmentio/encoding v0.3.5/go.mod h1:n0JeuIqEQrQoPDGsjo8UNd1iA0U8d8+oHAA4E3G3OxM= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= @@ -279,15 +393,26 @@ github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaO github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= +github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yuin/goldmark v1.5.2/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yuin/goldmark-emoji v1.0.1/go.mod h1:2w1E6FEWLcDQkoTE+7HU6QF1F6SLlNGjRIBbIZQFqkQ= github.com/zclconf/go-cty v1.14.3 h1:1JXy1XroaGrzZuG6X9dt7HL6s9AwbY+l4UNL8o5B6ho= github.com/zclconf/go-cty v1.14.3/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +gocloud.dev v0.27.0/go.mod h1:YlYKhYsY5/1JdHGWQDkAuqkezVKowu7qbe9aIeUF6p0= +gocloud.dev/secrets/hashivault v0.27.0/go.mod h1:offqsI5oj0B0bVHZdfk/88uIb3NnN93ia8py0yvRlHY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -320,6 +445,7 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -351,6 +477,7 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= @@ -367,6 +494,7 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -381,6 +509,11 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= +google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 h1:8EeVk1VKMD+GD/neyEHGmz7pFblqPjHoi+PGQIlLx2s= google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= @@ -391,6 +524,7 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= @@ -404,5 +538,7 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw= lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s= +mvdan.cc/sh/v3 v3.7.0/go.mod h1:K2gwkaesF/D7av7Kxl0HbF5kGOd2ArupNTX3X44+8l8= pgregory.net/rapid v0.6.1 h1:4eyrDxyht86tT4Ztm+kvlyNBLIk071gR+ZQdhphc9dQ= pgregory.net/rapid v0.6.1/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= +sourcegraph.com/sourcegraph/appdash v0.0.0-20211028080628-e2786a622600/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/integration-tests/invoke_test.go b/integration-tests/invoke_test.go index 11bb4e867..4985b02b3 100644 --- a/integration-tests/invoke_test.go +++ b/integration-tests/invoke_test.go @@ -37,6 +37,9 @@ func TestInvokes(t *testing.T) { t.Run("invoke-kind", func(t *testing.T) { testInvokeKind(t, tmpConfigFile) }) + t.Run("invoke-kind-operator", func(t *testing.T) { + testInvokeKindOperator(t, tmpConfigFile) + }) } func testInvokeVM(t *testing.T, tmpConfigFile string) { @@ -94,6 +97,24 @@ func testInvokeKind(t *testing.T, tmpConfigFile string) { require.NoError(t, err, "Error found destroying kind cluster: %s", string(destroyOutput)) } +func testInvokeKindOperator(t *testing.T, tmpConfigFile string) { + t.Helper() + stackParts := []string{"invoke", "kind", "--install_agent_with_operator"} + if os.Getenv("CI") == "true" { + stackParts = append(stackParts, os.Getenv("CI_PIPELINE_ID")) + } + stackName := strings.Join(stackParts, "-") + t.Log("creating kind cluster") + createCmd := exec.Command("invoke", "create-kind", "--no-interactive", "--stack-name", stackName, "--no-use-aws-vault", "--config-path", tmpConfigFile) + createOutput, err := createCmd.Output() + assert.NoError(t, err, "Error found creating kind cluster: %s", string(createOutput)) + + t.Log("destroying kind cluster") + destroyCmd := exec.Command("invoke", "destroy-kind", "--yes", "--stack-name", stackName, "--no-use-aws-vault", "--config-path", tmpConfigFile) + destroyOutput, err := destroyCmd.Output() + require.NoError(t, err, "Error found destroying kind cluster: %s", string(destroyOutput)) +} + //go:embed testfixture/config.yaml var testInfraTestConfig string diff --git a/scenarios/aws/kindvm/run.go b/scenarios/aws/kindvm/run.go index bf437e360..8dbd6bac7 100644 --- a/scenarios/aws/kindvm/run.go +++ b/scenarios/aws/kindvm/run.go @@ -4,7 +4,9 @@ import ( "fmt" "github.com/DataDog/test-infra-definitions/common/utils" + "github.com/DataDog/test-infra-definitions/components/datadog/agent" "github.com/DataDog/test-infra-definitions/components/datadog/agent/helm" + "github.com/DataDog/test-infra-definitions/components/datadog/agentwithoperatorparams" "github.com/DataDog/test-infra-definitions/components/datadog/apps/cpustress" "github.com/DataDog/test-infra-definitions/components/datadog/apps/dogstatsd" "github.com/DataDog/test-infra-definitions/components/datadog/apps/mutatedbyadmissioncontroller" @@ -15,6 +17,7 @@ import ( dogstatsdstandalone "github.com/DataDog/test-infra-definitions/components/datadog/dogstatsd-standalone" fakeintakeComp "github.com/DataDog/test-infra-definitions/components/datadog/fakeintake" "github.com/DataDog/test-infra-definitions/components/datadog/kubernetesagentparams" + "github.com/DataDog/test-infra-definitions/components/datadog/operatorparams" localKubernetes "github.com/DataDog/test-infra-definitions/components/kubernetes" "github.com/DataDog/test-infra-definitions/components/os" resAws "github.com/DataDog/test-infra-definitions/resources/aws" @@ -118,21 +121,28 @@ agents: // Deploy the operator if awsEnv.AgentDeploy() && awsEnv.AgentDeployWithOperator() { - operatorHelmComponent, err := agent.NewOperatorHelmInstallation(&awsEnv, agent.OperatorHelmInstallationArgs{ - KubeProvider: kindKubeProvider, - Namespace: "datadog", - ValuesYAML: pulumi.AssetOrArchiveArray{}, - OperatorFullImagePath: "gcr.io/datadoghq/operator:1.6.0", - }, nil) + operatorOpts := make([]operatorparams.Option, 0) + operatorOpts = append( + operatorOpts, + operatorparams.WithNamespace("datadog"), + operatorparams.WithFakeIntake(fakeIntake), + + ) + ddaOptions := make([]agentwithoperatorparams.Option, 0) + ddaOptions = append( + ddaOptions, + agentwithoperatorparams.WithNamespace("datadog"), + agentwithoperatorparams.WithTLSKubeletVerify(false), + ) + + operatorAgentComponent, err := agent.NewDDAWithOperator(&awsEnv, awsEnv.CommonNamer().ResourceName("dd-operator-agent"), kindKubeProvider, operatorOpts, ddaOptions...) if err != nil { return err } - ctx.Export("operator-linux-helm-install-name", operatorHelmComponent.LinuxHelmReleaseName) - ctx.Export("operator-linux-helm-install-status", operatorHelmComponent.LinuxHelmReleaseStatus) - dependsOnCrd = utils.PulumiDependsOn(operatorHelmComponent) + dependsOnCrd = utils.PulumiDependsOn(operatorAgentComponent) - if _, err := agent.K8sAppDefinition(&awsEnv, kindKubeProvider, "datadog", fakeIntake, false, kindClusterName, ""); err != nil { + if err := operatorAgentComponent.Export(awsEnv.Ctx(), nil); err != nil { return err } } From 491942a4600b9d44a13ea2c596073625c5affd59 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Fri, 28 Jun 2024 17:20:26 -0400 Subject: [PATCH 07/27] fix fakeIntake param --- scenarios/aws/kindvm/run.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/scenarios/aws/kindvm/run.go b/scenarios/aws/kindvm/run.go index bf2df434c..439a6d814 100644 --- a/scenarios/aws/kindvm/run.go +++ b/scenarios/aws/kindvm/run.go @@ -79,6 +79,9 @@ func Run(ctx *pulumi.Context) error { if fakeIntake, err = fakeintake.NewECSFargateInstance(awsEnv, kindCluster.Name(), fakeIntakeOptions...); err != nil { return err } + if fakeIntake == nil { + fmt.Println("FAKE INTAKE IS NIL") + } if err := fakeIntake.Export(awsEnv.Ctx(), nil); err != nil { return err } @@ -100,8 +103,13 @@ agents: k8sAgentOptions, kubernetesagentparams.WithNamespace("datadog"), kubernetesagentparams.WithHelmValues(customValues), - kubernetesagentparams.WithFakeintake(fakeIntake), ) + if fakeIntake != nil { + k8sAgentOptions = append( + k8sAgentOptions, + kubernetesagentparams.WithFakeintake(fakeIntake), + ) + } k8sAgentComponent, err := helm.NewKubernetesAgent(&awsEnv, awsEnv.Namer.ResourceName("datadog-agent"), kindKubeProvider, k8sAgentOptions...) From fa71349eee094bb0cf9c2f6d080d991c5c2b1e88 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Fri, 28 Jun 2024 17:43:51 -0400 Subject: [PATCH 08/27] update test --- go.sum | 136 ------------------------------- integration-tests/invoke_test.go | 2 +- 2 files changed, 1 insertion(+), 137 deletions(-) diff --git a/go.sum b/go.sum index 65e32aa5d..1da048008 100644 --- a/go.sum +++ b/go.sum @@ -1,30 +1,5 @@ -cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= -cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= -cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= -cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= -cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= -cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= -cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= -cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= -github.com/AlecAivazis/survey/v2 v2.3.7/go.mod h1:xUTIdE4KCOIjsBAE1JYsUPoCqYdZ1reCfTwbto0Fduo= -github.com/Azure/azure-sdk-for-go v66.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0/go.mod h1:+6sju8gk8FRmSajX3Oz4G5Gm7P+mbqE9FVaXXFYTkCM= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1/go.mod h1:eZ4g6GUvXiGulfIbbhh1Xr4XwUYaYaWMqzGD/284wCA= -github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.11.28/go.mod h1:MrkzG3Y3AH668QyF9KRk5neJnGgmhQ6krbhR8Q5eMvA= -github.com/Azure/go-autorest/autorest/adal v0.9.21/go.mod h1:zua7mBUaCc5YnSLKYgGJR/w5ePdMDA6H56upLsHzA9U= -github.com/Azure/go-autorest/autorest/azure/auth v0.5.11/go.mod h1:84w/uV8E37feW2NCJ08uT9VBfjfUHpgLVnG2InYD6cg= -github.com/Azure/go-autorest/autorest/azure/cli v0.4.6/go.mod h1:piCfgPho7BiIDdEQ1+g4VmKyD5y+p/XtSNqE6Hc4QD0= -github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= -github.com/Azure/go-autorest/autorest/validation v0.3.1/go.mod h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E= -github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= github.com/DataDog/datadog-agent/pkg/util/optional v0.52.1 h1:mQQ54mKj9E3hVFppFFedxo9UTZcSzxqvpiphU3Nvwa8= github.com/DataDog/datadog-agent/pkg/util/optional v0.52.1/go.mod h1:th8Bo5fv4Kxe+GVS5LvPT4J5p/y0asz4WysHK2G+lRM= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= @@ -36,28 +11,20 @@ github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migc github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= -github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo= -github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= -github.com/alecthomas/chroma v0.10.0/go.mod h1:jtJATyUxlIORhUOFNA9NZDWGAQ8wpxQQqNSB4rjA/1s= github.com/alessio/shellescape v1.4.2 h1:MHPfaU+ddJ0/bYWpgIeUnQUqKrlJ1S7BfEYPM4uEoM0= github.com/alessio/shellescape v1.4.2/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= -github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= -github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= -github.com/armon/go-metrics v0.4.0/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= -github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= -github.com/aws/aws-sdk-go v1.44.298/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 h1:gTK2uhtAPtFcdRRJilZPx8uJLL2J85xK11nKtWL0wfU= @@ -68,7 +35,6 @@ github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHH github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.21/go.mod h1:iIYPrQ2rYfZiB/iADYlhj9HHZ9TTi6PqKQPAqygohbE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0= @@ -87,7 +53,6 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/g github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.2 h1:1oY1AVEisRI4HNuFoLdRUB0hC63ylDAN6Me3MrfclEg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.2/go.mod h1:KZ03VgvZwSjkT7fOetQ/wF3MZUvYFirlI1H5NklUNsY= -github.com/aws/aws-sdk-go-v2/service/kms v1.18.1/go.mod h1:4PZMUkc9rXHWGVB5J9vKaZy3D7Nai79ORworQ3ASMiM= github.com/aws/aws-sdk-go-v2/service/s3 v1.51.3 h1:7cR4xxS480TI0R6Bd75g9Npdw89VriquvQPlMNmuds4= github.com/aws/aws-sdk-go-v2/service/s3 v1.51.3/go.mod h1:zb72GZ2MvfCX5ynVJ+Mc/NCx7hncbsko4NZm5E+p6J4= github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w= @@ -100,22 +65,15 @@ github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= -github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= -github.com/ccojocar/zxcvbn-go v1.0.1/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60= -github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charmbracelet/bubbles v0.18.0 h1:PYv1A036luoBGroX6VWjQIE9Syf2Wby2oOl/39KLfy0= github.com/charmbracelet/bubbles v0.18.0/go.mod h1:08qhZhtIwzgrtBjAcJnij1t1H0ZRjwHyGsy6AL11PSw= github.com/charmbracelet/bubbletea v0.25.0 h1:bAfwk7jRz7FKFl9RzlIULPkStffg5k6pNt5dywy4TcM= github.com/charmbracelet/bubbletea v0.25.0/go.mod h1:EN3QDR1T5ZdWmdfDzYcqOCAps45+QIJbLOBxmVNWNNg= -github.com/charmbracelet/glamour v0.6.0/go.mod h1:taqWV4swIMMbWALc0m7AfE9JkPSU8om2538k9ITBxOc= -github.com/charmbracelet/harmonica v0.2.0/go.mod h1:KSri/1RMQOZLbw7AHqgcBycp8pgJnQMYYT8QZRqZ1Ao= github.com/charmbracelet/lipgloss v0.10.0 h1:KWeXFSexGcfahHX+54URiZGkBFazf70JNMtwg/AFW3s= github.com/charmbracelet/lipgloss v0.10.0/go.mod h1:Wig9DSfvANsxqkRsqj6x87irdy123SR4dOXlKa91ciE= github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo= @@ -123,7 +81,6 @@ github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuP github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= -github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/containerd/console v1.0.4 h1:F2g4+oChYvBTsASRTz8NP6iIAi97J3TtSAsLbIFn4ro= github.com/containerd/console v1.0.4/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -132,19 +89,12 @@ github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxG github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/deckarep/golang-set/v2 v2.5.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= -github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/djherbis/times v1.6.0 h1:w2ctJ92J8fBvWPxugmXIv7Nz7Q3iDMKNx9v5ocVH20c= github.com/djherbis/times v1.6.0/go.mod h1:gOHeRAz2h+VJNZ5Gmc/o7iD9k4wW7NMVqieYCY99oc0= -github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/envoyproxy/go-control-plane v0.12.0/go.mod h1:ZBTaoJ23lqITozF0M6G4/IragXCQKCnYbmlmtHvwRG0= -github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= @@ -163,65 +113,30 @@ github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMj github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= -github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= -github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= -github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= -github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/wire v0.5.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= -github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-hclog v1.2.2/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= -github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-plugin v1.4.6/go.mod h1:viDMjcLJuDui6pXb8U4HVfb8AamCWhHGUjr2IrTF67s= -github.com/hashicorp/go-retryablehttp v0.7.1/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= -github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-secure-stdlib/mlock v0.1.2/go.mod h1:zq93CJChV6L9QTfGKtfBxKqD7BqqXx5O04A/ns2p5+I= -github.com/hashicorp/go-secure-stdlib/parseutil v0.1.6/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= -github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4= -github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= -github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.20.0 h1:l++cRs/5jQOiKVvqXZm/P1ZEfVXJmvLS9WSVxkaeTb4= github.com/hashicorp/hcl/v2 v2.20.0/go.mod h1:WmcD/Ym72MDOOx5F62Ly+leloeu6H7m0pG7VBiU6pQk= -github.com/hashicorp/vault/api v1.8.2/go.mod h1:ML8aYzBIhY5m1MD1B2Q0JV89cC85YVH4t5kBaZiyVaE= -github.com/hashicorp/vault/sdk v0.6.1/go.mod h1:Ck4JuAC6usTphfrrRJCRH+7/N7O2ozZzkm/fzQFt4uM= -github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= -github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= -github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= -github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= @@ -230,8 +145,6 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= @@ -244,7 +157,6 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -260,20 +172,10 @@ github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= -github.com/microcosm-cc/bluemonday v1.0.21/go.mod h1:ytNkv4RrDrLJ2pqlsSI46O6IVXmZOBBD4SaJyDwwTkM= -github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= -github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/mmcloughlin/avo v0.5.0/go.mod h1:ChHFdoV7ql95Wi7vuq2YT1bwCJqiWdZrQ1im3VujLYM= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= @@ -282,12 +184,8 @@ github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= -github.com/natefinch/atomic v1.0.1/go.mod h1:N/D/ELrljoqDyT3rZrsUmtsuzvHkeB/wWjHV22AZRbM= github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= -github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= -github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= -github.com/onsi/ginkgo/v2 v2.13.2/go.mod h1:XStQ8QcGwLyF4HdfcZB8SFOS/MWCgDuXMSBe6zrvLgM= github.com/onsi/gomega v1.31.0 h1:54UJxxj6cPInHS3a35wm6BK/F9nHYueZ1NVujHDrnXE= github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk= github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0= @@ -295,16 +193,10 @@ github.com/opentracing/basictracer-go v1.1.0/go.mod h1:V2HZueSJEp879yv285Aap1BS6 github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= -github.com/petar-dambovaliev/aho-corasick v0.0.0-20230725210150-fb29fc3c913e/go.mod h1:EHPiTAKtiFmrMldLUNswFwfZ2eJIYBHktdaUTZxYWRw= -github.com/pgavlin/diff v0.0.0-20230503175810-113847418e2e/go.mod h1:WGwlmuPAiQTGQUjxyAfP7j4JgbgiFvFpI/qRtsQtS/4= github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU= github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M= -github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386/go.mod h1:MRxHTJrf9FhdfNQ8Hdeh9gmHevC9RJE/fu8M3JIGjoE= -github.com/pgavlin/text v0.0.0-20230428184845-84c285f11d2f/go.mod h1:fk4+YyTLi0Ap0CsL1HA70/tAs6evqw3hbPGdR8rD/3E= -github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= -github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk= @@ -341,7 +233,6 @@ github.com/pulumi/pulumi-random/sdk/v4 v4.16.0 h1:H6gGA1hnprPB7SWC11giI93tVRxuSx github.com/pulumi/pulumi-random/sdk/v4 v4.16.0/go.mod h1:poNUvMquwCDb7AqxqBBWcZEn6ADhoDPml2j43wZtzkU= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1 h1:tXemWrzeVTqG8zq6hBdv1TdPFXjgZ+dob63a/6GlF1o= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1/go.mod h1:hODo3iEmmXDFOXqPK+V+vwI0a3Ww7BLjs5Tgamp86Ng= -github.com/pulumi/pulumi/pkg/v3 v3.98.0/go.mod h1:aeQmrCMwvMOIz1s6qOk+vg1oCWff5hmeRrg1vYv8eRU= github.com/pulumi/pulumi/sdk/v3 v3.116.1 h1:P/bIDPQYy1UJogLeV/zY+bG4iTZgEEJLlwyUYEW3NPc= github.com/pulumi/pulumi/sdk/v3 v3.116.1/go.mod h1:d6LZJHqEfpgXUd8rFSSsbaPJcocZObXeaUr87jbA5MY= github.com/pulumiverse/pulumi-time/sdk v0.0.16 h1:6Ry9qOVtgaM9Gr+HedAOdqd7VcNqwKCbCOm/IAYfYDM= @@ -353,20 +244,15 @@ github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUc github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs= -github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= github.com/samber/lo v1.39.0 h1:4gTz1wUhNYLhFSKl6O+8peW0v2F4BCY034GRpU9WnuA= github.com/samber/lo v1.39.0/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY= -github.com/segmentio/asm v1.1.3/go.mod h1:Ld3L4ZXGNcSLRg4JBsZ3//1+f/TjYl0Mzen/DQy1EJg= -github.com/segmentio/encoding v0.3.5/go.mod h1:n0JeuIqEQrQoPDGsjo8UNd1iA0U8d8+oHAA4E3G3OxM= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= @@ -393,26 +279,15 @@ github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaO github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= -github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= -github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/yuin/goldmark v1.5.2/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/yuin/goldmark-emoji v1.0.1/go.mod h1:2w1E6FEWLcDQkoTE+7HU6QF1F6SLlNGjRIBbIZQFqkQ= github.com/zclconf/go-cty v1.14.3 h1:1JXy1XroaGrzZuG6X9dt7HL6s9AwbY+l4UNL8o5B6ho= github.com/zclconf/go-cty v1.14.3/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= -github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= -go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -gocloud.dev v0.27.0/go.mod h1:YlYKhYsY5/1JdHGWQDkAuqkezVKowu7qbe9aIeUF6p0= -gocloud.dev/secrets/hashivault v0.27.0/go.mod h1:offqsI5oj0B0bVHZdfk/88uIb3NnN93ia8py0yvRlHY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -445,7 +320,6 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -477,7 +351,6 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= @@ -494,7 +367,6 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -509,11 +381,6 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 h1:8EeVk1VKMD+GD/neyEHGmz7pFblqPjHoi+PGQIlLx2s= google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= @@ -524,7 +391,6 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= @@ -538,7 +404,5 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw= lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s= -mvdan.cc/sh/v3 v3.7.0/go.mod h1:K2gwkaesF/D7av7Kxl0HbF5kGOd2ArupNTX3X44+8l8= pgregory.net/rapid v0.6.1 h1:4eyrDxyht86tT4Ztm+kvlyNBLIk071gR+ZQdhphc9dQ= pgregory.net/rapid v0.6.1/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= -sourcegraph.com/sourcegraph/appdash v0.0.0-20211028080628-e2786a622600/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/integration-tests/invoke_test.go b/integration-tests/invoke_test.go index 4985b02b3..d0511ef36 100644 --- a/integration-tests/invoke_test.go +++ b/integration-tests/invoke_test.go @@ -104,7 +104,7 @@ func testInvokeKindOperator(t *testing.T, tmpConfigFile string) { stackParts = append(stackParts, os.Getenv("CI_PIPELINE_ID")) } stackName := strings.Join(stackParts, "-") - t.Log("creating kind cluster") + t.Log("creating kind cluster with operator") createCmd := exec.Command("invoke", "create-kind", "--no-interactive", "--stack-name", stackName, "--no-use-aws-vault", "--config-path", tmpConfigFile) createOutput, err := createCmd.Output() assert.NoError(t, err, "Error found creating kind cluster: %s", string(createOutput)) From e255a038581a5029cd7c93f400fa0e03105e44b5 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Fri, 28 Jun 2024 18:24:51 -0400 Subject: [PATCH 09/27] fix linter errors --- components/datadog/apps/dda/datadogagent.go | 17 +++++++++++++++++ components/datadog/operator/helm.go | 2 +- components/datadog/operator/operator.go | 6 +++--- scenarios/aws/kindvm/run.go | 5 +---- tasks/doc.py | 4 +++- 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/components/datadog/apps/dda/datadogagent.go b/components/datadog/apps/dda/datadogagent.go index 21518dd46..5723ac5c1 100644 --- a/components/datadog/apps/dda/datadogagent.go +++ b/components/datadog/apps/dda/datadogagent.go @@ -71,6 +71,23 @@ func K8sAppDefinition(e config.Env, kubeProvider *kubernetes.Provider, namespace "tlsVerify": pulumi.Bool(kubeletTLSVerify), }, }, + "override": pulumi.Map{ + "nodeAgent": pulumi.Map{ + "image": pulumi.Map{ + "pullSecrets": imagePullSecrets, + }, + }, + "clusterAgent": pulumi.Map{ + "image": pulumi.Map{ + "pullSecrets": imagePullSecrets, + }, + }, + "clusterChecksRunner": pulumi.Map{ + "image": pulumi.Map{ + "pullSecrets": imagePullSecrets, + }, + }, + }, }, } diff --git a/components/datadog/operator/helm.go b/components/datadog/operator/helm.go index fd2d035ce..bf49ae8c9 100644 --- a/components/datadog/operator/helm.go +++ b/components/datadog/operator/helm.go @@ -90,7 +90,7 @@ func NewHelmInstallation(e config.Env, args HelmInstallationArgs, opts ...pulumi if args.OperatorFullImagePath != "" { operatorImagePath = args.OperatorFullImagePath } - operatorImagePath, operatorImageTag := utils.ParseImageReference(args.OperatorFullImagePath) + operatorImagePath, operatorImageTag := utils.ParseImageReference(operatorImagePath) linuxInstallName := baseName + "-linux" values := buildLinuxHelmValues(baseName, operatorImagePath, operatorImageTag) diff --git a/components/datadog/operator/operator.go b/components/datadog/operator/operator.go index a06c3ef5f..fb20fa65e 100644 --- a/components/datadog/operator/operator.go +++ b/components/datadog/operator/operator.go @@ -10,7 +10,7 @@ import ( ) // OperatorOutput is used to import the Operator component -type OperatorOutput struct { +type Output struct { components.JSONImporter } @@ -20,12 +20,12 @@ type Operator struct { components.Component } -func (h *Operator) Export(ctx *pulumi.Context, out *OperatorOutput) error { +func (h *Operator) Export(ctx *pulumi.Context, out *Output) error { return components.Export(ctx, h, out) } func NewOperator(e config.Env, resourceName string, kubeProvider *kubernetes.Provider, options ...operatorparams.Option) (*Operator, error) { - return components.NewComponent(e, resourceName, func(comp *Operator) error { + return components.NewComponent(e, resourceName, func(_ *Operator) error { params, err := operatorparams.NewParams(e, options...) if err != nil { return err diff --git a/scenarios/aws/kindvm/run.go b/scenarios/aws/kindvm/run.go index 3807e7dfe..54c8b948e 100644 --- a/scenarios/aws/kindvm/run.go +++ b/scenarios/aws/kindvm/run.go @@ -82,9 +82,7 @@ func Run(ctx *pulumi.Context) error { if fakeIntake, err = fakeintake.NewECSFargateInstance(awsEnv, kindCluster.Name(), fakeIntakeOptions...); err != nil { return err } - if fakeIntake == nil { - fmt.Println("FAKE INTAKE IS NIL") - } + if err := fakeIntake.Export(awsEnv.Ctx(), nil); err != nil { return err } @@ -134,7 +132,6 @@ agents: operatorOpts, operatorparams.WithNamespace("datadog"), operatorparams.WithFakeIntake(fakeIntake), - ) ddaOptions := make([]agentwithoperatorparams.Option, 0) ddaOptions = append( diff --git a/tasks/doc.py b/tasks/doc.py index b4cb138d1..7bcce4c3a 100644 --- a/tasks/doc.py +++ b/tasks/doc.py @@ -1,7 +1,9 @@ from . import tool install_agent: str = f"Install the Agent (default {tool.get_default_agent_install()})." -install_agent_with_operator: str = f"Install the Agent with Operator (default {tool.get_default_agent_with_operator_install()})." +install_agent_with_operator: str = ( + f"Install the Agent with Operator (default {tool.get_default_agent_with_operator_install()})." +) install_updater: str = "Install the Updater (default False)." install_workload: str = f"Install test workload (default {tool.get_default_workload_install()})." pipeline_id: str = ( From d2bc1fedc3df510ca0906451c1fb51b6481dc3d6 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Fri, 28 Jun 2024 18:29:03 -0400 Subject: [PATCH 10/27] cleanup --- scenarios/aws/kindvm/run.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/scenarios/aws/kindvm/run.go b/scenarios/aws/kindvm/run.go index 439a6d814..67cfa1e37 100644 --- a/scenarios/aws/kindvm/run.go +++ b/scenarios/aws/kindvm/run.go @@ -79,9 +79,7 @@ func Run(ctx *pulumi.Context) error { if fakeIntake, err = fakeintake.NewECSFargateInstance(awsEnv, kindCluster.Name(), fakeIntakeOptions...); err != nil { return err } - if fakeIntake == nil { - fmt.Println("FAKE INTAKE IS NIL") - } + if err := fakeIntake.Export(awsEnv.Ctx(), nil); err != nil { return err } From 7f3b920fd21500d013532a3fa2b140b97980659d Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Fri, 28 Jun 2024 18:31:37 -0400 Subject: [PATCH 11/27] update go.mod --- go.mod | 1 - 1 file changed, 1 deletion(-) diff --git a/go.mod b/go.mod index bef4619fa..5666d6a2e 100644 --- a/go.mod +++ b/go.mod @@ -35,7 +35,6 @@ require ( ) require ( - dario.cat/mergo v1.0.0 // indirect github.com/BurntSushi/toml v1.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v1.0.0 // indirect From 9e81f6b1add9fcd6f6dae7256ffe0b07ced3a0be Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Wed, 3 Jul 2024 14:41:08 -0400 Subject: [PATCH 12/27] fix stackname --- integration-tests/invoke_test.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/integration-tests/invoke_test.go b/integration-tests/invoke_test.go index d0511ef36..0ae315e26 100644 --- a/integration-tests/invoke_test.go +++ b/integration-tests/invoke_test.go @@ -37,6 +37,7 @@ func TestInvokes(t *testing.T) { t.Run("invoke-kind", func(t *testing.T) { testInvokeKind(t, tmpConfigFile) }) + t.Run("invoke-kind-operator", func(t *testing.T) { testInvokeKindOperator(t, tmpConfigFile) }) @@ -99,11 +100,11 @@ func testInvokeKind(t *testing.T, tmpConfigFile string) { func testInvokeKindOperator(t *testing.T, tmpConfigFile string) { t.Helper() - stackParts := []string{"invoke", "kind", "--install_agent_with_operator"} + stackName := "invoke-kind-agent-with-operator" if os.Getenv("CI") == "true" { - stackParts = append(stackParts, os.Getenv("CI_PIPELINE_ID")) + stackName = fmt.Sprintf("%s-%s", stackName, os.Getenv("CI_PIPELINE_ID")) } - stackName := strings.Join(stackParts, "-") + t.Log("creating kind cluster with operator") createCmd := exec.Command("invoke", "create-kind", "--no-interactive", "--stack-name", stackName, "--no-use-aws-vault", "--config-path", tmpConfigFile) createOutput, err := createCmd.Output() From 8979e1f1e49c26f1063ef6a42e7e607947bf216c Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Mon, 8 Jul 2024 11:45:45 -0400 Subject: [PATCH 13/27] wip --- integration-tests/invoke_test.go | 22 +++++++++++----------- scenarios/aws/kindvm/run.go | 6 ++++++ 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/integration-tests/invoke_test.go b/integration-tests/invoke_test.go index 0ae315e26..21d56aed6 100644 --- a/integration-tests/invoke_test.go +++ b/integration-tests/invoke_test.go @@ -27,16 +27,16 @@ func TestInvokes(t *testing.T) { require.NoError(t, err) // Subtests - t.Run("invoke-vm", func(t *testing.T) { - testInvokeVM(t, tmpConfigFile) - }) - t.Run("invoke-docker-vm", func(t *testing.T) { - testInvokeDockerVM(t, tmpConfigFile) - }) - - t.Run("invoke-kind", func(t *testing.T) { - testInvokeKind(t, tmpConfigFile) - }) + //t.Run("invoke-vm", func(t *testing.T) { + // testInvokeVM(t, tmpConfigFile) + //}) + //t.Run("invoke-docker-vm", func(t *testing.T) { + // testInvokeDockerVM(t, tmpConfigFile) + //}) + // + //t.Run("invoke-kind", func(t *testing.T) { + // testInvokeKind(t, tmpConfigFile) + //}) t.Run("invoke-kind-operator", func(t *testing.T) { testInvokeKindOperator(t, tmpConfigFile) @@ -106,7 +106,7 @@ func testInvokeKindOperator(t *testing.T, tmpConfigFile string) { } t.Log("creating kind cluster with operator") - createCmd := exec.Command("invoke", "create-kind", "--no-interactive", "--stack-name", stackName, "--no-use-aws-vault", "--config-path", tmpConfigFile) + createCmd := exec.Command("invoke", "create-kind", "--install-agent-with-operator", "--no-interactive", "--stack-name", stackName, "--no-use-aws-vault", "--config-path", tmpConfigFile) createOutput, err := createCmd.Output() assert.NoError(t, err, "Error found creating kind cluster: %s", string(createOutput)) diff --git a/scenarios/aws/kindvm/run.go b/scenarios/aws/kindvm/run.go index 54c8b948e..a2c994cee 100644 --- a/scenarios/aws/kindvm/run.go +++ b/scenarios/aws/kindvm/run.go @@ -127,6 +127,11 @@ agents: // Deploy the operator if awsEnv.AgentDeploy() && awsEnv.AgentDeployWithOperator() { + customDda := fmt.Sprintf(` +features: + liveProcessCollection: + enabled: true +`) operatorOpts := make([]operatorparams.Option, 0) operatorOpts = append( operatorOpts, @@ -138,6 +143,7 @@ agents: ddaOptions, agentwithoperatorparams.WithNamespace("datadog"), agentwithoperatorparams.WithTLSKubeletVerify(false), + agentwithoperatorparams.WithDDAConfig(customDda), ) operatorAgentComponent, err := agent.NewDDAWithOperator(&awsEnv, awsEnv.CommonNamer().ResourceName("dd-operator-agent"), kindKubeProvider, operatorOpts, ddaOptions...) From eed23108ba42a65dc51a276455446931e4134f6b Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Mon, 8 Jul 2024 13:07:45 -0400 Subject: [PATCH 14/27] wip --- integration-tests/invoke_test.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/integration-tests/invoke_test.go b/integration-tests/invoke_test.go index b9d561702..c59afcd09 100644 --- a/integration-tests/invoke_test.go +++ b/integration-tests/invoke_test.go @@ -48,7 +48,8 @@ func TestInvokes(t *testing.T) { testInvokeKind(t, tmpConfigFile) }) t.Run("invoke-kind-operator", func(t *testing.T) { - testInvokeKindOperator(t, tmpConfigFile) + t.Parallel() + testInvokeKindOperator(t, tmpConfigFile) }) } @@ -116,12 +117,12 @@ func testInvokeKindOperator(t *testing.T, tmpConfigFile string) { } t.Log("creating kind cluster with operator") - createCmd := exec.Command("invoke", "create-kind", "--install-agent-with-operator", "--no-interactive", "--stack-name", stackName, "--no-use-aws-vault", "--config-path", tmpConfigFile) + createCmd := exec.Command("invoke", "create-kind", "--install-agent-with-operator", "--no-interactive", "--stack-name", stackName, "--config-path", tmpConfigFile, "--use-fakeintake", "--use-loadBalancer") createOutput, err := createCmd.Output() assert.NoError(t, err, "Error found creating kind cluster: %s", string(createOutput)) t.Log("destroying kind cluster") - destroyCmd := exec.Command("invoke", "destroy-kind", "--yes", "--stack-name", stackName, "--config-path", tmpConfigFile) + destroyCmd := exec.Command("invoke", "destroy-kind", "--yes", "--stack-name", stackName, "--no-use-aws-vault", "--config-path", tmpConfigFile) destroyOutput, err := destroyCmd.Output() require.NoError(t, err, "Error found destroying kind cluster: %s", string(destroyOutput)) } From e6f99d6811360e711b12a111faa1aa9e86274db0 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Tue, 9 Jul 2024 20:28:00 -0400 Subject: [PATCH 15/27] fix merging dda configs --- common/config/environment.go | 2 +- ...ith_operator.go => kubernetes_operator.go} | 0 components/datadog/apps/dda/datadogagent.go | 251 +++++++++++++----- components/datadog/operator/helm.go | 29 +- go.mod | 37 ++- go.sum | 72 ++++- scenarios/aws/kindvm/run.go | 14 +- 7 files changed, 306 insertions(+), 99 deletions(-) rename components/datadog/agent/{agent_with_operator.go => kubernetes_operator.go} (100%) diff --git a/common/config/environment.go b/common/config/environment.go index a0e6628ba..8acd927a4 100644 --- a/common/config/environment.go +++ b/common/config/environment.go @@ -235,7 +235,7 @@ func (e *CommonEnvironment) AgentDeploy() bool { } func (e *CommonEnvironment) AgentDeployWithOperator() bool { - return e.GetBoolWithDefault(e.OperatorConfig, DDAgentDeployWithOperatorParamName, false) + return e.GetBoolWithDefault(e.AgentConfig, DDAgentDeployWithOperatorParamName, false) } func (e *CommonEnvironment) AgentVersion() string { diff --git a/components/datadog/agent/agent_with_operator.go b/components/datadog/agent/kubernetes_operator.go similarity index 100% rename from components/datadog/agent/agent_with_operator.go rename to components/datadog/agent/kubernetes_operator.go diff --git a/components/datadog/apps/dda/datadogagent.go b/components/datadog/apps/dda/datadogagent.go index 5723ac5c1..1db75c567 100644 --- a/components/datadog/apps/dda/datadogagent.go +++ b/components/datadog/apps/dda/datadogagent.go @@ -1,6 +1,9 @@ package dda import ( + "encoding/json" + "fmt" + "dario.cat/mergo" "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes" "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions" @@ -16,6 +19,9 @@ import ( ) func K8sAppDefinition(e config.Env, kubeProvider *kubernetes.Provider, namespace string, fakeIntake *fakeintake.Fakeintake, kubeletTLSVerify bool, clusterName string, customDda string, opts ...pulumi.ResourceOption) (*componentskube.Workload, error) { + apiKey := e.AgentAPIKey() + appKey := e.AgentAPPKey() + baseName := "dda-with-operator" opts = append(opts, pulumi.Provider(kubeProvider), pulumi.Parent(kubeProvider), pulumi.DeletedWith(kubeProvider)) k8sComponent := &componentskube.Workload{} @@ -41,108 +47,217 @@ func K8sAppDefinition(e config.Env, kubeProvider *kubernetes.Provider, namespace opts = append(opts, utils.PulumiDependsOn(ns)) - var imagePullSecrets corev1.LocalObjectReferenceArray + // Create secret if necessary + secret, err := corev1.NewSecret(e.Ctx(), "datadog-credentials", &corev1.SecretArgs{ + Metadata: metav1.ObjectMetaArgs{ + Namespace: ns.Metadata.Name(), + Name: pulumi.Sprintf("%s-datadog-credentials", baseName), + }, + StringData: pulumi.StringMap{ + "api-key": apiKey, + "app-key": appKey, + }, + }, opts...) + if err != nil { + return nil, err + } + opts = append(opts, utils.PulumiDependsOn(secret)) + + ddaConfig := buildDDAConfig(baseName, clusterName, kubeletTLSVerify) + if e.AgentUseFakeintake() { + configureFakeIntake(ddaConfig, fakeIntake) + } + ddaConfig, err = mergeYamlToConfig(ddaConfig, customDda) + + if err != nil { + return nil, err + } + + // Image pull secrets need to be configured after custom DDA config merge because pulumi.StringOutput cannot be marshalled to JSON + var imagePullSecret *corev1.Secret if e.ImagePullRegistry() != "" { - imgPullSecret, err := utils.NewImagePullSecret(e, namespace, opts...) + imagePullSecret, err = utils.NewImagePullSecret(e, namespace, opts...) if err != nil { return nil, err } - - imagePullSecrets = append(imagePullSecrets, corev1.LocalObjectReferenceArgs{ - Name: imgPullSecret.Metadata.Name(), - }) + opts = append(opts, utils.PulumiDependsOn(imagePullSecret)) + configureImagePullSecret(ddaConfig, imagePullSecret) } - ddaArgs := kubernetes.UntypedArgs{} - err = yaml.Unmarshal([]byte(customDda), &ddaArgs) + _, err = apiextensions.NewCustomResource(e.Ctx(), "datadog-agent", &apiextensions.CustomResourceArgs{ + ApiVersion: pulumi.String("datadoghq.com/v2alpha1"), + Kind: pulumi.String("DatadogAgent"), + Metadata: &metav1.ObjectMetaArgs{ + Name: pulumi.String("datadog"), + Namespace: pulumi.String("datadog"), + }, + OtherFields: ddaConfig, + }, opts...) if err != nil { return nil, err } - defaultArgs := kubernetes.UntypedArgs{ + return k8sComponent, nil +} + +func buildDDAConfig(baseName string, clusterName string, kubeletTLSVerify bool) kubernetes.UntypedArgs { + return kubernetes.UntypedArgs{ "spec": pulumi.Map{ "global": pulumi.Map{ - "credentials": pulumi.Map{ - "apiKey": pulumi.StringInput(e.AgentAPIKey()), - "appKey": pulumi.StringInput(e.AgentAPPKey()), - }, "clusterName": pulumi.String(clusterName), "kubelet": pulumi.Map{ "tlsVerify": pulumi.Bool(kubeletTLSVerify), }, - }, - "override": pulumi.Map{ - "nodeAgent": pulumi.Map{ - "image": pulumi.Map{ - "pullSecrets": imagePullSecrets, + "credentials": pulumi.Map{ + "apiSecret": pulumi.Map{ + "secretName": pulumi.String(baseName + "-datadog-credentials"), + "keyName": pulumi.String("api-key"), }, - }, - "clusterAgent": pulumi.Map{ - "image": pulumi.Map{ - "pullSecrets": imagePullSecrets, + "appSecret": pulumi.Map{ + "secretName": pulumi.String(baseName + "-datadog-credentials"), + "keyName": pulumi.String("app-key"), }, }, - "clusterChecksRunner": pulumi.Map{ - "image": pulumi.Map{ - "pullSecrets": imagePullSecrets, - }, + }, + "features": pulumi.Map{ + "clusterChecks": pulumi.Map{ + "enabled": pulumi.Bool(true), + "useClusterChecksRunners": pulumi.Bool(true), + }, + "dogstatsd": pulumi.Map{ + "tagCardinality": pulumi.String("high"), + }, + "logCollection": pulumi.Map{ + "enabled": pulumi.Bool(true), + "containerCollectAll": pulumi.Bool(true), + "containerCollectUsingFiles": pulumi.Bool(true), + }, + "prometheusScrape": pulumi.Map{ + "enabled": pulumi.Bool(true), + "version": pulumi.Int(2), + }, + "liveProcessCollection": pulumi.Map{ + "enabled": pulumi.Bool(true), + }, + "eventCollection": pulumi.Map{ + "collectKubernetesEvents": pulumi.Bool(false), }, }, }, } +} - if e.AgentUseFakeintake() { - err = mergo.Merge(&ddaArgs, kubernetes.UntypedArgs{ - "spec": pulumi.Map{ - "override": pulumi.Map{ - "nodeAgent": pulumi.Map{ - "env": pulumi.MapArray{ - pulumi.Map{ - "name": pulumi.String("DD_ADDITIONAL_ENDPOINTS"), - "value": pulumi.Sprintf(`{"%s": ["FAKEAPIKEY"]}`, fakeIntake.URL), - }, - }, - }, - "clusterAgent": pulumi.Map{ - "env": pulumi.MapArray{ - pulumi.Map{ - "name": pulumi.String("DD_ADDITIONAL_ENDPOINTS"), - "value": pulumi.Sprintf(`{"%s": ["FAKEAPIKEY"]}`, fakeIntake.URL), - }, +func configureFakeIntake(config kubernetes.UntypedArgs, fakeintake *fakeintake.Fakeintake) { + if fakeintake == nil { + return + } + endpointsEnvVar := pulumi.StringMapArray{ + pulumi.StringMap{ + "name": pulumi.String("DD_DD_URL"), + "value": pulumi.String(fmt.Sprintf("%v", fakeintake.URL)), + }, + pulumi.StringMap{ + "name": pulumi.String("DD_PROCESS_CONFIG_PROCESS_DD_URL"), + "value": pulumi.String(fmt.Sprintf("%v", fakeintake.URL)), + }, + pulumi.StringMap{ + "name": pulumi.String("DD_APM_DD_URL"), + "value": pulumi.String(fmt.Sprintf("%v", fakeintake.URL)), + }, + pulumi.StringMap{ + "name": pulumi.String("DD_SKIP_SSL_VALIDATION"), + "value": pulumi.String("true"), + }, + pulumi.StringMap{ + "name": pulumi.String("DD_REMOTE_CONFIGURATION_NO_TLS_VALIDATION"), + "value": pulumi.String("true"), + }, + pulumi.StringMap{ + "name": pulumi.String("DD_LOGS_CONFIG_USE_HTTP"), + "value": pulumi.String("true"), + }, + } + for _, section := range []string{"nodeAgent", "clusterAgent", "clusterChecksRunner"} { + if _, found := config["spec"].(pulumi.Map)["override"]; !found { + config["spec"].(pulumi.Map)["override"] = pulumi.Map{ + section: pulumi.Map{ + "env": endpointsEnvVar, + }, + } + } else if _, found = config["spec"].(pulumi.Map)["override"].(pulumi.Map)[section]; !found { + config["spec"].(pulumi.Map)["override"].(pulumi.Map)[section] = pulumi.Map{ + "env": endpointsEnvVar, + } + } else if _, found = config["spec"].(pulumi.Map)["override"].(pulumi.Map)[section].(pulumi.Map)["env"]; !found { + config["spec"].(pulumi.Map)["override"].(pulumi.Map)[section].(pulumi.Map)["env"] = endpointsEnvVar + } else { + config["spec"].(pulumi.Map)["override"].(pulumi.Map)[section].(pulumi.Map)["env"] = append(config["spec"].(pulumi.Map)["override"].(pulumi.Map)[section].(pulumi.Map)["env"].(pulumi.StringMapArray), endpointsEnvVar...) + } + } +} + +func configureImagePullSecret(config kubernetes.UntypedArgs, secret *corev1.Secret) { + if secret == nil { + return + } + + for _, section := range []string{"nodeAgent", "clusterAgent", "clusterChecksRunner"} { + if _, found := config["spec"].(map[string]interface{})["override"].(map[string]interface{})[section]; !found { + config["spec"].(map[string]interface{})["override"].(map[string]interface{})[section] = pulumi.Map{ + "image": pulumi.Map{ + "pullSecrets": pulumi.MapArray{ + pulumi.Map{ + "name": secret.Metadata.Name(), }, }, - "clusterChecksRunner": pulumi.Map{ - "env": pulumi.MapArray{ - pulumi.Map{ - "name": pulumi.String("DD_ADDITIONAL_ENDPOINTS"), - "value": pulumi.Sprintf(`{"%s": ["FAKEAPIKEY"]}`, fakeIntake.URL), - }, - }, + }, + } + } else if _, found = config["spec"].(map[string]interface{})["override"].(map[string]interface{})[section].(map[string]interface{})["image"]; !found { + config["spec"].(map[string]interface{})["override"].(map[string]interface{})[section].(map[string]interface{})["image"] = pulumi.Map{ + "pullSecrets": pulumi.MapArray{ + pulumi.Map{ + "name": secret.Metadata.Name(), }, - }}, - }) - if err != nil { - return nil, err + }, + } + } else { + config["spec"].(map[string]interface{})["override"].(map[string]interface{})[section].(map[string]interface{})["image"].(map[string]interface{})["pullSecrets"] = pulumi.MapArray{ + pulumi.Map{ + "name": secret.Metadata.Name(), + }, + } } } +} - err = mergo.Merge(&ddaArgs, defaultArgs) +func mergeYamlToConfig(config kubernetes.UntypedArgs, yamlConfig string) (kubernetes.UntypedArgs, error) { + var configMap, yamlMap map[string]interface{} + configJSON, err := json.Marshal(config) if err != nil { - return nil, err + fmt.Println(fmt.Sprintf("Error marshalling original DDA config: %v)", err)) + return config, err } - _, err = apiextensions.NewCustomResource(e.Ctx(), "datadog-agent", &apiextensions.CustomResourceArgs{ - ApiVersion: pulumi.String("datadoghq.com/v2alpha1"), - Kind: pulumi.String("DatadogAgent"), - Metadata: &metav1.ObjectMetaArgs{ - Name: pulumi.String("datadog"), - Namespace: pulumi.String("datadog"), - }, - OtherFields: ddaArgs, - }, opts...) + if err := json.Unmarshal(configJSON, &configMap); err != nil { + return config, fmt.Errorf("error unmarshalling original DDA config: %v", err) + } + if err := yaml.Unmarshal([]byte(yamlConfig), &yamlMap); err != nil { + return config, fmt.Errorf("error unmarshalling new DDA yaml config: %v", err) + } + + if err := mergo.Map(&configMap, yamlMap, mergo.WithOverride); err != nil { + return config, fmt.Errorf("error merging DDA configs: %v", err) + } + + merged, err := json.Marshal(configMap) if err != nil { - return nil, err + return config, fmt.Errorf("error marshalling merged DDA config: %v", err) } - return k8sComponent, nil + var mergedConfig kubernetes.UntypedArgs + if err = json.Unmarshal(merged, &mergedConfig); err != nil { + return config, fmt.Errorf("error ummarshalling merged DDA config: %v", err) + } + + return mergedConfig, nil } diff --git a/components/datadog/operator/helm.go b/components/datadog/operator/helm.go index bf49ae8c9..875d021bc 100644 --- a/components/datadog/operator/helm.go +++ b/components/datadog/operator/helm.go @@ -6,6 +6,7 @@ import ( kubeHelm "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v3" metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "gopkg.in/yaml.v3" "github.com/DataDog/test-infra-definitions/common/config" "github.com/DataDog/test-infra-definitions/common/utils" @@ -23,7 +24,7 @@ type HelmInstallationArgs struct { // Namespace is the namespace in which to install the operator Namespace string // ValuesYAML is used to provide installation-specific values - ValuesYAML pulumi.AssetOrArchiveArrayInput + ValuesYAML pulumi.AssetOrArchiveArray // OperatorFullImagePath is used to specify the full image path for the agent OperatorFullImagePath string } @@ -87,6 +88,7 @@ func NewHelmInstallation(e config.Env, args HelmInstallationArgs, opts ...pulumi // Compute some values operatorImagePath := dockerOperatorFullImagePath(e, "", "") + if args.OperatorFullImagePath != "" { operatorImagePath = args.OperatorFullImagePath } @@ -96,13 +98,18 @@ func NewHelmInstallation(e config.Env, args HelmInstallationArgs, opts ...pulumi values := buildLinuxHelmValues(baseName, operatorImagePath, operatorImageTag) values.configureImagePullSecret(imgPullSecret) + defaultYAMLValues := values.toYAMLPulumiAssetOutput() + + var valuesYAML pulumi.AssetOrArchiveArray + valuesYAML = append(valuesYAML, defaultYAMLValues) + valuesYAML = append(valuesYAML, args.ValuesYAML...) + linux, err := helm.NewInstallation(e, helm.InstallArgs{ RepoURL: DatadogHelmRepo, ChartName: "datadog-operator", InstallName: linuxInstallName, Namespace: args.Namespace, - ValuesYAML: args.ValuesYAML, - Values: pulumi.Map(values), + ValuesYAML: valuesYAML, }, opts...) if err != nil { return nil, err @@ -130,8 +137,9 @@ func buildLinuxHelmValues(baseName string, operatorImagePath string, operatorIma "apiKeyExistingSecret": pulumi.String(baseName + "-datadog-credentials"), "appKeyExistingSecret": pulumi.String(baseName + "-datadog-credentials"), "image": pulumi.Map{ - "repository": pulumi.String(operatorImagePath), - "tag": pulumi.String(operatorImageTag), + "repository": pulumi.String(operatorImagePath), + "tag": pulumi.String(operatorImageTag), + "doNotCheckTag": pulumi.Bool(true), }, "logLevel": pulumi.String("debug"), "introspection": pulumi.Map{ @@ -186,3 +194,14 @@ func (values HelmValues) configureImagePullSecret(secret *corev1.Secret) { } } + +func (values HelmValues) toYAMLPulumiAssetOutput() pulumi.AssetOutput { + return pulumi.Map(values).ToMapOutput().ApplyT(func(v map[string]interface{}) (pulumi.Asset, error) { + yamlValues, err := yaml.Marshal(v) + if err != nil { + return nil, err + } + return pulumi.NewStringAsset(string(yamlValues)), nil + }).(pulumi.AssetOutput) + +} diff --git a/go.mod b/go.mod index 4c3a45ff2..e128e915a 100644 --- a/go.mod +++ b/go.mod @@ -1,16 +1,17 @@ module github.com/DataDog/test-infra-definitions -go 1.21 +go 1.22.0 + +toolchain go1.22.5 require ( - dario.cat/mergo v1.0.0 github.com/DataDog/datadog-agent/pkg/util/optional v0.52.1 github.com/Masterminds/semver v1.5.0 github.com/alessio/shellescape v1.4.2 github.com/aws/aws-sdk-go-v2 v1.26.1 github.com/aws/aws-sdk-go-v2/config v1.27.11 github.com/aws/aws-sdk-go-v2/service/ecs v1.41.7 - github.com/aws/aws-sdk-go-v2/service/s3 v1.51.3 + github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 github.com/cenkalti/backoff/v4 v4.2.1 github.com/google/gofuzz v1.2.0 github.com/pulumi/pulumi-aws/sdk/v6 v6.25.0 @@ -32,9 +33,11 @@ require ( github.com/stretchr/testify v1.9.0 golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 gopkg.in/yaml.v3 v3.0.1 + k8s.io/apimachinery v0.30.2 ) require ( + dario.cat/mergo v1.0.0 // indirect github.com/BurntSushi/toml v1.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v1.0.0 // indirect @@ -42,17 +45,17 @@ require ( github.com/agext/levenshtein v1.2.3 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/atotto/clipboard v0.1.4 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.2 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect @@ -73,9 +76,15 @@ require ( github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-git/go-git/v5 v5.12.0 // indirect + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-openapi/jsonpointer v0.19.6 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect + github.com/go-openapi/swag v0.22.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/glog v1.2.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/gnostic-models v0.6.8 // indirect github.com/google/uuid v1.6.0 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -84,19 +93,23 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect + github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/reflow v0.3.0 // indirect github.com/muesli/termenv v0.15.2 // indirect github.com/nxadm/tail v1.4.11 // indirect - github.com/onsi/gomega v1.31.0 // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pgavlin/fx v0.1.6 // indirect @@ -133,7 +146,15 @@ require ( google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect google.golang.org/grpc v1.63.2 // indirect google.golang.org/protobuf v1.34.0 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect lukechampine.com/frand v1.4.2 // indirect + sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + sigs.k8s.io/yaml v1.3.0 // indirect ) diff --git a/go.sum b/go.sum index 15482cd8b..1d2c92b13 100644 --- a/go.sum +++ b/go.sum @@ -29,8 +29,8 @@ github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 h1:gTK2uhtAPtFcdRRJilZPx8uJLL2J85xK11nKtWL0wfU= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1/go.mod h1:sxpLb+nZk7tIfCWChfd+h4QwHNUR57d8hA1cleTkjJo= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA= github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE= github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs= @@ -43,20 +43,20 @@ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3C github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.2 h1:en92G0Z7xlksoOylkUhuBSfJgijC7rHVLRdnIlHEs0E= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.2/go.mod h1:HgtQ/wN5G+8QSlK62lbOtNwQ3wTSByJ4wH2rCkPt+AE= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= github.com/aws/aws-sdk-go-v2/service/ecs v1.41.7 h1:aFdgmJ8G385PVC9mp8b9roGGHU/XbrKEQTbzl6V0GbE= github.com/aws/aws-sdk-go-v2/service/ecs v1.41.7/go.mod h1:rcFIIrVk3NGCT3BV84HQM3ut+Dr1PO71UvvT8GeLAv4= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.4 h1:J3Q6N2sTChfYLZSTey3Qeo7n3JSm6RTJDcKev+7Sbus= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.4/go.mod h1:ZopsdDMVg1H03X7BdzpGaufOkuz27RjtKDzioP2U0Hg= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.2 h1:1oY1AVEisRI4HNuFoLdRUB0hC63ylDAN6Me3MrfclEg= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.2/go.mod h1:KZ03VgvZwSjkT7fOetQ/wF3MZUvYFirlI1H5NklUNsY= -github.com/aws/aws-sdk-go-v2/service/s3 v1.51.3 h1:7cR4xxS480TI0R6Bd75g9Npdw89VriquvQPlMNmuds4= -github.com/aws/aws-sdk-go-v2/service/s3 v1.51.3/go.mod h1:zb72GZ2MvfCX5ynVJ+Mc/NCx7hncbsko4NZm5E+p6J4= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= +github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= +github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w= github.com/aws/aws-sdk-go-v2/service/sso v1.20.5/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE= @@ -86,6 +86,7 @@ github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBS github.com/containerd/console v1.0.4 h1:F2g4+oChYvBTsASRTz8NP6iIAi97J3TtSAsLbIFn4ro= github.com/containerd/console v1.0.4/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -115,6 +116,16 @@ github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMj github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= +github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -124,10 +135,16 @@ github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= @@ -147,12 +164,17 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -161,6 +183,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= @@ -178,6 +202,11 @@ github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= @@ -188,6 +217,8 @@ github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= +github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= +github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= github.com/onsi/gomega v1.31.0 h1:54UJxxj6cPInHS3a35wm6BK/F9nHYueZ1NVujHDrnXE= github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk= github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0= @@ -264,6 +295,8 @@ github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyh github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -271,6 +304,9 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= @@ -393,6 +429,8 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= @@ -404,7 +442,21 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +k8s.io/apimachinery v0.30.2 h1:fEMcnBj6qkzzPGSVsAZtQThU62SmQ4ZymlXRC5yFSCg= +k8s.io/apimachinery v0.30.2/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw= lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s= pgregory.net/rapid v0.6.1 h1:4eyrDxyht86tT4Ztm+kvlyNBLIk071gR+ZQdhphc9dQ= pgregory.net/rapid v0.6.1/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= +sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= diff --git a/scenarios/aws/kindvm/run.go b/scenarios/aws/kindvm/run.go index a2c994cee..45f88a2fc 100644 --- a/scenarios/aws/kindvm/run.go +++ b/scenarios/aws/kindvm/run.go @@ -127,23 +127,23 @@ agents: // Deploy the operator if awsEnv.AgentDeploy() && awsEnv.AgentDeployWithOperator() { - customDda := fmt.Sprintf(` -features: - liveProcessCollection: - enabled: true -`) operatorOpts := make([]operatorparams.Option, 0) operatorOpts = append( operatorOpts, operatorparams.WithNamespace("datadog"), - operatorparams.WithFakeIntake(fakeIntake), ) + if fakeIntake != nil { + operatorOpts = append( + operatorOpts, + operatorparams.WithFakeIntake(fakeIntake), + ) + } + ddaOptions := make([]agentwithoperatorparams.Option, 0) ddaOptions = append( ddaOptions, agentwithoperatorparams.WithNamespace("datadog"), agentwithoperatorparams.WithTLSKubeletVerify(false), - agentwithoperatorparams.WithDDAConfig(customDda), ) operatorAgentComponent, err := agent.NewDDAWithOperator(&awsEnv, awsEnv.CommonNamer().ResourceName("dd-operator-agent"), kindKubeProvider, operatorOpts, ddaOptions...) From f55ba7bb1d932c83e32c8e5d637bdc9564f372f4 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Tue, 9 Jul 2024 21:20:15 -0400 Subject: [PATCH 16/27] update go deps, fix tests --- go.mod | 23 ++------------ go.sum | 52 -------------------------------- integration-tests/invoke_test.go | 8 ++--- 3 files changed, 6 insertions(+), 77 deletions(-) diff --git a/go.mod b/go.mod index e128e915a..23e533987 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.22.0 toolchain go1.22.5 require ( + dario.cat/mergo v1.0.0 github.com/DataDog/datadog-agent/pkg/util/optional v0.52.1 github.com/Masterminds/semver v1.5.0 github.com/alessio/shellescape v1.4.2 @@ -33,11 +34,9 @@ require ( github.com/stretchr/testify v1.9.0 golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 gopkg.in/yaml.v3 v3.0.1 - k8s.io/apimachinery v0.30.2 ) require ( - dario.cat/mergo v1.0.0 // indirect github.com/BurntSushi/toml v1.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v1.0.0 // indirect @@ -76,15 +75,9 @@ require ( github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-git/go-git/v5 v5.12.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect - github.com/go-openapi/jsonpointer v0.19.6 // indirect - github.com/go-openapi/jsonreference v0.20.2 // indirect - github.com/go-openapi/swag v0.22.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/glog v1.2.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.4 // indirect - github.com/google/gnostic-models v0.6.8 // indirect github.com/google/uuid v1.6.0 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -93,23 +86,19 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/josharian/intern v1.0.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect - github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/reflow v0.3.0 // indirect github.com/muesli/termenv v0.15.2 // indirect github.com/nxadm/tail v1.4.11 // indirect + github.com/onsi/gomega v1.31.0 // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pgavlin/fx v0.1.6 // indirect @@ -146,15 +135,7 @@ require ( google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect google.golang.org/grpc v1.63.2 // indirect google.golang.org/protobuf v1.34.0 // indirect - gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect - k8s.io/klog/v2 v2.120.1 // indirect - k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect - k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect lukechampine.com/frand v1.4.2 // indirect - sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect ) diff --git a/go.sum b/go.sum index 1d2c92b13..b00e33341 100644 --- a/go.sum +++ b/go.sum @@ -86,7 +86,6 @@ github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBS github.com/containerd/console v1.0.4 h1:F2g4+oChYvBTsASRTz8NP6iIAi97J3TtSAsLbIFn4ro= github.com/containerd/console v1.0.4/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -116,16 +115,6 @@ github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMj github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= -github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= -github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= -github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= -github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -135,16 +124,10 @@ github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= -github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= @@ -164,17 +147,12 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -183,8 +161,6 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= @@ -202,11 +178,6 @@ github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= @@ -217,8 +188,6 @@ github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= -github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= -github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= github.com/onsi/gomega v1.31.0 h1:54UJxxj6cPInHS3a35wm6BK/F9nHYueZ1NVujHDrnXE= github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk= github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0= @@ -295,8 +264,6 @@ github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyh github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -304,9 +271,6 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= @@ -429,8 +393,6 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= @@ -442,21 +404,7 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/apimachinery v0.30.2 h1:fEMcnBj6qkzzPGSVsAZtQThU62SmQ4ZymlXRC5yFSCg= -k8s.io/apimachinery v0.30.2/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= -k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= -k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw= lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s= pgregory.net/rapid v0.6.1 h1:4eyrDxyht86tT4Ztm+kvlyNBLIk071gR+ZQdhphc9dQ= pgregory.net/rapid v0.6.1/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= diff --git a/integration-tests/invoke_test.go b/integration-tests/invoke_test.go index c59afcd09..3419795d4 100644 --- a/integration-tests/invoke_test.go +++ b/integration-tests/invoke_test.go @@ -104,14 +104,14 @@ func testInvokeKind(t *testing.T, tmpConfigFile string) { assert.NoError(t, err, "Error found creating kind cluster: %s", string(createOutput)) t.Log("destroying kind cluster") - destroyCmd := exec.Command("invoke", "destroy-kind", "--yes", "--stack-name", stackName, "--no-use-aws-vault", "--config-path", tmpConfigFile) + destroyCmd := exec.Command("invoke", "destroy-kind", "--yes", "--stack-name", stackName, "--config-path", tmpConfigFile) destroyOutput, err := destroyCmd.Output() require.NoError(t, err, "Error found destroying kind cluster: %s", string(destroyOutput)) } func testInvokeKindOperator(t *testing.T, tmpConfigFile string) { t.Helper() - stackName := "invoke-kind-agent-with-operator" + stackName := "invoke-kind-with-operator" if os.Getenv("CI") == "true" { stackName = fmt.Sprintf("%s-%s", stackName, os.Getenv("CI_PIPELINE_ID")) } @@ -121,8 +121,8 @@ func testInvokeKindOperator(t *testing.T, tmpConfigFile string) { createOutput, err := createCmd.Output() assert.NoError(t, err, "Error found creating kind cluster: %s", string(createOutput)) - t.Log("destroying kind cluster") - destroyCmd := exec.Command("invoke", "destroy-kind", "--yes", "--stack-name", stackName, "--no-use-aws-vault", "--config-path", tmpConfigFile) + t.Log("destroying kind cluster with operator") + destroyCmd := exec.Command("invoke", "destroy-kind", "--yes", "--stack-name", stackName, "--config-path", tmpConfigFile) destroyOutput, err := destroyCmd.Output() require.NoError(t, err, "Error found destroying kind cluster: %s", string(destroyOutput)) } From d659ee3ab15e2798918411e4d7cbca1417932642 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Wed, 10 Jul 2024 10:53:51 -0400 Subject: [PATCH 17/27] fix go.mod --- go.mod | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 23e533987..672ba33c5 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,6 @@ module github.com/DataDog/test-infra-definitions -go 1.22.0 - -toolchain go1.22.5 +go 1.21 require ( dario.cat/mergo v1.0.0 From 5514217f52f6de25884aba1fba0694ddb2049364 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Fri, 12 Jul 2024 11:13:20 -0400 Subject: [PATCH 18/27] update go.mod and go.sum --- go.mod | 1 - go.sum | 2 -- 2 files changed, 3 deletions(-) diff --git a/go.mod b/go.mod index c447b2a67..9c6f25648 100644 --- a/go.mod +++ b/go.mod @@ -94,7 +94,6 @@ require ( github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/reflow v0.3.0 // indirect github.com/muesli/termenv v0.15.2 // indirect - github.com/nxadm/tail v1.4.11 // indirect github.com/onsi/gomega v1.31.0 // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect diff --git a/go.sum b/go.sum index 10916dbca..16265e223 100644 --- a/go.sum +++ b/go.sum @@ -183,8 +183,6 @@ github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= -github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= -github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= github.com/onsi/gomega v1.31.0 h1:54UJxxj6cPInHS3a35wm6BK/F9nHYueZ1NVujHDrnXE= github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk= github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0= From 75fd27e9523af8cb42cc14188365859097a1a511 Mon Sep 17 00:00:00 2001 From: pducolin Date: Mon, 15 Jul 2024 11:09:02 +0200 Subject: [PATCH 19/27] [test] execute operator kind test from dist --- integration-tests/invoke_test.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/integration-tests/invoke_test.go b/integration-tests/invoke_test.go index 65aad5a27..ea92e7401 100644 --- a/integration-tests/invoke_test.go +++ b/integration-tests/invoke_test.go @@ -63,7 +63,7 @@ func TestInvokes(t *testing.T) { }) t.Run("invoke-kind-operator", func(t *testing.T) { t.Parallel() - testInvokeKindOperator(t, tmpConfigFile) + testInvokeKindOperator(t, tmpConfigFile, *workingDir) }) } @@ -129,7 +129,7 @@ func testInvokeKind(t *testing.T, tmpConfigFile string, workingDirectory string) require.NoError(t, err, "Error found destroying kind cluster: %s", string(destroyOutput)) } -func testInvokeKindOperator(t *testing.T, tmpConfigFile string) { +func testInvokeKindOperator(t *testing.T, tmpConfigFile string, workingDirectory string) { t.Helper() stackName := "invoke-kind-with-operator" if os.Getenv("CI") == "true" { @@ -138,11 +138,13 @@ func testInvokeKindOperator(t *testing.T, tmpConfigFile string) { t.Log("creating kind cluster with operator") createCmd := exec.Command("invoke", "create-kind", "--install-agent-with-operator", "--no-interactive", "--stack-name", stackName, "--config-path", tmpConfigFile, "--use-fakeintake", "--use-loadBalancer") + createCmd.Dir = workingDirectory createOutput, err := createCmd.Output() assert.NoError(t, err, "Error found creating kind cluster: %s", string(createOutput)) t.Log("destroying kind cluster with operator") destroyCmd := exec.Command("invoke", "destroy-kind", "--yes", "--stack-name", stackName, "--config-path", tmpConfigFile) + destroyCmd.Dir = workingDirectory destroyOutput, err := destroyCmd.Output() require.NoError(t, err, "Error found destroying kind cluster: %s", string(destroyOutput)) } From e06602f5587e94f46f0b0952174467e6e77a2db9 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Tue, 23 Jul 2024 19:49:24 -0400 Subject: [PATCH 20/27] fix var and use aws.create-kind --- common/config/environment.go | 2 +- integration-tests/invoke_test.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/common/config/environment.go b/common/config/environment.go index c76893ff2..ecbe90b49 100644 --- a/common/config/environment.go +++ b/common/config/environment.go @@ -155,7 +155,7 @@ func NewCommonEnvironment(ctx *pulumi.Context) (CommonEnvironment, error) { ctx.Log.Debug(fmt.Sprintf("deploy: %v", env.AgentDeploy()), nil) ctx.Log.Debug(fmt.Sprintf("full image path: %v", env.AgentFullImagePath()), nil) ctx.Log.Debug(fmt.Sprintf("deploy with Operator: %v", env.AgentDeployWithOperator()), nil) - ctx.Log.Debug(fmt.Sprintf("operator full image path: %v", env.AgentFullImagePath()), nil) + ctx.Log.Debug(fmt.Sprintf("operator full image path: %v", env.OperatorFullImagePath()), nil) return env, nil } diff --git a/integration-tests/invoke_test.go b/integration-tests/invoke_test.go index f84d2a9cf..506204cd1 100644 --- a/integration-tests/invoke_test.go +++ b/integration-tests/invoke_test.go @@ -142,7 +142,7 @@ func testInvokeKind(t *testing.T, tmpConfigFile string, workingDirectory string) } stackName := strings.Join(stackParts, "-") t.Log("creating kind cluster") - createCmd := exec.Command("invoke", "create-kind", "--no-interactive", "--stack-name", stackName, "--config-path", tmpConfigFile, "--use-fakeintake", "--use-loadBalancer") + createCmd := exec.Command("invoke", "aws.create-kind", "--no-interactive", "--stack-name", stackName, "--config-path", tmpConfigFile, "--use-fakeintake", "--use-loadBalancer") createCmd.Dir = workingDirectory createOutput, err := createCmd.Output() assert.NoError(t, err, "Error found creating kind cluster: %s", string(createOutput)) @@ -162,7 +162,7 @@ func testInvokeKindOperator(t *testing.T, tmpConfigFile string, workingDirectory } t.Log("creating kind cluster with operator") - createCmd := exec.Command("invoke", "create-kind", "--install-agent-with-operator", "--no-interactive", "--stack-name", stackName, "--config-path", tmpConfigFile, "--use-fakeintake", "--use-loadBalancer") + createCmd := exec.Command("invoke", "aws.create-kind", "--install-agent-with-operator", "--no-interactive", "--stack-name", stackName, "--config-path", tmpConfigFile, "--use-fakeintake", "--use-loadBalancer") createCmd.Dir = workingDirectory createOutput, err := createCmd.Output() assert.NoError(t, err, "Error found creating kind cluster: %s", string(createOutput)) From 0101f0f7ca36f6e40bd802edd40f00c7794f9e8a Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Thu, 25 Jul 2024 18:07:13 -0400 Subject: [PATCH 21/27] fix variables and tests --- components/datadog/agent/kubernetes_operator.go | 6 +++--- integration-tests/invoke_test.go | 5 +++-- tasks/kind.py | 16 ++++++++-------- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/components/datadog/agent/kubernetes_operator.go b/components/datadog/agent/kubernetes_operator.go index b46d1983f..b710e4bc7 100644 --- a/components/datadog/agent/kubernetes_operator.go +++ b/components/datadog/agent/kubernetes_operator.go @@ -41,13 +41,13 @@ func NewDDAWithOperator(e config.Env, resourceName string, kubeProvider *kuberne baseName := "dda-linux" - comp.NodeAgent, err = NewKubernetesObjRef(e, baseName+"-nodeAgent", operatorParams.Namespace, "Pod", pulumi.String("appVersion").ToStringOutput(), pulumi.String("Version").ToStringOutput(), map[string]string{"app": baseName + "-datadog"}) + comp.LinuxNodeAgent, err = NewKubernetesObjRef(e, baseName+"-nodeAgent", operatorParams.Namespace, "Pod", pulumi.String("appVersion").ToStringOutput(), pulumi.String("Version").ToStringOutput(), map[string]string{"app": baseName + "-datadog"}) if err != nil { return err } - comp.ClusterAgent, err = NewKubernetesObjRef(e, baseName+"-clusterAgent", operatorParams.Namespace, "Pod", pulumi.String("appVersion").ToStringOutput(), pulumi.String("Version").ToStringOutput(), map[string]string{ + comp.LinuxClusterAgent, err = NewKubernetesObjRef(e, baseName+"-clusterAgent", operatorParams.Namespace, "Pod", pulumi.String("appVersion").ToStringOutput(), pulumi.String("Version").ToStringOutput(), map[string]string{ "app": baseName + "-datadog-cluster-agent", }) @@ -55,7 +55,7 @@ func NewDDAWithOperator(e config.Env, resourceName string, kubeProvider *kuberne return err } - comp.ClusterChecks, err = NewKubernetesObjRef(e, baseName+"-clusterChecks", operatorParams.Namespace, "Pod", pulumi.String("appVersion").ToStringOutput(), pulumi.String("version").ToStringOutput(), map[string]string{ + comp.LinuxClusterChecks, err = NewKubernetesObjRef(e, baseName+"-clusterChecks", operatorParams.Namespace, "Pod", pulumi.String("appVersion").ToStringOutput(), pulumi.String("version").ToStringOutput(), map[string]string{ "app": baseName + "-datadog-clusterchecks", }) diff --git a/integration-tests/invoke_test.go b/integration-tests/invoke_test.go index 506204cd1..7a0f12f61 100644 --- a/integration-tests/invoke_test.go +++ b/integration-tests/invoke_test.go @@ -69,6 +69,7 @@ func TestInvokes(t *testing.T) { t.Parallel() testInvokeKind(t, tmpConfigFile, *workingDir) }) + t.Run("invoke-kind-operator", func(t *testing.T) { t.Parallel() testInvokeKindOperator(t, tmpConfigFile, *workingDir) @@ -115,7 +116,7 @@ func testInvokeDockerVM(t *testing.T, tmpConfigFile string, workingDirectory str t.Log("creating vm with docker") var stdOut, stdErr bytes.Buffer - createCmd := exec.Command("invoke", "create-docker", "--no-interactive", "--stack-name", stackName, "--config-path", tmpConfigFile, "--use-fakeintake", "--use-loadBalancer") + createCmd := exec.Command("invoke", "aws.create-docker", "--no-interactive", "--stack-name", stackName, "--config-path", tmpConfigFile, "--use-fakeintake", "--use-loadBalancer") createCmd.Dir = workingDirectory createCmd.Stdout = &stdOut createCmd.Stderr = &stdErr @@ -165,7 +166,7 @@ func testInvokeKindOperator(t *testing.T, tmpConfigFile string, workingDirectory createCmd := exec.Command("invoke", "aws.create-kind", "--install-agent-with-operator", "--no-interactive", "--stack-name", stackName, "--config-path", tmpConfigFile, "--use-fakeintake", "--use-loadBalancer") createCmd.Dir = workingDirectory createOutput, err := createCmd.Output() - assert.NoError(t, err, "Error found creating kind cluster: %s", string(createOutput)) + assert.NoError(t, err, "Error found creating kind cluster: %s; %s", string(createOutput), err) t.Log("destroying kind cluster with operator") destroyCmd := exec.Command("invoke", "destroy-kind", "--yes", "--stack-name", stackName, "--config-path", tmpConfigFile) diff --git a/tasks/kind.py b/tasks/kind.py index f4e6a5456..7b68c8781 100644 --- a/tasks/kind.py +++ b/tasks/kind.py @@ -39,14 +39,14 @@ def create_kind( create_kind_aws( ctx, config_path, - key_pair_required=True, - stack_name=stack_name, - install_agent=install_agent, - install_agent_with_operator=install_agent_with_operator, - agent_version=agent_version, - use_fakeintake=use_fakeintake, - extra_flags=extra_flags, - app_key_required=True, + stack_name, + install_agent, + install_agent_with_operator, + agent_version, + architecture, + use_fakeintake, + use_loadBalancer, + interactive, ) From a65ec2d439e8029a49fd97b78d92bef87b10f2f6 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Thu, 25 Jul 2024 19:05:57 -0400 Subject: [PATCH 22/27] fix tests --- integration-tests/invoke_test.go | 4 ++-- tasks/aws/deploy.py | 2 ++ tasks/aws/kind.py | 3 +++ tasks/kind.py | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/integration-tests/invoke_test.go b/integration-tests/invoke_test.go index 7a0f12f61..3522bf86e 100644 --- a/integration-tests/invoke_test.go +++ b/integration-tests/invoke_test.go @@ -143,7 +143,7 @@ func testInvokeKind(t *testing.T, tmpConfigFile string, workingDirectory string) } stackName := strings.Join(stackParts, "-") t.Log("creating kind cluster") - createCmd := exec.Command("invoke", "aws.create-kind", "--no-interactive", "--stack-name", stackName, "--config-path", tmpConfigFile, "--use-fakeintake", "--use-loadBalancer") + createCmd := exec.Command("invoke", "create-kind", "--no-interactive", "--stack-name", stackName, "--config-path", tmpConfigFile, "--use-fakeintake", "--use-loadBalancer") createCmd.Dir = workingDirectory createOutput, err := createCmd.Output() assert.NoError(t, err, "Error found creating kind cluster: %s", string(createOutput)) @@ -163,7 +163,7 @@ func testInvokeKindOperator(t *testing.T, tmpConfigFile string, workingDirectory } t.Log("creating kind cluster with operator") - createCmd := exec.Command("invoke", "aws.create-kind", "--install-agent-with-operator", "--no-interactive", "--stack-name", stackName, "--config-path", tmpConfigFile, "--use-fakeintake", "--use-loadBalancer") + createCmd := exec.Command("invoke", "aws.create-kind", "--install-agent-with-operator", "true", "--no-interactive", "--stack-name", stackName, "--config-path", tmpConfigFile, "--use-fakeintake", "--use-loadBalancer") createCmd.Dir = workingDirectory createOutput, err := createCmd.Output() assert.NoError(t, err, "Error found creating kind cluster: %s; %s", string(createOutput), err) diff --git a/tasks/aws/deploy.py b/tasks/aws/deploy.py index 6d063d9b9..1459bdf75 100644 --- a/tasks/aws/deploy.py +++ b/tasks/aws/deploy.py @@ -23,6 +23,7 @@ def deploy( stack_name: Optional[str] = None, pipeline_id: Optional[str] = None, install_agent: Optional[bool] = None, + install_agent_with_operator: Optional[bool] = False, install_updater: Optional[bool] = None, install_workload: Optional[bool] = None, agent_version: Optional[str] = None, @@ -72,6 +73,7 @@ def deploy( stack_name, pipeline_id, install_agent, + install_agent_with_operator, install_updater, install_workload, agent_version, diff --git a/tasks/aws/kind.py b/tasks/aws/kind.py index e69c2807c..1dbdd6ae1 100644 --- a/tasks/aws/kind.py +++ b/tasks/aws/kind.py @@ -17,6 +17,7 @@ help={ "config_path": doc.config_path, "install_agent": doc.install_agent, + "install_agent_with_operator": doc.install_agent_with_operator, "agent_version": doc.container_agent_version, "stack_name": doc.stack_name, "architecture": doc.architecture, @@ -30,6 +31,7 @@ def create_kind( config_path: Optional[str] = None, stack_name: Optional[str] = None, install_agent: Optional[bool] = True, + install_agent_with_operator: Optional[bool] = None, agent_version: Optional[str] = None, architecture: Optional[str] = None, use_fakeintake: Optional[bool] = False, @@ -52,6 +54,7 @@ def create_kind( key_pair_required=True, stack_name=stack_name, install_agent=install_agent, + install_agent_with_operator=install_agent_with_operator, agent_version=agent_version, use_fakeintake=use_fakeintake, extra_flags=extra_flags, diff --git a/tasks/kind.py b/tasks/kind.py index 7b68c8781..6797b449d 100644 --- a/tasks/kind.py +++ b/tasks/kind.py @@ -25,7 +25,7 @@ def create_kind( config_path: Optional[str] = None, stack_name: Optional[str] = None, install_agent: Optional[bool] = True, - install_agent_with_operator: Optional[bool] = False, + install_agent_with_operator: Optional[bool] = None, agent_version: Optional[str] = None, architecture: Optional[str] = None, use_fakeintake: Optional[bool] = False, From 6ab134ab85c153809f3c280de74752de6c69bc92 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Mon, 29 Jul 2024 12:53:24 -0400 Subject: [PATCH 23/27] fix ecr var --- components/datadog/apps/fips/images/fips-server/go.mod | 6 ++++++ components/datadog/apps/fips/images/fips-server/go.sum | 7 +++++++ components/datadog/operator/docker_image.go | 5 ++--- go.sum | 4 ++-- 4 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 components/datadog/apps/fips/images/fips-server/go.sum diff --git a/components/datadog/apps/fips/images/fips-server/go.mod b/components/datadog/apps/fips/images/fips-server/go.mod index fe81103c9..c0315e764 100644 --- a/components/datadog/apps/fips/images/fips-server/go.mod +++ b/components/datadog/apps/fips/images/fips-server/go.mod @@ -1,8 +1,14 @@ module e2e_server +go 1.22.4 + require github.com/spf13/cobra v1.8.1 require ( + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect + gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/components/datadog/apps/fips/images/fips-server/go.sum b/components/datadog/apps/fips/images/fips-server/go.sum new file mode 100644 index 000000000..3e41cc411 --- /dev/null +++ b/components/datadog/apps/fips/images/fips-server/go.sum @@ -0,0 +1,7 @@ +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/components/datadog/operator/docker_image.go b/components/datadog/operator/docker_image.go index a46db56d7..baacee6f9 100644 --- a/components/datadog/operator/docker_image.go +++ b/components/datadog/operator/docker_image.go @@ -7,7 +7,6 @@ import ( "github.com/DataDog/test-infra-definitions/common/config" "github.com/DataDog/test-infra-definitions/common/utils" - "github.com/DataDog/test-infra-definitions/resources/aws" ) const ( @@ -21,9 +20,9 @@ func dockerOperatorFullImagePath(e config.Env, repositoryPath, imageTag string) return e.OperatorFullImagePath() } - // if agent pipeline id and commit sha are defined, use the image from the pipeline pushed on agent QA registry + // if operator pipeline id and commit sha are defined, use the image from the pipeline pushed on agent QA registry if e.PipelineID() != "" && e.CommitSHA() != "" { - return utils.BuildDockerImagePath(fmt.Sprintf("%s/operator", aws.AgentQAECR), fmt.Sprintf("%s-%s", e.PipelineID(), e.CommitSHA())) + return utils.BuildDockerImagePath(fmt.Sprintf("%s/operator", e.InternalRegistry()), fmt.Sprintf("%s-%s", e.PipelineID(), e.CommitSHA())) } if repositoryPath == "" { diff --git a/go.sum b/go.sum index 44c3b4f73..84179b484 100644 --- a/go.sum +++ b/go.sum @@ -29,8 +29,8 @@ github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= github.com/aws/aws-sdk-go-v2 v1.30.3 h1:jUeBtG0Ih+ZIFH0F4UkmL9w3cSpaMv9tYYDbzILP8dY= github.com/aws/aws-sdk-go-v2 v1.30.3/go.mod h1:nIQjQVp5sfpQcTc9mPSr1B0PaWK5ByX9MOoDadSN4lc= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 h1:gTK2uhtAPtFcdRRJilZPx8uJLL2J85xK11nKtWL0wfU= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1/go.mod h1:sxpLb+nZk7tIfCWChfd+h4QwHNUR57d8hA1cleTkjJo= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA= github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE= github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs= From c4157be9bc1bf6d210e6a4688a7838cd15e630d6 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Mon, 29 Jul 2024 15:08:16 -0400 Subject: [PATCH 24/27] fix operator helm dependency --- components/datadog/operator/helm.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/datadog/operator/helm.go b/components/datadog/operator/helm.go index 875d021bc..15701ebe1 100644 --- a/components/datadog/operator/helm.go +++ b/components/datadog/operator/helm.go @@ -40,7 +40,7 @@ func NewHelmInstallation(e config.Env, args HelmInstallationArgs, opts ...pulumi apiKey := e.AgentAPIKey() appKey := e.AgentAPPKey() baseName := "dda" - opts = append(opts, pulumi.Providers(args.KubeProvider), e.WithProviders(config.ProviderRandom), pulumi.Parent(args.KubeProvider), pulumi.DeletedWith(args.KubeProvider)) + opts = append(opts, pulumi.Providers(args.KubeProvider), e.WithProviders(config.ProviderRandom), pulumi.DeletedWith(args.KubeProvider)) helmComponent := &HelmComponent{} if err := e.Ctx().RegisterComponentResource("dd:operator", "operator", helmComponent, opts...); err != nil { From 187e772dca143c240afb5faad064d936c880c5e4 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Fri, 2 Aug 2024 12:33:28 -0400 Subject: [PATCH 25/27] address review comments --- components/datadog/agent/kubernetes_operator.go | 2 +- .../datadog/agentwithoperatorparams/params.go | 4 ++-- components/datadog/apps/dda/datadogagent.go | 2 +- .../datadog/apps/fips/images/fips-server/go.mod | 6 ------ .../datadog/apps/fips/images/fips-server/go.sum | 7 ------- components/datadog/operator/operator.go | 5 +++-- components/datadog/operatorparams/params.go | 13 +------------ scenarios/aws/kindvm/run.go | 13 +++++++------ 8 files changed, 15 insertions(+), 37 deletions(-) delete mode 100644 components/datadog/apps/fips/images/fips-server/go.sum diff --git a/components/datadog/agent/kubernetes_operator.go b/components/datadog/agent/kubernetes_operator.go index b710e4bc7..8b666ab0b 100644 --- a/components/datadog/agent/kubernetes_operator.go +++ b/components/datadog/agent/kubernetes_operator.go @@ -33,7 +33,7 @@ func NewDDAWithOperator(e config.Env, resourceName string, kubeProvider *kuberne return err } - _, err = dda.K8sAppDefinition(e, kubeProvider, "datadog", operatorParams.FakeIntake, ddaParams.KubeletTLSVerify, e.Ctx().Stack(), ddaParams.DDAConfig, utils.PulumiDependsOn(operatorComp)) + _, err = dda.K8sAppDefinition(e, kubeProvider, "datadog", ddaParams.FakeIntake, ddaParams.KubeletTLSVerify, e.Ctx().Stack(), ddaParams.DDAConfig, utils.PulumiDependsOn(operatorComp)) if err != nil { return err diff --git a/components/datadog/agentwithoperatorparams/params.go b/components/datadog/agentwithoperatorparams/params.go index d3841f458..df0a39ce0 100644 --- a/components/datadog/agentwithoperatorparams/params.go +++ b/components/datadog/agentwithoperatorparams/params.go @@ -58,8 +58,8 @@ func WithDDAConfig(config string) func(*Params) error { } } -// WithFakeintake configures the Agent to use the given fake intake. -func WithFakeintake(fakeintake *fakeintake.Fakeintake) func(*Params) error { +// WithFakeIntake configures the Agent to use the given fake intake. +func WithFakeIntake(fakeintake *fakeintake.Fakeintake) func(*Params) error { return func(p *Params) error { p.PulumiResourceOptions = append(p.PulumiResourceOptions, utils.PulumiDependsOn(fakeintake)) p.FakeIntake = fakeintake diff --git a/components/datadog/apps/dda/datadogagent.go b/components/datadog/apps/dda/datadogagent.go index 1db75c567..c83a943e4 100644 --- a/components/datadog/apps/dda/datadogagent.go +++ b/components/datadog/apps/dda/datadogagent.go @@ -64,7 +64,7 @@ func K8sAppDefinition(e config.Env, kubeProvider *kubernetes.Provider, namespace opts = append(opts, utils.PulumiDependsOn(secret)) ddaConfig := buildDDAConfig(baseName, clusterName, kubeletTLSVerify) - if e.AgentUseFakeintake() { + if fakeIntake != nil { configureFakeIntake(ddaConfig, fakeIntake) } ddaConfig, err = mergeYamlToConfig(ddaConfig, customDda) diff --git a/components/datadog/apps/fips/images/fips-server/go.mod b/components/datadog/apps/fips/images/fips-server/go.mod index c0315e764..fe81103c9 100644 --- a/components/datadog/apps/fips/images/fips-server/go.mod +++ b/components/datadog/apps/fips/images/fips-server/go.mod @@ -1,14 +1,8 @@ module e2e_server -go 1.22.4 - require github.com/spf13/cobra v1.8.1 require ( - github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/components/datadog/apps/fips/images/fips-server/go.sum b/components/datadog/apps/fips/images/fips-server/go.sum deleted file mode 100644 index 3e41cc411..000000000 --- a/components/datadog/apps/fips/images/fips-server/go.sum +++ /dev/null @@ -1,7 +0,0 @@ -github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/components/datadog/operator/operator.go b/components/datadog/operator/operator.go index fb20fa65e..69c90043d 100644 --- a/components/datadog/operator/operator.go +++ b/components/datadog/operator/operator.go @@ -25,18 +25,19 @@ func (h *Operator) Export(ctx *pulumi.Context, out *Output) error { } func NewOperator(e config.Env, resourceName string, kubeProvider *kubernetes.Provider, options ...operatorparams.Option) (*Operator, error) { - return components.NewComponent(e, resourceName, func(_ *Operator) error { + return components.NewComponent(e, resourceName, func(comp *Operator) error { params, err := operatorparams.NewParams(e, options...) if err != nil { return err } + pulumiResourceOptions := append(params.PulumiResourceOptions, pulumi.Parent(comp)) _, err = NewHelmInstallation(e, HelmInstallationArgs{ KubeProvider: kubeProvider, Namespace: params.Namespace, ValuesYAML: params.HelmValues, OperatorFullImagePath: params.OperatorFullImagePath, - }, params.PulumiResourceOptions...) + }, pulumiResourceOptions...) if err != nil { return err } diff --git a/components/datadog/operatorparams/params.go b/components/datadog/operatorparams/params.go index bdca7a2df..188fb01b3 100644 --- a/components/datadog/operatorparams/params.go +++ b/components/datadog/operatorparams/params.go @@ -8,7 +8,6 @@ import ( "github.com/DataDog/test-infra-definitions/common" "github.com/DataDog/test-infra-definitions/common/config" "github.com/DataDog/test-infra-definitions/common/utils" - "github.com/DataDog/test-infra-definitions/components/datadog/fakeintake" ) type Params struct { @@ -18,8 +17,7 @@ type Params struct { Namespace string // HelmValues is the Helm values to use for the agent installation. HelmValues pulumi.AssetOrArchiveArray - // PulumiDependsOn is a list of resources to depend on. - FakeIntake *fakeintake.Fakeintake + // PulumiResourceOptions is a list of resources to depend on. PulumiResourceOptions []pulumi.ResourceOption } @@ -54,15 +52,6 @@ func WithOperatorFullImagePath(path string) func(*Params) error { } } -// WithFakeIntake configures the Agent to use the given fake intake. -func WithFakeIntake(fakeintake *fakeintake.Fakeintake) func(*Params) error { - return func(p *Params) error { - p.PulumiResourceOptions = append(p.PulumiResourceOptions, utils.PulumiDependsOn(fakeintake)) - p.FakeIntake = fakeintake - return nil - } -} - // WithHelmValues adds helm values to the agent installation. If used several times, the helm values are merged together // If the same values is defined several times the latter call will override the previous one. func WithHelmValues(values string) func(*Params) error { diff --git a/scenarios/aws/kindvm/run.go b/scenarios/aws/kindvm/run.go index aa16d5666..3cd401f6c 100644 --- a/scenarios/aws/kindvm/run.go +++ b/scenarios/aws/kindvm/run.go @@ -133,12 +133,6 @@ agents: operatorOpts, operatorparams.WithNamespace("datadog"), ) - if fakeIntake != nil { - operatorOpts = append( - operatorOpts, - operatorparams.WithFakeIntake(fakeIntake), - ) - } ddaOptions := make([]agentwithoperatorparams.Option, 0) ddaOptions = append( @@ -147,6 +141,13 @@ agents: agentwithoperatorparams.WithTLSKubeletVerify(false), ) + if fakeIntake != nil { + ddaOptions = append( + ddaOptions, + agentwithoperatorparams.WithFakeIntake(fakeIntake), + ) + } + operatorAgentComponent, err := agent.NewDDAWithOperator(&awsEnv, awsEnv.CommonNamer().ResourceName("dd-operator-agent"), kindKubeProvider, operatorOpts, ddaOptions...) if err != nil { From dccefa57263a60c491c2559f6d7efc0f0dc2a123 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Mon, 5 Aug 2024 10:39:58 -0400 Subject: [PATCH 26/27] update go.sum --- go.sum | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go.sum b/go.sum index 3f28456e0..c3325a1e3 100644 --- a/go.sum +++ b/go.sum @@ -57,8 +57,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/g github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= -github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= -github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= +github.com/aws/aws-sdk-go-v2/service/s3 v1.51.3 h1:7cR4xxS480TI0R6Bd75g9Npdw89VriquvQPlMNmuds4= +github.com/aws/aws-sdk-go-v2/service/s3 v1.51.3/go.mod h1:zb72GZ2MvfCX5ynVJ+Mc/NCx7hncbsko4NZm5E+p6J4= github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w= github.com/aws/aws-sdk-go-v2/service/sso v1.20.5/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE= From e3d0d7b7d8cbbf576c3f0ea10fad3301a1c0c97c Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Thu, 5 Sep 2024 17:34:34 -0400 Subject: [PATCH 27/27] remove install_agent_with_operator from inv deploy funcs --- go.mod | 3 +-- go.sum | 10 ++++------ tasks/aws/deploy.py | 2 -- tasks/aws/kind.py | 2 +- tasks/deploy.py | 5 ----- 5 files changed, 6 insertions(+), 16 deletions(-) diff --git a/go.mod b/go.mod index 0ad9b7282..826ce1e1e 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/pulumi/pulumi-libvirt/sdk v0.4.7 github.com/pulumi/pulumi-random/sdk/v4 v4.16.3 github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1 - github.com/pulumi/pulumi/sdk/v3 v3.130.0 + github.com/pulumi/pulumi/sdk/v3 v3.131.0 github.com/pulumiverse/pulumi-time/sdk v0.0.17 github.com/samber/lo v1.47.0 github.com/stretchr/testify v1.9.0 @@ -116,7 +116,6 @@ require ( github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect - github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect diff --git a/go.sum b/go.sum index a5378df9d..f57107fff 100644 --- a/go.sum +++ b/go.sum @@ -27,10 +27,10 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2 v1.30.4 h1:frhcagrVNrzmT95RJImMHgabt99vkXGslubDaDagTk8= github.com/aws/aws-sdk-go-v2 v1.30.4/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA= github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE= github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs= @@ -234,8 +234,8 @@ github.com/pulumi/pulumi-random/sdk/v4 v4.16.3 h1:nlN42MRSIuDh5Pc5nLq4b0lwZaX2ZU github.com/pulumi/pulumi-random/sdk/v4 v4.16.3/go.mod h1:yRfWJSLEAVZvkwgXajr3S9OmFkAZTxfO44Ef2HfixXQ= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1 h1:tXemWrzeVTqG8zq6hBdv1TdPFXjgZ+dob63a/6GlF1o= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1/go.mod h1:hODo3iEmmXDFOXqPK+V+vwI0a3Ww7BLjs5Tgamp86Ng= -github.com/pulumi/pulumi/sdk/v3 v3.130.0 h1:gGJNd+akPqhZ+vrsZmAjSNJn6kGJkitjjkwrmIQMmn8= -github.com/pulumi/pulumi/sdk/v3 v3.130.0/go.mod h1:p1U24en3zt51agx+WlNboSOV8eLlPWYAkxMzVEXKbnY= +github.com/pulumi/pulumi/sdk/v3 v3.131.0 h1:w6+XFt4ajz7ZEoCBFo+oMmrQ4DYYBKtzuj/zBe/uyoo= +github.com/pulumi/pulumi/sdk/v3 v3.131.0/go.mod h1:J5kQEX8v87aeUhk6NdQXnjCo1DbiOnOiL3Sf2DuDda8= github.com/pulumiverse/pulumi-time/sdk v0.0.17 h1:JNYVLglXeMAjyD3upIwKZ9o7MnNo7kc3FVsgxs7bc+A= github.com/pulumiverse/pulumi-time/sdk v0.0.17/go.mod h1:NUa1zA74DF002WrM6iF111A6UjX9knPpXufVRvBwNyg= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= @@ -274,8 +274,6 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= -github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68= -github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7/go.mod h1:UxoP3EypF8JfGEjAII8jx1q8rQyDnX8qdTCs/UQBVIE= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= diff --git a/tasks/aws/deploy.py b/tasks/aws/deploy.py index b82405a66..d60bc16dc 100644 --- a/tasks/aws/deploy.py +++ b/tasks/aws/deploy.py @@ -23,7 +23,6 @@ def deploy( stack_name: Optional[str] = None, pipeline_id: Optional[str] = None, install_agent: Optional[bool] = None, - install_agent_with_operator: Optional[bool] = False, install_updater: Optional[bool] = None, install_workload: Optional[bool] = None, agent_version: Optional[str] = None, @@ -75,7 +74,6 @@ def deploy( stack_name, pipeline_id, install_agent, - install_agent_with_operator, install_updater, install_workload, agent_version, diff --git a/tasks/aws/kind.py b/tasks/aws/kind.py index d2e1c3513..09564a230 100644 --- a/tasks/aws/kind.py +++ b/tasks/aws/kind.py @@ -52,6 +52,7 @@ def create_kind( "ddinfra:osDescriptor": f"amazonlinuxecs::{_get_architecture(architecture)}", "ddinfra:deployFakeintakeWithLoadBalancer": use_loadBalancer, "ddinfra:aws/defaultInstanceType": "t3.xlarge", + "ddagent:deployWithOperator": bool(install_agent_with_operator), } full_stack_name = deploy( @@ -61,7 +62,6 @@ def create_kind( key_pair_required=True, stack_name=stack_name, install_agent=install_agent, - install_agent_with_operator=install_agent_with_operator, agent_version=agent_version, use_fakeintake=use_fakeintake, extra_flags=extra_flags, diff --git a/tasks/deploy.py b/tasks/deploy.py index 6ecd57ffa..245a9599d 100644 --- a/tasks/deploy.py +++ b/tasks/deploy.py @@ -19,7 +19,6 @@ def deploy( stack_name: Optional[str] = None, pipeline_id: Optional[str] = None, install_agent: Optional[bool] = None, - install_agent_with_operator: Optional[bool] = None, install_updater: Optional[bool] = None, install_workload: Optional[bool] = None, agent_version: Optional[str] = None, @@ -36,10 +35,6 @@ def deploy( flags["ddagent:deploy"] = install_agent and not install_updater flags["ddupdater:deploy"] = install_updater - if install_agent_with_operator is None: - install_agent_with_operator = tool.get_default_agent_with_operator_install() - flags["ddagent:deployWithOperator"] = install_agent_with_operator - if install_workload is None: install_workload = tool.get_default_workload_install() flags["ddtestworkload:deploy"] = install_workload