diff --git a/apis/management.cattle.io/v3/authz_types.go b/apis/management.cattle.io/v3/authz_types.go index 4999572e..58914dcd 100644 --- a/apis/management.cattle.io/v3/authz_types.go +++ b/apis/management.cattle.io/v3/authz_types.go @@ -77,6 +77,7 @@ type RoleTemplate struct { Builtin bool `json:"builtin"` External bool `json:"external"` Hidden bool `json:"hidden"` + Context string `json:"context"` RoleTemplateNames []string `json:"roleTemplateNames,omitempty" norman:"type=array[reference[roleTemplate]]"` } diff --git a/apis/management.cattle.io/v3/schema/schema.go b/apis/management.cattle.io/v3/schema/schema.go index 7a4199c4..cb69c4ba 100644 --- a/apis/management.cattle.io/v3/schema/schema.go +++ b/apis/management.cattle.io/v3/schema/schema.go @@ -96,7 +96,14 @@ func authzTypes(schemas *types.Schemas) *types.Schemas { }). MustImport(&Version, v3.GlobalRole{}). MustImport(&Version, v3.GlobalRoleBinding{}). - MustImport(&Version, v3.RoleTemplate{}). + MustImportAndCustomize(&Version, v3.RoleTemplate{}, func(schema *types.Schema) { + schema.MustCustomizeField("context", func(field types.Field) types.Field { + field.Type = "enum" + field.Options = []string{"cluster", "project"} + field.Nullable = false + return field + }) + }). MustImport(&Version, v3.PodSecurityPolicyTemplate{}). MustImportAndCustomize(&Version, v3.ClusterRoleTemplateBinding{}, func(schema *types.Schema) { schema.MustCustomizeField("subjectKind", func(field types.Field) types.Field {