refactor: make namespace implicit in system & virtual resources

Refactor for code simplicity.

Signed-off-by: Pranav Patil <pranavppatil767@gmail.com>
Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
This commit is contained in:
Pranav Patil 2026-01-05 15:56:20 +05:30 committed by Utku Ozdemir
parent 0be460205b
commit 55fd33db39
No known key found for this signature in database
GPG Key ID: DBD13117B0A14E93
16 changed files with 26 additions and 30 deletions

View File

@ -15,9 +15,9 @@ import (
)
// NewCertRefreshTick creates new CertRefreshTick state.
func NewCertRefreshTick(ns, id string) *CertRefreshTick {
func NewCertRefreshTick(id string) *CertRefreshTick {
return typed.NewResource[CertRefreshTickSpec, CertRefreshTickExtension](
resource.NewMetadata(ns, CertRefreshTickType, id, resource.VersionUndefined),
resource.NewMetadata(resources.EphemeralNamespace, CertRefreshTickType, id, resource.VersionUndefined),
protobuf.NewResourceSpec(&specs.CertRefreshTickSpec{}),
)
}

View File

@ -15,9 +15,9 @@ import (
)
// NewDBVersion creates new DBVersion state.
func NewDBVersion(ns, id string) *DBVersion {
func NewDBVersion(id string) *DBVersion {
return typed.NewResource[DBVersionSpec, DBVersionExtension](
resource.NewMetadata(ns, DBVersionType, id, resource.VersionUndefined),
resource.NewMetadata(resources.DefaultNamespace, DBVersionType, id, resource.VersionUndefined),
protobuf.NewResourceSpec(&specs.DBVersionSpec{}),
)
}

View File

@ -15,9 +15,9 @@ import (
)
// NewSysVersion creates new SysVersion state.
func NewSysVersion(ns, id string) *SysVersion {
func NewSysVersion(id string) *SysVersion {
return typed.NewResource[SysVersionSpec, SysVersionExtension](
resource.NewMetadata(ns, SysVersionType, id, resource.VersionUndefined),
resource.NewMetadata(resources.EphemeralNamespace, SysVersionType, id, resource.VersionUndefined),
protobuf.NewResourceSpec(&specs.SysVersionSpec{}),
)
}

View File

@ -15,9 +15,9 @@ import (
)
// NewKubernetesUsage creates new Kubernetes usage resource.
func NewKubernetesUsage(ns, id string) *KubernetesUsage {
func NewKubernetesUsage(id string) *KubernetesUsage {
return typed.NewResource[KubernetesUsageSpec, KubernetesUsageExtension](
resource.NewMetadata(ns, KubernetesUsageType, id, resource.VersionUndefined),
resource.NewMetadata(resources.VirtualNamespace, KubernetesUsageType, id, resource.VersionUndefined),
protobuf.NewResourceSpec(&specs.KubernetesUsageSpec{}),
)
}

View File

@ -15,9 +15,9 @@ import (
)
// NewLabelsCompletion creates new LabelsCompletion resource.
func NewLabelsCompletion(ns string, id resource.ID) *LabelsCompletion {
func NewLabelsCompletion(id resource.ID) *LabelsCompletion {
return typed.NewResource[LabelsCompletionSpec, LabelsCompletionExtension](
resource.NewMetadata(ns, LabelsCompletionType, id, resource.VersionUndefined),
resource.NewMetadata(resources.VirtualNamespace, LabelsCompletionType, id, resource.VersionUndefined),
protobuf.NewResourceSpec(&specs.LabelsCompletionSpec{}),
)
}

View File

@ -159,7 +159,7 @@ If you want to enable the version validation and disable this warning, set githu
return nil
}
sysVersion, err := safe.StateGet[*system.SysVersion](ctx, state, system.NewSysVersion(resources.EphemeralNamespace, system.SysVersionID).Metadata())
sysVersion, err := safe.StateGet[*system.SysVersion](ctx, state, system.NewSysVersion(system.SysVersionID).Metadata())
if err != nil {
return err
}

View File

@ -13,7 +13,6 @@ import (
"github.com/cosi-project/runtime/pkg/safe"
"go.uber.org/zap"
"github.com/siderolabs/omni/client/pkg/omni/resources"
"github.com/siderolabs/omni/client/pkg/omni/resources/system"
)
@ -60,7 +59,7 @@ func (ctrl *CertRefreshTickController) Run(ctx context.Context, r controller.Run
// issue a "refresh" tick to notify all certificate management controllers to refresh certificates
if err := safe.WriterModify(
ctx, r,
system.NewCertRefreshTick(resources.EphemeralNamespace, t.String()),
system.NewCertRefreshTick(t.String()),
func(*system.CertRefreshTick) error {
return nil
},

View File

@ -12,7 +12,6 @@ import (
"github.com/cosi-project/runtime/pkg/state"
"github.com/stretchr/testify/suite"
"github.com/siderolabs/omni/client/pkg/omni/resources"
"github.com/siderolabs/omni/client/pkg/omni/resources/system"
omnictrl "github.com/siderolabs/omni/internal/backend/runtime/omni/controllers/omni"
)
@ -28,7 +27,7 @@ func (suite *CertRefreshTickSuite) TestReconcile() {
watchCh := make(chan state.Event)
suite.Require().NoError(suite.state.WatchKind(suite.ctx, system.NewCertRefreshTick(resources.EphemeralNamespace, "").Metadata(), watchCh))
suite.Require().NoError(suite.state.WatchKind(suite.ctx, system.NewCertRefreshTick("").Metadata(), watchCh))
// wait for two ticks
ticks := 0

View File

@ -72,7 +72,7 @@ func (suite *KubeconfigSuite) TestReconcile() {
time.Sleep(1 * time.Second)
// issue a refresh tick
suite.Require().NoError(suite.state.Create(suite.ctx, system.NewCertRefreshTick(resources.EphemeralNamespace, "refresh")))
suite.Require().NoError(suite.state.Create(suite.ctx, system.NewCertRefreshTick("refresh")))
assertResource(
&suite.OmniSuite,

View File

@ -78,7 +78,7 @@ func (suite *TalosConfigSuite) TestReconcile() {
time.Sleep(1 * time.Second)
// issue a refresh tick
suite.Require().NoError(suite.state.Create(suite.ctx, system.NewCertRefreshTick(resources.EphemeralNamespace, "refresh")))
suite.Require().NoError(suite.state.Create(suite.ctx, system.NewCertRefreshTick("refresh")))
assertResource(
&suite.OmniSuite,

View File

@ -16,7 +16,6 @@ import (
"github.com/cosi-project/runtime/pkg/state"
"go.uber.org/zap"
"github.com/siderolabs/omni/client/pkg/omni/resources"
"github.com/siderolabs/omni/client/pkg/omni/resources/system"
)
@ -320,7 +319,7 @@ func (m *Manager) Run(ctx context.Context, opt ...Option) (Result, error) {
version, err := safe.StateGet[*system.DBVersion](
ctx,
m.state,
system.NewDBVersion(resources.DefaultNamespace, system.DBVersionID).Metadata(),
system.NewDBVersion(system.DBVersionID).Metadata(),
)
if err != nil && !state.IsNotFoundError(err) {
return Result{}, err
@ -330,7 +329,7 @@ func (m *Manager) Run(ctx context.Context, opt ...Option) (Result, error) {
isFreshInstall := version == nil
if isFreshInstall {
version = system.NewDBVersion(resources.DefaultNamespace, system.DBVersionID)
version = system.NewDBVersion(system.DBVersionID)
for _, mig := range m.migrations {
if mig.failWithRequiredMaxVersion == "" {

View File

@ -17,7 +17,6 @@ import (
"go.uber.org/zap"
"go.uber.org/zap/zaptest"
"github.com/siderolabs/omni/client/pkg/omni/resources"
"github.com/siderolabs/omni/client/pkg/omni/resources/system"
"github.com/siderolabs/omni/internal/backend/runtime/omni/migration"
)
@ -54,7 +53,7 @@ func TestFailOnTooOldDBVersion(t *testing.T) {
t.Run(tt.name, func(t *testing.T) {
st := state.WrapCore(namespaced.NewState(inmem.Build))
dbVersion := system.NewDBVersion(resources.DefaultNamespace, system.DBVersionID)
dbVersion := system.NewDBVersion(system.DBVersionID)
dbVersion.TypedSpec().Value.Version = tt.currentVersion
ctx, cancel := context.WithTimeout(t.Context(), 5*time.Second)

View File

@ -284,7 +284,7 @@ func initResources(ctx context.Context, resourceState state.State, logger *zap.L
}
}
sysVersion := system.NewSysVersion(resources.EphemeralNamespace, system.SysVersionID)
sysVersion := system.NewSysVersion(system.SysVersionID)
sysVersion.TypedSpec().Value.BackendVersion = version.Tag
sysVersion.TypedSpec().Value.InstanceName = config.Config.Account.Name
sysVersion.TypedSpec().Value.BackendApiVersion = version.API

View File

@ -131,7 +131,7 @@ func (ku *KubernetesUsage) Start() error {
return
}
usage := virtual.NewKubernetesUsage(ku.ptr.Namespace(), ku.ptr.ID())
usage := virtual.NewKubernetesUsage(ku.ptr.ID())
calculateUsage(pods, nodes, usage)

View File

@ -344,7 +344,7 @@ func (v *State) labelsCompletion(ctx context.Context, ptr resource.Pointer) (*vi
}
}
completion := virtual.NewLabelsCompletion(resources.VirtualNamespace, ptr.ID())
completion := virtual.NewLabelsCompletion(ptr.ID())
completion.TypedSpec().Value.Items = labels
return completion, nil

View File

@ -913,7 +913,7 @@ func AssertResourceAuthz(rootCtx context.Context, rootCli *client.Client, client
allowedVerbSet: readOnlyVerbSet,
},
{
resource: virtual.NewKubernetesUsage(resources.MetricsNamespace, uuid.New().String()),
resource: virtual.NewKubernetesUsage(uuid.New().String()),
allowedVerbSet: readOnlyVerbSet,
},
{
@ -929,7 +929,7 @@ func AssertResourceAuthz(rootCtx context.Context, rootCli *client.Client, client
allowedVerbSet: readOnlyVerbSet,
},
{
resource: virtual.NewLabelsCompletion(resources.MetricsNamespace, uuid.New().String()),
resource: virtual.NewLabelsCompletion(uuid.New().String()),
allowedVerbSet: readOnlyVerbSet,
},
{
@ -1017,7 +1017,7 @@ func AssertResourceAuthz(rootCtx context.Context, rootCli *client.Client, client
allowedVerbSet: readOnlyVerbSet,
},
{
resource: system.NewSysVersion(resources.DefaultNamespace, uuid.New().String()),
resource: system.NewSysVersion(uuid.New().String()),
allowedVerbSet: readOnlyVerbSet,
isSignatureSufficient: true,
},
@ -1142,10 +1142,10 @@ func AssertResourceAuthz(rootCtx context.Context, rootCli *client.Client, client
resource: oidc.NewJWTPublicKey(resources.DefaultNamespace, uuid.New().String()),
},
{
resource: system.NewDBVersion(resources.DefaultNamespace, uuid.New().String()),
resource: system.NewDBVersion(uuid.New().String()),
},
{
resource: system.NewCertRefreshTick(resources.DefaultNamespace, uuid.New().String()),
resource: system.NewCertRefreshTick(uuid.New().String()),
},
{
resource: authres.NewPublicKey(resources.DefaultNamespace, uuid.New().String()),