1
0
mirror of https://github.com/rancher/types.git synced 2025-07-02 16:31:48 +00:00

authorization api changes

This commit is contained in:
Craig Jellick 2017-11-20 16:13:00 -07:00
parent efe8c45673
commit 77c6089a5b
2 changed files with 36 additions and 10 deletions

View File

@ -14,7 +14,9 @@ var (
Schemas = types.NewSchemas().
MustImport(&Version, v1.Project{}).
MustImport(&Version, v1.RoleTemplate{}).
MustImport(&Version, v1.ProjectRoleTemplate{}).
MustImport(&Version, v1.PodSecurityPolicyTemplate{}).
MustImport(&Version, v1.ProjectRoleBinding{})
MustImport(&Version, v1.ProjectRoleTemplateBinding{}).
MustImport(&Version, v1.ClusterRoleTemplate{}).
MustImport(&Version, v1.ClusterRoleTemplateBinding{})
)

View File

@ -10,16 +10,22 @@ type Project struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
ClusterName string `json:"clusterName,omitempty"`
Spec ProjectSpec `json:"spec,omitempty"`
}
type RoleTemplate struct {
type ProjectSpec struct {
DisplayName string `json:"displayName,omitempty" norman:"required"`
//TODO: should be required
ClusterName string `json:"clusterName,omitempty" norman:"type=reference[/v1-cluster/schemas/cluster]"`
}
type ProjectRoleTemplate struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Rules []rbacv1.PolicyRule `json:"rules,omitempty"`
RoleTemplates []string `json:"roles,omitempty"`
ProjectRoleTemplates []string `json:"projectRoleTemplates,omitempty" norman:"type=array[reference[projectRoleTemplate]]"`
}
type PodSecurityPolicyTemplate struct {
@ -29,13 +35,31 @@ type PodSecurityPolicyTemplate struct {
Spec extv1.PodSecurityPolicySpec `json:"spec,omitempty"`
}
type ProjectRoleBinding struct {
type ProjectRoleTemplateBinding struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Subjects []rbacv1.Subject `json:"subjects,omitempty"`
Subject rbacv1.Subject `json:"subject,omitempty"`
ProjectName string `json:"projectRef,omitempty"`
RoleTemplateName string `json:"roleTemplateName,omitempty"`
ProjectName string `json:"projectName,omitempty" norman:"type=reference[project]"`
ProjectRoleTemplateName string `json:"projectRoleTemplateName,omitempty" norman:"type=reference[projectRoleTemplate]"`
}
type ClusterRoleTemplate struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Rules []rbacv1.PolicyRule `json:"rules,omitempty"`
ClusterRoleTemplates []string `json:"clusterRoleTemplates,omitempty" norman:"type=array[reference[clusterRoleTemplate]]"`
}
type ClusterRoleTemplateBinding struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Subject rbacv1.Subject `json:"subject,omitempty"`
ClusterName string `json:"clusterName,omitempty" norman:"type=reference[/v1-cluster/schemas/cluster]"`
ClusterRoleTemplateName string `json:"clusterRoleTemplateName,omitempty" norman:"type=reference[clusterRoleTemplate]"`
}