Documentation ¶
Overview ¶
Package v1alpha2 contains API Schema definitions for the iam v1alpha2 API group +k8s:openapi-gen=true +kubebuilder:object:generate=true +k8s:conversion-gen=kubesphere.io/api/iam +k8s:defaulter-gen=TypeMeta +groupName=iam.kubesphere.io
Package v1alpha2 contains API Schema definitions for the iam v1alpha2 API group +k8s:openapi-gen=true +kubebuilder:object:generate=true +groupName=iam.kubesphere.io
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type Cluster
- type ClusterSelector
- type FederatedRole
- type FederatedRoleBinding
- type FederatedRoleBindingSpec
- type FederatedRoleSpec
- type FederatedUser
- type FederatedUserSpec
- type FinalizerName
- type GlobalRole
- type GlobalRoleBinding
- type GlobalRoleBindingList
- type GlobalRoleList
- type Group
- type GroupBinding
- type GroupBindingList
- type GroupList
- type GroupRef
- type GroupSpec
- type GroupStatus
- type LoginRecord
- type LoginRecordList
- type LoginRecordSpec
- type LoginType
- type Placement
- type RoleBase
- type RoleBaseList
- type RoleBindingTemplate
- type RoleTemplate
- type User
- type UserList
- type UserSpec
- type UserState
- type UserStatus
- type UserTemplate
- type WorkspaceRole
- type WorkspaceRoleBinding
- type WorkspaceRoleBindingList
- type WorkspaceRoleList
Constants ¶
const ( ResourcesSingularFedUser = "federateduser" ResourcesSingularFedGlobalRoleBinding = "federatedglobalrolebinding" ResourcesSingularFedWorkspaceRoleBinding = "federatedworkspacerolebinding" ResourcesSingularFedGlobalRole = "federatedglobalrole" ResourcesSingularFedWorkspaceRole = "federatedworkspacerole" ResourcesPluralFedUser = "federatedusers" ResourcesPluralFedGlobalRoleBinding = "federatedglobalrolebindings" ResourcesPluralFedWorkspaceRoleBinding = "federatedworkspacerolebindings" ResourcesPluralFedGlobalRole = "federatedglobalroles" ResourcesPluralFedWorkspaceRole = "federatedworkspaceroles" FedClusterRoleBindingKind = "FederatedClusterRoleBinding" FedClusterRoleKind = "FederatedClusterRole" FedGlobalRoleKind = "FederatedGlobalRole" FedWorkspaceRoleKind = "FederatedWorkspaceRole" FedGlobalRoleBindingKind = "FederatedGlobalRoleBinding" FedWorkspaceRoleBindingKind = "FederatedWorkspaceRoleBinding" FedUserKind = "FederatedUser" )
const ( ResourcePluralGroup = "groups" GroupReferenceLabel = "iam.kubesphere.io/group-ref" GroupParent = "iam.kubesphere.io/group-parent" )
const ( ResourceKindUser = "User" ResourcesSingularUser = "user" ResourcesPluralUser = "users" ResourceKindLoginRecord = "LoginRecord" ResourcesSingularLoginRecord = "loginrecord" ResourcesPluralLoginRecord = "loginrecords" ResourceKindGlobalRoleBinding = "GlobalRoleBinding" ResourcesSingularGlobalRoleBinding = "globalrolebinding" ResourcesPluralGlobalRoleBinding = "globalrolebindings" ResourceKindClusterRoleBinding = "ClusterRoleBinding" ResourcesSingularClusterRoleBinding = "clusterrolebinding" ResourcesPluralClusterRoleBinding = "clusterrolebindings" ResourceKindRoleBinding = "RoleBinding" ResourcesSingularRoleBinding = "rolebinding" ResourcesPluralRoleBinding = "rolebindings" ResourceKindGlobalRole = "GlobalRole" ResourcesSingularGlobalRole = "globalrole" ResourcesPluralGlobalRole = "globalroles" ResourceKindWorkspaceRoleBinding = "WorkspaceRoleBinding" ResourcesSingularWorkspaceRoleBinding = "workspacerolebinding" ResourcesPluralWorkspaceRoleBinding = "workspacerolebindings" ResourceKindWorkspaceRole = "WorkspaceRole" ResourcesSingularWorkspaceRole = "workspacerole" ResourcesPluralWorkspaceRole = "workspaceroles" ResourceKindClusterRole = "ClusterRole" ResourcesSingularClusterRole = "clusterrole" ResourcesPluralClusterRole = "clusterroles" ResourceKindRole = "Role" ResourcesSingularRole = "role" ResourcesPluralRole = "roles" RegoOverrideAnnotation = "iam.kubesphere.io/rego-override" AggregationRolesAnnotation = "iam.kubesphere.io/aggregation-roles" GlobalRoleAnnotation = "iam.kubesphere.io/globalrole" WorkspaceRoleAnnotation = "iam.kubesphere.io/workspacerole" ClusterRoleAnnotation = "iam.kubesphere.io/clusterrole" GrantedClustersAnnotation = "iam.kubesphere.io/granted-clusters" UninitializedAnnotation = "iam.kubesphere.io/uninitialized" LastPasswordChangeTimeAnnotation = "iam.kubesphere.io/last-password-change-time" RoleAnnotation = "iam.kubesphere.io/role" RoleTemplateLabel = "iam.kubesphere.io/role-template" ScopeLabelFormat = "scope.kubesphere.io/%s" UserReferenceLabel = "iam.kubesphere.io/user-ref" IdentifyProviderLabel = "iam.kubesphere.io/identify-provider" OriginUIDLabel = "iam.kubesphere.io/origin-uid" ServiceAccountReferenceLabel = "iam.kubesphere.io/serviceaccount-ref" FieldEmail = "email" ExtraEmail = FieldEmail ExtraIdentityProvider = "idp" ExtraUID = "uid" ExtraUsername = "username" ExtraDisplayName = "displayName" ExtraUninitialized = "uninitialized" InGroup = "ingroup" NotInGroup = "notingroup" AggregateTo = "aggregateTo" ScopeWorkspace = "workspace" ScopeCluster = "cluster" ScopeNamespace = "namespace" ScopeDevOps = "devops" PlatformAdmin = "platform-admin" NamespaceAdmin = "admin" ClusterAdmin = "cluster-admin" PreRegistrationUser = "system:pre-registration" PreRegistrationUserGroup = "pre-registration" )
const (
ResourcePluralGroupBinding = "groupbindings"
)
Variables ¶
var ( FedUserResource = metav1.APIResource{ Name: ResourcesPluralFedUser, SingularName: ResourcesSingularFedUser, Namespaced: false, Group: fedResourceGroup, Version: fedResourceVersion, Kind: FedUserKind, } FedGlobalRoleBindingResource = metav1.APIResource{ Name: ResourcesPluralFedGlobalRoleBinding, SingularName: ResourcesSingularFedGlobalRoleBinding, Namespaced: false, Group: fedResourceGroup, Version: fedResourceVersion, Kind: FedGlobalRoleBindingKind, } FedWorkspaceRoleBindingResource = metav1.APIResource{ Name: ResourcesPluralFedWorkspaceRoleBinding, SingularName: ResourcesSingularFedWorkspaceRoleBinding, Namespaced: false, Group: fedResourceGroup, Version: fedResourceVersion, Kind: FedWorkspaceRoleBindingKind, } FedGlobalRoleResource = metav1.APIResource{ Name: ResourcesPluralFedGlobalRole, SingularName: ResourcesSingularFedGlobalRole, Namespaced: false, Group: fedResourceGroup, Version: fedResourceVersion, Kind: FedGlobalRoleKind, } FedWorkspaceRoleResource = metav1.APIResource{ Name: ResourcesPluralFedWorkspaceRole, SingularName: ResourcesSingularFedWorkspaceRole, Namespaced: false, Group: fedResourceGroup, Version: fedResourceVersion, Kind: FedWorkspaceRoleKind, } FederatedClusterRoleBindingResource = schema.GroupVersionResource{ Group: fedResourceGroup, Version: fedResourceVersion, Resource: "federatedclusterrolebindings", } )
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "iam.kubesphere.io", Version: "v1alpha2"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme is required by pkg/client/... AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource is required by pkg/client/listers/...
Types ¶
type ClusterSelector ¶
+kubebuilder:object:generate=true
func (*ClusterSelector) DeepCopy ¶
func (in *ClusterSelector) DeepCopy() *ClusterSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSelector.
func (*ClusterSelector) DeepCopyInto ¶
func (in *ClusterSelector) DeepCopyInto(out *ClusterSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FederatedRole ¶
type FederatedRole struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec FederatedRoleSpec `json:"spec"` }
+kubebuilder:object:generate=false
type FederatedRoleBinding ¶
type FederatedRoleBinding struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec FederatedRoleBindingSpec `json:"spec"` }
+kubebuilder:object:generate=false
type FederatedRoleBindingSpec ¶
type FederatedRoleBindingSpec struct { Template RoleBindingTemplate `json:"template"` Placement Placement `json:"placement"` }
+kubebuilder:object:generate=false
type FederatedRoleSpec ¶
type FederatedRoleSpec struct { Template RoleTemplate `json:"template"` Placement Placement `json:"placement"` }
+kubebuilder:object:generate=false
type FederatedUser ¶
type FederatedUser struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec FederatedUserSpec `json:"spec"` }
+kubebuilder:object:generate=false
type FederatedUserSpec ¶
type FederatedUserSpec struct { Template UserTemplate `json:"template"` Placement Placement `json:"placement"` }
+kubebuilder:object:generate=false
type FinalizerName ¶
type FinalizerName string
type GlobalRole ¶
type GlobalRole struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // Rules holds all the PolicyRules for this GlobalRole // +optional Rules []rbacv1.PolicyRule `json:"rules" protobuf:"bytes,2,rep,name=rules"` }
+genclient +genclient:nonNamespaced +kubebuilder:object:root=true +kubebuilder:resource:categories="iam",scope="Cluster" +kubebuilder:object:root=true
func (*GlobalRole) DeepCopy ¶
func (in *GlobalRole) DeepCopy() *GlobalRole
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlobalRole.
func (*GlobalRole) DeepCopyInto ¶
func (in *GlobalRole) DeepCopyInto(out *GlobalRole)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GlobalRole) DeepCopyObject ¶
func (in *GlobalRole) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GlobalRoleBinding ¶
type GlobalRoleBinding struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // Subjects holds references to the objects the role applies to. // +optional Subjects []rbacv1.Subject `json:"subjects,omitempty" protobuf:"bytes,2,rep,name=subjects"` // RoleRef can only reference a GlobalRole. // If the RoleRef cannot be resolved, the Authorizer must return an error. RoleRef rbacv1.RoleRef `json:"roleRef" protobuf:"bytes,3,opt,name=roleRef"` }
+genclient +genclient:nonNamespaced +kubebuilder:object:root=true +kubebuilder:resource:categories="iam",scope="Cluster" GlobalRoleBinding is the Schema for the globalrolebindings API +kubebuilder:object:root=true
func (*GlobalRoleBinding) DeepCopy ¶
func (in *GlobalRoleBinding) DeepCopy() *GlobalRoleBinding
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlobalRoleBinding.
func (*GlobalRoleBinding) DeepCopyInto ¶
func (in *GlobalRoleBinding) DeepCopyInto(out *GlobalRoleBinding)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GlobalRoleBinding) DeepCopyObject ¶
func (in *GlobalRoleBinding) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GlobalRoleBindingList ¶
type GlobalRoleBindingList struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. // +optional metav1.ListMeta `json:"metadata,omitempty"` Items []GlobalRoleBinding `json:"items"` }
+kubebuilder:object:root=true +kubebuilder:object:root=true GlobalRoleBindingList contains a list of GlobalRoleBinding
func (*GlobalRoleBindingList) DeepCopy ¶
func (in *GlobalRoleBindingList) DeepCopy() *GlobalRoleBindingList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlobalRoleBindingList.
func (*GlobalRoleBindingList) DeepCopyInto ¶
func (in *GlobalRoleBindingList) DeepCopyInto(out *GlobalRoleBindingList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GlobalRoleBindingList) DeepCopyObject ¶
func (in *GlobalRoleBindingList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GlobalRoleList ¶
type GlobalRoleList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []GlobalRole `json:"items"` }
+kubebuilder:object:root=true +kubebuilder:object:root=true GlobalRoleList contains a list of GlobalRole
func (*GlobalRoleList) DeepCopy ¶
func (in *GlobalRoleList) DeepCopy() *GlobalRoleList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlobalRoleList.
func (*GlobalRoleList) DeepCopyInto ¶
func (in *GlobalRoleList) DeepCopyInto(out *GlobalRoleList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GlobalRoleList) DeepCopyObject ¶
func (in *GlobalRoleList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type Group ¶
type Group struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec GroupSpec `json:"spec,omitempty"` Status GroupStatus `json:"status,omitempty"` }
Group is the Schema for the groups API
func (*Group) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Group.
func (*Group) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Group) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GroupBinding ¶
type GroupBinding struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` GroupRef GroupRef `json:"groupRef,omitempty"` Users []string `json:"users,omitempty"` }
GroupBinding is the Schema for the groupbindings API
func (*GroupBinding) DeepCopy ¶
func (in *GroupBinding) DeepCopy() *GroupBinding
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupBinding.
func (*GroupBinding) DeepCopyInto ¶
func (in *GroupBinding) DeepCopyInto(out *GroupBinding)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GroupBinding) DeepCopyObject ¶
func (in *GroupBinding) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GroupBindingList ¶
type GroupBindingList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []GroupBinding `json:"items"` }
GroupBindingList contains a list of GroupBinding
func (*GroupBindingList) DeepCopy ¶
func (in *GroupBindingList) DeepCopy() *GroupBindingList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupBindingList.
func (*GroupBindingList) DeepCopyInto ¶
func (in *GroupBindingList) DeepCopyInto(out *GroupBindingList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GroupBindingList) DeepCopyObject ¶
func (in *GroupBindingList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GroupList ¶
type GroupList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Group `json:"items"` }
GroupList contains a list of Group
func (*GroupList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupList.
func (*GroupList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GroupList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GroupRef ¶
type GroupRef struct { APIGroup string `json:"apiGroup,omitempty"` Kind string `json:"kind,omitempty"` Name string `json:"name,omitempty"` }
GroupRef defines the desired relation of GroupBinding
func (*GroupRef) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupRef.
func (*GroupRef) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GroupSpec ¶
type GroupSpec struct { }
GroupSpec defines the desired state of Group
func (*GroupSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupSpec.
func (*GroupSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GroupStatus ¶
type GroupStatus struct { }
GroupStatus defines the observed state of Group
func (*GroupStatus) DeepCopy ¶
func (in *GroupStatus) DeepCopy() *GroupStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupStatus.
func (*GroupStatus) DeepCopyInto ¶
func (in *GroupStatus) DeepCopyInto(out *GroupStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoginRecord ¶
type LoginRecord struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec LoginRecordSpec `json:"spec"` }
+genclient +genclient:nonNamespaced +kubebuilder:object:root=true +kubebuilder:printcolumn:name="Type",type="string",JSONPath=".spec.type" +kubebuilder:printcolumn:name="Provider",type="string",JSONPath=".spec.provider" +kubebuilder:printcolumn:name="From",type="string",JSONPath=".spec.sourceIP" +kubebuilder:printcolumn:name="Success",type="string",JSONPath=".spec.success" +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".spec.reason" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:categories="iam",scope="Cluster" +kubebuilder:object:root=true
func (*LoginRecord) DeepCopy ¶
func (in *LoginRecord) DeepCopy() *LoginRecord
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginRecord.
func (*LoginRecord) DeepCopyInto ¶
func (in *LoginRecord) DeepCopyInto(out *LoginRecord)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LoginRecord) DeepCopyObject ¶
func (in *LoginRecord) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type LoginRecordList ¶
type LoginRecordList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []LoginRecord `json:"items"` }
+kubebuilder:object:root=true +kubebuilder:object:root=true LoginRecordList contains a list of LoginRecord
func (*LoginRecordList) DeepCopy ¶
func (in *LoginRecordList) DeepCopy() *LoginRecordList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginRecordList.
func (*LoginRecordList) DeepCopyInto ¶
func (in *LoginRecordList) DeepCopyInto(out *LoginRecordList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LoginRecordList) DeepCopyObject ¶
func (in *LoginRecordList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type LoginRecordSpec ¶
type LoginRecordSpec struct { // Which authentication method used, Password/OAuth/Token Type LoginType `json:"type"` // Provider of authentication, Ldap/Github etc. Provider string `json:"provider"` // Source IP of client SourceIP string `json:"sourceIP"` // User agent of login attempt UserAgent string `json:"userAgent,omitempty"` // Successful login attempt or not Success bool `json:"success"` // States failed login attempt reason Reason string `json:"reason"` }
func (*LoginRecordSpec) DeepCopy ¶
func (in *LoginRecordSpec) DeepCopy() *LoginRecordSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginRecordSpec.
func (*LoginRecordSpec) DeepCopyInto ¶
func (in *LoginRecordSpec) DeepCopyInto(out *LoginRecordSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Placement ¶
type Placement struct { Clusters []Cluster `json:"clusters,omitempty"` ClusterSelector ClusterSelector `json:"clusterSelector,omitempty"` }
+kubebuilder:object:generate=false
type RoleBase ¶
type RoleBase struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:pruning:PreserveUnknownFields // +kubebuilder:validation:EmbeddedResource Role runtime.RawExtension `json:"role"` }
+genclient +genclient:nonNamespaced +kubebuilder:object:root=true +kubebuilder:resource:categories="iam",scope="Cluster" +kubebuilder:object:root=true
func (*RoleBase) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBase.
func (*RoleBase) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RoleBase) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RoleBaseList ¶
type RoleBaseList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []RoleBase `json:"items"` }
+kubebuilder:object:root=true +kubebuilder:object:root=true RoleBaseList contains a list of RoleBase
func (*RoleBaseList) DeepCopy ¶
func (in *RoleBaseList) DeepCopy() *RoleBaseList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBaseList.
func (*RoleBaseList) DeepCopyInto ¶
func (in *RoleBaseList) DeepCopyInto(out *RoleBaseList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RoleBaseList) DeepCopyObject ¶
func (in *RoleBaseList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RoleBindingTemplate ¶
type RoleBindingTemplate struct { metav1.ObjectMeta `json:"metadata,omitempty"` Subjects []rbacv1.Subject `json:"subjects,omitempty"` RoleRef rbacv1.RoleRef `json:"roleRef"` }
+kubebuilder:object:generate=false
type RoleTemplate ¶
type RoleTemplate struct { metav1.ObjectMeta `json:"metadata,omitempty"` // +optional Rules []rbacv1.PolicyRule `json:"rules" protobuf:"bytes,2,rep,name=rules"` }
+kubebuilder:object:generate=false
type User ¶
type User struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ObjectMeta `json:"metadata,omitempty"` Spec UserSpec `json:"spec"` // +optional Status UserStatus `json:"status,omitempty"` }
User is the Schema for the users API +kubebuilder:printcolumn:name="Email",type="string",JSONPath=".spec.email" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.state" +kubebuilder:resource:categories="iam",scope="Cluster" +kubebuilder:object:root=true
func (*User) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new User.
func (*User) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*User) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type UserList ¶
type UserList struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. // +optional metav1.ListMeta `json:"metadata,omitempty"` Items []User `json:"items"` }
+kubebuilder:object:root=true +kubebuilder:object:root=true UserList contains a list of User
func (*UserList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserList.
func (*UserList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*UserList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type UserSpec ¶
type UserSpec struct { // Unique email address(https://www.ietf.org/rfc/rfc5322.txt). Email string `json:"email"` // The preferred written or spoken language for the user. // +optional Lang string `json:"lang,omitempty"` // Description of the user. // +optional Description string `json:"description,omitempty"` // +optional DisplayName string `json:"displayName,omitempty"` // +optional Groups []string `json:"groups,omitempty"` // password will be encrypted by mutating admission webhook // +kubebuilder:validation:MinLength=8 // +kubebuilder:validation:MaxLength=64 // +kubebuilder:validation:Pattern=`^(.*[a-z].*[A-Z].*[0-9].*)$|^(.*[a-z].*[0-9].*[A-Z].*)$|^(.*[A-Z].*[a-z].*[0-9].*)$|^(.*[A-Z].*[0-9].*[a-z].*)$|^(.*[0-9].*[a-z].*[A-Z].*)$|^(.*[0-9].*[A-Z].*[a-z].*)$|^(\$2[ayb]\$.{56})$` // Password pattern is tricky here. // The rule is simple: length between [6,64], at least one uppercase letter, one lowercase letter, one digit. // The regexp in console(javascript) is quite straightforward: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{6,64}$ // But in Go, we don't have ?= (back tracking) capability in regexp (also in CRD validation pattern) // So we adopted an alternative scheme to achieve. // Use 6 different regexp to combine to achieve the same effect. // These six schemes enumerate the arrangement of numbers, uppercase letters, and lowercase letters that appear for the first time. // - ^(.*[a-z].*[A-Z].*[0-9].*)$ stands for lowercase letter comes first, then followed by an uppercase letter, then a digit. // - ^(.*[a-z].*[0-9].*[A-Z].*)$ stands for lowercase letter comes first, then followed by a digit, then an uppercase leeter. // - ^(.*[A-Z].*[a-z].*[0-9].*)$ ... // - ^(.*[A-Z].*[0-9].*[a-z].*)$ ... // - ^(.*[0-9].*[a-z].*[A-Z].*)$ ... // - ^(.*[0-9].*[A-Z].*[a-z].*)$ ... // Last but not least, the bcrypt string is also included to match the encrypted password. ^(\$2[ayb]\$.{56})$ EncryptedPassword string `json:"password,omitempty"` }
UserSpec defines the desired state of User
func (*UserSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSpec.
func (*UserSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UserState ¶
type UserState string
const ( // UserActive means the user is available. UserActive UserState = "Active" // UserDisabled means the user is disabled. UserDisabled UserState = "Disabled" // UserAuthLimitExceeded means restrict user login. UserAuthLimitExceeded UserState = "AuthLimitExceeded" AuthenticatedSuccessfully = "authenticated successfully" )
These are the valid phases of a user.
type UserStatus ¶
type UserStatus struct { // The user status // +optional State UserState `json:"state,omitempty"` // +optional Reason string `json:"reason,omitempty"` // +optional LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` // Last login attempt timestamp // +optional LastLoginTime *metav1.Time `json:"lastLoginTime,omitempty"` }
UserStatus defines the observed state of User
func (*UserStatus) DeepCopy ¶
func (in *UserStatus) DeepCopy() *UserStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserStatus.
func (*UserStatus) DeepCopyInto ¶
func (in *UserStatus) DeepCopyInto(out *UserStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UserTemplate ¶
type UserTemplate struct { metav1.ObjectMeta `json:"metadata,omitempty"` Spec UserSpec `json:"spec"` // +optional Status UserStatus `json:"status,omitempty"` }
+kubebuilder:object:generate=false
type WorkspaceRole ¶
type WorkspaceRole struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // Rules holds all the PolicyRules for this WorkspaceRole // +optional Rules []rbacv1.PolicyRule `json:"rules" protobuf:"bytes,2,rep,name=rules"` }
+genclient +genclient:nonNamespaced +kubebuilder:object:root=true +kubebuilder:printcolumn:name="Workspace",type="string",JSONPath=".metadata.labels.kubesphere\\.io/workspace" +kubebuilder:printcolumn:name="Alias",type="string",JSONPath=".metadata.annotations.kubesphere\\.io/alias-name" +kubebuilder:resource:categories="iam",scope="Cluster" +kubebuilder:object:root=true
func (*WorkspaceRole) DeepCopy ¶
func (in *WorkspaceRole) DeepCopy() *WorkspaceRole
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceRole.
func (*WorkspaceRole) DeepCopyInto ¶
func (in *WorkspaceRole) DeepCopyInto(out *WorkspaceRole)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WorkspaceRole) DeepCopyObject ¶
func (in *WorkspaceRole) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type WorkspaceRoleBinding ¶
type WorkspaceRoleBinding struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // Subjects holds references to the objects the role applies to. // +optional Subjects []rbacv1.Subject `json:"subjects,omitempty" protobuf:"bytes,2,rep,name=subjects"` // RoleRef can only reference a WorkspaceRole. // If the RoleRef cannot be resolved, the Authorizer must return an error. RoleRef rbacv1.RoleRef `json:"roleRef" protobuf:"bytes,3,opt,name=roleRef"` }
+genclient +genclient:nonNamespaced +kubebuilder:object:root=true +kubebuilder:printcolumn:name="Workspace",type="string",JSONPath=".metadata.labels.kubesphere\\.io/workspace" +kubebuilder:resource:categories="iam",scope="Cluster" WorkspaceRoleBinding is the Schema for the workspacerolebindings API +kubebuilder:object:root=true
func (*WorkspaceRoleBinding) DeepCopy ¶
func (in *WorkspaceRoleBinding) DeepCopy() *WorkspaceRoleBinding
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceRoleBinding.
func (*WorkspaceRoleBinding) DeepCopyInto ¶
func (in *WorkspaceRoleBinding) DeepCopyInto(out *WorkspaceRoleBinding)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WorkspaceRoleBinding) DeepCopyObject ¶
func (in *WorkspaceRoleBinding) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type WorkspaceRoleBindingList ¶
type WorkspaceRoleBindingList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []WorkspaceRoleBinding `json:"items"` }
+kubebuilder:object:root=true +kubebuilder:object:root=true WorkspaceRoleBindingList contains a list of WorkspaceRoleBinding
func (*WorkspaceRoleBindingList) DeepCopy ¶
func (in *WorkspaceRoleBindingList) DeepCopy() *WorkspaceRoleBindingList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceRoleBindingList.
func (*WorkspaceRoleBindingList) DeepCopyInto ¶
func (in *WorkspaceRoleBindingList) DeepCopyInto(out *WorkspaceRoleBindingList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WorkspaceRoleBindingList) DeepCopyObject ¶
func (in *WorkspaceRoleBindingList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type WorkspaceRoleList ¶
type WorkspaceRoleList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []WorkspaceRole `json:"items"` }
+kubebuilder:object:root=true +kubebuilder:object:root=true WorkspaceRoleList contains a list of WorkspaceRole
func (*WorkspaceRoleList) DeepCopy ¶
func (in *WorkspaceRoleList) DeepCopy() *WorkspaceRoleList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceRoleList.
func (*WorkspaceRoleList) DeepCopyInto ¶
func (in *WorkspaceRoleList) DeepCopyInto(out *WorkspaceRoleList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WorkspaceRoleList) DeepCopyObject ¶
func (in *WorkspaceRoleList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.