Skip to content

Fix Operator agreement acceptance in Lambda runtimes - #352

Merged
fanny-jiang merged 2 commits into
masterfrom
fanny/TON-862/fix-agreement-pagination
Aug 27, 2026
Merged

Fix Operator agreement acceptance in Lambda runtimes#352
fanny-jiang merged 2 commits into
masterfrom
fanny/TON-862/fix-agreement-pagination

Conversation

@fanny-jiang

@fanny-jiang fanny-jiang commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Add a botocore compatibility model for the AWS Marketplace Agreement operations and paginators missing from the Lambda runtime:

  • CreateAgreementRequest
  • AcceptAgreementRequest
  • GetAgreementEntitlements
  • SearchAgreements pagination
  • GetAgreementEntitlements pagination

The compatibility layer patches only missing definitions and preserves definitions supplied natively by newer SDK versions. This retains botocore request validation, SigV4 signing, retries, response parsing, and paginator behavior.

The release process inlines the compatibility model into the CloudFormation ZipFile Lambda, and initialization logs report whether the compatibility model was applied. The Quick Start template version is bumped to v4.19.1.

Motivation

The Python 3.14 Lambda runtime currently bundles boto3 1.42.97. Its Marketplace Agreement model does not expose all operations and paginators required to discover, create, accept, and verify the Datadog Operator agreement. This caused EKS Quick Start onboarding to fail before the managed add-on could be installed.

Testing Guidelines

  • Ran all Quick Start Python suites independently under Python 3.14: 159 tests passed.
  • Verified release.sh syntax and git diff hygiene.
  • Verified the injected definitions against the AWS Marketplace Agreement 2020-03-01 service and paginator models.
  • Verified the rendered inline Lambda compiles and stays well below the CloudFormation inline-code size limit.
  • Staging E2E with a pre-existing agreement:
    • Compatibility model applied on boto3 1.42.97.
    • The active agreement was discovered and reused.
    • Entitlement reached PROVISIONED with reason AGREEMENT_ACTIVE.
    • The root stack reached CREATE_COMPLETE.
  • Staging E2E without a pre-existing agreement:
    • Active-agreement discovery returned empty.
    • The public free offer and zero-cost quote were validated.
    • A new agreement request was created and accepted.
    • Entitlement reached PROVISIONED with reason AGREEMENT_ACTIVE after approximately 86 seconds.
    • The root stack reached CREATE_COMPLETE.

Additional Notes

CloudFormation deletion continues to retain the Marketplace agreement. The compatibility layer becomes a no-op once the Lambda runtime provides all required native definitions. It can be removed, along with its tests and release inlining, after those definitions are verified across every supported Python runtime and AWS Region.

@fanny-jiang
fanny-jiang marked this pull request as ready for review August 25, 2026 16:32
@fanny-jiang
fanny-jiang requested a review from a team as a code owner August 25, 2026 16:32
@fanny-jiang fanny-jiang changed the title Fix AWS Marketplace agreement discovery pagination Support Operator agreement acceptance in Lambda runtimes Aug 25, 2026
@fanny-jiang fanny-jiang changed the title Support Operator agreement acceptance in Lambda runtimes Fix Operator agreement acceptance in Lambda runtimes Aug 25, 2026
@fanny-jiang

Copy link
Copy Markdown
Contributor Author

/merge

@gh-worker-devflow-routing-ef8351

gh-worker-devflow-routing-ef8351 Bot commented Aug 27, 2026

Copy link
Copy Markdown

View all feedbacks in Devflow UI.

2026-08-27 14:14:15 UTC ℹ️ Start processing command /merge


2026-08-27 14:14:20 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in master is approximately 4m (p90).


2026-08-27 14:16:55 UTC 🚨 MergeQueue: This merge request is in error because of DDCI

cannot trigger DDCI.
If this continues, please let us know in #ci-infra-support with the following details:

  • Head SHA of the MQ branch: e4e3b46
  • Name of the MQ branch: mq-working-branch-master-96ac28c
  • The DDCI Workflow from GenerateDDCIRequestFromDevflow: atlas

@fanny-jiang
fanny-jiang merged commit b3e6127 into master Aug 27, 2026
7 of 8 checks passed
@fanny-jiang
fanny-jiang deleted the fanny/TON-862/fix-agreement-pagination branch August 27, 2026 14:38
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.

3 participants