Figure out and document the recommended way to establish organizational defaults for individual resource types for Config Connector #3344
Labels
area/porch
enhancement
New feature or request
triaged
Issue has been triaged by adding an `area/` label
Copying a good question from slack:
The existing de facto approach to set defaults for individual resource types has been granular nested subpackages with setters.
Here's an example:
https://github.com/GoogleCloudPlatform/blueprints/tree/main/catalog/bucket
That repo has other examples, of redis, spanner, and so on.
However, I've cautioned strongly against setters #3131, as they are manual and error-prone, and obstruct automation. For instance, setters are an obstacle to operating on blueprints with the package orchestrator, to editing them with a UI, to changing settings with security remediation automation, and to creating blueprints automatically.
And I've recommended that users should not need to create packages for individual resource types.
Packages are pretty heavyweight for that granularity, especially for deployment, and also often degenerate to the "every attribute is a parameter" pattern anyway (see the setter issue above).
I've even suggested that we reconsider whether we need nested subpackages #3343.
Furthermore, users should be able to author resources easily enough, such as via:
and so on.
Imperative generators have fewer issues than declarative ones (#2528), and authoring is an imperative process.
Enabling easy configuration authoring is a goal of the project. There's a lot that could be done to improve the UX via user interface surfaces #3145: recommended defaults, smart defaults, step-by-step guidance, and so on.
For Config Connector specifically, we need improvements and additions to the function catalog, such as:
set-project-id
function should configure GCP project ID and project Number in KCC resources #2562,set-project-id
relies on apply-setter to edit project #2690cc @diviner524
The text was updated successfully, but these errors were encountered: