v1alpha1

package
v0.20.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 28, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the addons v1alpha1 API group +kubebuilder:object:generate=true +groupName=addonsflow.redhat.openshift.io

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "addonsflow.redhat.openshift.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

This section is empty.

Types

type AddonImageSet added in v0.3.0

type AddonImageSet struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   AddonImageSetSpec   `json:"spec,omitempty"`
	Status AddonImageSetStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:subresource:status AddonImageSet is the Schema for the addonimagesets API

func (*AddonImageSet) DeepCopy added in v0.3.0

func (in *AddonImageSet) DeepCopy() *AddonImageSet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonImageSet.

func (*AddonImageSet) DeepCopyInto added in v0.3.0

func (in *AddonImageSet) DeepCopyInto(out *AddonImageSet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AddonImageSet) DeepCopyObject added in v0.3.0

func (in *AddonImageSet) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*AddonImageSet) ToJSON added in v0.10.0

func (a *AddonImageSet) ToJSON() ([]byte, error)

ToJSON - marshal ojbect as JSON

type AddonImageSetList added in v0.3.0

type AddonImageSetList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []AddonImageSet `json:"items"`
}

+kubebuilder:object:root=true AddonImageSetList contains a list of AddonImageSet

func (*AddonImageSetList) DeepCopy added in v0.3.0

func (in *AddonImageSetList) DeepCopy() *AddonImageSetList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonImageSetList.

func (*AddonImageSetList) DeepCopyInto added in v0.3.0

func (in *AddonImageSetList) DeepCopyInto(out *AddonImageSetList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AddonImageSetList) DeepCopyObject added in v0.3.0

func (in *AddonImageSetList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AddonImageSetSpec added in v0.3.0

type AddonImageSetSpec struct {
	// +kubebuilder:validation:Required
	// The name of the imageset along with the version.
	Name string `json:"name" validate:"required"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^quay\.io/osd-addons/[a-z-]+`
	// The url for the index image
	IndexImage string `json:"indexImage" validate:"required"`

	// +optional
	// +kubebuilder:validation:Pattern=`^quay\.io/osd-addons/[a-z-]+`
	// The url for the package image
	PackageImage string `json:"packageImage"`

	// +kubebuilder:validation:Required
	// A list of image urls of related operators
	RelatedImages []string `json:"relatedImages" validate:"required"`

	// +optional
	// OCM representation of an add-on parameter
	AddOnParameters *[]ocmv1.AddOnParameter `json:"addOnParameters"`

	// +optional
	// OCM representation of an addon-requirement
	AddOnRequirements *[]ocmv1.AddOnRequirement `json:"addOnRequirements"`

	// +optional
	// OCM representation of an add-on sub operator. A sub operator is an
	// operator who's life cycle is controlled by the add-on umbrella operator.
	SubOperators *[]ocmv1.AddOnSubOperator `json:"subOperators"`

	// +optional
	// Configs to be passed to the subscription OLM object.
	Config *mtsrev1.Config `json:"config"`

	// +kubebuilder:validation:Pattern=`^[a-z0-9][a-z0-9-]{1,60}[a-z0-9]$`
	// Name of the secret under `secrets` which is supposed to be used for pulling Catalog Image under CatalogSource.
	PullSecretName string `json:"pullSecretName"`

	// +optional
	// List of additional catalog sources to be created.
	AdditionalCatalogSources *[]mtsrev1.AdditionalCatalogSource `json:"additionalCatalogSources"`
}

AddonImageSetSpec defines the desired state of AddonImageSet

func (*AddonImageSetSpec) DeepCopy added in v0.3.0

func (in *AddonImageSetSpec) DeepCopy() *AddonImageSetSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonImageSetSpec.

func (*AddonImageSetSpec) DeepCopyInto added in v0.3.0

func (in *AddonImageSetSpec) DeepCopyInto(out *AddonImageSetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AddonImageSetSpec) FromYAML added in v0.3.0

func (a *AddonImageSetSpec) FromYAML(data []byte) error

FromYAML - instantiates an AddonImageSetSpec struct from yaml data

func (*AddonImageSetSpec) GetSemver added in v0.6.0

func (a *AddonImageSetSpec) GetSemver() (string, error)

GetSemver - Returns the semver version matching "MAJOR.MINOR.PATCH".

type AddonImageSetStatus added in v0.3.0

type AddonImageSetStatus struct {
}

AddonImageSetStatus defines the observed state of AddonImageSet

func (*AddonImageSetStatus) DeepCopy added in v0.3.0

func (in *AddonImageSetStatus) DeepCopy() *AddonImageSetStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonImageSetStatus.

func (*AddonImageSetStatus) DeepCopyInto added in v0.3.0

func (in *AddonImageSetStatus) DeepCopyInto(out *AddonImageSetStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AddonMetadata

type AddonMetadata struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   AddonMetadataSpec   `json:"spec,omitempty" validate:"required"`
	Status AddonMetadataStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:subresource:status AddonMetadata is the Schema for the AddonMetadata API

func (*AddonMetadata) DeepCopy

func (in *AddonMetadata) DeepCopy() *AddonMetadata

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonMetadata.

func (*AddonMetadata) DeepCopyInto

func (in *AddonMetadata) DeepCopyInto(out *AddonMetadata)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AddonMetadata) DeepCopyObject

func (in *AddonMetadata) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*AddonMetadata) ToJSON added in v0.10.0

func (a *AddonMetadata) ToJSON() ([]byte, error)

ToJSON - marshal AddonMetadata to JSON

type AddonMetadataList

type AddonMetadataList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []AddonMetadata `json:"items"`
}

+kubebuilder:object:root=true AddonMetadataList contains a list of AddonMetadata

func (*AddonMetadataList) DeepCopy

func (in *AddonMetadataList) DeepCopy() *AddonMetadataList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonMetadataList.

func (*AddonMetadataList) DeepCopyInto

func (in *AddonMetadataList) DeepCopyInto(out *AddonMetadataList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AddonMetadataList) DeepCopyObject

func (in *AddonMetadataList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AddonMetadataSpec

type AddonMetadataSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^[A-Za-z0-9][A-Za-z0-9-]{0,30}[A-Za-z0-9]$`
	// Unique ID of the addon
	ID string `json:"id" validate:"required"`

	// +kubebuilder:validation:Required
	// Friendly name for the addon, displayed in the UI
	Name string `json:"name" validate:"required"`

	// +kubebuilder:validation:Required
	// Short description for the addon
	Description string `json:"description" validate:"required"`

	// +optional
	// +kubebuilder:validation:Pattern=`^http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$`
	// Link to the addon documentation
	Link string `json:"link"`

	// +kubebuilder:validation:Required
	// Icon to be shown in UI. Should be around 200px and base64 encoded.
	Icon string `json:"icon" validate:"required"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^api\.openshift\.com/addon-[0-9a-z][0-9a-z-]{0,30}[0-9a-z]$`
	// Kubernetes label for the addon. Needs to match: 'api.openshift.com/<addon-id>'.
	Label string `json:"label" validate:"required"`

	// +kubebuilder:validation:Required
	// Set to true to allow installation of the addon.
	Enabled bool `json:"enabled" validate:"required"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^([A-Za-z -]+ <[0-9A-Za-z_.-]+@redhat\.com>,?)+$`
	// Team or individual responsible for this addon. Needs to match: 'some name <some-email@redhat.com>'.
	AddonOwner string `json:"addonOwner" validate:"required"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^quay\.io/osd-addons/[a-z-]+$`
	// Quay repository for the addon operator. Needs to match: 'quay.io/osd-addons/<my-addon-repo>'.
	QuayRepo string `json:"quayRepo" validate:"required"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^quay\.io/[0-9A-Za-z._-]+/[0-9A-Za-z._-]+(:[A-Za-z0-9._-]+)?$`
	// Quay repository for the testHarness image. Needs to match: 'quay.io/<my-repo>/<my-test-harness>:<my-tag>'.
	TestHarness string `json:"testHarness" validate:"required"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum={AllNamespaces,OwnNamespace}
	// OLM InstallMode for the addon operator. One of: AllNamespaces or OwnNamespace.
	InstallMode string `json:"installMode" validate:"required"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^[A-Za-z0-9][A-Za-z0-9-]{0,60}[A-Za-z0-9]$`
	// Namespace where the addon operator should be installed.
	TargetNamespace string `json:"targetNamespace" validate:"required"`

	// +kubebuilder:validation:Required
	// Namespaces managed by the addon-operator. Need to include the TargetNamespace.
	Namespaces []string `json:"namespaces" validate:"required"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^[A-Za-z0-9][A-Za-z0-9-_]{0,35}[A-Za-z0-9]$`
	// Refers to the SKU name for the addon.
	OcmQuotaName string `json:"ocmQuotaName" validate:"required"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=0
	// OCM Quota cost for installing the addon.
	OcmQuotaCost int `json:"ocmQuotaCost" validate:"required"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$`
	// Name of the addon operator.
	OperatorName string `json:"operatorName" validate:"required"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum={alpha,beta,stable,edge,rc}
	// OLM channel from which to install the addon-operator. One of: alpha, beta, stable, edge or rc.
	DefaultChannel string `json:"defaultChannel" validate:"required"`

	// +optional
	// Deprecated: List of channels where the addon operator is available.
	// Only needed for legacy addon builds.
	Channels *[]Channel `json:"channels"`

	// +kubebuilder:validation:Required
	// +kubebuilder:default:{}
	// Labels to be applied on all listed namespaces.
	NamespaceLabels map[string]string `json:"namespaceLabels" validate:"required"`

	// +kubebuilder:validation:Required
	// +kubebuilder:default:{}
	// Annotations to be applied on all listed namespaces.
	NamespaceAnnotations map[string]string `json:"namespaceAnnotations" validate:"required"`

	// +optional
	// +kubebuilder:validation:Pattern=`^quay\.io/osd-addons/[a-z-]+`
	IndexImage *string `json:"indexImage"`

	// +optional
	// OCM representation of an add-on parameter
	AddOnParameters *[]ocmv1.AddOnParameter `json:"addOnParameters"`

	// +optional
	// OCM representation of an addon-requirement
	AddOnRequirements *[]ocmv1.AddOnRequirement `json:"addOnRequirements"`

	// +optional
	// OCM representation of an add-on sub operator. A sub operator is an
	// operator who's life cycle is controlled by the add-on umbrella operator.
	SubOperators *[]ocmv1.AddOnSubOperator `json:"subOperators"`

	// +optional
	// A string which specifies the imageset to use. Can either be 'latest' or a version string
	// MAJOR.MINOR.PATCH
	ImageSetVersion *string `json:"addonImageSetVersion"`

	// +optional
	HasExternalResources *bool `json:"hasExternalResources"`

	// +optional
	AddonNotifications *[]mtsrev1.Notification `json:"addonNotifications"`

	// +optional
	// Labels to be applied to all objects created in the SelectorSyncSet.
	CommonLabels *map[string]string `json:"commonLabels"`

	// +optional
	// Annotations to be applied to all objects created in the SelectorSyncSet.
	CommonAnnotations *map[string]string `json:"commonAnnotations"`

	// +optional
	// Deprecated: Replaced by MetricsFederation
	// Configuration parameters to be injected in the ServiceMonitor used for federation. The target prometheus server found by matchLabels needs to serve service-ca signed TLS traffic (https://docs.openshift.com/container-platform/4.6/security/certificate_types_descriptions/service-ca-certificates.html), and it needs to be runing inside the monitoring.namespace, with the service name 'prometheus'.
	Monitoring *mtsrev1.Monitoring `json:"monitoring"` //nolint: staticcheck // ignoring self-deprecation SA1019

	// +optional
	// Configuration parameters to be injected in the ServiceMonitor used for federation. The target prometheus server found by matchLabels needs to serve service-ca signed TLS traffic (https://docs.openshift.com/container-platform/4.6/security/certificate_types_descriptions/service-ca-certificates.html), and it needs to be runing inside the monitoring.namespace, with the service name 'prometheus'.
	MetricsFederation *mtsrev1.MetricsFederation `json:"metricsFederation"`

	// +optional
	// Configuration parameters which will determine the underlying configuration of the MonitoringStack CR which will be created in runtime whenever the respective addon would be installed.
	MonitoringStack *mtsrev1.MonitoringStack `json:"monitoringStack"`

	// +optional
	// Deprecated: Replaced by SubscriptionConfig.
	BundleParameters *mtsrev1.BundleParameters `json:"bundleParameters"` //nolint: staticcheck // ignoring self-deprecation SA1019

	// +optional
	StartingCSV *string `json:"startingCSV"`

	// +optional
	PagerDuty *mtsrev1.PagerDuty `json:"pagerduty"`

	// +optional
	// Denotes the Deadmans Snitch Configuration which is supposed to be setup alongside the Addon.
	DeadmansSnitch *mtsrev1.DeadmansSnitch `json:"deadmanssnitch"`

	// +optional
	// Extra Resources to be applied to the Hive cluster.
	ExtraResources *[]string `json:"extraResources"`

	// +optional
	// Configs to be passed to the subscription OLM object.
	Config *mtsrev1.Config `json:"config"`

	// +optional
	// Name of the secret under secrets which is supposed to be used for pulling Catalog Image under CatalogSource.
	PullSecretName string `json:"pullSecretName"`

	// +optional
	// List of additional catalog sources to be created.
	AdditionalCatalogSources *[]mtsrev1.AdditionalCatalogSource `json:"additionalCatalogSources"`

	// +optional
	// List of credential requests to authenticate operators.
	CredentialsRequests *[]mtsrev1.CredentialsRequest `json:"credentialsRequests"`

	// +optional
	// The step currently in consideration in the process of migrating the addon to SyncSet.
	SyncsetMigration *string `json:"syncsetMigration"`

	// +optional
	// Indicates if the add-on will be used as a Managed Service.
	ManagedService *bool `json:"managedService"`
}

AddonMetadataSpec defines the desired state of AddonMetadata View markers: $ controller-gen -www crd

func (*AddonMetadataSpec) CombineWithImageSet added in v0.10.0

func (a *AddonMetadataSpec) CombineWithImageSet(imageSet *AddonImageSetSpec) (*AddonMetadataSpec, error)

CombineWithImageSet - Returns a new AddonMetadataSpec combined with the related imageSet fields. Using deep copy to avoid overriding the existing CR.

func (*AddonMetadataSpec) DeepCopy

func (in *AddonMetadataSpec) DeepCopy() *AddonMetadataSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonMetadataSpec.

func (*AddonMetadataSpec) DeepCopyInto

func (in *AddonMetadataSpec) DeepCopyInto(out *AddonMetadataSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AddonMetadataSpec) FromYAML added in v0.1.0

func (a *AddonMetadataSpec) FromYAML(data []byte) error

FromYAML - instantiates an AddonMetadataSpec struct from yaml data

type AddonMetadataStatus

type AddonMetadataStatus struct {
}

AddonMetadataStatus defines the observed state of AddonMetadata

func (*AddonMetadataStatus) DeepCopy

func (in *AddonMetadataStatus) DeepCopy() *AddonMetadataStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonMetadataStatus.

func (*AddonMetadataStatus) DeepCopyInto

func (in *AddonMetadataStatus) DeepCopyInto(out *AddonMetadataStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Channel

type Channel struct {
	Name       string `json:"name"`
	CurrentCSV string `json:"currentCSV"`
}

Channel - list all channels for a given operator

func (*Channel) DeepCopy

func (in *Channel) DeepCopy() *Channel

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Channel.

func (*Channel) DeepCopyInto

func (in *Channel) DeepCopyInto(out *Channel)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL