Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group +kubebuilder:object:generate=true +groupName=apps.m88i.io
Index ¶
- Variables
- func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition
- type Nexus
- type NexusAutomaticUpdate
- type NexusList
- type NexusNetworking
- type NexusNetworkingExposeType
- type NexusNetworkingTLS
- type NexusPersistence
- type NexusProbe
- type NexusSpec
- type NexusStatus
- type NexusStatusType
- type OperationsStatus
- type ServerOperationsOpts
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "apps.m88i.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func GetOpenAPIDefinitions ¶
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition
Types ¶
type Nexus ¶
type Nexus struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec NexusSpec `json:"spec,omitempty"`
Status NexusStatus `json:"status,omitempty"`
}
func (*Nexus) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Nexus.
func (*Nexus) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Nexus) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NexusAutomaticUpdate ¶
type NexusAutomaticUpdate struct {
// Whether or not the Operator should perform automatic updates. Defaults to `false` (auto updates are enabled).
// Is set to `false` if `spec.image` is not empty and is different from the default community image.
// +optional
Disabled bool `json:"disabled,omitempty"`
// The Nexus image minor version the deployment should stay in. If left blank and automatic updates are enabled the latest minor is set.
// +kubebuilder:validation:Minimum=0
// +optional
MinorVersion *int `json:"minorVersion,omitempty"` // must keep a pointer to tell apart uninformed from 0
}
NexusAutomaticUpdate defines configuration for automatic updates
func (*NexusAutomaticUpdate) DeepCopy ¶
func (in *NexusAutomaticUpdate) DeepCopy() *NexusAutomaticUpdate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NexusAutomaticUpdate.
func (*NexusAutomaticUpdate) DeepCopyInto ¶
func (in *NexusAutomaticUpdate) DeepCopyInto(out *NexusAutomaticUpdate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NexusList ¶
type NexusList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Nexus `json:"items"`
}
NexusList contains a list of Nexus +kubebuilder:object:root=true
func (*NexusList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NexusList.
func (*NexusList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NexusList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NexusNetworking ¶
type NexusNetworking struct {
// Set to `true` to expose the Nexus application. Defaults to `false`.
Expose bool `json:"expose,omitempty"`
// Type of networking exposure: NodePort, Route or Ingress. Defaults to Route on OpenShift and Ingress on Kubernetes.
// Routes are only available on Openshift and Ingresses are only available on Kubernetes.
// +kubebuilder:validation:Enum=NodePort;Route;Ingress
ExposeAs NexusNetworkingExposeType `json:"exposeAs,omitempty"`
// Host where the Nexus service is exposed. This attribute is required if the service is exposed via Ingress.
Host string `json:"host,omitempty"`
// NodePort defined in the exposed service. Required if exposed via NodePort.
NodePort int32 `json:"nodePort,omitempty"`
// TLS/SSL-related configuration
// +optional
TLS NexusNetworkingTLS `json:"tls,omitempty"`
}
NexusNetworking is the base structure for Nexus networking information
func (*NexusNetworking) DeepCopy ¶
func (in *NexusNetworking) DeepCopy() *NexusNetworking
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NexusNetworking.
func (*NexusNetworking) DeepCopyInto ¶
func (in *NexusNetworking) DeepCopyInto(out *NexusNetworking)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NexusNetworkingExposeType ¶
type NexusNetworkingExposeType string
NexusNetworkingExposeType defines how to expose Nexus service
const ( // NodePortExposeType The service is exposed via NodePort NodePortExposeType NexusNetworkingExposeType = "NodePort" // RouteExposeType On OpenShift, the service is exposed via a custom Route RouteExposeType NexusNetworkingExposeType = "Route" // IngressExposeType Supported on Kubernetes only, the service is exposed via NGINX Ingress IngressExposeType NexusNetworkingExposeType = "Ingress" )
type NexusNetworkingTLS ¶
type NexusNetworkingTLS struct {
// When exposing via Route, set to `true` to only allow encrypted traffic using TLS (disables HTTP in favor of HTTPS). Defaults to `false`.
// +optional
Mandatory bool `json:"mandatory,omitempty"`
// When exposing via Ingress, inform the name of the TLS secret containing certificate and private key for TLS encryption. It must be present in the same namespace as the Operator.
// +optional
SecretName string `json:"secretName,omitempty"`
}
NexusNetworkingTLS defines TLS/SSL-related configuration
func (*NexusNetworkingTLS) DeepCopy ¶
func (in *NexusNetworkingTLS) DeepCopy() *NexusNetworkingTLS
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NexusNetworkingTLS.
func (*NexusNetworkingTLS) DeepCopyInto ¶
func (in *NexusNetworkingTLS) DeepCopyInto(out *NexusNetworkingTLS)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NexusPersistence ¶
type NexusPersistence struct {
// Flag to indicate if this instance will be persistent or not
Persistent bool `json:"persistent"`
// If persistent, the size of the Volume.
// Defaults: 10Gi
VolumeSize string `json:"volumeSize,omitempty"`
// StorageClass used by the managed PVC.
StorageClass string `json:"storageClass,omitempty"`
}
NexusPersistence is the structure for the data persistent +k8s:openapi-gen=true
func (*NexusPersistence) DeepCopy ¶
func (in *NexusPersistence) DeepCopy() *NexusPersistence
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NexusPersistence.
func (*NexusPersistence) DeepCopyInto ¶
func (in *NexusPersistence) DeepCopyInto(out *NexusPersistence)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NexusProbe ¶
type NexusProbe struct {
// Number of seconds after the container has started before probes are initiated.
// Defaults to 240 seconds. Minimum value is 0.
// +optional
// +kubebuilder:validation:Minimum=0
InitialDelaySeconds int32 `json:"initialDelaySeconds,omitempty" protobuf:"varint,2,opt,name=initialDelaySeconds"`
// Number of seconds after which the probe times out.
// Defaults to 15 seconds. Minimum value is 1.
// +optional
// +kubebuilder:validation:Minimum=1
TimeoutSeconds int32 `json:"timeoutSeconds,omitempty" protobuf:"varint,3,opt,name=timeoutSeconds"`
// How often (in seconds) to perform the probe.
// Defaults to 10 seconds. Minimum value is 1.
// +optional
// +kubebuilder:validation:Minimum=1
PeriodSeconds int32 `json:"periodSeconds,omitempty" protobuf:"varint,4,opt,name=periodSeconds"`
// Minimum consecutive successes for the probe to be considered successful after having failed.
// Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
// +optional
// +kubebuilder:validation:Minimum=1
SuccessThreshold int32 `json:"successThreshold,omitempty" protobuf:"varint,5,opt,name=successThreshold"`
// Minimum consecutive failures for the probe to be considered failed after having succeeded.
// Defaults to 3. Minimum value is 1.
// +optional
// +kubebuilder:validation:Minimum=1
FailureThreshold int32 `json:"failureThreshold,omitempty" protobuf:"varint,6,opt,name=failureThreshold"`
}
NexusProbe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. +k8s:openapi-gen=true
func (*NexusProbe) DeepCopy ¶
func (in *NexusProbe) DeepCopy() *NexusProbe
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NexusProbe.
func (*NexusProbe) DeepCopyInto ¶
func (in *NexusProbe) DeepCopyInto(out *NexusProbe)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NexusSpec ¶
type NexusSpec struct {
// Number of pod replicas desired. Defaults to 0.
// +kubebuilder:validation:Maximum=100
// +kubebuilder:validation:Minimum=0
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Replicas"
Replicas int32 `json:"replicas"`
// Full image tag name for this specific deployment. Will be ignored if `spec.useRedHatImage` is set to `true`.
// Default: docker.io/sonatype/nexus3:latest
// +optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Image"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:io.kubernetes:image"
Image string `json:"image,omitempty"`
// Automatic updates configuration
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Automatic Update"
AutomaticUpdate NexusAutomaticUpdate `json:"automaticUpdate,omitempty"`
// The image pull policy for the Nexus image. If left blank behavior will be determined by the image tag (`Always` if "latest" and `IfNotPresent` otherwise).
// Possible values: `Always`, `IfNotPresent` or `Never`.
// +kubebuilder:validation:Enum=Always;IfNotPresent;Never
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Image Pull Policy"
// +optional
ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
// Defined Resources for the Nexus instance
// +optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Resources"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:resourceRequirements"
Resources corev1.ResourceRequirements `json:"resources,omitempty"`
// Persistence definition
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=false
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Persistence"
Persistence NexusPersistence `json:"persistence"`
// If you have access to Red Hat Container Catalog, set this to `true` to use the certified image provided by Sonatype
// Defaults to `false`
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Use Red Hat Image"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
UseRedHatImage bool `json:"useRedHatImage"`
// GenerateRandomAdminPassword enables the random password generation.
// Defaults to `false`: the default password for a newly created instance is 'admin123', which should be changed in the first login.
// If set to `true`, you must use the automatically generated 'admin' password, stored in the container's file system at `/nexus-data/admin.password`.
// The operator uses the default credentials to create a user for itself to create default repositories.
// If set to `true`, the repositories won't be created since the operator won't fetch for the random password.
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Generate Random Admin Password"
// +optional
GenerateRandomAdminPassword bool `json:"generateRandomAdminPassword,omitempty"`
// Networking definition
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=false
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Networking"
Networking NexusNetworking `json:"networking,omitempty"`
// ServiceAccountName is the name of the ServiceAccount used to run the Pods. If left blank, a default ServiceAccount is created with the same name as the Nexus CR (`metadata.name`).
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Service Account"
// +optional
ServiceAccountName string `json:"serviceAccountName,omitempty"`
// LivenessProbe describes how the Nexus container liveness probe should work
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=false
// +optional
LivenessProbe *NexusProbe `json:"livenessProbe,omitempty"`
// ReadinessProbe describes how the Nexus container readiness probe should work
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=false
// +optional
ReadinessProbe *NexusProbe `json:"readinessProbe,omitempty"`
// ServerOperations describes the options for the operations performed on the deployed server instance
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +optional
ServerOperations ServerOperationsOpts `json:"serverOperations,omitempty"`
}
NexusSpec defines the desired state of Nexus +k8s:openapi-gen=true +kubebuilder:resource:path=nexus,scope=Namespaced
func (*NexusSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NexusSpec.
func (*NexusSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NexusStatus ¶
type NexusStatus struct {
// Condition status for the Nexus deployment
// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors.displayName="appsv1.DeploymentStatus"
DeploymentStatus v1.DeploymentStatus `json:"deploymentStatus,omitempty"`
// Will be "OK" when this Nexus instance is up
// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true
NexusStatus NexusStatusType `json:"nexusStatus,omitempty"`
// Gives more information about a failure status
// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true
Reason string `json:"reason,omitempty"`
// Route for external service access
// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true
NexusRoute string `json:"nexusRoute,omitempty"`
// Conditions reached during an update
// +listType=atomic
// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors.displayName="Update Conditions"
UpdateConditions []string `json:"updateConditions,omitempty"`
// ServerOperationsStatus describes the general status for the operations performed in the Nexus server instance
ServerOperationsStatus OperationsStatus `json:"serverOperationsStatus,omitempty"`
}
NexusStatus defines the observed state of Nexus +k8s:openapi-gen=true
func (*NexusStatus) DeepCopy ¶
func (in *NexusStatus) DeepCopy() *NexusStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NexusStatus.
func (*NexusStatus) DeepCopyInto ¶
func (in *NexusStatus) DeepCopyInto(out *NexusStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NexusStatusType ¶
type NexusStatusType string
const ( NexusStatusOK NexusStatusType = "OK" NexusStatusFailure NexusStatusType = "Failure" NexusStatusPending NexusStatusType = "Pending" )
type OperationsStatus ¶
type OperationsStatus struct {
ServerReady bool `json:"serverReady,omitempty"`
OperatorUserCreated bool `json:"operatorUserCreated,omitempty"`
CommunityRepositoriesCreated bool `json:"communityRepositoriesCreated,omitempty"`
MavenCentralUpdated bool `json:"mavenCentralUpdated,omitempty"`
Reason string `json:"reason,omitempty"`
MavenPublicURL string `json:"mavenPublicURL,omitempty"`
}
OperationsStatus describes the status for each operation made by the operator in the deployed Nexus Server
func (*OperationsStatus) DeepCopy ¶
func (in *OperationsStatus) DeepCopy() *OperationsStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationsStatus.
func (*OperationsStatus) DeepCopyInto ¶
func (in *OperationsStatus) DeepCopyInto(out *OperationsStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerOperationsOpts ¶
type ServerOperationsOpts struct {
// DisableRepositoryCreation disables the auto-creation of Apache, JBoss and Red Hat repositories and their addition to
// the Maven Public group in this Nexus instance.
// Defaults to `false` (always try to create the repos). Set this to `true` to not create them. Only works if `spec.generateRandomAdminPassword` is `false`.
DisableRepositoryCreation bool `json:"disableRepositoryCreation,omitempty"`
// DisableOperatorUserCreation disables the auto-creation of the `nexus-operator` user on the deployed server. This user performs
// all the operations on the server (such as creating the community repos). If disabled, the Operator will use the default `admin` user.
// Defaults to `false` (always create the user). Setting this to `true` is not recommended as it grants the Operator more privileges than it needs and it would not be possible to tell apart operations performed by the `admin` and the Operator.
DisableOperatorUserCreation bool `json:"disableOperatorUserCreation,omitempty"`
}
ServerOperationsOpts describes the options for the operations performed in the Nexus server deployed instance
func (*ServerOperationsOpts) DeepCopy ¶
func (in *ServerOperationsOpts) DeepCopy() *ServerOperationsOpts
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerOperationsOpts.
func (*ServerOperationsOpts) DeepCopyInto ¶
func (in *ServerOperationsOpts) DeepCopyInto(out *ServerOperationsOpts)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.