data-plane-controller: pass through aws_resource_tags stack config field - #3355
Open
SeanWhelan wants to merge 1 commit into
Open
data-plane-controller: pass through aws_resource_tags stack config field#3355SeanWhelan wants to merge 1 commit into
SeanWhelan wants to merge 1 commit into
Conversation
BYOC customers enrolled in AWS's Migration Acceleration Program need a cost-allocation tag (e.g. map-migrated) applied to every AWS resource of their data-plane, including hosts est-dry-dock replaces over time via Pulumi's provider default_tags. data-plane-controller re-serializes data_planes.config into the Pulumi stack config with no serde catch-all, so a field added only on the est-dry-dock/Pydantic side would be silently dropped before Pulumi ever sees it. This adds the Rust side of that field so it survives the round trip; it must ship and deploy before the est-dry-dock change.
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.
Description:
BYOC customers enrolled in AWS's Migration Acceleration Program (MAP) need a cost-allocation tag —
map-migrated = mig<id>in Vivek's/YouLend's case — applied to every AWS resource of their data-plane, including the EC2 hosts (reactor, gazette, etcd) and their EBS volumes. Manual tagging doesn't stick, since est-dry-dock's automation replaces these hosts over time.This adds
aws_resource_tags: BTreeMap<String, String>tostack::DataPlaneincrates/data-plane-controller/src/shared/stack.rs. It's needed because the controller deserializesdata_planes.configand re-serializes it into the Pulumi stack config, andDataPlanehas no serde catch-all — a field added only on the est-dry-dock/Pydantic side would be silently stripped before Pulumi ever sees it.This is plumbing only, at the same tier as the file's other plain stack-config flags (
disable_ipv6,enable_dns_hostnames,s3_endpoint_on_private_subnet): nocrates/modelsor GraphQL surface, since there's no per-entry provisioning result or id correlation to track, unlikeprivate_links.Workflow steps:
Nothing changes for existing data-planes: the field is
#[serde(default, skip_serializing_if = "...is_empty")], so an absent field deserializes to an empty map and an empty map is omitted on serialize — no stack config changes for any plane that doesn't set it.Once deployed, an operator sets
aws_resource_tagson adata_planes.configrow (direct edit, same as the other plain flags above) to apply a tag map to every AWS resource of that one data-plane. This needs the companion est-dry-dock change (estuary/est-dry-dock#350) to actually reach Pulumi/AWS — that PR is gated on this one shipping and deploying first.Documentation links affected:
None.
Notes for reviewers:
aws_resource_tags_round_triptest covers: absent (empty map, omitted on serialize), and a populated map round-tripping out and back in.cargo check -p data-plane-controllerandcargo fmt -p data-plane-controller -- --checkare clean.cargo test -p data-plane-controller --libdoesn't compile here without a live control-plane database — confirmed this is pre-existing and not introduced by this change (same failure on a cleanorigin/master); CI will be the first real run of the new test.default_labels) and Azure (no provider-level equivalent) were investigated and explicitly descoped by the requester for this change.