Skip to content
This repository was archived by the owner on Sep 9, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion internal/auth/default_tenancy_logic.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ func (p *DefaultTenancyLogic) DetermineDefaultTenant(ctx context.Context) (resul
return
}
if !assignable.Finite() {
result = "shared"
result = SharedTenant
return
}
inclusions := assignable.Inclusions()
Expand Down
2 changes: 1 addition & 1 deletion internal/auth/default_tenancy_logic_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ var _ = Describe("Default tenancy logic", func() {
ctx = ContextWithSubject(ctx, subject)
result, err := logic.DetermineDefaultTenant(ctx)
Expect(err).ToNot(HaveOccurred())
Expect(result).To(Equal("shared"))
Expect(result).To(Equal(SharedTenant))
})

It("Fails if the subject has an empty tenants set", func() {
Expand Down
10 changes: 8 additions & 2 deletions internal/auth/tenancy_logic.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,17 @@ type TenancyLogic interface {
DetermineVisibleTenants(ctx context.Context) (collections.Set[string], error)
}

// SystemTenant is the tenant that is assigned to objects that are only visible to the system.
const SystemTenant = "system"

// SystemTenants is the set of tenants that are assigned to objects that are only visible to the system.
var SystemTenants = collections.NewSet("system")
var SystemTenants = collections.NewSet(SystemTenant)

// SharedTenant is the tenant that is always visible to all users.
const SharedTenant = "shared"

// SharedTenants is the set of tenants that are always visible to all users.
var SharedTenants = collections.NewSet("shared")
var SharedTenants = collections.NewSet(SharedTenant)

// AllTenants is the set of all tenants that are possible.
var AllTenants = collections.NewUniversalSet[string]()
20 changes: 10 additions & 10 deletions internal/servers/clusters_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ var _ = Describe("Clusters server", func() {
Title: "ACME 1TiB",
Description: "ACME 1TiB.",
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
}.Build()).
Do(ctx)
Expand All @@ -194,7 +194,7 @@ var _ = Describe("Clusters server", func() {
Title: "ACME GPU",
Description: "ACME GPU.",
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
}.Build(),
).
Expand All @@ -207,7 +207,7 @@ var _ = Describe("Clusters server", func() {
Title: "HAL 9000",
Description: "Heuristically programmed ALgorithmic computer.",
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
}.Build(),
).
Expand All @@ -222,7 +222,7 @@ var _ = Describe("Clusters server", func() {
Title: "My template",
Description: "My template",
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
NodeSets: map[string]*privatev1.ClusterTemplateNodeSet{
"compute": privatev1.ClusterTemplateNodeSet_builder{
Expand Down Expand Up @@ -250,7 +250,7 @@ var _ = Describe("Clusters server", func() {
Description: "My deleted template",
Metadata: privatev1.Metadata_builder{
Finalizers: []string{"a"},
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
}.Build(),
).
Expand All @@ -269,7 +269,7 @@ var _ = Describe("Clusters server", func() {
Title: "My with parameters",
Description: "My with parameters.",
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Parameters: []*privatev1.ClusterTemplateParameterDefinition{
privatev1.ClusterTemplateParameterDefinition_builder{
Expand Down Expand Up @@ -934,7 +934,7 @@ var _ = Describe("Clusters server", func() {
SetObject(
privatev1.Cluster_builder{
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Spec: privatev1.ClusterSpec_builder{
Template: "my_template",
Expand Down Expand Up @@ -1017,7 +1017,7 @@ var _ = Describe("Clusters server", func() {
SetObject(
privatev1.Cluster_builder{
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Spec: privatev1.ClusterSpec_builder{
Template: "my_template",
Expand Down Expand Up @@ -1629,7 +1629,7 @@ var _ = Describe("Clusters server", func() {
Id: "acme_1tib",
Title: "ACME 1TiB",
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
}.Build()).
Do(ctx)
Expand All @@ -1646,7 +1646,7 @@ var _ = Describe("Clusters server", func() {
Id: "my_template",
Title: "My template",
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
NodeSets: map[string]*privatev1.ClusterTemplateNodeSet{
"compute": privatev1.ClusterTemplateNodeSet_builder{
Expand Down
3 changes: 2 additions & 1 deletion internal/servers/compute_instances_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import (

privatev1 "github.com/osac-project/fulfillment-service/internal/api/osac/private/v1"
publicv1 "github.com/osac-project/fulfillment-service/internal/api/osac/public/v1"
"github.com/osac-project/fulfillment-service/internal/auth"
"github.com/osac-project/fulfillment-service/internal/database"
"github.com/osac-project/fulfillment-service/internal/database/dao"
)
Expand Down Expand Up @@ -152,7 +153,7 @@ var _ = Describe("Compute instances server", func() {
Title: "Test Template",
Description: "Test template for validation",
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Parameters: []*privatev1.ComputeInstanceTemplateParameterDefinition{
{
Expand Down
15 changes: 8 additions & 7 deletions internal/servers/network_classes_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (

privatev1 "github.com/osac-project/fulfillment-service/internal/api/osac/private/v1"
publicv1 "github.com/osac-project/fulfillment-service/internal/api/osac/public/v1"
"github.com/osac-project/fulfillment-service/internal/auth"
"github.com/osac-project/fulfillment-service/internal/database"
"github.com/osac-project/fulfillment-service/internal/database/dao"
)
Expand Down Expand Up @@ -514,7 +515,7 @@ var _ = Describe("Network classes server", func() {
ImplementationStrategy: "ovn-kubernetes",
IsDefault: proto.Bool(true),
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Status: privatev1.NetworkClassStatus_builder{
State: privatev1.NetworkClassState_NETWORK_CLASS_STATE_READY,
Expand All @@ -529,7 +530,7 @@ var _ = Describe("Network classes server", func() {
ImplementationStrategy: "ovn-kubernetes",
IsDefault: proto.Bool(true),
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Status: privatev1.NetworkClassStatus_builder{
State: privatev1.NetworkClassState_NETWORK_CLASS_STATE_READY,
Expand Down Expand Up @@ -661,7 +662,7 @@ var _ = Describe("Network classes server", func() {
ImplementationStrategy: "ovn-kubernetes",
IsDefault: proto.Bool(true),
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Status: privatev1.NetworkClassStatus_builder{
State: privatev1.NetworkClassState_NETWORK_CLASS_STATE_READY,
Expand Down Expand Up @@ -715,7 +716,7 @@ var _ = Describe("Network classes server", func() {
ImplementationStrategy: "ovn-kubernetes",
IsDefault: proto.Bool(true),
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Status: privatev1.NetworkClassStatus_builder{
State: privatev1.NetworkClassState_NETWORK_CLASS_STATE_READY,
Expand All @@ -730,7 +731,7 @@ var _ = Describe("Network classes server", func() {
ImplementationStrategy: "ovn-kubernetes",
IsDefault: proto.Bool(true),
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Status: privatev1.NetworkClassStatus_builder{
State: privatev1.NetworkClassState_NETWORK_CLASS_STATE_READY,
Expand All @@ -755,7 +756,7 @@ var _ = Describe("Network classes server", func() {
ImplementationStrategy: "ovn-kubernetes",
IsDefault: proto.Bool(true),
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Status: privatev1.NetworkClassStatus_builder{
State: privatev1.NetworkClassState_NETWORK_CLASS_STATE_READY,
Expand All @@ -770,7 +771,7 @@ var _ = Describe("Network classes server", func() {
ImplementationStrategy: "ovn-kubernetes",
IsDefault: proto.Bool(true),
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Status: privatev1.NetworkClassStatus_builder{
State: privatev1.NetworkClassState_NETWORK_CLASS_STATE_READY,
Expand Down
9 changes: 5 additions & 4 deletions internal/servers/private_clusters_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import (
"google.golang.org/protobuf/types/known/fieldmaskpb"

privatev1 "github.com/osac-project/fulfillment-service/internal/api/osac/private/v1"
"github.com/osac-project/fulfillment-service/internal/auth"
"github.com/osac-project/fulfillment-service/internal/database"
"github.com/osac-project/fulfillment-service/internal/database/dao"
"github.com/osac-project/fulfillment-service/internal/uuid"
Expand Down Expand Up @@ -151,7 +152,7 @@ var _ = Describe("Private clusters server", func() {
Id: "acme-1ti-id",
Metadata: privatev1.Metadata_builder{
Name: "acme-1ti-name",
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Title: "ACME 1TiB",
Description: "ACME 1TiB.",
Expand All @@ -165,7 +166,7 @@ var _ = Describe("Private clusters server", func() {
Id: "acme-gpu-id",
Metadata: privatev1.Metadata_builder{
Name: "acme-gpu-name",
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Title: "ACME GPU",
Description: "ACME GPU.",
Expand All @@ -181,7 +182,7 @@ var _ = Describe("Private clusters server", func() {
Id: "my-template-id",
Metadata: privatev1.Metadata_builder{
Name: "my-template-name",
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Title: "My template",
Description: "My template",
Expand Down Expand Up @@ -209,7 +210,7 @@ var _ = Describe("Private clusters server", func() {
Title: fmt.Sprintf("My template %d", i),
Description: fmt.Sprintf("My template %d", i),
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
NodeSets: map[string]*privatev1.ClusterTemplateNodeSet{
"compute": privatev1.ClusterTemplateNodeSet_builder{
Expand Down
19 changes: 10 additions & 9 deletions internal/servers/private_compute_instances_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
"google.golang.org/protobuf/types/known/wrapperspb"

privatev1 "github.com/osac-project/fulfillment-service/internal/api/osac/private/v1"
"github.com/osac-project/fulfillment-service/internal/auth"
"github.com/osac-project/fulfillment-service/internal/database"
"github.com/osac-project/fulfillment-service/internal/database/dao"
)
Expand Down Expand Up @@ -94,7 +95,7 @@ var _ = Describe("Private compute instances server", func() {
nc := privatev1.NetworkClass_builder{
ImplementationStrategy: "test-strategy",
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Capabilities: privatev1.NetworkClassCapabilities_builder{
SupportsIpv4: true,
Expand All @@ -121,7 +122,7 @@ var _ = Describe("Private compute instances server", func() {

vn := privatev1.VirtualNetwork_builder{
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Spec: privatev1.VirtualNetworkSpec_builder{
Ipv4Cidr: proto.String("10.0.0.0/16"),
Expand All @@ -147,7 +148,7 @@ var _ = Describe("Private compute instances server", func() {

subnet := privatev1.Subnet_builder{
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Spec: privatev1.SubnetSpec_builder{
VirtualNetwork: vnID,
Expand All @@ -173,7 +174,7 @@ var _ = Describe("Private compute instances server", func() {

sg := privatev1.SecurityGroup_builder{
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Spec: privatev1.SecurityGroupSpec_builder{
VirtualNetwork: vnID,
Expand Down Expand Up @@ -262,7 +263,7 @@ var _ = Describe("Private compute instances server", func() {
Title: "Test Template",
Description: "Test template for validation",
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Parameters: []*privatev1.ComputeInstanceTemplateParameterDefinition{
{
Expand Down Expand Up @@ -795,7 +796,7 @@ var _ = Describe("Private compute instances server", func() {
Title: "No Defaults Template",
Description: "Template without spec defaults",
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
}.Build()
_, err = templatesDao.Create().SetObject(template).Do(ctx)
Expand Down Expand Up @@ -835,7 +836,7 @@ var _ = Describe("Private compute instances server", func() {
Title: "Bare Template",
Description: "Template without defaults",
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
}.Build()
_, err = templatesDao.Create().SetObject(template).Do(ctx)
Expand Down Expand Up @@ -877,7 +878,7 @@ var _ = Describe("Private compute instances server", func() {
Title: "Partial Defaults Template",
Description: "Template with partial spec defaults",
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
SpecDefaults: privatev1.ComputeInstanceTemplateSpecDefaults_builder{
Cores: proto.Int32(2),
Expand Down Expand Up @@ -949,7 +950,7 @@ var _ = Describe("Private compute instances server", func() {
Title: "Test Template",
Description: "Test template for network validation",
Metadata: privatev1.Metadata_builder{
Tenant: "shared",
Tenant: auth.SharedTenant,
}.Build(),
Parameters: []*privatev1.ComputeInstanceTemplateParameterDefinition{
{
Expand Down
Loading
Loading