diff --git a/staging/src/k8s.io/apiserver/pkg/cel/library/authz.go b/staging/src/k8s.io/apiserver/pkg/cel/library/authz.go index 0acd5a542a1..77332cff8bd 100644 --- a/staging/src/k8s.io/apiserver/pkg/cel/library/authz.go +++ b/staging/src/k8s.io/apiserver/pkg/cel/library/authz.go @@ -232,7 +232,7 @@ var authzLib = &authz{} type authz struct{} func (*authz) LibraryName() string { - return "k8s.authz" + return "kubernetes.authz" } func (*authz) Types() []*cel.Type { @@ -337,7 +337,7 @@ var authzSelectorsLib = &authzSelectors{} type authzSelectors struct{} func (*authzSelectors) LibraryName() string { - return "k8s.authzSelectors" + return "kubernetes.authzSelectors" } func (*authzSelectors) Types() []*cel.Type { diff --git a/staging/src/k8s.io/apiserver/pkg/cel/library/format.go b/staging/src/k8s.io/apiserver/pkg/cel/library/format.go index 83c821c8c11..82ecffb412f 100644 --- a/staging/src/k8s.io/apiserver/pkg/cel/library/format.go +++ b/staging/src/k8s.io/apiserver/pkg/cel/library/format.go @@ -91,7 +91,7 @@ var formatLib = &format{} type format struct{} func (*format) LibraryName() string { - return "format" + return "kubernetes.format" } func (*format) Types() []*cel.Type { diff --git a/staging/src/k8s.io/apiserver/pkg/cel/library/library_compatibility_test.go b/staging/src/k8s.io/apiserver/pkg/cel/library/library_compatibility_test.go index d76100a8c93..50b5d22882e 100644 --- a/staging/src/k8s.io/apiserver/pkg/cel/library/library_compatibility_test.go +++ b/staging/src/k8s.io/apiserver/pkg/cel/library/library_compatibility_test.go @@ -20,6 +20,7 @@ import ( "github.com/google/cel-go/cel" "github.com/google/cel-go/common/decls" "github.com/google/cel-go/common/types" + "strings" "testing" "k8s.io/apimachinery/pkg/util/sets" @@ -28,6 +29,9 @@ import ( func TestLibraryCompatibility(t *testing.T) { functionNames := sets.New[string]() for _, lib := range KnownLibraries() { + if !strings.HasPrefix(lib.LibraryName(), "kubernetes.") { + t.Errorf("Expected all kubernetes CEL libraries to have a name package with a 'kubernetes.' prefix but got %v", lib.LibraryName()) + } for name := range lib.declarations() { functionNames[name] = struct{}{} } @@ -93,8 +97,11 @@ func TestTypeRegistration(t *testing.T) { } } } - for _, t := range lib.Types() { - registeredTypes.Insert(t) + for _, lb := range lib.Types() { + registeredTypes.Insert(lb) + if !strings.HasPrefix(lb.TypeName(), "kubernetes.") && !legacyTypeNames.Has(lb.TypeName()) { + t.Errorf("Expected all types in kubernetes CEL libraries to have a type name packaged with a 'kubernetes.' prefix but got %v", lb.TypeName()) + } } unregistered := usedTypes.Difference(registeredTypes) if len(unregistered) != 0 { @@ -102,3 +109,6 @@ func TestTypeRegistration(t *testing.T) { } } } + +// TODO: Consider renaming these to "kubernetes.net.IP" and "kubernetes.net.CIDR" if we decide not to promote them to cel-go +var legacyTypeNames = sets.New[string]("net.IP", "net.CIDR") diff --git a/staging/src/k8s.io/apiserver/pkg/cel/library/lists.go b/staging/src/k8s.io/apiserver/pkg/cel/library/lists.go index d56e72761d8..1f61b1181e4 100644 --- a/staging/src/k8s.io/apiserver/pkg/cel/library/lists.go +++ b/staging/src/k8s.io/apiserver/pkg/cel/library/lists.go @@ -96,7 +96,7 @@ var listsLib = &lists{} type lists struct{} func (*lists) LibraryName() string { - return "k8s.lists" + return "kubernetes.lists" } func (*lists) Types() []*cel.Type { diff --git a/staging/src/k8s.io/apiserver/pkg/cel/library/quantity.go b/staging/src/k8s.io/apiserver/pkg/cel/library/quantity.go index 4d9f1ac3eab..236b366b465 100644 --- a/staging/src/k8s.io/apiserver/pkg/cel/library/quantity.go +++ b/staging/src/k8s.io/apiserver/pkg/cel/library/quantity.go @@ -143,7 +143,7 @@ var quantityLib = &quantity{} type quantity struct{} func (*quantity) LibraryName() string { - return "k8s.quantity" + return "kubernetes.quantity" } func (*quantity) Types() []*cel.Type { diff --git a/staging/src/k8s.io/apiserver/pkg/cel/library/regex.go b/staging/src/k8s.io/apiserver/pkg/cel/library/regex.go index e8577a18517..2cf8b00375c 100644 --- a/staging/src/k8s.io/apiserver/pkg/cel/library/regex.go +++ b/staging/src/k8s.io/apiserver/pkg/cel/library/regex.go @@ -52,7 +52,7 @@ var regexLib = ®ex{} type regex struct{} func (*regex) LibraryName() string { - return "k8s.regex" + return "kubernetes.regex" } func (*regex) Types() []*cel.Type { diff --git a/staging/src/k8s.io/apiserver/pkg/cel/library/test.go b/staging/src/k8s.io/apiserver/pkg/cel/library/test.go index dcbc058a110..282d9396208 100644 --- a/staging/src/k8s.io/apiserver/pkg/cel/library/test.go +++ b/staging/src/k8s.io/apiserver/pkg/cel/library/test.go @@ -38,7 +38,7 @@ type testLib struct { } func (*testLib) LibraryName() string { - return "k8s.test" + return "kubernetes.test" } type TestOption func(*testLib) *testLib diff --git a/staging/src/k8s.io/apiserver/pkg/cel/library/urls.go b/staging/src/k8s.io/apiserver/pkg/cel/library/urls.go index 058706d8e07..4b7ffb95a4e 100644 --- a/staging/src/k8s.io/apiserver/pkg/cel/library/urls.go +++ b/staging/src/k8s.io/apiserver/pkg/cel/library/urls.go @@ -113,7 +113,7 @@ var urlsLib = &urls{} type urls struct{} func (*urls) LibraryName() string { - return "k8s.urls" + return "kubernetes.urls" } func (*urls) Types() []*cel.Type {