Documentation ¶
Overview ¶
Package v1 contains API Schema definitions for the v1 API group +kubebuilder:object:generate=true +groupName=iam.ai.io +k8s:openapi-gen=true
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type GlobalRole
- type GlobalRoleBinding
- type GlobalRoleBindingList
- type GlobalRoleList
- type LoginRecord
- type LoginRecordList
- type LoginRecordSpec
- type LoginType
- type User
- type UserList
- type UserSpec
- type UserState
- type UserStatus
Constants ¶
const ( UserReferenceLabel = "iam.ai.io/user-ref" ResourceKindRole = "Role" NamespaceAdmin = "admin" ResourceKindUser = "User" ResourcePluralUser = "users" ResourcePluralGlobalRole = "globalroles" ResourcePluralGlobalRoleBinding = "globalrolebindings" ClusterAdmin = "cluster-admin" PlatformAdmin = "platform-admin" PlatformSelfProvisioner = "platform-self-provisioner" PlatformRegular = "platform-regular" ResourceKindClusterRole = "ClusterRole" ResourcesSingularGlobalRoleBinding = "globalrolebinding" RoleAnnotation = "iam.ai.io/role" ResourcesSingularRoleBinding = "rolebinding" ResourceKindGlobalRole = "GlobalRole" ClusterRoleAnnotation = "iam.ai.io/clusterrole" ResourcesSingularClusterRoleBinding = "clusterrolebinding" RegoOverrideAnnotation = "iam.ai.io/rego-override" ResourcesPluralUser = "users" ScopeNamespace = "namespace" ResourcesSingularRole = "role" ScopeCluster = "cluster" ResourcesSingularClusterRole = "clusterrole" ResourcesSingularGlobalRole = "globalrole" GlobalRoleAnnotation = "iam.ai.io/globalrole" ResourcesSingularUser = "user" FieldEmail = "email" )
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "iam.ai.io", Version: "v1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource is required by pkg/client/listers/...
Types ¶
type GlobalRole ¶
type GlobalRole struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. // +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 +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:categories="iam",scope="Cluster"
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"` // Standard object's metadata. // +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"` }
GlobalRoleBinding is the Schema for the globalrolebindings API +kubebuilder:resource:categories="iam",scope="Cluster"
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"` }
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"` }
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 LoginRecord ¶
type LoginRecord struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec LoginRecordSpec `json:"spec"` }
+genclient +genclient:nonNamespaced +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +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"
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"` }
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, BasicAuth/OAuth 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 User ¶
type User struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. // +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:subresource:status
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"` }
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 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.