v1alpha1

package
v0.19.0 Latest Latest
Warning

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

Go to latest
Published: Nov 2, 2023 License: Apache-2.0 Imports: 21 Imported by: 355

Documentation

Overview

Package v1alpha1 contains resources types for version v1alpha1 of the operators.coreos.com API group.

Index

Constants

View Source
const (
	CatalogSourceCRDAPIVersion  = GroupName + "/" + GroupVersion
	CatalogSourceKind           = "CatalogSource"
	DefaultRegistryPollDuration = 15 * time.Minute
)
View Source
const (
	CopiedLabelKey = "olm.copiedFrom"

	// ConditionsLengthLimit is the maximum length of Status.Conditions of a
	// given ClusterServiceVersion object. The oldest condition(s) are removed
	// from the list as it grows over time to keep it at limit.
	ConditionsLengthLimit = 20
)
View Source
const (
	ClusterServiceVersionAPIVersion     = GroupName + "/" + GroupVersion
	ClusterServiceVersionKind           = "ClusterServiceVersion"
	OperatorGroupNamespaceAnnotationKey = "olm.operatorNamespace"
	InstallStrategyNameDeployment       = "deployment"
	SkipRangeAnnotationKey              = "olm.skipRange"
)
View Source
const (
	InstallPlanKind       = "InstallPlan"
	InstallPlanAPIVersion = GroupName + "/" + GroupVersion
)
View Source
const (
	// GroupName is the group name used in this package.
	GroupName = operators.GroupName
	// GroupVersion is the group version used in this package.
	GroupVersion = "v1alpha1"
)
View Source
const (
	SubscriptionKind          = "Subscription"
	SubscriptionCRDAPIVersion = GroupName + "/" + GroupVersion
)
View Source
const (
	SubscriptionStateNone             = ""
	SubscriptionStateFailed           = "UpgradeFailed"
	SubscriptionStateUpgradeAvailable = "UpgradeAvailable"
	SubscriptionStateUpgradePending   = "UpgradePending"
	SubscriptionStateAtLatest         = "AtLatestKnown"
)
View Source
const (
	// NoCatalogSourcesFound is a reason string for Subscriptions with unhealthy CatalogSources due to none being available.
	NoCatalogSourcesFound = "NoCatalogSourcesFound"

	// AllCatalogSourcesHealthy is a reason string for Subscriptions that transitioned due to all CatalogSources being healthy.
	AllCatalogSourcesHealthy = "AllCatalogSourcesHealthy"

	// CatalogSourcesAdded is a reason string for Subscriptions that transitioned due to CatalogSources being added.
	CatalogSourcesAdded = "CatalogSourcesAdded"

	// CatalogSourcesUpdated is a reason string for Subscriptions that transitioned due to CatalogSource being updated.
	CatalogSourcesUpdated = "CatalogSourcesUpdated"

	// CatalogSourcesDeleted is a reason string for Subscriptions that transitioned due to CatalogSources being removed.
	CatalogSourcesDeleted = "CatalogSourcesDeleted"

	// UnhealthyCatalogSourceFound is a reason string for Subscriptions that transitioned because an unhealthy CatalogSource was found.
	UnhealthyCatalogSourceFound = "UnhealthyCatalogSourceFound"

	// ReferencedInstallPlanNotFound is a reason string for Subscriptions that transitioned due to a referenced InstallPlan not being found.
	ReferencedInstallPlanNotFound = "ReferencedInstallPlanNotFound"

	// InstallPlanNotYetReconciled is a reason string for Subscriptions that transitioned due to a referenced InstallPlan not being reconciled yet.
	InstallPlanNotYetReconciled = "InstallPlanNotYetReconciled"

	// InstallPlanFailed is a reason string for Subscriptions that transitioned due to a referenced InstallPlan failing without setting an explicit failure condition.
	InstallPlanFailed = "InstallPlanFailed"
)

Variables

View Source
var (
	// SchemeBuilder initializes a scheme builder
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	// AddToScheme is a global function that registers this API group & version to a scheme
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var ErrInvalidInstallPlan = errors.New("the InstallPlan contains invalid data")

ErrInvalidInstallPlan is the error returned by functions that operate on InstallPlans when the InstallPlan does not contain totally valid data.

View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: GroupVersion}

SchemeGroupVersion is group version used to register these objects

Functions

func IsCopied added in v0.18.0

func IsCopied(o metav1.Object) bool

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type APIResourceReference

type APIResourceReference struct {
	// Plural name of the referenced resource type (CustomResourceDefinition.Spec.Names[].Plural). Empty string if the referenced resource type is not a custom resource.
	Name string `json:"name"`
	// Kind of the referenced resource type.
	Kind string `json:"kind"`
	// API Version of the referenced resource type.
	Version string `json:"version"`
}

APIResourceReference is a reference to a Kubernetes resource type that the referrer utilizes. +k8s:openapi-gen=true

func (*APIResourceReference) DeepCopy

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

func (*APIResourceReference) DeepCopyInto

func (in *APIResourceReference) DeepCopyInto(out *APIResourceReference)

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

type APIServiceDefinitions

type APIServiceDefinitions struct {
	Owned    []APIServiceDescription `json:"owned,omitempty"`
	Required []APIServiceDescription `json:"required,omitempty"`
}

APIServiceDefinitions declares all of the extension apis managed or required by an operator being ran by ClusterServiceVersion. +k8s:openapi-gen=true

func (*APIServiceDefinitions) DeepCopy

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

func (*APIServiceDefinitions) DeepCopyInto

func (in *APIServiceDefinitions) DeepCopyInto(out *APIServiceDefinitions)

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

type APIServiceDescription

type APIServiceDescription struct {
	Name              string                 `json:"name"`
	Group             string                 `json:"group"`
	Version           string                 `json:"version"`
	Kind              string                 `json:"kind"`
	DeploymentName    string                 `json:"deploymentName,omitempty"`
	ContainerPort     int32                  `json:"containerPort,omitempty"`
	DisplayName       string                 `json:"displayName,omitempty"`
	Description       string                 `json:"description,omitempty"`
	Resources         []APIResourceReference `json:"resources,omitempty"`
	StatusDescriptors []StatusDescriptor     `json:"statusDescriptors,omitempty"`
	SpecDescriptors   []SpecDescriptor       `json:"specDescriptors,omitempty"`
	ActionDescriptor  []ActionDescriptor     `json:"actionDescriptors,omitempty"`
}

APIServiceDescription provides details to OLM about apis provided via aggregation +k8s:openapi-gen=true

func (*APIServiceDescription) DeepCopy

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

func (*APIServiceDescription) DeepCopyInto

func (in *APIServiceDescription) DeepCopyInto(out *APIServiceDescription)

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

func (APIServiceDescription) GetName

func (d APIServiceDescription) GetName() string

GetName returns the name of an APIService as derived from its group and version.

type ActionDescriptor

type ActionDescriptor struct {
	Path         string          `json:"path"`
	DisplayName  string          `json:"displayName,omitempty"`
	Description  string          `json:"description,omitempty"`
	XDescriptors []string        `json:"x-descriptors,omitempty"`
	Value        json.RawMessage `json:"value,omitempty"`
}

ActionDescriptor describes a declarative action that can be performed on a custom resource instance +k8s:openapi-gen=true

func (*ActionDescriptor) DeepCopy

func (in *ActionDescriptor) DeepCopy() *ActionDescriptor

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

func (*ActionDescriptor) DeepCopyInto

func (in *ActionDescriptor) DeepCopyInto(out *ActionDescriptor)

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

type AppLink struct {
	Name string `json:"name,omitempty"`
	URL  string `json:"url,omitempty"`
}

+k8s:openapi-gen=true

func (*AppLink) DeepCopy

func (in *AppLink) DeepCopy() *AppLink

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

func (*AppLink) DeepCopyInto

func (in *AppLink) DeepCopyInto(out *AppLink)

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

type Approval

type Approval string

Approval is the user approval policy for an InstallPlan. It must be one of "Automatic" or "Manual".

const (
	ApprovalAutomatic Approval = "Automatic"
	ApprovalManual    Approval = "Manual"
)

type BundleLookup

type BundleLookup struct {
	// Path refers to the location of a bundle to pull.
	// It's typically an image reference.
	Path string `json:"path"`
	// Identifier is the catalog-unique name of the operator (the name of the CSV for bundles that contain CSVs)
	Identifier string `json:"identifier"`
	// Replaces is the name of the bundle to replace with the one found at Path.
	Replaces string `json:"replaces"`
	// CatalogSourceRef is a reference to the CatalogSource the bundle path was resolved from.
	CatalogSourceRef *corev1.ObjectReference `json:"catalogSourceRef"`
	// Conditions represents the overall state of a BundleLookup.
	// +optional
	Conditions []BundleLookupCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
	// The effective properties of the unpacked bundle.
	// +optional
	Properties string `json:"properties,omitempty"`
}

BundleLookup is a request to pull and unpackage the content of a bundle to the cluster.

func (*BundleLookup) DeepCopy

func (in *BundleLookup) DeepCopy() *BundleLookup

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

func (*BundleLookup) DeepCopyInto

func (in *BundleLookup) DeepCopyInto(out *BundleLookup)

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

func (BundleLookup) GetCondition

func (b BundleLookup) GetCondition(conditionType BundleLookupConditionType) BundleLookupCondition

GetCondition returns the BundleLookupCondition of the given type if it exists in the BundleLookup's Conditions. Returns a condition of the given type with a ConditionStatus of "Unknown" if not found.

func (*BundleLookup) RemoveCondition

func (b *BundleLookup) RemoveCondition(conditionType BundleLookupConditionType)

RemoveCondition removes the BundleLookupCondition of the given type from the BundleLookup's Conditions if it exists.

func (*BundleLookup) SetCondition

SetCondition replaces the existing BundleLookupCondition of the same type, or adds it if it was not found.

type BundleLookupCondition

type BundleLookupCondition struct {
	// Type of condition.
	Type BundleLookupConditionType `json:"type"`
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// The reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// A human readable message indicating details about the transition.
	// +optional
	Message string `json:"message,omitempty"`
	// Last time the condition was probed.
	// +optional
	LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"`
	// Last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"`
}

func (*BundleLookupCondition) DeepCopy

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

func (*BundleLookupCondition) DeepCopyInto

func (in *BundleLookupCondition) DeepCopyInto(out *BundleLookupCondition)

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

type BundleLookupConditionType

type BundleLookupConditionType string

BundleLookupConditionType is a category of the overall state of a BundleLookup.

const (
	// BundleLookupPending describes BundleLookups that are not complete.
	BundleLookupPending BundleLookupConditionType = "BundleLookupPending"

	// BundleLookupFailed describes conditions types for when BundleLookups fail
	BundleLookupFailed BundleLookupConditionType = "BundleLookupFailed"
)

type CRDDescription

type CRDDescription struct {
	Name              string                 `json:"name"`
	Version           string                 `json:"version"`
	Kind              string                 `json:"kind"`
	DisplayName       string                 `json:"displayName,omitempty"`
	Description       string                 `json:"description,omitempty"`
	Resources         []APIResourceReference `json:"resources,omitempty"`
	StatusDescriptors []StatusDescriptor     `json:"statusDescriptors,omitempty"`
	SpecDescriptors   []SpecDescriptor       `json:"specDescriptors,omitempty"`
	ActionDescriptor  []ActionDescriptor     `json:"actionDescriptors,omitempty"`
}

CRDDescription provides details to OLM about the CRDs +k8s:openapi-gen=true

func (*CRDDescription) DeepCopy

func (in *CRDDescription) DeepCopy() *CRDDescription

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

func (*CRDDescription) DeepCopyInto

func (in *CRDDescription) DeepCopyInto(out *CRDDescription)

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

type CatalogSource

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

	Spec CatalogSourceSpec `json:"spec"`
	// +optional
	Status CatalogSourceStatus `json:"status"`
}

CatalogSource is a repository of CSVs, CRDs, and operator packages.

func (*CatalogSource) Address

func (c *CatalogSource) Address() string

func (*CatalogSource) DeepCopy

func (in *CatalogSource) DeepCopy() *CatalogSource

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

func (*CatalogSource) DeepCopyInto

func (in *CatalogSource) DeepCopyInto(out *CatalogSource)

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

func (*CatalogSource) DeepCopyObject

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

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

func (*CatalogSource) Poll

func (c *CatalogSource) Poll() bool

Poll determines whether the polling feature is enabled on the particular catalog source

func (*CatalogSource) SetError

func (c *CatalogSource) SetError(reason ConditionReason, err error)

func (*CatalogSource) SetLastUpdateTime

func (c *CatalogSource) SetLastUpdateTime()

func (*CatalogSource) Update

func (c *CatalogSource) Update() bool

Check if it is time to update based on polling setting

type CatalogSourceList

type CatalogSourceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []CatalogSource `json:"items"`
}

CatalogSourceList is a repository of CSVs, CRDs, and operator packages.

func (*CatalogSourceList) DeepCopy

func (in *CatalogSourceList) DeepCopy() *CatalogSourceList

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

func (*CatalogSourceList) DeepCopyInto

func (in *CatalogSourceList) DeepCopyInto(out *CatalogSourceList)

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

func (*CatalogSourceList) DeepCopyObject

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

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

type CatalogSourceSpec

type CatalogSourceSpec struct {
	// SourceType is the type of source
	SourceType SourceType `json:"sourceType"`

	// Priority field assigns a weight to the catalog source to prioritize them so that it can be consumed by the dependency resolver.
	// Usage:
	// Higher weight indicates that this catalog source is preferred over lower weighted catalog sources during dependency resolution.
	// The range of the priority value can go from positive to negative in the range of int32.
	// The default value to a catalog source with unassigned priority would be 0.
	// The catalog source with the same priority values will be ranked lexicographically based on its name.
	// +optional
	Priority int `json:"priority,omitempty"`

	// ConfigMap is the name of the ConfigMap to be used to back a configmap-server registry.
	// Only used when SourceType = SourceTypeConfigmap or SourceTypeInternal.
	// +optional
	ConfigMap string `json:"configMap,omitempty"`

	// Address is a host that OLM can use to connect to a pre-existing registry.
	// Format: <registry-host or ip>:<port>
	// Only used when SourceType = SourceTypeGrpc.
	// Ignored when the Image field is set.
	// +optional
	Address string `json:"address,omitempty"`

	// Image is an operator-registry container image to instantiate a registry-server with.
	// Only used when SourceType = SourceTypeGrpc.
	// If present, the address field is ignored.
	// +optional
	Image string `json:"image,omitempty"`

	// GrpcPodConfig exposes different overrides for the pod spec of the CatalogSource Pod.
	// Only used when SourceType = SourceTypeGrpc and Image is set.
	// +optional
	GrpcPodConfig *GrpcPodConfig `json:"grpcPodConfig,omitempty"`

	// UpdateStrategy defines how updated catalog source images can be discovered
	// Consists of an interval that defines polling duration and an embedded strategy type
	// +optional
	UpdateStrategy *UpdateStrategy `json:"updateStrategy,omitempty"`

	// Secrets represent set of secrets that can be used to access the contents of the catalog.
	// It is best to keep this list small, since each will need to be tried for every catalog entry.
	// +optional
	Secrets []string `json:"secrets,omitempty"`

	// Metadata
	DisplayName string `json:"displayName,omitempty"`
	Description string `json:"description,omitempty"`
	Publisher   string `json:"publisher,omitempty"`
	Icon        Icon   `json:"icon,omitempty"`
}

func (*CatalogSourceSpec) DeepCopy

func (in *CatalogSourceSpec) DeepCopy() *CatalogSourceSpec

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

func (*CatalogSourceSpec) DeepCopyInto

func (in *CatalogSourceSpec) DeepCopyInto(out *CatalogSourceSpec)

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

type CatalogSourceStatus

type CatalogSourceStatus struct {
	// A human readable message indicating details about why the CatalogSource is in this condition.
	// +optional
	Message string `json:"message,omitempty"`
	// Reason is the reason the CatalogSource was transitioned to its current state.
	// +optional
	Reason ConditionReason `json:"reason,omitempty"`

	// The last time the CatalogSource image registry has been polled to ensure the image is up-to-date
	LatestImageRegistryPoll *metav1.Time `json:"latestImageRegistryPoll,omitempty"`

	ConfigMapResource     *ConfigMapResourceReference `json:"configMapReference,omitempty"`
	RegistryServiceStatus *RegistryServiceStatus      `json:"registryService,omitempty"`
	GRPCConnectionState   *GRPCConnectionState        `json:"connectionState,omitempty"`

	// Represents the state of a CatalogSource. Note that Message and Reason represent the original
	// status information, which may be migrated to be conditions based in the future. Any new features
	// introduced will use conditions.
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}

func (*CatalogSourceStatus) DeepCopy

func (in *CatalogSourceStatus) DeepCopy() *CatalogSourceStatus

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

func (*CatalogSourceStatus) DeepCopyInto

func (in *CatalogSourceStatus) DeepCopyInto(out *CatalogSourceStatus)

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

type CleanupSpec added in v0.7.0

type CleanupSpec struct {
	Enabled bool `json:"enabled"`
}

+k8s:openapi-gen=true

func (*CleanupSpec) DeepCopy added in v0.7.1

func (in *CleanupSpec) DeepCopy() *CleanupSpec

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

func (*CleanupSpec) DeepCopyInto added in v0.7.1

func (in *CleanupSpec) DeepCopyInto(out *CleanupSpec)

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

type CleanupStatus added in v0.7.0

type CleanupStatus struct {
	// PendingDeletion is the list of custom resource objects that are pending deletion and blocked on finalizers.
	// This indicates the progress of cleanup that is blocking CSV deletion or operator uninstall.
	// +optional
	PendingDeletion []ResourceList `json:"pendingDeletion,omitempty"`
}

CleanupStatus represents information about the status of cleanup while a CSV is pending deletion +k8s:openapi-gen=true

func (*CleanupStatus) DeepCopy added in v0.7.1

func (in *CleanupStatus) DeepCopy() *CleanupStatus

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

func (*CleanupStatus) DeepCopyInto added in v0.7.1

func (in *CleanupStatus) DeepCopyInto(out *CleanupStatus)

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

type ClusterServiceVersion

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

	Spec ClusterServiceVersionSpec `json:"spec"`
	// +optional
	Status ClusterServiceVersionStatus `json:"status"`
}

ClusterServiceVersion is a Custom Resource of type `ClusterServiceVersionSpec`.

func (*ClusterServiceVersion) DeepCopy

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

func (*ClusterServiceVersion) DeepCopyInto

func (in *ClusterServiceVersion) DeepCopyInto(out *ClusterServiceVersion)

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

func (*ClusterServiceVersion) DeepCopyObject

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

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

func (ClusterServiceVersion) GetAllAPIServiceDescriptions

func (csv ClusterServiceVersion) GetAllAPIServiceDescriptions() []APIServiceDescription

GetAllAPIServiceDescriptions returns a deduplicated set of APIServiceDescriptions that is the union of the owned and required APIServiceDescriptions.

Descriptions with the same name prefer the value in Owned. Descriptions are returned in alphabetical order.

func (ClusterServiceVersion) GetAllCRDDescriptions

func (csv ClusterServiceVersion) GetAllCRDDescriptions() []CRDDescription

GetAllCRDDescriptions returns a deduplicated set of CRDDescriptions that is the union of the owned and required CRDDescriptions.

Descriptions with the same name prefer the value in Owned. Descriptions are returned in alphabetical order.

func (ClusterServiceVersion) GetOwnedAPIServiceDescriptions

func (csv ClusterServiceVersion) GetOwnedAPIServiceDescriptions() []APIServiceDescription

GetOwnedAPIServiceDescriptions returns a deduplicated set of owned APIServiceDescriptions

Descriptions are returned in alphabetical order.

func (ClusterServiceVersion) GetRequiredAPIServiceDescriptions

func (csv ClusterServiceVersion) GetRequiredAPIServiceDescriptions() []APIServiceDescription

GetRequiredAPIServiceDescriptions returns a deduplicated set of required APIServiceDescriptions with the intersection of required and owned removed Equivalent to the set subtraction required - owned

Descriptions are returned in alphabetical order.

func (*ClusterServiceVersion) HasCAResources

func (c *ClusterServiceVersion) HasCAResources() bool

HasCaResources returns true if the CSV has owned APIServices or Webhooks.

func (*ClusterServiceVersion) IsCopied

func (c *ClusterServiceVersion) IsCopied() bool

IsCopied returns true if the CSV has been copied and false otherwise.

func (*ClusterServiceVersion) IsObsolete

func (c *ClusterServiceVersion) IsObsolete() bool

IsObsolete returns if this CSV is being replaced or is marked for deletion

func (*ClusterServiceVersion) IsSafeToUpdateOperatorGroupAnnotations

func (c *ClusterServiceVersion) IsSafeToUpdateOperatorGroupAnnotations() bool

func (*ClusterServiceVersion) IsUncopiable

func (c *ClusterServiceVersion) IsUncopiable() bool

func (ClusterServiceVersion) OwnsAPIService

func (csv ClusterServiceVersion) OwnsAPIService(name string) bool

OwnsAPIService determines whether the current CSV owns a particular APIService.

func (ClusterServiceVersion) OwnsCRD

func (csv ClusterServiceVersion) OwnsCRD(name string) bool

OwnsCRD determines whether the current CSV owns a particular CRD.

func (*ClusterServiceVersion) SetPhase

func (c *ClusterServiceVersion) SetPhase(phase ClusterServiceVersionPhase, reason ConditionReason, message string, now *metav1.Time)

SetPhase sets the current phase and adds a condition if necessary

func (*ClusterServiceVersion) SetPhaseWithEvent

func (c *ClusterServiceVersion) SetPhaseWithEvent(phase ClusterServiceVersionPhase, reason ConditionReason, message string, now *metav1.Time, recorder record.EventRecorder)

SetPhaseWithEvent generates a Kubernetes event with details about the phase change and sets the current phase

func (*ClusterServiceVersion) SetPhaseWithEventIfChanged

func (c *ClusterServiceVersion) SetPhaseWithEventIfChanged(phase ClusterServiceVersionPhase, reason ConditionReason, message string, now *metav1.Time, recorder record.EventRecorder)

SetPhaseWithEventIfChanged emits a Kubernetes event with details of a phase change and sets the current phase if phase, reason, or message would changed

func (*ClusterServiceVersion) SetRequirementStatus

func (c *ClusterServiceVersion) SetRequirementStatus(statuses []RequirementStatus)

SetRequirementStatus adds the status of all requirements to the CSV status

func (*ClusterServiceVersion) TrimConditionsIfLimitExceeded

func (c *ClusterServiceVersion) TrimConditionsIfLimitExceeded()

type ClusterServiceVersionCondition

type ClusterServiceVersionCondition struct {
	// Condition of the ClusterServiceVersion
	Phase ClusterServiceVersionPhase `json:"phase,omitempty"`
	// A human readable message indicating details about why the ClusterServiceVersion is in this condition.
	// +optional
	Message string `json:"message,omitempty"`
	// A brief CamelCase message indicating details about why the ClusterServiceVersion is in this state.
	// e.g. 'RequirementsNotMet'
	// +optional
	Reason ConditionReason `json:"reason,omitempty"`
	// Last time we updated the status
	// +optional
	LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"`
	// Last time the status transitioned from one status to another.
	// +optional
	LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"`
}

Conditions appear in the status as a record of state transitions on the ClusterServiceVersion +k8s:openapi-gen=true

func (*ClusterServiceVersionCondition) DeepCopy

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

func (*ClusterServiceVersionCondition) DeepCopyInto

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

type ClusterServiceVersionList

type ClusterServiceVersionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []ClusterServiceVersion `json:"items"`
}

ClusterServiceVersionList represents a list of ClusterServiceVersions.

func (*ClusterServiceVersionList) DeepCopy

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

func (*ClusterServiceVersionList) DeepCopyInto

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

func (*ClusterServiceVersionList) DeepCopyObject

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

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

type ClusterServiceVersionPhase

type ClusterServiceVersionPhase string

ClusterServiceVersionPhase is a label for the condition of a ClusterServiceVersion at the current time.

const (
	CSVPhaseNone = ""
	// CSVPhasePending means the csv has been accepted by the system, but the install strategy has not been attempted.
	// This is likely because there are unmet requirements.
	CSVPhasePending ClusterServiceVersionPhase = "Pending"
	// CSVPhaseInstallReady means that the requirements are met but the install strategy has not been run.
	CSVPhaseInstallReady ClusterServiceVersionPhase = "InstallReady"
	// CSVPhaseInstalling means that the install strategy has been initiated but not completed.
	CSVPhaseInstalling ClusterServiceVersionPhase = "Installing"
	// CSVPhaseSucceeded means that the resources in the CSV were created successfully.
	CSVPhaseSucceeded ClusterServiceVersionPhase = "Succeeded"
	// CSVPhaseFailed means that the install strategy could not be successfully completed.
	CSVPhaseFailed ClusterServiceVersionPhase = "Failed"
	// CSVPhaseUnknown means that for some reason the state of the csv could not be obtained.
	CSVPhaseUnknown ClusterServiceVersionPhase = "Unknown"
	// CSVPhaseReplacing means that a newer CSV has been created and the csv's resources will be transitioned to a new owner.
	CSVPhaseReplacing ClusterServiceVersionPhase = "Replacing"
	// CSVPhaseDeleting means that a CSV has been replaced by a new one and will be checked for safety before being deleted
	CSVPhaseDeleting ClusterServiceVersionPhase = "Deleting"
	// CSVPhaseAny matches all other phases in CSV queries
	CSVPhaseAny ClusterServiceVersionPhase = ""
)

These are the valid phases of ClusterServiceVersion

type ClusterServiceVersionSpec

type ClusterServiceVersionSpec struct {
	InstallStrategy           NamedInstallStrategy      `json:"install"`
	Version                   version.OperatorVersion   `json:"version,omitempty"`
	Maturity                  string                    `json:"maturity,omitempty"`
	CustomResourceDefinitions CustomResourceDefinitions `json:"customresourcedefinitions,omitempty"`
	APIServiceDefinitions     APIServiceDefinitions     `json:"apiservicedefinitions,omitempty"`
	WebhookDefinitions        []WebhookDescription      `json:"webhookdefinitions,omitempty"`
	NativeAPIs                []metav1.GroupVersionKind `json:"nativeAPIs,omitempty"`
	MinKubeVersion            string                    `json:"minKubeVersion,omitempty"`

	// The name of the operator in display format.
	DisplayName string `json:"displayName"`

	// Description of the operator. Can include the features, limitations or use-cases of the
	// operator.
	// +optional
	Description string `json:"description,omitempty"`

	// A list of keywords describing the operator.
	// +optional
	Keywords []string `json:"keywords,omitempty"`

	// A list of organizational entities maintaining the operator.
	// +optional
	Maintainers []Maintainer `json:"maintainers,omitempty"`

	// The publishing entity behind the operator.
	// +optional
	Provider AppLink `json:"provider,omitempty"`

	// A list of links related to the operator.
	// +optional
	Links []AppLink `json:"links,omitempty"`

	// The icon for this operator.
	// +optional
	Icon []Icon `json:"icon,omitempty"`

	// InstallModes specify supported installation types
	// +optional
	InstallModes []InstallMode `json:"installModes,omitempty"`

	// The name of a CSV this one replaces. Should match the `metadata.Name` field of the old CSV.
	// +optional
	Replaces string `json:"replaces,omitempty"`

	// Map of string keys and values that can be used to organize and categorize
	// (scope and select) objects.
	// +optional
	Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,11,rep,name=labels"`

	// Annotations is an unstructured key value map stored with a resource that may be
	// set by external tools to store and retrieve arbitrary metadata.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,12,rep,name=annotations"`

	// Label selector for related resources.
	// +optional
	Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,2,opt,name=selector"`

	// Cleanup specifies the cleanup behaviour when the CSV gets deleted
	// +optional
	Cleanup CleanupSpec `json:"cleanup,omitempty"`

	// The name(s) of one or more CSV(s) that should be skipped in the upgrade graph.
	// Should match the `metadata.Name` field of the CSV that should be skipped.
	// This field is only used during catalog creation and plays no part in cluster runtime.
	// +optional
	Skips []string `json:"skips,omitempty"`

	// List any related images, or other container images that your Operator might require to perform their functions.
	// This list should also include operand images as well. All image references should be specified by
	// digest (SHA) and not by tag. This field is only used during catalog creation and plays no part in cluster runtime.
	// +optional
	RelatedImages []RelatedImage `json:"relatedImages,omitempty"`
}

ClusterServiceVersionSpec declarations tell OLM how to install an operator that can manage apps for a given version. +k8s:openapi-gen=true

func (*ClusterServiceVersionSpec) DeepCopy

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

func (*ClusterServiceVersionSpec) DeepCopyInto

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

type ClusterServiceVersionStatus

type ClusterServiceVersionStatus struct {
	// Current condition of the ClusterServiceVersion
	Phase ClusterServiceVersionPhase `json:"phase,omitempty"`
	// A human readable message indicating details about why the ClusterServiceVersion is in this condition.
	// +optional
	Message string `json:"message,omitempty"`
	// A brief CamelCase message indicating details about why the ClusterServiceVersion is in this state.
	// e.g. 'RequirementsNotMet'
	// +optional
	Reason ConditionReason `json:"reason,omitempty"`
	// Last time we updated the status
	// +optional
	LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"`
	// Last time the status transitioned from one status to another.
	// +optional
	LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"`
	// List of conditions, a history of state transitions
	Conditions []ClusterServiceVersionCondition `json:"conditions,omitempty"`
	// The status of each requirement for this CSV
	RequirementStatus []RequirementStatus `json:"requirementStatus,omitempty"`
	// Last time the owned APIService certs were updated
	// +optional
	CertsLastUpdated *metav1.Time `json:"certsLastUpdated,omitempty"`
	// Time the owned APIService certs will rotate next
	// +optional
	CertsRotateAt *metav1.Time `json:"certsRotateAt,omitempty"`
	// CleanupStatus represents information about the status of cleanup while a CSV is pending deletion
	// +optional
	Cleanup CleanupStatus `json:"cleanup,omitempty"`
}

ClusterServiceVersionStatus represents information about the status of a CSV. Status may trail the actual state of a system. +k8s:openapi-gen=true

func (*ClusterServiceVersionStatus) DeepCopy

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

func (*ClusterServiceVersionStatus) DeepCopyInto

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

type ConditionReason

type ConditionReason string

ConditionReason is a camelcased reason for the state transition

const (
	// CatalogSourceSpecInvalidError denotes when fields on the spec of the CatalogSource are not valid.
	CatalogSourceSpecInvalidError ConditionReason = "SpecInvalidError"
	// CatalogSourceConfigMapError denotes when there is an issue extracting manifests from the specified ConfigMap.
	CatalogSourceConfigMapError ConditionReason = "ConfigMapError"
	// CatalogSourceRegistryServerError denotes when there is an issue querying the specified registry server.
	CatalogSourceRegistryServerError ConditionReason = "RegistryServerError"
	// CatalogSourceIntervalInvalidError denotes if the registry polling interval is invalid.
	CatalogSourceIntervalInvalidError ConditionReason = "InvalidIntervalError"
)
const (
	CSVReasonRequirementsUnknown                         ConditionReason = "RequirementsUnknown"
	CSVReasonRequirementsNotMet                          ConditionReason = "RequirementsNotMet"
	CSVReasonRequirementsMet                             ConditionReason = "AllRequirementsMet"
	CSVReasonOwnerConflict                               ConditionReason = "OwnerConflict"
	CSVReasonComponentFailed                             ConditionReason = "InstallComponentFailed"
	CSVReasonComponentFailedNoRetry                      ConditionReason = "InstallComponentFailedNoRetry"
	CSVReasonInvalidStrategy                             ConditionReason = "InvalidInstallStrategy"
	CSVReasonWaiting                                     ConditionReason = "InstallWaiting"
	CSVReasonInstallSuccessful                           ConditionReason = "InstallSucceeded"
	CSVReasonInstallCheckFailed                          ConditionReason = "InstallCheckFailed"
	CSVReasonComponentUnhealthy                          ConditionReason = "ComponentUnhealthy"
	CSVReasonBeingReplaced                               ConditionReason = "BeingReplaced"
	CSVReasonReplaced                                    ConditionReason = "Replaced"
	CSVReasonNeedsReinstall                              ConditionReason = "NeedsReinstall"
	CSVReasonNeedsCertRotation                           ConditionReason = "NeedsCertRotation"
	CSVReasonAPIServiceResourceIssue                     ConditionReason = "APIServiceResourceIssue"
	CSVReasonAPIServiceResourcesNeedReinstall            ConditionReason = "APIServiceResourcesNeedReinstall"
	CSVReasonAPIServiceInstallFailed                     ConditionReason = "APIServiceInstallFailed"
	CSVReasonCopied                                      ConditionReason = "Copied"
	CSVReasonInvalidInstallModes                         ConditionReason = "InvalidInstallModes"
	CSVReasonNoTargetNamespaces                          ConditionReason = "NoTargetNamespaces"
	CSVReasonUnsupportedOperatorGroup                    ConditionReason = "UnsupportedOperatorGroup"
	CSVReasonNoOperatorGroup                             ConditionReason = "NoOperatorGroup"
	CSVReasonTooManyOperatorGroups                       ConditionReason = "TooManyOperatorGroups"
	CSVReasonInterOperatorGroupOwnerConflict             ConditionReason = "InterOperatorGroupOwnerConflict"
	CSVReasonCannotModifyStaticOperatorGroupProvidedAPIs ConditionReason = "CannotModifyStaticOperatorGroupProvidedAPIs"
	CSVReasonDetectedClusterChange                       ConditionReason = "DetectedClusterChange"
	CSVReasonInvalidWebhookDescription                   ConditionReason = "InvalidWebhookDescription"
	CSVReasonOperatorConditionNotUpgradeable             ConditionReason = "OperatorConditionNotUpgradeable"
	CSVReasonWaitingForCleanupToComplete                 ConditionReason = "WaitingOnCleanup"
)
const (
	SubscriptionReasonInvalidCatalog   ConditionReason = "InvalidCatalog"
	SubscriptionReasonUpgradeSucceeded ConditionReason = "UpgradeSucceeded"
)

type ConfigMapResourceReference

type ConfigMapResourceReference struct {
	Name            string      `json:"name"`
	Namespace       string      `json:"namespace"`
	UID             types.UID   `json:"uid,omitempty"`
	ResourceVersion string      `json:"resourceVersion,omitempty"`
	LastUpdateTime  metav1.Time `json:"lastUpdateTime,omitempty"`
}

func (*ConfigMapResourceReference) DeepCopy

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

func (*ConfigMapResourceReference) DeepCopyInto

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

func (*ConfigMapResourceReference) IsAMatch

func (r *ConfigMapResourceReference) IsAMatch(object *metav1.ObjectMeta) bool

type CustomResourceDefinitions

type CustomResourceDefinitions struct {
	Owned    []CRDDescription `json:"owned,omitempty"`
	Required []CRDDescription `json:"required,omitempty"`
}

CustomResourceDefinitions declares all of the CRDs managed or required by an operator being ran by ClusterServiceVersion.

If the CRD is present in the Owned list, it is implicitly required. +k8s:openapi-gen=true

func (*CustomResourceDefinitions) DeepCopy

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

func (*CustomResourceDefinitions) DeepCopyInto

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

type DependentStatus

type DependentStatus struct {
	Group   string       `json:"group"`
	Version string       `json:"version"`
	Kind    string       `json:"kind"`
	Status  StatusReason `json:"status"`
	UUID    string       `json:"uuid,omitempty"`
	Message string       `json:"message,omitempty"`
}

DependentStatus is the status for a dependent requirement (to prevent infinite nesting) +k8s:openapi-gen=true

func (*DependentStatus) DeepCopy

func (in *DependentStatus) DeepCopy() *DependentStatus

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

func (*DependentStatus) DeepCopyInto

func (in *DependentStatus) DeepCopyInto(out *DependentStatus)

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

type ExtractContentConfig added in v0.18.0

type ExtractContentConfig struct {
	// CacheDir is the directory storing the pre-calculated API cache.
	CacheDir string `json:"cacheDir"`
	// CatalogDir is the directory storing the file-based catalog contents.
	CatalogDir string `json:"catalogDir"`
}

ExtractContentConfig configures context extraction from a file-based catalog index image.

func (*ExtractContentConfig) DeepCopy added in v0.18.0

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

func (*ExtractContentConfig) DeepCopyInto added in v0.18.0

func (in *ExtractContentConfig) DeepCopyInto(out *ExtractContentConfig)

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

type GRPCConnectionState

type GRPCConnectionState struct {
	Address           string      `json:"address,omitempty"`
	LastObservedState string      `json:"lastObservedState"`
	LastConnectTime   metav1.Time `json:"lastConnect,omitempty"`
}

func (*GRPCConnectionState) DeepCopy

func (in *GRPCConnectionState) DeepCopy() *GRPCConnectionState

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

func (*GRPCConnectionState) DeepCopyInto

func (in *GRPCConnectionState) DeepCopyInto(out *GRPCConnectionState)

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

type GrpcPodConfig added in v0.11.0

type GrpcPodConfig struct {
	// NodeSelector is a selector which must be true for the pod to fit on a node.
	// Selector which must match a node's labels for the pod to be scheduled on that node.
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Tolerations are the catalog source's pod's tolerations.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Affinity is the catalog source's pod's affinity.
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// If specified, indicates the pod's priority.
	// If not specified, the pod priority will be default or zero if there is no
	// default.
	// +optional
	PriorityClassName *string `json:"priorityClassName,omitempty"`

	// SecurityContextConfig can be one of `legacy` or `restricted`. The CatalogSource's pod is either injected with the
	// right pod.spec.securityContext and pod.spec.container[*].securityContext values to allow the pod to run in Pod
	// Security Admission (PSA) `restricted` mode, or doesn't set these values at all, in which case the pod can only be
	// run in PSA `baseline` or `privileged` namespaces. Currently if the SecurityContextConfig is unspecified, the default
	// value of `legacy` is used. Specifying a value other than `legacy` or `restricted` result in a validation error.
	// When using older catalog images, which could not be run in `restricted` mode, the SecurityContextConfig should be
	// set to `legacy`.
	//
	// In a future version will the default will be set to `restricted`, catalog maintainers should rebuild their catalogs
	// with a version of opm that supports running catalogSource pods in `restricted` mode to prepare for these changes.
	//
	// More information about PSA can be found here: https://kubernetes.io/docs/concepts/security/pod-security-admission/'
	// +optional
	// +kubebuilder:validation:Enum=legacy;restricted
	// +kubebuilder:default:=legacy
	SecurityContextConfig SecurityConfig `json:"securityContextConfig,omitempty"`

	// MemoryTarget configures the $GOMEMLIMIT value for the gRPC catalog Pod. This is a soft memory limit for the server,
	// which the runtime will attempt to meet but makes no guarantees that it will do so. If this value is set, the Pod
	// will have the following modifications made to the container running the server:
	// - the $GOMEMLIMIT environment variable will be set to this value in bytes
	// - the memory request will be set to this value
	//
	// This field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if
	// a catalog being served is very large and needs more than the default allocation. If your index image has a file-
	// system cache, determine a good approximation for this value by doubling the size of the package cache at
	// /tmp/cache/cache/packages.json in the index image.
	//
	// This field is best-effort; if unset, no default will be used and no Pod memory limit or $GOMEMLIMIT value will be set.
	// +optional
	MemoryTarget *resource.Quantity `json:"memoryTarget,omitempty"`

	// ExtractContent configures the gRPC catalog Pod to extract catalog metadata from the provided index image and
	// use a well-known version of the `opm` server to expose it. The catalog index image that this CatalogSource is
	// configured to use *must* be using the file-based catalogs in order to utilize this feature.
	// +optional
	ExtractContent *ExtractContentConfig `json:"extractContent,omitempty"`
}

GrpcPodConfig contains configuration specified for a catalog source

func (*GrpcPodConfig) DeepCopy added in v0.11.0

func (in *GrpcPodConfig) DeepCopy() *GrpcPodConfig

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

func (*GrpcPodConfig) DeepCopyInto added in v0.11.0

func (in *GrpcPodConfig) DeepCopyInto(out *GrpcPodConfig)

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

type Icon

type Icon struct {
	Data      string `json:"base64data"`
	MediaType string `json:"mediatype"`
}

+k8s:openapi-gen=true

func (*Icon) DeepCopy

func (in *Icon) DeepCopy() *Icon

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

func (*Icon) DeepCopyInto

func (in *Icon) DeepCopyInto(out *Icon)

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

type InstallMode

type InstallMode struct {
	Type      InstallModeType `json:"type"`
	Supported bool            `json:"supported"`
}

InstallMode associates an InstallModeType with a flag representing if the CSV supports it +k8s:openapi-gen=true

func (*InstallMode) DeepCopy

func (in *InstallMode) DeepCopy() *InstallMode

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

func (*InstallMode) DeepCopyInto

func (in *InstallMode) DeepCopyInto(out *InstallMode)

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

type InstallModeSet

type InstallModeSet map[InstallModeType]bool

InstallModeSet is a mapping of unique InstallModeTypes to whether they are supported.

func NewInstallModeSet

func NewInstallModeSet(modes []InstallMode) (InstallModeSet, error)

NewInstallModeSet returns an InstallModeSet instantiated from the given list of InstallModes. If the given list is not a set, an error is returned.

func (InstallModeSet) DeepCopy

func (in InstallModeSet) DeepCopy() InstallModeSet

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

func (InstallModeSet) DeepCopyInto

func (in InstallModeSet) DeepCopyInto(out *InstallModeSet)

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

func (InstallModeSet) Supports

func (set InstallModeSet) Supports(operatorNamespace string, namespaces []string) error

Supports returns an error if the InstallModeSet does not support configuration for the given operatorNamespace and list of target namespaces.

type InstallModeType

type InstallModeType string

InstallModeType is a supported type of install mode for CSV installation

const (
	// InstallModeTypeOwnNamespace indicates that the operator can be a member of an `OperatorGroup` that selects its own namespace.
	InstallModeTypeOwnNamespace InstallModeType = "OwnNamespace"
	// InstallModeTypeSingleNamespace indicates that the operator can be a member of an `OperatorGroup` that selects one namespace.
	InstallModeTypeSingleNamespace InstallModeType = "SingleNamespace"
	// InstallModeTypeMultiNamespace indicates that the operator can be a member of an `OperatorGroup` that selects more than one namespace.
	InstallModeTypeMultiNamespace InstallModeType = "MultiNamespace"
	// InstallModeTypeAllNamespaces indicates that the operator can be a member of an `OperatorGroup` that selects all namespaces (target namespace set is the empty string "").
	InstallModeTypeAllNamespaces InstallModeType = "AllNamespaces"
)

type InstallPlan

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

	Spec InstallPlanSpec `json:"spec"`
	// +optional
	Status InstallPlanStatus `json:"status"`
}

InstallPlan defines the installation of a set of operators.

func (*InstallPlan) DeepCopy

func (in *InstallPlan) DeepCopy() *InstallPlan

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

func (*InstallPlan) DeepCopyInto

func (in *InstallPlan) DeepCopyInto(out *InstallPlan)

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

func (*InstallPlan) DeepCopyObject

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

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

func (*InstallPlan) EnsureCatalogSource

func (p *InstallPlan) EnsureCatalogSource(sourceName string)

EnsureCatalogSource ensures that a CatalogSource is present in the Status block of an InstallPlan.

type InstallPlanCondition

type InstallPlanCondition struct {
	Type               InstallPlanConditionType   `json:"type,omitempty"`
	Status             corev1.ConditionStatus     `json:"status,omitempty"` // True, False, or Unknown
	LastUpdateTime     *metav1.Time               `json:"lastUpdateTime,omitempty"`
	LastTransitionTime *metav1.Time               `json:"lastTransitionTime,omitempty"`
	Reason             InstallPlanConditionReason `json:"reason,omitempty"`
	Message            string                     `json:"message,omitempty"`
}

InstallPlanCondition represents the overall status of the execution of an InstallPlan.

func (*InstallPlanCondition) DeepCopy

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

func (*InstallPlanCondition) DeepCopyInto

func (in *InstallPlanCondition) DeepCopyInto(out *InstallPlanCondition)

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

type InstallPlanConditionReason

type InstallPlanConditionReason string

ConditionReason is a camelcased reason for the state transition.

const (
	InstallPlanReasonPlanUnknown        InstallPlanConditionReason = "PlanUnknown"
	InstallPlanReasonInstallCheckFailed InstallPlanConditionReason = "InstallCheckFailed"
	InstallPlanReasonDependencyConflict InstallPlanConditionReason = "DependenciesConflict"
	InstallPlanReasonComponentFailed    InstallPlanConditionReason = "InstallComponentFailed"
)

type InstallPlanConditionType

type InstallPlanConditionType string

InstallPlanConditionType describes the state of an InstallPlan at a certain point as a whole.

const (
	InstallPlanResolved  InstallPlanConditionType = "Resolved"
	InstallPlanInstalled InstallPlanConditionType = "Installed"
)

type InstallPlanList

type InstallPlanList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []InstallPlan `json:"items"`
}

InstallPlanList is a list of InstallPlan resources.

func (*InstallPlanList) DeepCopy

func (in *InstallPlanList) DeepCopy() *InstallPlanList

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

func (*InstallPlanList) DeepCopyInto

func (in *InstallPlanList) DeepCopyInto(out *InstallPlanList)

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

func (*InstallPlanList) DeepCopyObject

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

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

type InstallPlanPhase

type InstallPlanPhase string

InstallPlanPhase is the current status of a InstallPlan as a whole.

const (
	InstallPlanPhaseNone             InstallPlanPhase = ""
	InstallPlanPhasePlanning         InstallPlanPhase = "Planning"
	InstallPlanPhaseRequiresApproval InstallPlanPhase = "RequiresApproval"
	InstallPlanPhaseInstalling       InstallPlanPhase = "Installing"
	InstallPlanPhaseComplete         InstallPlanPhase = "Complete"
	InstallPlanPhaseFailed           InstallPlanPhase = "Failed"
)

type InstallPlanReference

type InstallPlanReference struct {
	APIVersion string    `json:"apiVersion"`
	Kind       string    `json:"kind"`
	Name       string    `json:"name"`
	UID        types.UID `json:"uuid"`
}

func NewInstallPlanReference

func NewInstallPlanReference(ref *corev1.ObjectReference) *InstallPlanReference

NewInstallPlanReference returns an InstallPlanReference for the given ObjectReference.

func (*InstallPlanReference) DeepCopy

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

func (*InstallPlanReference) DeepCopyInto

func (in *InstallPlanReference) DeepCopyInto(out *InstallPlanReference)

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

type InstallPlanSpec

type InstallPlanSpec struct {
	CatalogSource              string   `json:"source,omitempty"`
	CatalogSourceNamespace     string   `json:"sourceNamespace,omitempty"`
	ClusterServiceVersionNames []string `json:"clusterServiceVersionNames"`
	Approval                   Approval `json:"approval"`
	Approved                   bool     `json:"approved"`
	Generation                 int      `json:"generation,omitempty"`
}

InstallPlanSpec defines a set of Application resources to be installed

func (*InstallPlanSpec) DeepCopy

func (in *InstallPlanSpec) DeepCopy() *InstallPlanSpec

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

func (*InstallPlanSpec) DeepCopyInto

func (in *InstallPlanSpec) DeepCopyInto(out *InstallPlanSpec)

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

type InstallPlanStatus

type InstallPlanStatus struct {
	Phase          InstallPlanPhase       `json:"phase"`
	Conditions     []InstallPlanCondition `json:"conditions,omitempty"`
	CatalogSources []string               `json:"catalogSources"`
	Plan           []*Step                `json:"plan,omitempty"`
	// BundleLookups is the set of in-progress requests to pull and unpackage bundle content to the cluster.
	// +optional
	BundleLookups []BundleLookup `json:"bundleLookups,omitempty"`
	// AttenuatedServiceAccountRef references the service account that is used
	// to do scoped operator install.
	AttenuatedServiceAccountRef *corev1.ObjectReference `json:"attenuatedServiceAccountRef,omitempty"`

	// StartTime is the time when the controller began applying
	// the resources listed in the plan to the cluster.
	// +optional
	StartTime *metav1.Time `json:"startTime,omitempty"`

	// Message is a human-readable message containing detailed
	// information that may be important to understanding why the
	// plan has its current status.
	// +optional
	Message string `json:"message,omitempty"`
}

InstallPlanStatus represents the information about the status of steps required to complete installation.

Status may trail the actual state of a system.

func (*InstallPlanStatus) DeepCopy

func (in *InstallPlanStatus) DeepCopy() *InstallPlanStatus

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

func (*InstallPlanStatus) DeepCopyInto

func (in *InstallPlanStatus) DeepCopyInto(out *InstallPlanStatus)

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

func (InstallPlanStatus) GetCondition

func (s InstallPlanStatus) GetCondition(conditionType InstallPlanConditionType) InstallPlanCondition

GetCondition returns the InstallPlanCondition of the given type if it exists in the InstallPlanStatus' Conditions. Returns a condition of the given type with a ConditionStatus of "Unknown" if not found.

func (InstallPlanStatus) NeedsRequeue

func (s InstallPlanStatus) NeedsRequeue() bool

func (*InstallPlanStatus) SetCondition

SetCondition adds or updates a condition, using `Type` as merge key.

type Maintainer

type Maintainer struct {
	Name  string `json:"name,omitempty"`
	Email string `json:"email,omitempty"`
}

+k8s:openapi-gen=true

func (*Maintainer) DeepCopy

func (in *Maintainer) DeepCopy() *Maintainer

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

func (*Maintainer) DeepCopyInto

func (in *Maintainer) DeepCopyInto(out *Maintainer)

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

type NamedInstallStrategy

type NamedInstallStrategy struct {
	StrategyName string                    `json:"strategy"`
	StrategySpec StrategyDetailsDeployment `json:"spec,omitempty"`
}

NamedInstallStrategy represents the block of an ClusterServiceVersion resource where the install strategy is specified. +k8s:openapi-gen=true

func (*NamedInstallStrategy) DeepCopy

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

func (*NamedInstallStrategy) DeepCopyInto

func (in *NamedInstallStrategy) DeepCopyInto(out *NamedInstallStrategy)

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

type RegistryPoll

type RegistryPoll struct {
	// Interval is used to determine the time interval between checks of the latest catalog source version.
	// The catalog operator polls to see if a new version of the catalog source is available.
	// If available, the latest image is pulled and gRPC traffic is directed to the latest catalog source.
	RawInterval  string           `json:"interval,omitempty"`
	Interval     *metav1.Duration `json:"-"`
	ParsingError string           `json:"-"`
}

func (*RegistryPoll) DeepCopy

func (in *RegistryPoll) DeepCopy() *RegistryPoll

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

func (*RegistryPoll) DeepCopyInto

func (in *RegistryPoll) DeepCopyInto(out *RegistryPoll)

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

type RegistryServiceStatus

type RegistryServiceStatus struct {
	Protocol         string      `json:"protocol,omitempty"`
	ServiceName      string      `json:"serviceName,omitempty"`
	ServiceNamespace string      `json:"serviceNamespace,omitempty"`
	Port             string      `json:"port,omitempty"`
	CreatedAt        metav1.Time `json:"createdAt,omitempty"`
}

func (*RegistryServiceStatus) Address

func (s *RegistryServiceStatus) Address() string

func (*RegistryServiceStatus) DeepCopy

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

func (*RegistryServiceStatus) DeepCopyInto

func (in *RegistryServiceStatus) DeepCopyInto(out *RegistryServiceStatus)

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

type RelatedImage added in v0.7.1

type RelatedImage struct {
	Name  string `json:"name"`
	Image string `json:"image"`
}

+k8s:openapi-gen=true

func (*RelatedImage) DeepCopy added in v0.7.1

func (in *RelatedImage) DeepCopy() *RelatedImage

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

func (*RelatedImage) DeepCopyInto added in v0.7.1

func (in *RelatedImage) DeepCopyInto(out *RelatedImage)

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

type RequirementStatus

type RequirementStatus struct {
	Group      string            `json:"group"`
	Version    string            `json:"version"`
	Kind       string            `json:"kind"`
	Name       string            `json:"name"`
	Status     StatusReason      `json:"status"`
	Message    string            `json:"message"`
	UUID       string            `json:"uuid,omitempty"`
	Dependents []DependentStatus `json:"dependents,omitempty"`
}

+k8s:openapi-gen=true

func (*RequirementStatus) DeepCopy

func (in *RequirementStatus) DeepCopy() *RequirementStatus

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

func (*RequirementStatus) DeepCopyInto

func (in *RequirementStatus) DeepCopyInto(out *RequirementStatus)

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

type ResourceInstance added in v0.7.0

type ResourceInstance struct {
	Name string `json:"name"`
	// Namespace can be empty for cluster-scoped resources
	Namespace string `json:"namespace,omitempty"`
}

+k8s:openapi-gen=true

func (*ResourceInstance) DeepCopy added in v0.7.1

func (in *ResourceInstance) DeepCopy() *ResourceInstance

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

func (*ResourceInstance) DeepCopyInto added in v0.7.1

func (in *ResourceInstance) DeepCopyInto(out *ResourceInstance)

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

type ResourceList added in v0.7.0

type ResourceList struct {
	Group     string             `json:"group"`
	Kind      string             `json:"kind"`
	Instances []ResourceInstance `json:"instances"`
}

ResourceList represents a list of resources which are of the same Group/Kind +k8s:openapi-gen=true

func (*ResourceList) DeepCopy added in v0.7.1

func (in *ResourceList) DeepCopy() *ResourceList

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

func (*ResourceList) DeepCopyInto added in v0.7.1

func (in *ResourceList) DeepCopyInto(out *ResourceList)

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

type SecurityConfig added in v0.17.1

type SecurityConfig string
const (
	Legacy     SecurityConfig = "legacy"
	Restricted SecurityConfig = "restricted"
)

type SourceType

type SourceType string

SourceType indicates the type of backing store for a CatalogSource

const (
	// SourceTypeInternal (deprecated) specifies a CatalogSource of type SourceTypeConfigmap
	SourceTypeInternal SourceType = "internal"

	// SourceTypeConfigmap specifies a CatalogSource that generates a configmap-server registry
	SourceTypeConfigmap SourceType = "configmap"

	// SourceTypeGrpc specifies a CatalogSource that can use an operator registry image to generate a
	// registry-server or connect to a pre-existing registry at an address.
	SourceTypeGrpc SourceType = "grpc"
)

type SpecDescriptor

type SpecDescriptor struct {
	Path         string          `json:"path"`
	DisplayName  string          `json:"displayName,omitempty"`
	Description  string          `json:"description,omitempty"`
	XDescriptors []string        `json:"x-descriptors,omitempty"`
	Value        json.RawMessage `json:"value,omitempty"`
}

SpecDescriptor describes a field in a spec block of a CRD so that OLM can consume it +k8s:openapi-gen=true

func (*SpecDescriptor) DeepCopy

func (in *SpecDescriptor) DeepCopy() *SpecDescriptor

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

func (*SpecDescriptor) DeepCopyInto

func (in *SpecDescriptor) DeepCopyInto(out *SpecDescriptor)

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

type StatusDescriptor

type StatusDescriptor struct {
	Path         string          `json:"path"`
	DisplayName  string          `json:"displayName,omitempty"`
	Description  string          `json:"description,omitempty"`
	XDescriptors []string        `json:"x-descriptors,omitempty"`
	Value        json.RawMessage `json:"value,omitempty"`
}

StatusDescriptor describes a field in a status block of a CRD so that OLM can consume it +k8s:openapi-gen=true

func (*StatusDescriptor) DeepCopy

func (in *StatusDescriptor) DeepCopy() *StatusDescriptor

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

func (*StatusDescriptor) DeepCopyInto

func (in *StatusDescriptor) DeepCopyInto(out *StatusDescriptor)

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

type StatusReason

type StatusReason string

StatusReason is a camelcased reason for the status of a RequirementStatus or DependentStatus

const (
	RequirementStatusReasonPresent             StatusReason = "Present"
	RequirementStatusReasonNotPresent          StatusReason = "NotPresent"
	RequirementStatusReasonPresentNotSatisfied StatusReason = "PresentNotSatisfied"
	// The CRD is present but the Established condition is False (not available)
	RequirementStatusReasonNotAvailable StatusReason = "PresentNotAvailable"
	DependentStatusReasonSatisfied      StatusReason = "Satisfied"
	DependentStatusReasonNotSatisfied   StatusReason = "NotSatisfied"
)

type Step

type Step struct {
	Resolving string       `json:"resolving"`
	Resource  StepResource `json:"resource"`
	Optional  bool         `json:"optional,omitempty"`
	Status    StepStatus   `json:"status"`
}

Step represents the status of an individual step in an InstallPlan.

func OrderSteps

func OrderSteps(steps []*Step) []*Step

func (*Step) DeepCopy

func (in *Step) DeepCopy() *Step

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

func (*Step) DeepCopyInto

func (in *Step) DeepCopyInto(out *Step)

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

func (*Step) String

func (s *Step) String() string

type StepResource

type StepResource struct {
	CatalogSource          string `json:"sourceName"`
	CatalogSourceNamespace string `json:"sourceNamespace"`
	Group                  string `json:"group"`
	Version                string `json:"version"`
	Kind                   string `json:"kind"`
	Name                   string `json:"name"`
	Manifest               string `json:"manifest,omitempty"`
}

StepResource represents the status of a resource to be tracked by an InstallPlan.

func (*StepResource) DeepCopy

func (in *StepResource) DeepCopy() *StepResource

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

func (*StepResource) DeepCopyInto

func (in *StepResource) DeepCopyInto(out *StepResource)

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

func (StepResource) String

func (r StepResource) String() string

type StepStatus

type StepStatus string

StepStatus is the current status of a particular resource an in InstallPlan

const (
	StepStatusUnknown             StepStatus = "Unknown"
	StepStatusNotPresent          StepStatus = "NotPresent"
	StepStatusPresent             StepStatus = "Present"
	StepStatusCreated             StepStatus = "Created"
	StepStatusNotCreated          StepStatus = "NotCreated"
	StepStatusWaitingForAPI       StepStatus = "WaitingForApi"
	StepStatusUnsupportedResource StepStatus = "UnsupportedResource"
)

type StrategyDeploymentPermissions

type StrategyDeploymentPermissions struct {
	ServiceAccountName string            `json:"serviceAccountName"`
	Rules              []rbac.PolicyRule `json:"rules"`
}

StrategyDeploymentPermissions describe the rbac rules and service account needed by the install strategy +k8s:openapi-gen=true

func (*StrategyDeploymentPermissions) DeepCopy

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

func (*StrategyDeploymentPermissions) DeepCopyInto

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

type StrategyDeploymentSpec

type StrategyDeploymentSpec struct {
	Name  string                `json:"name"`
	Spec  appsv1.DeploymentSpec `json:"spec"`
	Label labels.Set            `json:"label,omitempty"`
}

StrategyDeploymentSpec contains the name, spec and labels for the deployment ALM should create +k8s:openapi-gen=true

func (*StrategyDeploymentSpec) DeepCopy

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

func (*StrategyDeploymentSpec) DeepCopyInto

func (in *StrategyDeploymentSpec) DeepCopyInto(out *StrategyDeploymentSpec)

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

type StrategyDetailsDeployment

type StrategyDetailsDeployment struct {
	DeploymentSpecs    []StrategyDeploymentSpec        `json:"deployments"`
	Permissions        []StrategyDeploymentPermissions `json:"permissions,omitempty"`
	ClusterPermissions []StrategyDeploymentPermissions `json:"clusterPermissions,omitempty"`
}

StrategyDetailsDeployment represents the parsed details of a Deployment InstallStrategy. +k8s:openapi-gen=true

func (*StrategyDetailsDeployment) DeepCopy

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

func (*StrategyDetailsDeployment) DeepCopyInto

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

func (*StrategyDetailsDeployment) GetStrategyName

func (d *StrategyDetailsDeployment) GetStrategyName() string

type Subscription

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

	Spec *SubscriptionSpec `json:"spec"`
	// +optional
	Status SubscriptionStatus `json:"status"`
}

Subscription keeps operators up to date by tracking changes to Catalogs.

func (*Subscription) DeepCopy

func (in *Subscription) DeepCopy() *Subscription

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

func (*Subscription) DeepCopyInto

func (in *Subscription) DeepCopyInto(out *Subscription)

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

func (*Subscription) DeepCopyObject

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

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

func (*Subscription) GetInstallPlanApproval

func (s *Subscription) GetInstallPlanApproval() Approval

GetInstallPlanApproval gets the configured install plan approval or the default

type SubscriptionCatalogHealth

type SubscriptionCatalogHealth struct {
	// CatalogSourceRef is a reference to a CatalogSource.
	CatalogSourceRef *corev1.ObjectReference `json:"catalogSourceRef"`

	// LastUpdated represents the last time that the CatalogSourceHealth changed
	LastUpdated *metav1.Time `json:"lastUpdated"`

	// Healthy is true if the CatalogSource is healthy; false otherwise.
	Healthy bool `json:"healthy"`
}

SubscriptionCatalogHealth describes the health of a CatalogSource the Subscription knows about.

func (*SubscriptionCatalogHealth) DeepCopy

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

func (*SubscriptionCatalogHealth) DeepCopyInto

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

func (SubscriptionCatalogHealth) Equals

Equals returns true if a SubscriptionCatalogHealth equals the one given, false otherwise. Equality is based SOLEY on health and UID.

type SubscriptionCondition

type SubscriptionCondition struct {
	// Type is the type of Subscription condition.
	Type SubscriptionConditionType `json:"type" description:"type of Subscription condition"`

	// Status is the status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status" description:"status of the condition, one of True, False, Unknown"`

	// Reason is a one-word CamelCase reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty" description:"one-word CamelCase reason for the condition's last transition"`

	// Message is a human-readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty" description:"human-readable message indicating details about last transition"`

	// LastHeartbeatTime is the last time we got an update on a given condition
	// +optional
	LastHeartbeatTime *metav1.Time `json:"lastHeartbeatTime,omitempty" description:"last time we got an update on a given condition"`

	// LastTransitionTime is the last time the condition transit from one status to another
	// +optional
	LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty" description:"last time the condition transit from one status to another" hash:"ignore"`
}

SubscriptionCondition represents the latest available observations of a Subscription's state.

func (*SubscriptionCondition) DeepCopy

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

func (*SubscriptionCondition) DeepCopyInto

func (in *SubscriptionCondition) DeepCopyInto(out *SubscriptionCondition)

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

func (SubscriptionCondition) Equals

func (s SubscriptionCondition) Equals(condition SubscriptionCondition) bool

Equals returns true if a SubscriptionCondition equals the one given, false otherwise. Equality is determined by the equality of the type, status, reason, and message fields ONLY.

type SubscriptionConditionType

type SubscriptionConditionType string

SubscriptionConditionType indicates an explicit state condition about a Subscription in "abnormal-true" polarity form (see https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties).

const (
	// SubscriptionCatalogSourcesUnhealthy indicates that some or all of the CatalogSources to be used in resolution are unhealthy.
	SubscriptionCatalogSourcesUnhealthy SubscriptionConditionType = "CatalogSourcesUnhealthy"

	// SubscriptionInstallPlanMissing indicates that a Subscription's InstallPlan is missing.
	SubscriptionInstallPlanMissing SubscriptionConditionType = "InstallPlanMissing"

	// SubscriptionInstallPlanPending indicates that a Subscription's InstallPlan is pending installation.
	SubscriptionInstallPlanPending SubscriptionConditionType = "InstallPlanPending"

	// SubscriptionInstallPlanFailed indicates that the installation of a Subscription's InstallPlan has failed.
	SubscriptionInstallPlanFailed SubscriptionConditionType = "InstallPlanFailed"

	// SubscriptionResolutionFailed indicates that the dependency resolution in the namespace in which the subscription is created has failed
	SubscriptionResolutionFailed SubscriptionConditionType = "ResolutionFailed"

	// SubscriptionBundleUnpacking indicates that the unpack job is currently running
	SubscriptionBundleUnpacking SubscriptionConditionType = "BundleUnpacking"

	// SubscriptionBundleUnpackFailed indicates that the unpack job failed
	SubscriptionBundleUnpackFailed SubscriptionConditionType = "BundleUnpackFailed"
)

type SubscriptionConfig

type SubscriptionConfig struct {
	// Selector is the label selector for pods to be configured.
	// Existing ReplicaSets whose pods are
	// selected by this will be the ones affected by this deployment.
	// It must match the pod template's labels.
	Selector *metav1.LabelSelector `json:"selector,omitempty"`

	// NodeSelector is a selector which must be true for the pod to fit on a node.
	// Selector which must match a node's labels for the pod to be scheduled on that node.
	// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Tolerations are the pod's tolerations.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Resources represents compute resources required by this container.
	// Immutable.
	// More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// EnvFrom is a list of sources to populate environment variables in the container.
	// The keys defined within a source must be a C_IDENTIFIER. All invalid keys
	// will be reported as an event when the container is starting. When a key exists in multiple
	// sources, the value associated with the last source will take precedence.
	// Values defined by an Env with a duplicate key will take precedence.
	// Immutable.
	// +optional
	EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"`
	// Env is a list of environment variables to set in the container.
	// Cannot be updated.
	// +patchMergeKey=name
	// +patchStrategy=merge
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty" patchMergeKey:"name" patchStrategy:"merge"`

	// List of Volumes to set in the podSpec.
	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty"`

	// List of VolumeMounts to set in the container.
	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`

	// If specified, overrides the pod's scheduling constraints.
	// nil sub-attributes will *not* override the original values in the pod.spec for those sub-attributes.
	// Use empty object ({}) to erase original sub-attribute values.
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty" protobuf:"bytes,18,opt,name=affinity"`
}

SubscriptionConfig contains configuration specified for a subscription.

func (*SubscriptionConfig) DeepCopy

func (in *SubscriptionConfig) DeepCopy() *SubscriptionConfig

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

func (*SubscriptionConfig) DeepCopyInto

func (in *SubscriptionConfig) DeepCopyInto(out *SubscriptionConfig)

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

type SubscriptionList

type SubscriptionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []Subscription `json:"items"`
}

SubscriptionList is a list of Subscription resources.

func (*SubscriptionList) DeepCopy

func (in *SubscriptionList) DeepCopy() *SubscriptionList

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

func (*SubscriptionList) DeepCopyInto

func (in *SubscriptionList) DeepCopyInto(out *SubscriptionList)

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

func (*SubscriptionList) DeepCopyObject

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

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

type SubscriptionSpec

type SubscriptionSpec struct {
	CatalogSource          string              `json:"source"`
	CatalogSourceNamespace string              `json:"sourceNamespace"`
	Package                string              `json:"name"`
	Channel                string              `json:"channel,omitempty"`
	StartingCSV            string              `json:"startingCSV,omitempty"`
	InstallPlanApproval    Approval            `json:"installPlanApproval,omitempty"`
	Config                 *SubscriptionConfig `json:"config,omitempty"`
}

SubscriptionSpec defines an Application that can be installed

func (*SubscriptionSpec) DeepCopy

func (in *SubscriptionSpec) DeepCopy() *SubscriptionSpec

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

func (*SubscriptionSpec) DeepCopyInto

func (in *SubscriptionSpec) DeepCopyInto(out *SubscriptionSpec)

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

type SubscriptionState

type SubscriptionState string

SubscriptionState tracks when updates are available, installing, or service is up to date

type SubscriptionStatus

type SubscriptionStatus struct {
	// CurrentCSV is the CSV the Subscription is progressing to.
	// +optional
	CurrentCSV string `json:"currentCSV,omitempty"`

	// InstalledCSV is the CSV currently installed by the Subscription.
	// +optional
	InstalledCSV string `json:"installedCSV,omitempty"`

	// Install is a reference to the latest InstallPlan generated for the Subscription.
	// DEPRECATED: InstallPlanRef
	// +optional
	Install *InstallPlanReference `json:"installplan,omitempty"`

	// State represents the current state of the Subscription
	// +optional
	State SubscriptionState `json:"state,omitempty"`

	// Reason is the reason the Subscription was transitioned to its current state.
	// +optional
	Reason ConditionReason `json:"reason,omitempty"`

	// InstallPlanGeneration is the current generation of the installplan
	// +optional
	InstallPlanGeneration int `json:"installPlanGeneration,omitempty"`

	// InstallPlanRef is a reference to the latest InstallPlan that contains the Subscription's current CSV.
	// +optional
	InstallPlanRef *corev1.ObjectReference `json:"installPlanRef,omitempty"`

	// CatalogHealth contains the Subscription's view of its relevant CatalogSources' status.
	// It is used to determine SubscriptionStatusConditions related to CatalogSources.
	// +optional
	CatalogHealth []SubscriptionCatalogHealth `json:"catalogHealth,omitempty"`

	// Conditions is a list of the latest available observations about a Subscription's current state.
	// +optional
	Conditions []SubscriptionCondition `json:"conditions,omitempty" hash:"set"`

	// LastUpdated represents the last time that the Subscription status was updated.
	LastUpdated metav1.Time `json:"lastUpdated"`
}

func (*SubscriptionStatus) DeepCopy

func (in *SubscriptionStatus) DeepCopy() *SubscriptionStatus

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

func (*SubscriptionStatus) DeepCopyInto

func (in *SubscriptionStatus) DeepCopyInto(out *SubscriptionStatus)

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

func (SubscriptionStatus) GetCondition

GetCondition returns the SubscriptionCondition of the given type if it exists in the SubscriptionStatus' Conditions. Returns a condition of the given type with a ConditionStatus of "Unknown" if not found.

func (*SubscriptionStatus) RemoveConditions

func (s *SubscriptionStatus) RemoveConditions(remove ...SubscriptionConditionType)

RemoveConditions removes any conditions of the given types from the SubscriptionStatus' Conditions.

func (*SubscriptionStatus) SetCondition

func (s *SubscriptionStatus) SetCondition(condition SubscriptionCondition)

SetCondition sets the given SubscriptionCondition in the SubscriptionStatus' Conditions.

type UpdateStrategy

type UpdateStrategy struct {
	*RegistryPoll `json:"registryPoll,omitempty"`
}

UpdateStrategy holds all the different types of catalog source update strategies Currently only registry polling strategy is implemented

func (*UpdateStrategy) DeepCopy

func (in *UpdateStrategy) DeepCopy() *UpdateStrategy

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

func (*UpdateStrategy) DeepCopyInto

func (in *UpdateStrategy) DeepCopyInto(out *UpdateStrategy)

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

func (*UpdateStrategy) UnmarshalJSON added in v0.14.0

func (u *UpdateStrategy) UnmarshalJSON(data []byte) (err error)

UnmarshalJSON implements the encoding/json.Unmarshaler interface.

type WebhookAdmissionType

type WebhookAdmissionType string

WebhookAdmissionType is the type of admission webhooks supported by OLM

const (
	// ValidatingAdmissionWebhook is for validating admission webhooks
	ValidatingAdmissionWebhook WebhookAdmissionType = "ValidatingAdmissionWebhook"
	// MutatingAdmissionWebhook is for mutating admission webhooks
	MutatingAdmissionWebhook WebhookAdmissionType = "MutatingAdmissionWebhook"
	// ConversionWebhook is for conversion webhooks
	ConversionWebhook WebhookAdmissionType = "ConversionWebhook"
)

type WebhookDescription

type WebhookDescription struct {
	GenerateName string `json:"generateName"`
	// +kubebuilder:validation:Enum=ValidatingAdmissionWebhook;MutatingAdmissionWebhook;ConversionWebhook
	Type           WebhookAdmissionType `json:"type"`
	DeploymentName string               `json:"deploymentName,omitempty"`
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:default=443
	ContainerPort           int32                                           `json:"containerPort,omitempty"`
	TargetPort              *intstr.IntOrString                             `json:"targetPort,omitempty"`
	Rules                   []admissionregistrationv1.RuleWithOperations    `json:"rules,omitempty"`
	FailurePolicy           *admissionregistrationv1.FailurePolicyType      `json:"failurePolicy,omitempty"`
	MatchPolicy             *admissionregistrationv1.MatchPolicyType        `json:"matchPolicy,omitempty"`
	ObjectSelector          *metav1.LabelSelector                           `json:"objectSelector,omitempty"`
	SideEffects             *admissionregistrationv1.SideEffectClass        `json:"sideEffects"`
	TimeoutSeconds          *int32                                          `json:"timeoutSeconds,omitempty"`
	AdmissionReviewVersions []string                                        `json:"admissionReviewVersions"`
	ReinvocationPolicy      *admissionregistrationv1.ReinvocationPolicyType `json:"reinvocationPolicy,omitempty"`
	WebhookPath             *string                                         `json:"webhookPath,omitempty"`
	ConversionCRDs          []string                                        `json:"conversionCRDs,omitempty"`
}

WebhookDescription provides details to OLM about required webhooks +k8s:openapi-gen=true

func (*WebhookDescription) DeepCopy

func (in *WebhookDescription) DeepCopy() *WebhookDescription

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

func (*WebhookDescription) DeepCopyInto

func (in *WebhookDescription) DeepCopyInto(out *WebhookDescription)

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

func (*WebhookDescription) DomainName

func (w *WebhookDescription) DomainName() string

DomainName returns the result of replacing all periods in the given Webhook name with hyphens

func (*WebhookDescription) GetMutatingWebhook

func (w *WebhookDescription) GetMutatingWebhook(namespace string, namespaceSelector *metav1.LabelSelector, caBundle []byte) admissionregistrationv1.MutatingWebhook

GetMutatingWebhook returns a MutatingWebhook generated from the WebhookDescription

func (*WebhookDescription) GetValidatingWebhook

func (w *WebhookDescription) GetValidatingWebhook(namespace string, namespaceSelector *metav1.LabelSelector, caBundle []byte) admissionregistrationv1.ValidatingWebhook

GetValidatingWebhook returns a ValidatingWebhook generated from the WebhookDescription

Jump to

Keyboard shortcuts

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