feat(infrastructure): add scaffolding for the infrastructure kind#154
Open
Nageshbansal wants to merge 23 commits into
Open
feat(infrastructure): add scaffolding for the infrastructure kind#154Nageshbansal wants to merge 23 commits into
Nageshbansal wants to merge 23 commits into
Conversation
Nageshbansal
marked this pull request as draft
July 14, 2026 13:27
- resource ref: no fabricated default, apiVersion enum, name pattern - reject absent resource kind before the merge can default it to Installation - reject unsupported consumer kinds (self-reference) at load - drop the no-op resource molding: the kind has zero moldings - rework tests to the Subject_Outcome table idiom; add loader coverage
Nageshbansal
marked this pull request as ready for review
July 15, 2026 13:28
… terraform casting
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.
Adds scaffolding for the third casting kind,
Infrastructure: schema, types, pipeline wiring, and a first casting. The installation migration follows separately.Features
KindInfrastructurewith its own api package and per-kind schema. Spec isdeployment,resourceandpatches.spec.resourcedeclares which kind the infrastructure serves (InstallationorCollectionAgent). Nothing else: the installation owns the binding and declares it on its own casting, so no name or apiVersion here, and nothing is read from the other casting.resourcemolding: writes what the declared kind needs intoresource.status(ports as addresses; storage and node sizing in theresource.yamlconfig).awskubernetesterraformcasting: forges an EKS setup underpours/infrastructure/(VPC, cluster, one node group, EBS CSI addon when the kind needs storage). Node sizes are written as vcpus and memory and resolved to an instance type by terraform at plan time; a variable pins an exact type.spec.infrastructureto the binding:{name}of the infrastructure casting it runs on. The consumer owns the reference; the infrastructure declares only the kind it serves. Breaking for any casting that set the oldenabled/statusfields; the ledger shows zero ever did.internal/infrastructure, the forge special case, the per-component aws/gcp/azure templates).docs/examples/aws/kubernetes/terraform/.Out of scope
Cast(): logs the terraform steps instead of running them.Example
Tests
terraform validate.