docs: design proposal for deterministic generation of identity, references, fuzzers and controllers - #13487
Draft
ldanielmadariaga wants to merge 2 commits into
Draft
docs: design proposal for deterministic generation of identity, references, fuzzers and controllers#13487ldanielmadariaga wants to merge 2 commits into
ldanielmadariaga wants to merge 2 commits into
Conversation
…ences, fuzzers and controllers Follow-up to the Step 1 design (GoogleCloudPlatform#13394), tracked in GoogleCloudPlatform#13411. Proposes applying the Step 1 principle ("emit what the proto states, record what it doesn't") to the greenfield artifacts that come after types: identity and reference files, fuzzers, and archetype-A controllers, with skeleton fixtures. Delivery is a staged ratchet (types -> identity/reference -> fuzzer -> controller), one stage per PR. Each stage's kinds are listed in generate.sh, and a kind advances only when a PR advances it and its blocking judgement-queue entries are cleared. The doc covers the fit verdict per artifact, the decisions taken so far, PR-size estimates per stage, the design, the implementation phases with their offline and pilot gates, and the blockers and pitfalls. It flags, without fixing, the mismatch between the documented Adapter.Delete contract and the (true, nil) NOT_FOUND convention.
Contributor
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Start with the work that doesn't depend on the open Step 1 PRs: the API model (PR 0.1) and the deterministic fuzzer (phase 1) in parallel, then archetype-A controllers. Identity and reference generation (PRs 0.2-0.7) follows GoogleCloudPlatform#13401. The order of stages each kind goes through is unchanged; existing kinds already have hand-written identities.
This was referenced Oct 1, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Design proposal for extending deterministic generation beyond types (Step 1, #13394) to identity and reference files, fuzzers and archetype-A controllers for greenfield resources.
Part of #13411.
Doc:
docs/designs/deterministic-generation-identity-and-controllers.mdHighlights:
generate.sh, and a kind advances only when its blocking judgement-queue entries are cleared. Includes PR-size estimates per stage, based on 85 merged greenfield PRs, and compares this against generating everything at once.*.generated.go, and hand-written functions win, as in generate-mapper.(true, nil)fromDeleteon NOT_FOUND to avoid a reconciliation loop. TheAdapterinterface documents(false, nil), and the caller discards the bool.Open items for maintainers are in section 12: unset-field semantics, blocking beta on open queue entries, the Delete return value, skip-listed services, and where stage PRs split.