diff --git a/apis/management.cattle.io/v3/authz_types.go b/apis/management.cattle.io/v3/authz_types.go index afbc81bf..9a489a75 100644 --- a/apis/management.cattle.io/v3/authz_types.go +++ b/apis/management.cattle.io/v3/authz_types.go @@ -19,14 +19,31 @@ type ProjectSpec struct { PodSecurityPolicyTemplateName string `json:"podSecurityPolicyTemplateName,omitempty" norman:"type=reference[podSecurityPolicyTemplate]"` } -type RoleTemplate struct { +type GlobalRole struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Rules []rbacv1.PolicyRule `json:"rules,omitempty"` Builtin bool `json:"builtin"` +} - RoleTemplateNames []string `json:"roleTemplateNames,omitempty" norman:"type=array[reference[roleTemplate]]"` +type GlobalRoleBinding struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Subject rbacv1.Subject `json:"subject,omitempty"` + GlobalRoleName string `json:"globalRoleName,omitempty" norman:"type=reference[globalRole]"` +} + +type RoleTemplate struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Rules []rbacv1.PolicyRule `json:"rules,omitempty"` + Builtin bool `json:"builtin"` + External bool `json:"external"` + Hidden bool `json:"hidden"` + RoleTemplateNames []string `json:"roleTemplateNames,omitempty" norman:"type=array[reference[roleTemplate]]"` } type PodSecurityPolicyTemplate struct { diff --git a/apis/management.cattle.io/v3/schema/schema.go b/apis/management.cattle.io/v3/schema/schema.go index a5f279a9..aaf3c3e3 100644 --- a/apis/management.cattle.io/v3/schema/schema.go +++ b/apis/management.cattle.io/v3/schema/schema.go @@ -105,6 +105,8 @@ func authzTypes(schemas *types.Schemas) *types.Schemas { MustImportAndCustomize(&Version, v3.Project{}, func(schema *types.Schema) { schema.SubContext = "projects" }). + MustImport(&Version, v3.GlobalRole{}). + MustImport(&Version, v3.GlobalRoleBinding{}). MustImport(&Version, v3.RoleTemplate{}). MustImport(&Version, v3.PodSecurityPolicyTemplate{}). MustImportAndCustomize(&Version, v3.ClusterRoleTemplateBinding{}, func(schema *types.Schema) {