Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
9ab78c8
feat(infrastructure): add scaffolding for the infrastructure kind
Nageshbansal Jul 14, 2026
e00d271
Merge branch 'main' into feat/infrastructure/scaffolding
Nageshbansal Jul 14, 2026
e5ebf04
refactor(infrastructure): slim resource ref to identity and add statu…
Nageshbansal Jul 15, 2026
d06176c
refactor(v1alpha1): drop outputs from the shared casting status
Nageshbansal Jul 15, 2026
9e819c9
refactor(infrastructure): apply schema-first fixes to the scaffolding
Nageshbansal Jul 15, 2026
d73e795
chore(telemetrystore): revert unintended template change
Nageshbansal Jul 15, 2026
654bbc7
refactor(infrastructure): reshape resource as the kind's molding
Nageshbansal Jul 15, 2026
6d32ccd
refactor(infrastructure): strip invented exposure content from resour…
Nageshbansal Jul 15, 2026
12722a4
feat(infrastructure): record the resolved casting in the resource status
Nageshbansal Jul 15, 2026
ada6fda
refactor(infrastructure): trim resolution record and restore schema g…
Nageshbansal Jul 15, 2026
4c37669
refactor(v1alpha1): model the casting ref as a spec and status pair
Nageshbansal Jul 15, 2026
d1be975
refactor(v1alpha1): reduce the casting ref to its identity spec
Nageshbansal Jul 15, 2026
29993d2
refactor(infrastructure): name the stub casting for its combination
Nageshbansal Jul 15, 2026
c0efbf7
refactor(infrastructure): reduce the resource to its declared identity
Nageshbansal Jul 15, 2026
a06e5af
feat(infrastructure): add the aws kubernetes terraform casting
Nageshbansal Jul 15, 2026
a7a53cd
feat(infrastructure): migrate the eks templates to the aws kubernetes…
Nageshbansal Jul 16, 2026
03d4678
feat(infrastructure): adopt foundry discovery tags and honest node gr…
Nageshbansal Jul 16, 2026
7df32dd
feat(infrastructure): materialize the resource requirement set in status
Nageshbansal Jul 16, 2026
cdc1476
refactor(infrastructure): finalize the casting layout and add the exa…
Nageshbansal Jul 16, 2026
f0552ba
Merge branch 'main' into feat/infrastructure/scaffolding
Nageshbansal Jul 16, 2026
1a3c87a
Merge branch 'main' into feat/infrastructure/scaffolding
Nageshbansal Jul 18, 2026
9de5f38
refactor(infrastructure): declare the resource by kind alone
Nageshbansal Jul 21, 2026
5e1319c
feat(installation): bind to the infrastructure casting by name
Nageshbansal Jul 21, 2026
9f510c5
Merge remote-tracking branch 'origin/main' into HEAD
Nageshbansal Jul 29, 2026
ce84e5a
feat(infrastructure): resolve the requirement document in the resourc…
Nageshbansal Jul 29, 2026
6c57292
refactor(infrastructure): adopt the pourer casting contract
Nageshbansal Jul 29, 2026
1bad275
feat(domain): merge lists of maps by a key field
Nageshbansal Aug 4, 2026
4908949
refactor(infrastructure): shape node groups in the node-pool vocabulary
Nageshbansal Aug 4, 2026
74718a2
chore(infrastructure): drop the aws kubernetes terraform casting
Nageshbansal Aug 4, 2026
2c96834
Merge remote-tracking branch 'origin' into feat/infrastructure/scaffo…
Nageshbansal Aug 4, 2026
5feb110
feat(convention): derive substrate names and tags
Nageshbansal Aug 5, 2026
267bdb2
refactor(infrastructure): key node groups by storage class
Nageshbansal Aug 5, 2026
ef9c721
docs(convention): state the constraint, not the reasoning
Nageshbansal Aug 5, 2026
8b9c09a
docs(infrastructure): add the concept page for the kind
Nageshbansal Aug 5, 2026
e46c3d0
fix: fix the infrastructure package layout
Nageshbansal Aug 5, 2026
5e2b75f
refactor(infrastructure): make resource.yaml canonical and derive per…
Nageshbansal Aug 6, 2026
7dfe9a4
feat(convention): split the aws derivation out of the neutral core
Nageshbansal Aug 6, 2026
876e7d0
docs(infrastructure): describe the canonical resource document
Nageshbansal Aug 6, 2026
1d5e46a
feat(infrastructure): add the ecs ec2 terraform casting
Nageshbansal Aug 6, 2026
557801a
feat(casting/ecs): run multi-node clusters and find the substrate by tag
Nageshbansal Aug 6, 2026
0bd60a6
docs(reference): correct the ecs annotation table
Nageshbansal Aug 6, 2026
3e1db24
feat: better handle tool invocations
Nageshbansal Aug 9, 2026
87289fe
fix: lift off the ownership to runners
Nageshbansal Aug 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions api/v1alpha1/casting.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
},
{
"$ref": "collectionagent/casting.schema.json"
},
{
"$ref": "infrastructure/casting.schema.json"
}
]
}
3 changes: 2 additions & 1 deletion api/v1alpha1/casting_kind.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ var _ jsonschema.Enum = (*Kind)(nil)
var (
KindInstallation Kind = Kind{s: "Installation"}
KindCollectionAgent Kind = Kind{s: "CollectionAgent"}
KindInfrastructure Kind = Kind{s: "Infrastructure"}
)

// Kind discriminates between top-level casting resource types.
Expand All @@ -33,7 +34,7 @@ func (kind Kind) String() string {
}

func Kinds() []Kind {
return []Kind{KindInstallation, KindCollectionAgent}
return []Kind{KindInstallation, KindCollectionAgent, KindInfrastructure}
}

func (kind Kind) MarshalJSON() ([]byte, error) {
Expand Down
69 changes: 69 additions & 0 deletions api/v1alpha1/infrastructure/casting.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package infrastructure

import (
"github.com/signoz/foundry/api/v1alpha1"
"github.com/signoz/foundry/internal/domain"
)

// Casting is the Infrastructure kind.
type Casting struct {
v1alpha1.CastingMeta `json:",inline" yaml:",inline"`
Spec Spec `json:"spec" yaml:"spec" required:"true" description:"Infrastructure specification"`
_ struct{} `additionalProperties:"false"`
}

// Spec is the Infrastructure-specific configuration.
type Spec struct {
Deployment v1alpha1.TypeDeployment `json:"deployment" yaml:"deployment" required:"true" description:"Deployment configuration for the platform"`
Resource Resource `json:"resource" yaml:"resource" required:"true" description:"The configuration for the resource molding"`
Patches []v1alpha1.PatchEntry `json:"patches,omitempty" yaml:"patches,omitempty" description:"Patch operations to apply to generated materials"`
_ struct{} `additionalProperties:"false"`
}

var _ v1alpha1.Machinery = (*Casting)(nil)

// Default returns an Infrastructure casting with defaults initialised.
func Default() *Casting {
return &Casting{
CastingMeta: v1alpha1.CastingMeta{
TypeVersion: v1alpha1.TypeVersion{APIVersion: "v1alpha1"},
Kind: v1alpha1.KindInfrastructure,
Metadata: v1alpha1.TypeMetadata{Name: "signoz"},
},
Spec: Spec{},
}
}

// Example returns a minimal Infrastructure; the forge pipeline fills in
// defaults.
func Example() *Casting {
return &Casting{
CastingMeta: v1alpha1.CastingMeta{
TypeVersion: v1alpha1.TypeVersion{APIVersion: "v1alpha1"},
Kind: v1alpha1.KindInfrastructure,
Metadata: v1alpha1.TypeMetadata{Name: "signoz"},
},
}
}

// Kind reports the casting kind. Shadows the embedded CastingMeta.Kind field;
// the field stays reachable as c.CastingMeta.Kind.
func (c *Casting) Kind() v1alpha1.Kind {
return v1alpha1.KindInfrastructure
}

// MergeStatusIntoSpec folds molding-written status into spec. The resource
// spec carries identity only; nothing merges.
func (c *Casting) MergeStatusIntoSpec() error {
return nil
}

// TrackableProperties returns analytics tags for the casting.
func (c *Casting) TrackableProperties() domain.Properties {
return domain.NewProperties().
Set("kind", v1alpha1.KindInfrastructure.String()).
Set("platform", c.Spec.Deployment.Platform.String()).
Set("mode", c.Spec.Deployment.Mode.String()).
Set("flavor", c.Spec.Deployment.Flavor.String()).
Set("patches_count", len(c.Spec.Patches))
}
Loading
Loading