Skip to content

[ACTP] package and activate par-control - #54529

Draft
embeaken wants to merge 4 commits into
ilya/par-control-runner-wiringfrom
ilya/par-control-packaging
Draft

[ACTP] package and activate par-control#54529
embeaken wants to merge 4 commits into
ilya/par-control-runner-wiringfrom
ilya/par-control-packaging

Conversation

@embeaken

@embeaken embeaken commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Packages and activates split-mode PAR on Linux and Windows hosts:

  • installs par-control and process-manager definitions for it and the on-demand executor;
  • adds Agent package, installer, and Windows executable-resource wiring;
  • preserves a standard Unix service PATH for process-manager children;
  • adds fake-OPMS support plus Linux and Windows lifecycle/bootstrap E2E suites and CI jobs.

Two details about how the definitions delegate to dd-procmgrd:

  • Windows has no console for a service to inherit, so the par-control definition redirects stdout/stderr to <ETC_ROOT>/logs/par-control.log instead of the binary managing its own log file. dd-procmgrd now creates a missing stdio parent directory rather than silently falling back to inherit on a fresh install.
  • The PAR definitions set DD_FLEET_POLICIES_DIR=${DD_CONF_DIR}/managed/datadog-agent/stable, which dd-procmgrd expands from the supervising unit, so a stable or experiment unit selects the matching config tree. Hardcoding the rendered stable path would have made the control plane and executor read stable policies during an experiment while the core Agent read the experiment's. This matches what the DDOT definition already does. Windows keeps reading fleet_policies_dir from the registry, as pkg/config/setup/config_windows.go does, because there are no experiment services there.

The par-control definitions invoke privateactionrunner bootstrap-par-control --cfgpath <datadog.yaml> via --bootstrap-command. par-control reads no config
file of its own, so there is no separate --config argument: Go resolves the whole
control-plane configuration and returns it (#54870, #54590).

Docker and Kubernetes deployments remain monolithic.

Validation

  • dda env dev run -- bazel test //pkg/fleet/installer/packages:packages_test //pkg/fleet/installer/packages/embedded:tmpl_test //pkg/procmgr/rust:dd-procmgrd_test
  • dda inv linter.go --module=test/new-e2e --targets=./tests/privateactionrunner

The installer test now pins the full DD_FLEET_POLICIES_DIR value for both definitions; asserting only the key name would not catch a regression to a hardcoded path. Live Linux and Windows E2E execution is left to CI.

Stack 9 of 9; based on #54594.

@embeaken
embeaken force-pushed the ilya/par-control-packaging branch from d595af1 to f0f6ff6 Compare August 6, 2026 17:36
@embeaken
embeaken changed the base branch from ilya/par-control-foundation to ilya/par-control-integration August 6, 2026 17:40
@embeaken
embeaken marked this pull request as ready for review August 6, 2026 17:40
@embeaken
embeaken requested review from a team as code owners August 6, 2026 17:40
@embeaken
embeaken requested review from Madhu-TV, clarkb7 and jeremy-hanna and removed request for a team August 6, 2026 17:40
@dd-octo-sts

dd-octo-sts Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Static quality checks

❌ Please find below the results from static quality gates
Comparison made with ancestor 296059f
📊 Static Quality Gates Dashboard
🔗 SQG Job

Error

Quality gate Change Size (prev → curr → max)
agent_deb_amd64 (on disk) +5.92 MiB (0.78% increase, -173.14% of buffer) 761.181 → 767.101 → 764.600
agent_msi (per-PR threshold) +3.01 MiB (0.47% increase, -22.81% of buffer) 647.835 → 650.849 → 661.050
agent_rpm_amd64 (on disk) +5.92 MiB (0.78% increase, -173.84% of buffer) 761.165 → 767.084 → 764.570
agent_rpm_arm64 (on disk) +4.74 MiB (0.64% increase, -18512.45% of buffer) 737.104 → 741.841 → 737.130
agent_suse_amd64 (on disk) +5.92 MiB (0.78% increase, -173.84% of buffer) 761.165 → 767.084 → 764.570
agent_suse_arm64 (on disk) +4.74 MiB (0.64% increase, -18512.45% of buffer) 737.104 → 741.841 → 737.130
docker_agent_amd64 (on disk) +5.91 MiB (0.72% increase, -1557.70% of buffer) 819.760 → 825.672 → 820.140
docker_agent_arm64 (on disk) +4.74 MiB (0.58% increase, -2662.29% of buffer) 820.712 → 825.449 → 820.890
docker_agent_jmx_amd64 (on disk) +5.91 MiB (0.58% increase, -2442.93% of buffer) 1010.658 → 1016.570 → 1010.900
docker_agent_jmx_arm64 (on disk) +4.74 MiB (0.47% increase, -1538.24% of buffer) 1000.262 → 1004.999 → 1000.570
Gate failure full details
Quality gate Error type Error message
agent_deb_amd64 AbsoluteLimitExceeded static_quality_gate_agent_deb_amd64 failed!
Disk size 767.1 MB exceeds limit of 764.6 MB by 2.5 MB
agent_msi PerPRThresholdExceeded On-disk size increase of 3.01 MiB exceeds the per-PR threshold of 600.0 KiB
agent_rpm_amd64 AbsoluteLimitExceeded static_quality_gate_agent_rpm_amd64 failed!
Disk size 767.1 MB exceeds limit of 764.6 MB by 2.5 MB
agent_rpm_arm64 AbsoluteLimitExceeded static_quality_gate_agent_rpm_arm64 failed!
Disk size 741.8 MB exceeds limit of 737.1 MB by 4.7 MB
agent_suse_amd64 AbsoluteLimitExceeded static_quality_gate_agent_suse_amd64 failed!
Disk size 767.1 MB exceeds limit of 764.6 MB by 2.5 MB
agent_suse_arm64 AbsoluteLimitExceeded static_quality_gate_agent_suse_arm64 failed!
Disk size 741.8 MB exceeds limit of 737.1 MB by 4.7 MB
docker_agent_amd64 AbsoluteLimitExceeded static_quality_gate_docker_agent_amd64 failed!
Disk size 825.7 MB exceeds limit of 820.1 MB by 5.5 MB
docker_agent_arm64 AbsoluteLimitExceeded static_quality_gate_docker_agent_arm64 failed!
Disk size 825.4 MB exceeds limit of 820.9 MB by 4.6 MB
docker_agent_jmx_amd64 AbsoluteLimitExceeded static_quality_gate_docker_agent_jmx_amd64 failed!
Disk size 1016.6 MB exceeds limit of 1010.9 MB by 5.7 MB
docker_agent_jmx_arm64 AbsoluteLimitExceeded static_quality_gate_docker_agent_jmx_arm64 failed!
Disk size 1005.0 MB exceeds limit of 1000.6 MB by 4.4 MB

Static quality gate failures prevent this PR from merging!
You can check the static quality gates runbooks page for guidance and tools. Please either fix the size violation or request an exception.

Successful checks

Info

Quality gate Change Size (prev → curr → max)
agent_deb_amd64_fips +256.21 KiB (0.04% increase, -13.11% of buffer) 713.931 → 714.182 → 715.840
agent_heroku_amd64 +128.78 KiB (0.04% increase, -2.03% of buffer) 312.896 → 313.021 → 319.080
agent_rpm_amd64_fips +256.21 KiB (0.04% increase, -13.00% of buffer) 713.915 → 714.165 → 715.840
agent_rpm_arm64_fips +248.77 KiB (0.04% increase, -35.42% of buffer) 693.134 → 693.377 → 693.820
agent_suse_amd64_fips +256.21 KiB (0.04% increase, -13.00% of buffer) 713.915 → 714.165 → 715.840
agent_suse_arm64_fips +248.77 KiB (0.04% increase, -35.42% of buffer) 693.134 → 693.377 → 693.820
docker_cluster_agent_amd64 +20.16 KiB (0.01% increase, -2.78% of buffer) 211.422 → 211.442 → 212.130
docker_cluster_agent_arm64 +64.16 KiB (0.03% increase, -8.22% of buffer) 224.458 → 224.520 → 225.220
docker_dogstatsd_amd64 +8.05 KiB (0.02% increase, -0.86% of buffer) 39.522 → 39.530 → 40.440
docker_host_profiler_amd64 +20.62 KiB (0.01% increase, -0.19% of buffer) 306.843 → 306.863 → 317.700
docker_host_profiler_arm64 +3.06 KiB (0.00% increase, -0.03% of buffer) 318.121 → 318.123 → 328.970
dogstatsd_deb_amd64 +4.06 KiB (0.01% increase, -0.42% of buffer) 30.267 → 30.271 → 31.210
dogstatsd_deb_arm64 +4.06 KiB (0.01% increase, -0.31% of buffer) 28.294 → 28.298 → 29.590
dogstatsd_rpm_amd64 +4.06 KiB (0.01% increase, -0.42% of buffer) 30.267 → 30.271 → 31.210
dogstatsd_suse_amd64 +4.06 KiB (0.01% increase, -0.42% of buffer) 30.267 → 30.271 → 31.210
iot_agent_deb_amd64 +80.66 KiB (0.17% increase, -7.90% of buffer) 46.553 → 46.632 → 47.550
iot_agent_deb_arm64 +76.62 KiB (0.17% increase, -7.38% of buffer) 43.206 → 43.281 → 44.220
iot_agent_deb_armhf +84.4 KiB (0.19% increase, -8.08% of buffer) 44.000 → 44.083 → 45.020
iot_agent_rpm_amd64 +80.66 KiB (0.17% increase, -7.91% of buffer) 46.554 → 46.633 → 47.550
iot_agent_suse_amd64 +80.66 KiB (0.17% increase, -7.90% of buffer) 46.553 → 46.632 → 47.550
3 successful checks with minimal change (< 2 KiB)
Quality gate Current Size
docker_cws_instrumentation_amd64 7.443 MiB
docker_cws_instrumentation_arm64 6.877 MiB
docker_dogstatsd_arm64 37.623 MiB

@embeaken
embeaken marked this pull request as draft August 6, 2026 17:41
@dd-octo-sts

dd-octo-sts Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Gitlab CI Configuration Changes

Modified Jobs

new-e2e-privateactionrunner
  new-e2e-privateactionrunner:
    after_script:
    - CODECOV_TOKEN=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $CODECOV token) || exit
      $?; export CODECOV_TOKEN
    - $CI_PROJECT_DIR/tools/ci/junit_upload.sh "junit-${CI_JOB_ID}.tgz" "$E2E_RESULT_JSON"
    - "if [ -d \"$E2E_COVERAGE_OUT_DIR\" ]; then\n  dda inv -- -e coverage.process-e2e-coverage-folders\
      \ $E2E_COVERAGE_OUT_DIR\n  dda inv -- -e dyntest.compute-and-upload-job-index\
      \ --bucket-uri $S3_PERMANENT_ARTIFACTS_URI --coverage-folder $E2E_COVERAGE_OUT_DIR\
      \ --commit-sha $CI_COMMIT_SHA --job-id $CI_JOB_ID\nfi\n"
    - "if [ -d \"$E2E_COVERAGE_OUT_DIR\" ]; then\n  DD_API_KEY=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh\
      \ $AGENT_API_KEY_ORG2 token) || exit $?; export DD_API_KEY\n  for coverage in\
      \ \"$E2E_COVERAGE_OUT_DIR\"/*/coverage.txt; do\n    datadog-ci coverage upload\
      \ --format=go-coverprofile \"$coverage\" || true\n  done\nfi\n"
    artifacts:
      expire_in: 2 weeks
      paths:
      - $E2E_OUTPUT_DIR
      - $E2E_RESULT_JSON
      - junit-*.tgz
      - $E2E_COVERAGE_OUT_DIR
      reports:
        annotations:
        - $EXTERNAL_LINKS_PATH
      when: always
    before_script:
    - mkdir -p $GOPATH/pkg/mod/cache && zstd -dc modcache_e2e.tar.zst | tar xf - -C
      $GOPATH/pkg/mod/cache
    - rm -f modcache_e2e.tar.zst
    - mkdir -p ~/.pulumi && zstd -dc pulumi_plugins.tar.zst | tar xf - -C ~/.pulumi
    - rm -f pulumi_plugins.tar.zst
    - "go_bin=\"$(go env GOBIN)\"\nif [ -z \"$go_bin\" ]; then\n  go_bin=\"$(go env\
      \ GOPATH)/bin\"\nfi\nmkdir -p \"$go_bin\" \"$GOPATH/pkg/mod/cache\"\nzstd -dc\
      \ go_tools_bin.tar.zst | tar xf - -C \"$go_bin\"\nzstd -dc modcache_tools.tar.zst\
      \ | tar xf - -C \"$GOPATH/pkg/mod/cache\"\n"
    - rm -f go_tools_bin.tar.zst modcache_tools.tar.zst
    - export PATH=$PATH:$go_bin
    - mkdir -p ~/.aws
    - "if [ -n \"$E2E_USE_AWS_PROFILE\" ]; then\n  echo Using agent-qa-ci aws profile\n\
      \  $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E profile >> ~/.aws/config\
      \ || exit $?\n  # Now all `aws` commands target the agent-qa profile\n  export\
      \ AWS_PROFILE=agent-qa-ci\nelse\n  # Assume role to fetch only once credentials\
      \ and avoid rate limits\n  echo Assuming ddbuild-agent-ci role\n  roleoutput=\"\
      $(aws sts assume-role --role-arn arn:aws:iam::669783387624:role/ddbuild-agent-ci\
      \ --external-id ddbuild-agent-ci --role-session-name RoleSession)\"\n  export\
      \ AWS_ACCESS_KEY_ID=\"$(echo \"$roleoutput\" | jq -r '.Credentials.AccessKeyId')\"\
      \n  export AWS_SECRET_ACCESS_KEY=\"$(echo \"$roleoutput\" | jq -r '.Credentials.SecretAccessKey')\"\
      \n  export AWS_SESSION_TOKEN=\"$(echo \"$roleoutput\" | jq -r '.Credentials.SessionToken')\"\
      \nfi\n"
    - $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_public_key_rsa > $E2E_AWS_PUBLIC_KEY_PATH
      || exit $?
    - touch $E2E_AWS_PRIVATE_KEY_PATH && chmod 600 $E2E_AWS_PRIVATE_KEY_PATH && $CI_PROJECT_DIR/tools/ci/fetch_secret.sh
      $AGENT_QA_E2E ssh_key_rsa > $E2E_AWS_PRIVATE_KEY_PATH || exit $?
    - $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_public_key_rsa > $E2E_AZURE_PUBLIC_KEY_PATH
      || exit $?
    - touch $E2E_AZURE_PRIVATE_KEY_PATH && chmod 600 $E2E_AZURE_PRIVATE_KEY_PATH &&
      $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_key_rsa > $E2E_AZURE_PRIVATE_KEY_PATH
      || exit $?
    - $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_public_key_rsa > $E2E_GCP_PUBLIC_KEY_PATH
      || exit $?
    - touch $E2E_GCP_PRIVATE_KEY_PATH && chmod 600 $E2E_GCP_PRIVATE_KEY_PATH && $CI_PROJECT_DIR/tools/ci/fetch_secret.sh
      $AGENT_QA_E2E ssh_key_rsa > $E2E_GCP_PRIVATE_KEY_PATH || exit $?
    - pulumi login "s3://dd-pulumi-state?region=us-east-1&awssdk=v2&profile=$AWS_PROFILE"
    - ARM_CLIENT_ID=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $E2E_AZURE client_id)
      || exit $?; export ARM_CLIENT_ID
    - ARM_CLIENT_SECRET=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $E2E_AZURE token)
      || exit $?; export ARM_CLIENT_SECRET
    - ARM_TENANT_ID=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $E2E_AZURE tenant_id)
      || exit $?; export ARM_TENANT_ID
    - ARM_SUBSCRIPTION_ID=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $E2E_AZURE subscription_id)
      || exit $?; export ARM_SUBSCRIPTION_ID
    - $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $E2E_GCP credentials_json > ~/gcp-credentials.json
      || exit $?
    - export GOOGLE_APPLICATION_CREDENTIALS=~/gcp-credentials.json
    - 'gcp_acr_key=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $E2E_GCP credentials_acr_readonly)
      || exit $?
  
      export E2E_GCP_IMAGE_PULL_PASSWORD="b64=$(printf ''%s'' "$gcp_acr_key" | base64
      -w 0)"
  
      '
    - dda inv -- -e gitlab.generate-ci-visibility-links --output=$EXTERNAL_LINKS_PATH
    - export DD_ENV=nativetest
    - export DD_CIVISIBILITY_ENABLED=true
    - export DD_CIVISIBILITY_AGENTLESS_ENABLED=true
    - export DD_CIVISIBILITY_FLAKY_RETRY_ENABLED=false
    - export DD_TAGS="gitlab.pipeline_source:${CI_PIPELINE_SOURCE}"
    - DD_API_KEY=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_API_KEY_ORG2 token)
      || exit $?; export DD_API_KEY
    - export WINDOWS_DDNPM_DRIVER=${WINDOWS_DDNPM_DRIVER:-$(dda inv release.get-release-json-value
      "dependencies::WINDOWS_DDNPM_DRIVER" --no-worktree)}
    - export WINDOWS_DDPROCMON_DRIVER=${WINDOWS_DDPROCMON_DRIVER:-$(dda inv release.get-release-json-value
      "dependencies::WINDOWS_DDPROCMON_DRIVER" --no-worktree)}
    cache:
    - key:
        files:
        - .bazelversion
        prefix: bazelversion-$CI_RUNNER_DESCRIPTION
      paths:
      - .cache/bazelisk
      - .cache/bazel/*/install
      policy: pull$BAZEL_CACHE_POLICY_SUFFIX
      when: on_success
    - key:
        files:
        - MODULE.bazel.lock
        prefix: bazel-$CI_JOB_NAME
      paths:
      - .cache/bazel/*/cache
      - .cache/go
      - .cache/ms-go
      - .cache/pip
      policy: pull$BAZEL_CACHE_POLICY_SUFFIX
      when: on_success
    id_tokens:
      BUILDBARN_ID_TOKEN:
        aud: buildbarn.us1.ddbuild.io
    image: registry.ddbuild.io/ci/datadog-agent-buildimages/linux$CI_IMAGE_LINUX_SUFFIX:$CI_IMAGE_LINUX
    needs:
    - go_e2e_deps
    - artifacts: false
      job: go_e2e_test_binaries
    - go_tools_deps
    - job: new-e2e-base-coverage
      optional: true
    - job: publish_fakeintake
      optional: true
    - job: publish_fakeintake_pinned
      optional: true
    - agent_deb-x64-a7
    - qa_agent_linux
    - qa_dca
    rules:
    - if: $RUN_E2E_TESTS == "off"
      when: never
    - if: $CI_COMMIT_BRANCH =~ /^mq-working-branch-/
      when: never
    - if: $RUN_E2E_TESTS == "off"
      when: never
    - if: $CI_COMMIT_BRANCH =~ /^mq-working-branch-/
      when: never
    - changes:
        compare_to: $COMPARE_TO_BRANCH
        paths:
        - test/fakeintake/cmd/server/**/*.go
        - test/fakeintake/server/**/*.go
        - test/fakeintake/aggregator/**/*.go
        - test/fakeintake/api/**/*.go
        - test/fakeintake/go.mod
        - test/fakeintake/go.sum
        - test/fakeintake/Dockerfile
        - test/fakeintake/version/VERSION
        - .gitlab/build/binary_build/fakeintake.yml
        - .gitlab/deploy/container_build/fakeintake.yml
        - .gitlab/deploy/dev_container_deploy/fakeintake.yml
      variables:
        E2E_FAKEINTAKE_IMAGE_OVERRIDE: public.ecr.aws/datadog/fakeintake:v$CI_COMMIT_SHORT_SHA
      when: on_success
    - if: $RUN_E2E_TESTS == "on"
      when: on_success
    - if: $CI_COMMIT_BRANCH == "main"
      when: on_success
    - if: $CI_COMMIT_BRANCH =~ /^[0-9]+\.[0-9]+\.x$/
      when: on_success
    - if: $CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+$/
      when: on_success
    - changes:
        compare_to: $COMPARE_TO_BRANCH
        paths:
        - test/fakeintake/**/*
        - .gitlab/build/binary_build/fakeintake.yml
        - .gitlab/deploy/container_build/fakeintake.yml
        - .gitlab/deploy/dev_container_deploy/fakeintake.yml
      when: on_success
    - changes:
        compare_to: $COMPARE_TO_BRANCH
        paths:
        - .gitlab/test/e2e/e2e.yml
        - bazel/rules/go_shim/**/*
        - internal/tools/**/*
        - test/e2e-framework/**/*
        - test/new-e2e/go.mod
        - flakes.yaml
        - release.json
    - changes:
        compare_to: $COMPARE_TO_BRANCH
        paths:
        - cmd/privateactionrunner/**/*
        - comp/privateactionrunner/**/*
        - pkg/privateactionrunner/**/*
        - pkg/config/setup/privateactionrunner.go
        - pkg/proto/datadog/privateactionrunner/**/*
        - pkg/proto/pbgo/privateactionrunner/**/*
        - test/new-e2e/tests/privateactionrunner/**/*
      when: on_success
    - if: $CI_COMMIT_BRANCH =~ /^mq-working-branch-/
      when: never
    - allow_failure: true
      when: manual
    script:
    - export IS_DEV_BRANCH="$(dda inv -- -e pipeline.is-dev-branch)"
    - DYNAMIC_TESTS_BREAKGLASS=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $DYNAMIC_TESTS_BREAKGLASS
      value) || exit $?; export DYNAMIC_TESTS_BREAKGLASS
    - "if [ \"$DYNAMIC_TESTS_BREAKGLASS\" == \"true\" ] || [ \"$IS_DEV_BRANCH\" == \"\
      false\" ] || [ \"$RUN_E2E_TESTS\" == \"on\" ]; then\n  export DYNAMIC_TESTS_FLAG=\"\
      \"\nfi\n"
    - export E2E_IMAGE_PULL_PASSWORD=$(aws ecr get-login-password),$E2E_GCP_IMAGE_PULL_PASSWORD
    - dda inv -- -e new-e2e-tests.run $DYNAMIC_TESTS_FLAG $PRE_BUILT_BINARIES_FLAG $MAX_RETRIES_FLAG
      --local-package $CI_PROJECT_DIR/$OMNIBUS_BASE_DIR --result-json $E2E_RESULT_JSON
      --targets $TARGETS --junit-tar junit-${CI_JOB_ID}.tgz ${EXTRA_PARAMS} --test-washer
      --logs-folder=$E2E_OUTPUT_DIR/logs --logs-post-processing --logs-post-processing-test-depth=$E2E_LOGS_PROCESSING_TEST_DEPTH
    stage: e2e
    tags:
    - arch:amd64
    - specific:true
    variables:
      BAZELISK_HOME: $XDG_CACHE_HOME/bazelisk
      DYNAMIC_TESTS_FLAG: --impacted
      E2E_AWS_PRIVATE_KEY_PATH: /tmp/agent-qa-aws-ssh-key
      E2E_AWS_PUBLIC_KEY_PATH: /tmp/agent-qa-aws-ssh-key.pub
      E2E_AZURE_PRIVATE_KEY_PATH: /tmp/agent-qa-azure-ssh-key
      E2E_AZURE_PUBLIC_KEY_PATH: /tmp/agent-qa-azure-ssh-key.pub
      E2E_COMMIT_SHA: $CI_COMMIT_SHORT_SHA
      E2E_COVERAGE_OUT_DIR: $CI_PROJECT_DIR/coverage
      E2E_GCP_PRIVATE_KEY_PATH: /tmp/agent-qa-gcp-ssh-key
      E2E_GCP_PUBLIC_KEY_PATH: /tmp/agent-qa-gcp-ssh-key.pub
      E2E_IMAGE_PULL_REGISTRY: 669783387624.dkr.ecr.us-east-1.amazonaws.com,us-central1-docker.pkg.dev
      E2E_IMAGE_PULL_USERNAME: AWS,_json_key
      E2E_KEY_PAIR_NAME: datadog-agent-ci-rsa
      E2E_LOGS_PROCESSING_TEST_DEPTH: 1
      E2E_OUTPUT_DIR: $CI_PROJECT_DIR/e2e-output
      E2E_PIPELINE_ID: $CI_PIPELINE_ID
      E2E_PREBUILD_S3_URI: $S3_PERMANENT_ARTIFACTS_URI/e2e-pre-build/$CI_PIPELINE_ID
      E2E_RESULT_JSON: $CI_PROJECT_DIR/e2e_test_output.json
      E2E_SKIP_WINDOWS: $SKIP_WINDOWS
      E2E_USE_AWS_PROFILE: 'true'
      EXTERNAL_LINKS_PATH: external_links_$CI_JOB_ID.json
+     EXTRA_PARAMS: --skip "Windows"
      FLAKY_PATTERNS_CONFIG: $CI_PROJECT_DIR/flaky-patterns-runtime.yaml
      GIT_DEPTH: 0
      GIT_STRATEGY: clone
      KUBERNETES_CPU_REQUEST: 6
      KUBERNETES_MEMORY_LIMIT: 16Gi
      KUBERNETES_MEMORY_REQUEST: 12Gi
      MAX_RETRIES_FLAG: ''
      PRE_BUILT_BINARIES_FLAG: --use-prebuilt-binaries
      REMOTE_STACK_CLEANING: 'true'
      SHOULD_RUN_IN_FLAKES_FINDER: 'true'
      TARGETS: ./tests/privateactionrunner
      TEAM: action-platform
      XDG_CACHE_HOME: $CI_PROJECT_DIR/.cache

Added Jobs

new-e2e-privateactionrunner-windows
new-e2e-privateactionrunner-windows:
  after_script:
  - CODECOV_TOKEN=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $CODECOV token) || exit
    $?; export CODECOV_TOKEN
  - $CI_PROJECT_DIR/tools/ci/junit_upload.sh "junit-${CI_JOB_ID}.tgz" "$E2E_RESULT_JSON"
  - "if [ -d \"$E2E_COVERAGE_OUT_DIR\" ]; then\n  dda inv -- -e coverage.process-e2e-coverage-folders\
    \ $E2E_COVERAGE_OUT_DIR\n  dda inv -- -e dyntest.compute-and-upload-job-index\
    \ --bucket-uri $S3_PERMANENT_ARTIFACTS_URI --coverage-folder $E2E_COVERAGE_OUT_DIR\
    \ --commit-sha $CI_COMMIT_SHA --job-id $CI_JOB_ID\nfi\n"
  - "if [ -d \"$E2E_COVERAGE_OUT_DIR\" ]; then\n  DD_API_KEY=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh\
    \ $AGENT_API_KEY_ORG2 token) || exit $?; export DD_API_KEY\n  for coverage in\
    \ \"$E2E_COVERAGE_OUT_DIR\"/*/coverage.txt; do\n    datadog-ci coverage upload\
    \ --format=go-coverprofile \"$coverage\" || true\n  done\nfi\n"
  artifacts:
    expire_in: 2 weeks
    paths:
    - $E2E_OUTPUT_DIR
    - $E2E_RESULT_JSON
    - junit-*.tgz
    - $E2E_COVERAGE_OUT_DIR
    reports:
      annotations:
      - $EXTERNAL_LINKS_PATH
    when: always
  before_script:
  - mkdir -p $GOPATH/pkg/mod/cache && zstd -dc modcache_e2e.tar.zst | tar xf - -C
    $GOPATH/pkg/mod/cache
  - rm -f modcache_e2e.tar.zst
  - mkdir -p ~/.pulumi && zstd -dc pulumi_plugins.tar.zst | tar xf - -C ~/.pulumi
  - rm -f pulumi_plugins.tar.zst
  - "go_bin=\"$(go env GOBIN)\"\nif [ -z \"$go_bin\" ]; then\n  go_bin=\"$(go env\
    \ GOPATH)/bin\"\nfi\nmkdir -p \"$go_bin\" \"$GOPATH/pkg/mod/cache\"\nzstd -dc\
    \ go_tools_bin.tar.zst | tar xf - -C \"$go_bin\"\nzstd -dc modcache_tools.tar.zst\
    \ | tar xf - -C \"$GOPATH/pkg/mod/cache\"\n"
  - rm -f go_tools_bin.tar.zst modcache_tools.tar.zst
  - export PATH=$PATH:$go_bin
  - mkdir -p ~/.aws
  - "if [ -n \"$E2E_USE_AWS_PROFILE\" ]; then\n  echo Using agent-qa-ci aws profile\n\
    \  $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E profile >> ~/.aws/config\
    \ || exit $?\n  # Now all `aws` commands target the agent-qa profile\n  export\
    \ AWS_PROFILE=agent-qa-ci\nelse\n  # Assume role to fetch only once credentials\
    \ and avoid rate limits\n  echo Assuming ddbuild-agent-ci role\n  roleoutput=\"\
    $(aws sts assume-role --role-arn arn:aws:iam::669783387624:role/ddbuild-agent-ci\
    \ --external-id ddbuild-agent-ci --role-session-name RoleSession)\"\n  export\
    \ AWS_ACCESS_KEY_ID=\"$(echo \"$roleoutput\" | jq -r '.Credentials.AccessKeyId')\"\
    \n  export AWS_SECRET_ACCESS_KEY=\"$(echo \"$roleoutput\" | jq -r '.Credentials.SecretAccessKey')\"\
    \n  export AWS_SESSION_TOKEN=\"$(echo \"$roleoutput\" | jq -r '.Credentials.SessionToken')\"\
    \nfi\n"
  - $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_public_key_rsa > $E2E_AWS_PUBLIC_KEY_PATH
    || exit $?
  - touch $E2E_AWS_PRIVATE_KEY_PATH && chmod 600 $E2E_AWS_PRIVATE_KEY_PATH && $CI_PROJECT_DIR/tools/ci/fetch_secret.sh
    $AGENT_QA_E2E ssh_key_rsa > $E2E_AWS_PRIVATE_KEY_PATH || exit $?
  - $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_public_key_rsa > $E2E_AZURE_PUBLIC_KEY_PATH
    || exit $?
  - touch $E2E_AZURE_PRIVATE_KEY_PATH && chmod 600 $E2E_AZURE_PRIVATE_KEY_PATH &&
    $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_key_rsa > $E2E_AZURE_PRIVATE_KEY_PATH
    || exit $?
  - $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_public_key_rsa > $E2E_GCP_PUBLIC_KEY_PATH
    || exit $?
  - touch $E2E_GCP_PRIVATE_KEY_PATH && chmod 600 $E2E_GCP_PRIVATE_KEY_PATH && $CI_PROJECT_DIR/tools/ci/fetch_secret.sh
    $AGENT_QA_E2E ssh_key_rsa > $E2E_GCP_PRIVATE_KEY_PATH || exit $?
  - pulumi login "s3://dd-pulumi-state?region=us-east-1&awssdk=v2&profile=$AWS_PROFILE"
  - ARM_CLIENT_ID=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $E2E_AZURE client_id)
    || exit $?; export ARM_CLIENT_ID
  - ARM_CLIENT_SECRET=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $E2E_AZURE token)
    || exit $?; export ARM_CLIENT_SECRET
  - ARM_TENANT_ID=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $E2E_AZURE tenant_id)
    || exit $?; export ARM_TENANT_ID
  - ARM_SUBSCRIPTION_ID=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $E2E_AZURE subscription_id)
    || exit $?; export ARM_SUBSCRIPTION_ID
  - $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $E2E_GCP credentials_json > ~/gcp-credentials.json
    || exit $?
  - export GOOGLE_APPLICATION_CREDENTIALS=~/gcp-credentials.json
  - 'gcp_acr_key=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $E2E_GCP credentials_acr_readonly)
    || exit $?

    export E2E_GCP_IMAGE_PULL_PASSWORD="b64=$(printf ''%s'' "$gcp_acr_key" | base64
    -w 0)"

    '
  - dda inv -- -e gitlab.generate-ci-visibility-links --output=$EXTERNAL_LINKS_PATH
  - export DD_ENV=nativetest
  - export DD_CIVISIBILITY_ENABLED=true
  - export DD_CIVISIBILITY_AGENTLESS_ENABLED=true
  - export DD_CIVISIBILITY_FLAKY_RETRY_ENABLED=false
  - export DD_TAGS="gitlab.pipeline_source:${CI_PIPELINE_SOURCE}"
  - DD_API_KEY=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_API_KEY_ORG2 token)
    || exit $?; export DD_API_KEY
  - export WINDOWS_DDNPM_DRIVER=${WINDOWS_DDNPM_DRIVER:-$(dda inv release.get-release-json-value
    "dependencies::WINDOWS_DDNPM_DRIVER" --no-worktree)}
  - export WINDOWS_DDPROCMON_DRIVER=${WINDOWS_DDPROCMON_DRIVER:-$(dda inv release.get-release-json-value
    "dependencies::WINDOWS_DDPROCMON_DRIVER" --no-worktree)}
  cache:
  - key:
      files:
      - .bazelversion
      prefix: bazelversion-$CI_RUNNER_DESCRIPTION
    paths:
    - .cache/bazelisk
    - .cache/bazel/*/install
    policy: pull$BAZEL_CACHE_POLICY_SUFFIX
    when: on_success
  - key:
      files:
      - MODULE.bazel.lock
      prefix: bazel-$CI_JOB_NAME
    paths:
    - .cache/bazel/*/cache
    - .cache/go
    - .cache/ms-go
    - .cache/pip
    policy: pull$BAZEL_CACHE_POLICY_SUFFIX
    when: on_success
  id_tokens:
    BUILDBARN_ID_TOKEN:
      aud: buildbarn.us1.ddbuild.io
  image: registry.ddbuild.io/ci/datadog-agent-buildimages/linux$CI_IMAGE_LINUX_SUFFIX:$CI_IMAGE_LINUX
  needs:
  - go_e2e_deps
  - artifacts: false
    job: go_e2e_test_binaries
  - go_tools_deps
  - job: new-e2e-base-coverage
    optional: true
  - job: publish_fakeintake
    optional: true
  - job: publish_fakeintake_pinned
    optional: true
  - windows_msi_and_bosh_zip_x64-a7
  - windows_msi_and_bosh_zip_x64-a7-fips
  rules:
  - if: $RUN_E2E_TESTS == "off"
    when: never
  - if: $CI_COMMIT_BRANCH =~ /^mq-working-branch-/
    when: never
  - if: $RUN_E2E_TESTS == "off"
    when: never
  - if: $CI_COMMIT_BRANCH =~ /^mq-working-branch-/
    when: never
  - changes:
      compare_to: $COMPARE_TO_BRANCH
      paths:
      - test/fakeintake/cmd/server/**/*.go
      - test/fakeintake/server/**/*.go
      - test/fakeintake/aggregator/**/*.go
      - test/fakeintake/api/**/*.go
      - test/fakeintake/go.mod
      - test/fakeintake/go.sum
      - test/fakeintake/Dockerfile
      - test/fakeintake/version/VERSION
      - .gitlab/build/binary_build/fakeintake.yml
      - .gitlab/deploy/container_build/fakeintake.yml
      - .gitlab/deploy/dev_container_deploy/fakeintake.yml
    variables:
      E2E_FAKEINTAKE_IMAGE_OVERRIDE: public.ecr.aws/datadog/fakeintake:v$CI_COMMIT_SHORT_SHA
    when: on_success
  - if: $RUN_E2E_TESTS == "on"
    when: on_success
  - if: $CI_COMMIT_BRANCH == "main"
    when: on_success
  - if: $CI_COMMIT_BRANCH =~ /^[0-9]+\.[0-9]+\.x$/
    when: on_success
  - if: $CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+$/
    when: on_success
  - changes:
      compare_to: $COMPARE_TO_BRANCH
      paths:
      - test/fakeintake/**/*
      - .gitlab/build/binary_build/fakeintake.yml
      - .gitlab/deploy/container_build/fakeintake.yml
      - .gitlab/deploy/dev_container_deploy/fakeintake.yml
    when: on_success
  - changes:
      compare_to: $COMPARE_TO_BRANCH
      paths:
      - .gitlab/test/e2e/e2e.yml
      - bazel/rules/go_shim/**/*
      - internal/tools/**/*
      - test/e2e-framework/**/*
      - test/new-e2e/go.mod
      - flakes.yaml
      - release.json
  - changes:
      compare_to: $COMPARE_TO_BRANCH
      paths:
      - cmd/privateactionrunner/**/*
      - comp/privateactionrunner/**/*
      - pkg/privateactionrunner/**/*
      - pkg/config/setup/privateactionrunner.go
      - pkg/proto/datadog/privateactionrunner/**/*
      - pkg/proto/pbgo/privateactionrunner/**/*
      - test/new-e2e/tests/privateactionrunner/**/*
    when: on_success
  - if: $CI_COMMIT_BRANCH =~ /^mq-working-branch-/
    when: never
  - allow_failure: true
    when: manual
  script:
  - export IS_DEV_BRANCH="$(dda inv -- -e pipeline.is-dev-branch)"
  - DYNAMIC_TESTS_BREAKGLASS=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $DYNAMIC_TESTS_BREAKGLASS
    value) || exit $?; export DYNAMIC_TESTS_BREAKGLASS
  - "if [ \"$DYNAMIC_TESTS_BREAKGLASS\" == \"true\" ] || [ \"$IS_DEV_BRANCH\" == \"\
    false\" ] || [ \"$RUN_E2E_TESTS\" == \"on\" ]; then\n  export DYNAMIC_TESTS_FLAG=\"\
    \"\nfi\n"
  - export E2E_IMAGE_PULL_PASSWORD=$(aws ecr get-login-password),$E2E_GCP_IMAGE_PULL_PASSWORD
  - dda inv -- -e new-e2e-tests.run $DYNAMIC_TESTS_FLAG $PRE_BUILT_BINARIES_FLAG $MAX_RETRIES_FLAG
    --local-package $CI_PROJECT_DIR/$OMNIBUS_BASE_DIR --result-json $E2E_RESULT_JSON
    --targets $TARGETS --junit-tar junit-${CI_JOB_ID}.tgz ${EXTRA_PARAMS} --test-washer
    --logs-folder=$E2E_OUTPUT_DIR/logs --logs-post-processing --logs-post-processing-test-depth=$E2E_LOGS_PROCESSING_TEST_DEPTH
  stage: e2e
  tags:
  - arch:amd64
  - specific:true
  variables:
    BAZELISK_HOME: $XDG_CACHE_HOME/bazelisk
    DYNAMIC_TESTS_FLAG: --impacted
    E2E_AWS_PRIVATE_KEY_PATH: /tmp/agent-qa-aws-ssh-key
    E2E_AWS_PUBLIC_KEY_PATH: /tmp/agent-qa-aws-ssh-key.pub
    E2E_AZURE_PRIVATE_KEY_PATH: /tmp/agent-qa-azure-ssh-key
    E2E_AZURE_PUBLIC_KEY_PATH: /tmp/agent-qa-azure-ssh-key.pub
    E2E_COMMIT_SHA: $CI_COMMIT_SHORT_SHA
    E2E_COVERAGE_OUT_DIR: $CI_PROJECT_DIR/coverage
    E2E_GCP_PRIVATE_KEY_PATH: /tmp/agent-qa-gcp-ssh-key
    E2E_GCP_PUBLIC_KEY_PATH: /tmp/agent-qa-gcp-ssh-key.pub
    E2E_IMAGE_PULL_REGISTRY: 669783387624.dkr.ecr.us-east-1.amazonaws.com,us-central1-docker.pkg.dev
    E2E_IMAGE_PULL_USERNAME: AWS,_json_key
    E2E_KEY_PAIR_NAME: datadog-agent-ci-rsa
    E2E_LOGS_PROCESSING_TEST_DEPTH: 1
    E2E_OUTPUT_DIR: $CI_PROJECT_DIR/e2e-output
    E2E_PIPELINE_ID: $CI_PIPELINE_ID
    E2E_PREBUILD_S3_URI: $S3_PERMANENT_ARTIFACTS_URI/e2e-pre-build/$CI_PIPELINE_ID
    E2E_RESULT_JSON: $CI_PROJECT_DIR/e2e_test_output.json
    E2E_SKIP_WINDOWS: $SKIP_WINDOWS
    E2E_USE_AWS_PROFILE: 'true'
    EXTERNAL_LINKS_PATH: external_links_$CI_JOB_ID.json
    EXTRA_PARAMS: --run "Windows"
    FLAKY_PATTERNS_CONFIG: $CI_PROJECT_DIR/flaky-patterns-runtime.yaml
    GIT_DEPTH: 0
    GIT_STRATEGY: clone
    KUBERNETES_CPU_REQUEST: 6
    KUBERNETES_MEMORY_LIMIT: 16Gi
    KUBERNETES_MEMORY_REQUEST: 12Gi
    MAX_RETRIES_FLAG: ''
    PRE_BUILT_BINARIES_FLAG: --use-prebuilt-binaries
    REMOTE_STACK_CLEANING: 'true'
    SHOULD_RUN_IN_FLAKES_FINDER: 'true'
    TARGETS: ./tests/privateactionrunner
    TEAM: action-platform
    XDG_CACHE_HOME: $CI_PROJECT_DIR/.cache

Changes Summary

Removed Modified Added Renamed
0 1 1 0

ℹ️ Diff available in the job log.

chatgpt-codex-connector[bot]

This comment was marked as outdated.

@embeaken
embeaken force-pushed the ilya/par-control-integration branch from b9f8762 to 0c700ba Compare August 6, 2026 17:54
@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

🎯 Code Coverage (details)
Patch Coverage: 52.21%
Overall Coverage: 52.67% (+0.00%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 3eda2e7 | Docs | View more details | Give us feedback!

@embeaken
embeaken force-pushed the ilya/par-control-integration branch from 0c700ba to 5035d15 Compare August 6, 2026 18:00
@embeaken
embeaken force-pushed the ilya/par-control-packaging branch from f0f6ff6 to d63d1da Compare August 6, 2026 18:02
@embeaken
embeaken changed the base branch from ilya/par-control-integration to ilya/par-control-runner-wiring August 6, 2026 18:04
@embeaken embeaken mentioned this pull request Aug 6, 2026
@embeaken
embeaken force-pushed the ilya/par-control-runner-wiring branch from 3564748 to 8f3dd5f Compare August 6, 2026 18:09
@embeaken
embeaken force-pushed the ilya/par-control-packaging branch from d63d1da to d71c97c Compare August 6, 2026 18:09
@embeaken
embeaken force-pushed the ilya/par-control-runner-wiring branch from 8f3dd5f to 9baf977 Compare August 6, 2026 18:34
@embeaken
embeaken force-pushed the ilya/par-control-packaging branch from d71c97c to 58007bc Compare August 6, 2026 18:34
@dd-octo-sts

dd-octo-sts Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Go Package Import Differences

Baseline: 296059f
Comparison: 3eda2e7

binaryosarchchange
agentlinuxamd64
+9, -0
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/def
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/fx
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/impl
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/adapters/constants
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/connection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/privateconnection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/types
+github.com/DataDog/datadog-agent/pkg/proto/pbgo/privateactionrunner/privateactions
agentlinuxarm64
+9, -0
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/def
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/fx
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/impl
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/adapters/constants
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/connection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/privateconnection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/types
+github.com/DataDog/datadog-agent/pkg/proto/pbgo/privateactionrunner/privateactions
agentwindowsamd64
+9, -0
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/def
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/fx
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/impl
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/adapters/constants
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/connection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/privateconnection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/types
+github.com/DataDog/datadog-agent/pkg/proto/pbgo/privateactionrunner/privateactions
agentdarwinamd64
+9, -0
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/def
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/fx
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/impl
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/adapters/constants
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/connection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/privateconnection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/types
+github.com/DataDog/datadog-agent/pkg/proto/pbgo/privateactionrunner/privateactions
agentdarwinarm64
+9, -0
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/def
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/fx
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/impl
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/adapters/constants
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/connection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/privateconnection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/types
+github.com/DataDog/datadog-agent/pkg/proto/pbgo/privateactionrunner/privateactions
agentaixppc64
+9, -0
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/def
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/fx
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/impl
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/adapters/constants
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/connection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/privateconnection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/types
+github.com/DataDog/datadog-agent/pkg/proto/pbgo/privateactionrunner/privateactions
iot-agentlinuxamd64
+9, -0
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/def
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/fx
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/impl
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/adapters/constants
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/connection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/privateconnection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/types
+github.com/DataDog/datadog-agent/pkg/proto/pbgo/privateactionrunner/privateactions
iot-agentlinuxarm64
+9, -0
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/def
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/fx
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/impl
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/adapters/constants
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/connection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/privateconnection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/types
+github.com/DataDog/datadog-agent/pkg/proto/pbgo/privateactionrunner/privateactions
heroku-agentlinuxamd64
+9, -0
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/def
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/fx
+github.com/DataDog/datadog-agent/comp/privateactionrunner/signingkeys/impl
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/adapters/constants
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/connection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/libs/privateconnection
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/types
+github.com/DataDog/datadog-agent/pkg/proto/pbgo/privateactionrunner/privateactions
cluster-agentlinuxamd64
+1, -0
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
cluster-agentlinuxarm64
+1, -0
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
privateactionrunnerlinuxamd64
+3, -0
+github.com/DataDog/datadog-agent/cmd/privateactionrunner/subcommands/bootstrapparcontrol
+github.com/DataDog/datadog-agent/cmd/privateactionrunner/subcommands/identity
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
privateactionrunnerlinuxarm64
+3, -0
+github.com/DataDog/datadog-agent/cmd/privateactionrunner/subcommands/bootstrapparcontrol
+github.com/DataDog/datadog-agent/cmd/privateactionrunner/subcommands/identity
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
privateactionrunnerwindowsamd64
+3, -0
+github.com/DataDog/datadog-agent/cmd/privateactionrunner/subcommands/bootstrapparcontrol
+github.com/DataDog/datadog-agent/cmd/privateactionrunner/subcommands/identity
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
privateactionrunnerdarwinamd64
+3, -0
+github.com/DataDog/datadog-agent/cmd/privateactionrunner/subcommands/bootstrapparcontrol
+github.com/DataDog/datadog-agent/cmd/privateactionrunner/subcommands/identity
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys
privateactionrunnerdarwinarm64
+3, -0
+github.com/DataDog/datadog-agent/cmd/privateactionrunner/subcommands/bootstrapparcontrol
+github.com/DataDog/datadog-agent/cmd/privateactionrunner/subcommands/identity
+github.com/DataDog/datadog-agent/pkg/privateactionrunner/signingkeys

@github-actions github-actions Bot added the long review PR is complex, plan time to review it label Aug 6, 2026
@embeaken
embeaken force-pushed the ilya/par-control-packaging branch from fe1b3c3 to 9cd55fb Compare August 7, 2026 20:57
@embeaken
embeaken force-pushed the ilya/par-control-runner-wiring branch 2 times, most recently from 492099e to da8c7bf Compare August 10, 2026 15:09
@embeaken
embeaken force-pushed the ilya/par-control-packaging branch from 9cd55fb to 32c23f1 Compare August 10, 2026 15:09
@embeaken
embeaken force-pushed the ilya/par-control-runner-wiring branch from da8c7bf to a63285f Compare August 10, 2026 15:22
@embeaken
embeaken force-pushed the ilya/par-control-packaging branch from 32c23f1 to 9cd2336 Compare August 10, 2026 15:26
@embeaken
embeaken force-pushed the ilya/par-control-runner-wiring branch from a63285f to f1fbdb7 Compare August 10, 2026 16:14
@embeaken
embeaken force-pushed the ilya/par-control-packaging branch 2 times, most recently from 3763110 to fdd3c78 Compare August 10, 2026 17:12
@embeaken
embeaken force-pushed the ilya/par-control-runner-wiring branch from f1fbdb7 to b74dce0 Compare August 10, 2026 17:12
@embeaken
embeaken force-pushed the ilya/par-control-packaging branch from fdd3c78 to 3f5a8d2 Compare August 10, 2026 17:26
@embeaken
embeaken force-pushed the ilya/par-control-runner-wiring branch from b74dce0 to eb4762e Compare August 10, 2026 17:26
@embeaken
embeaken force-pushed the ilya/par-control-packaging branch from 3f5a8d2 to 8c77f78 Compare August 10, 2026 18:22
@embeaken
embeaken force-pushed the ilya/par-control-runner-wiring branch 2 times, most recently from 461e8cc to 9b525b9 Compare August 10, 2026 18:50
@embeaken
embeaken force-pushed the ilya/par-control-packaging branch from 8c77f78 to 7ef24ed Compare August 10, 2026 18:51
@embeaken
embeaken force-pushed the ilya/par-control-runner-wiring branch from 9b525b9 to 111ff22 Compare August 10, 2026 19:01
@embeaken
embeaken force-pushed the ilya/par-control-packaging branch from 7ef24ed to d4af37c Compare August 10, 2026 19:02
@embeaken
embeaken force-pushed the ilya/par-control-runner-wiring branch from 111ff22 to 6e0ba2a Compare August 10, 2026 19:12
@embeaken
embeaken force-pushed the ilya/par-control-packaging branch 2 times, most recently from 7797d82 to deaab4e Compare August 10, 2026 19:35
@embeaken
embeaken force-pushed the ilya/par-control-runner-wiring branch from 6e0ba2a to 75208d0 Compare August 10, 2026 19:35
@embeaken
embeaken force-pushed the ilya/par-control-packaging branch from deaab4e to 73ed519 Compare August 10, 2026 20:07
@embeaken
embeaken force-pushed the ilya/par-control-runner-wiring branch from 75208d0 to 374f5c4 Compare August 10, 2026 20:07
@embeaken
embeaken force-pushed the ilya/par-control-packaging branch from 73ed519 to 3c683d5 Compare August 10, 2026 20:47
@dd-octo-sts

dd-octo-sts Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Files inventory check summary

File checks results against ancestor 296059ff:

Results for datadog-agent_7.84.0~devel.git.464.3eda2e7.pipeline.132944423-1_amd64.deb:

Detected file changes:

1 Added files:

  • opt/datadog-agent/embedded/bin/par-control (5.61 MiB)

Results for datadog-iot-agent_7.84.0~devel.git.464.3eda2e7.pipeline.132944423-1_amd64.deb:

No change detected

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant