v1alpha1

package
v1.16.0 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2025 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the v1alpha1 version of the manifests API group, containing file-based manifests for the packaging infrastructure. +kubebuilder:object:generate=true +groupName=manifests.package-operator.run

Index

Constants

View Source
const (
	// PackagePhaseAnnotation annotation to assign objects to a phase.
	PackagePhaseAnnotation = "package-operator.run/phase"
	// PackageConditionMapAnnotation specifies object conditions to map back
	// into Package Operator APIs.
	// Example: Available => my-own-prefix/Available.
	PackageConditionMapAnnotation = "package-operator.run/condition-map"
	// PackageCELConditionAnnotation contains a CEL expression
	// evaluating to a boolean value which determines whether the object is created.
	PackageCELConditionAnnotation = "package-operator.run/condition"
	// PackageCollisionProtectionAnnotation prevents Package Operator from working
	// on objects already under management by a different operator.
	PackageCollisionProtectionAnnotation = "package-operator.run/collision-protection"
)
View Source
const (
	// PackageLabel contains the name of the Package from the PackageManifest.
	PackageLabel = "package-operator.run/package"
	// PackageSourceImageAnnotation references the package container image originating this object.
	PackageSourceImageAnnotation = "package-operator.run/package-source-image"
	// PackageConfigAnnotation contains the configuration for this object.
	PackageConfigAnnotation = "package-operator.run/package-config"
	// PackageInstanceLabel contains the name of the Package instance.
	PackageInstanceLabel = "package-operator.run/instance"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "manifests.package-operator.run", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder runtime.SchemeBuilder

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type PackageEnvironment added in v1.7.0

type PackageEnvironment struct {
	// Kubernetes environment information. This section is always set.
	Kubernetes PackageEnvironmentKubernetes `json:"kubernetes"`
	// OpenShift environment information. This section is only set when OpenShift is detected.
	OpenShift *PackageEnvironmentOpenShift `json:"openShift,omitempty"`
	// Proxy configuration. Only available on OpenShift when the cluster-wide Proxy is enabled.
	// https://docs.openshift.com/container-platform/latest/networking/enable-cluster-wide-proxy.html
	Proxy *PackageEnvironmentProxy `json:"proxy,omitempty"`
	// HyperShift specific information. Only available when installed alongside HyperShift.
	// https://github.com/openshift/hypershift
	HyperShift *PackageEnvironmentHyperShift `json:"hyperShift,omitempty"`
}

PackageEnvironment information.

func (*PackageEnvironment) DeepCopy added in v1.7.0

func (in *PackageEnvironment) DeepCopy() *PackageEnvironment

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

func (*PackageEnvironment) DeepCopyInto added in v1.7.0

func (in *PackageEnvironment) DeepCopyInto(out *PackageEnvironment)

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

type PackageEnvironmentHyperShift added in v1.9.4

type PackageEnvironmentHyperShift struct {
	// Contains HyperShift HostedCluster specific information.
	// This information is only available when installed alongside HyperShift within a HostedCluster Namespace.
	// https://github.com/openshift/hypershift
	// +example={hostedClusterNamespace: clusters-banana, metadata: {name: banana, namespace: clusters}}
	HostedCluster *PackageEnvironmentHyperShiftHostedCluster `json:"hostedCluster"`
}

PackageEnvironmentHyperShift contains HyperShift specific information. Only available when installed alongside HyperShift. https://github.com/openshift/hypershift

func (*PackageEnvironmentHyperShift) DeepCopy added in v1.9.4

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

func (*PackageEnvironmentHyperShift) DeepCopyInto added in v1.9.4

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

type PackageEnvironmentHyperShiftHostedCluster added in v1.9.4

type PackageEnvironmentHyperShiftHostedCluster struct {
	TemplateContextObjectMeta `json:"metadata"`
	// Namespace of HostedCluster components belonging to this HostedCluster object.
	HostedClusterNamespace string `json:"hostedClusterNamespace"`
}

PackageEnvironmentHyperShiftHostedCluster contains HyperShift HostedCluster specific information. This information is only available when installed alongside HyperShift within a HostedCluster Namespace. https://github.com/openshift/hypershift

func (*PackageEnvironmentHyperShiftHostedCluster) DeepCopy added in v1.9.4

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

func (*PackageEnvironmentHyperShiftHostedCluster) DeepCopyInto added in v1.9.4

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

type PackageEnvironmentKubernetes added in v1.7.0

type PackageEnvironmentKubernetes struct {
	// Kubernetes server version.
	// +example=v1.29.5
	Version string `json:"version"`
}

PackageEnvironmentKubernetes configures kubernetes environments.

func (*PackageEnvironmentKubernetes) DeepCopy added in v1.7.0

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

func (*PackageEnvironmentKubernetes) DeepCopyInto added in v1.7.0

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

type PackageEnvironmentManagedOpenShift added in v1.12.0

type PackageEnvironmentManagedOpenShift struct {
	// Data key-value pairs describing details of the Managed OpenShift environment.
	// +example={test: test}
	Data map[string]string `json:"data"`
}

PackageEnvironmentManagedOpenShift describes managed OpenShift environments.

func (*PackageEnvironmentManagedOpenShift) DeepCopy added in v1.12.0

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

func (*PackageEnvironmentManagedOpenShift) DeepCopyInto added in v1.12.0

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

type PackageEnvironmentOpenShift added in v1.7.0

type PackageEnvironmentOpenShift struct {
	// OpenShift server version.
	// +example=v4.13.2
	Version string `json:"version"`
	// ManagedOpenShift environment information. This section is only set when a managed OpenShift cluster is detected.
	// This includes Red Hat OpenShift Dedicated, Red Hat OpenShift Service on AWS (ROSA) and
	// Azure Red Hat OpenShift (ARO) and their Hosted Control Plane variants.
	Managed *PackageEnvironmentManagedOpenShift `json:"managed,omitempty"`
}

PackageEnvironmentOpenShift configures openshift environments.

func (*PackageEnvironmentOpenShift) DeepCopy added in v1.7.0

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

func (*PackageEnvironmentOpenShift) DeepCopyInto added in v1.7.0

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

type PackageEnvironmentProxy added in v1.7.0

type PackageEnvironmentProxy struct {
	// HTTP_PROXY
	// +example=http://proxy_server_address:port
	HTTPProxy string `json:"httpProxy,omitempty"`
	// HTTPS_PROXY
	// +example=https://proxy_server_address:port
	HTTPSProxy string `json:"httpsProxy,omitempty"`
	// NO_PROXY
	// +example=".example.com,.local,localhost"
	NoProxy string `json:"noProxy,omitempty"`
}

PackageEnvironmentProxy configures proxy environments. On OpenShift, this config is taken from the cluster Proxy object. https://docs.openshift.com/container-platform/4.13/networking/enable-cluster-wide-proxy.html

func (*PackageEnvironmentProxy) DeepCopy added in v1.7.0

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

func (*PackageEnvironmentProxy) DeepCopyInto added in v1.7.0

func (in *PackageEnvironmentProxy) DeepCopyInto(out *PackageEnvironmentProxy)

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

type PackageManifest

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

	Spec PackageManifestSpec `json:"spec,omitempty"`
	Test PackageManifestTest `json:"test,omitempty"`
}

PackageManifest defines the manifest of a package. +kubebuilder:object:root=true

func (*PackageManifest) DeepCopy

func (in *PackageManifest) DeepCopy() *PackageManifest

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

func (*PackageManifest) DeepCopyInto

func (in *PackageManifest) DeepCopyInto(out *PackageManifest)

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

func (*PackageManifest) DeepCopyObject

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

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

type PackageManifestComponentsConfig added in v1.9.1

type PackageManifestComponentsConfig struct{}

PackageManifestComponentsConfig configures components of a package.

func (*PackageManifestComponentsConfig) DeepCopy added in v1.9.1

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

func (*PackageManifestComponentsConfig) DeepCopyInto added in v1.9.1

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

type PackageManifestConstraint added in v1.14.0

type PackageManifestConstraint struct {
	// PackageManifestPlatformVersionConstraint enforces that the platform matches the given version range.
	// This constraint is ignored when running on a different platform.
	// e.g. a PlatformVersionConstraint OpenShift>=4.13.x is ignored when installed on a plain Kubernetes cluster.
	// Use the Platform constraint to enforce running on a specific platform.
	PlatformVersion *PackageManifestPlatformVersionConstraint `json:"platformVersion,omitempty"`
	// Valid platforms that support this package.
	// +example=[Kubernetes]
	Platform []PlatformName `json:"platform,omitempty"`
	// Constraints this package to be only installed once in the Cluster or once in the same Namespace.
	UniqueInScope *PackageManifestUniqueInScopeConstraint `json:"uniqueInScope,omitempty"`
}

PackageManifestConstraint configures environment constraints to block package installation.

func (*PackageManifestConstraint) DeepCopy added in v1.14.0

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

func (*PackageManifestConstraint) DeepCopyInto added in v1.14.0

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

type PackageManifestDependency added in v1.14.0

type PackageManifestDependency struct {
	// Resolves the dependency as a image url and digest and commits it to the PackageManifestLock.
	Image *PackageManifestDependencyImage `json:"image,omitempty"`
}

PackageManifestDependency uses a solver to find the latest version package image.

func (*PackageManifestDependency) DeepCopy added in v1.14.0

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

func (*PackageManifestDependency) DeepCopyInto added in v1.14.0

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

type PackageManifestDependencyImage added in v1.14.0

type PackageManifestDependencyImage struct {
	// Name for the dependency.
	// +example=my-pkg
	Name string `json:"name"`
	// Package FQDN <package-name>.<repository name>
	// +example=my-pkg.my-repo
	Package string `json:"package"`
	// Semantic Versioning 2.0.0 version range.
	// +example=>=2.1
	Range string `json:"range"`
}

PackageManifestDependencyImage represents a dependency image found by the solver.

func (*PackageManifestDependencyImage) DeepCopy added in v1.14.0

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

func (*PackageManifestDependencyImage) DeepCopyInto added in v1.14.0

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

type PackageManifestFilter added in v1.12.0

type PackageManifestFilter struct {
	// Reusable CEL expressions. Can be used in 'package-operator.run/condition' annotations.
	// They are evaluated once per package.
	// +optional
	Conditions []PackageManifestNamedCondition `json:"conditions,omitempty"`
	// Adds CEL conditions to file system paths matching a glob pattern.
	// If a single condition matching a file system object's path evaluates to false,
	// the object is ignored.
	Paths []PackageManifestPath `json:"paths,omitempty"`
}

PackageManifestFilter is used to conditionally render objects based on CEL expressions.

func (*PackageManifestFilter) DeepCopy added in v1.12.0

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

func (*PackageManifestFilter) DeepCopyInto added in v1.12.0

func (in *PackageManifestFilter) DeepCopyInto(out *PackageManifestFilter)

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

type PackageManifestImage added in v1.3.0

type PackageManifestImage struct {
	// Image name to be use to reference it in the templates
	// +example=test-stub
	Name string `json:"name"`
	// Image identifier (REPOSITORY[:TAG])
	// +example=quay.io/package-operator/test-stub:v1.11.0
	Image string `json:"image"`
}

PackageManifestImage specifies an image tag to be resolved.

func (*PackageManifestImage) DeepCopy added in v1.3.0

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

func (*PackageManifestImage) DeepCopyInto added in v1.3.0

func (in *PackageManifestImage) DeepCopyInto(out *PackageManifestImage)

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

type PackageManifestLock added in v1.3.0

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

	Spec PackageManifestLockSpec `json:"spec,omitempty"`
}

PackageManifestLock allows locking packages to specific versions. +kubebuilder:object:root=true

func (*PackageManifestLock) DeepCopy added in v1.3.0

func (in *PackageManifestLock) DeepCopy() *PackageManifestLock

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

func (*PackageManifestLock) DeepCopyInto added in v1.3.0

func (in *PackageManifestLock) DeepCopyInto(out *PackageManifestLock)

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

func (*PackageManifestLock) DeepCopyObject added in v1.3.0

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

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

type PackageManifestLockDependency added in v1.14.0

type PackageManifestLockDependency struct {
	// Image name to be use to reference it in the templates
	// +example=my-pkg
	Name string `json:"name"`
	// Image identifier (REPOSITORY[:TAG])
	// +example=quay.io/package-operator/remote-phase-package
	Image string `json:"image"`
	// Image digest
	// +example=sha256:00e48c32b3cdcf9e2c66467f2beb0ef33b43b54e2b56415db4ee431512c406ea
	Digest string `json:"digest"`
	// Version of the dependency that has been chosen.
	// +example=v1.12.3
	Version string `json:"version"`
}

PackageManifestLockDependency defines a dependency of this package.

func (*PackageManifestLockDependency) DeepCopy added in v1.14.0

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

func (*PackageManifestLockDependency) DeepCopyInto added in v1.14.0

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

type PackageManifestLockImage added in v1.3.0

type PackageManifestLockImage struct {
	// Image name to be use to reference it in the templates
	// +example=my-pkg
	Name string `json:"name"`
	// Image identifier (REPOSITORY[:TAG])
	// +example=quay.io/package-operator/remote-phase-package
	Image string `json:"image"`
	// Image digest
	// +example=sha256:00e48c32b3cdcf9e2c66467f2beb0ef33b43b54e2b56415db4ee431512c406ea
	Digest string `json:"digest"`
}

PackageManifestLockImage contains information about a resolved image.

func (*PackageManifestLockImage) DeepCopy added in v1.3.0

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

func (*PackageManifestLockImage) DeepCopyInto added in v1.3.0

func (in *PackageManifestLockImage) DeepCopyInto(out *PackageManifestLockImage)

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

type PackageManifestLockSpec added in v1.3.0

type PackageManifestLockSpec struct {
	// List of resolved images
	Images []PackageManifestLockImage `json:"images"`
	// List of resolved dependency images.
	Dependencies []PackageManifestLockDependency `json:"dependencies,omitempty"`
}

PackageManifestLockSpec defines a set of packages that are locked to a specific version.

func (*PackageManifestLockSpec) DeepCopy added in v1.3.0

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

func (*PackageManifestLockSpec) DeepCopyInto added in v1.3.0

func (in *PackageManifestLockSpec) DeepCopyInto(out *PackageManifestLockSpec)

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

type PackageManifestNamedCondition added in v1.11.0

type PackageManifestNamedCondition struct {
	// A unique name. Must match the CEL identifier pattern: [_a-zA-Z][_a-zA-Z0-9]*
	// +example=isOpenShift
	Name string `json:"name"`
	// A CEL expression with a boolean output type.
	// Has access to the full template context.
	// +example=has(environment.openShift)
	Expression string `json:"expression"`
}

PackageManifestNamedCondition is a reusable named CEL expression. It is injected as a variable into the CEL evaluation environment, and its value is set to the result of Expression ("true"/"false").

func (*PackageManifestNamedCondition) DeepCopy added in v1.11.0

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

func (*PackageManifestNamedCondition) DeepCopyInto added in v1.11.0

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

type PackageManifestPath added in v1.12.0

type PackageManifestPath struct {
	// A file system path glob pattern.
	// Syntax: https://pkg.go.dev/github.com/bmatcuk/doublestar@v1.3.4#Match
	// +example=openshift/v4.15/**
	Glob string `json:"glob"`
	// A CEL expression with a boolean output type.
	// Has access to the full template context and named conditions.
	// +example=cond.isOpenShift && environment.openShift.version.startsWith('4.15')
	Expression string `json:"expression"`
}

PackageManifestPath is used to conditionally render package objects based on their path.

func (*PackageManifestPath) DeepCopy added in v1.12.0

func (in *PackageManifestPath) DeepCopy() *PackageManifestPath

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

func (*PackageManifestPath) DeepCopyInto added in v1.12.0

func (in *PackageManifestPath) DeepCopyInto(out *PackageManifestPath)

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

type PackageManifestPhase

type PackageManifestPhase struct {
	// Name of the reconcile phase. Must be unique within a PackageManifest
	// +example=deploy
	Name string `json:"name"`
	// If non empty, phase reconciliation is delegated to another controller.
	// If set to the string "default" the built-in controller reconciling the object.
	// If set to any other string, an out-of-tree controller needs to be present to handle ObjectSetPhase objects.
	// +example=hosted-cluster
	Class string `json:"class,omitempty"`
}

PackageManifestPhase defines a package phase.

func (*PackageManifestPhase) DeepCopy

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

func (*PackageManifestPhase) DeepCopyInto

func (in *PackageManifestPhase) DeepCopyInto(out *PackageManifestPhase)

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

type PackageManifestPlatformVersionConstraint added in v1.14.0

type PackageManifestPlatformVersionConstraint struct {
	// Name of the platform this constraint should apply to.
	// +example=Kubernetes
	Name PlatformName `json:"name"`
	// Semantic Versioning 2.0.0 version range.
	// +example=>=1.20.x
	Range string `json:"range"`
}

PackageManifestPlatformVersionConstraint enforces that the platform matches the given version range. This constraint is ignored when running on a different platform. e.g. a PlatformVersionConstraint OpenShift>=4.13.x is ignored when installed on a plain Kubernetes cluster. Use the Platform constraint to enforce running on a specific platform.

func (*PackageManifestPlatformVersionConstraint) DeepCopy added in v1.14.0

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

func (*PackageManifestPlatformVersionConstraint) DeepCopyInto added in v1.14.0

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

type PackageManifestRepository added in v1.14.0

type PackageManifestRepository struct {
	// References a file in the filesystem to load.
	// +example=../myrepo.yaml
	File string `json:"file,omitempty"`
	// References an image in a container image registry.
	// +example=quay.io/package-operator/my-repo:latest
	Image string `json:"image,omitempty"`
}

PackageManifestRepository contains information about one package repository which could be loaded either from a local file or from a container image.

func (*PackageManifestRepository) DeepCopy added in v1.14.0

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

func (*PackageManifestRepository) DeepCopyInto added in v1.14.0

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

type PackageManifestScope

type PackageManifestScope string

PackageManifestScope declares the available scopes to install this package in.

const (
	// PackageManifestScopeCluster scope allows the package to be installed for the whole cluster.
	// The package needs to default installation namespaces and create them.
	PackageManifestScopeCluster PackageManifestScope = "Cluster"
	// PackageManifestScopeNamespaced scope allows the package to be installed for specific namespaces.
	PackageManifestScopeNamespaced PackageManifestScope = "Namespaced"
)

type PackageManifestSpec

type PackageManifestSpec struct {
	// Scopes declare the available installation scopes for the package.
	// Either Cluster, Namespaced, or both.
	// +example=['Cluster','Namespaced']
	Scopes []PackageManifestScope `json:"scopes"`
	// Phases correspond to the references to the phases which are going to be the
	// part of the ObjectDeployment/ClusterObjectDeployment.
	Phases []PackageManifestPhase `json:"phases"`
	// Availability Probes check objects that are part of the package.
	// All probes need to succeed for a package to be considered Available.
	// Failing probes will prevent the reconciliation of objects in later phases.
	// +optional
	// +example=[]
	AvailabilityProbes []corev1alpha1.ObjectSetProbe `json:"availabilityProbes,omitempty"`
	// Configuration specification.
	Config PackageManifestSpecConfig `json:"config,omitempty"`
	// List of images to be resolved
	Images []PackageManifestImage `json:"images"`
	// Configuration for multi-component packages. If this field is not set it is assumed
	// that the containing package is a single-component package.
	// +optional
	// +example={}
	Components *PackageManifestComponentsConfig `json:"components,omitempty"`
	// Used to filter objects and files based on CEL expressions.
	// +optional
	Filters PackageManifestFilter `json:"filter,omitempty"`
	// Constraints limit what environments a package can be installed into.
	// e.g. can only be installed on OpenShift.
	// +optional
	Constraints []PackageManifestConstraint `json:"constraints,omitempty"`
	// Repository references that are used to validate constraints and resolve dependencies.
	Repositories []PackageManifestRepository `json:"repositories,omitempty"`
	// Dependency references to resolve and use within this package.
	Dependencies []PackageManifestDependency `json:"dependencies,omitempty"`
}

PackageManifestSpec represents the spec of the packagemanifest containing the details about phases and availability probes.

func (*PackageManifestSpec) DeepCopy

func (in *PackageManifestSpec) DeepCopy() *PackageManifestSpec

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

func (*PackageManifestSpec) DeepCopyInto

func (in *PackageManifestSpec) DeepCopyInto(out *PackageManifestSpec)

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

type PackageManifestSpecConfig added in v1.3.0

type PackageManifestSpecConfig struct {
	// OpenAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.
	// +example={type: object,properties: {testProp: {type: string}}}
	OpenAPIV3Schema *apiextensionsv1.JSONSchemaProps `json:"openAPIV3Schema,omitempty"`
}

PackageManifestSpecConfig configutes a package manifest.

func (*PackageManifestSpecConfig) DeepCopy added in v1.3.0

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

func (*PackageManifestSpecConfig) DeepCopyInto added in v1.3.0

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

type PackageManifestTest added in v1.1.0

type PackageManifestTest struct {
	// Template testing configuration.
	Template    []PackageManifestTestCaseTemplate `json:"template,omitempty"`
	Kubeconform *PackageManifestTestKubeconform   `json:"kubeconform,omitempty"`
}

PackageManifestTest configures test cases.

func (*PackageManifestTest) DeepCopy added in v1.1.0

func (in *PackageManifestTest) DeepCopy() *PackageManifestTest

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

func (*PackageManifestTest) DeepCopyInto added in v1.1.0

func (in *PackageManifestTest) DeepCopyInto(out *PackageManifestTest)

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

type PackageManifestTestCaseTemplate added in v1.1.0

type PackageManifestTestCaseTemplate struct {
	// Name describing the test case.
	Name string `json:"name"`
	// Template data to use in the test case.
	Context TemplateContext `json:"context,omitempty"`
}

PackageManifestTestCaseTemplate template testing configuration.

func (*PackageManifestTestCaseTemplate) DeepCopy added in v1.1.0

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

func (*PackageManifestTestCaseTemplate) DeepCopyInto added in v1.1.0

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

type PackageManifestTestKubeconform added in v1.9.2

type PackageManifestTestKubeconform struct {
	// Kubernetes version to use schemas from.
	// +example=v1.29.5
	KubernetesVersion string `json:"kubernetesVersion"`
	//nolint:lll
	// OpenAPI schema locations for kubeconform
	// defaults to:
	// - https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/{{ .NormalizedKubernetesVersion }}-standalone{{ .StrictSuffix }}/{{ .ResourceKind }}{{ .KindSuffix }}.json
	// - https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json
	// +example=['https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/{{.NormalizedKubernetesVersion}}-standalone{{.StrictSuffix}}/{{.ResourceKind}}{{.KindSuffix}}.json']
	SchemaLocations []string `json:"schemaLocations,omitempty"`
}

PackageManifestTestKubeconform configures kubeconform testing.

func (*PackageManifestTestKubeconform) DeepCopy added in v1.9.2

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

func (*PackageManifestTestKubeconform) DeepCopyInto added in v1.9.2

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

type PackageManifestUniqueInScopeConstraint added in v1.14.0

type PackageManifestUniqueInScopeConstraint struct{}

PackageManifestUniqueInScopeConstraint constraints this package to be only installed once in the Cluster or once in the same Namespace.

func (*PackageManifestUniqueInScopeConstraint) DeepCopy added in v1.14.0

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

func (*PackageManifestUniqueInScopeConstraint) DeepCopyInto added in v1.14.0

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

type PlatformName added in v1.14.0

type PlatformName string

PlatformName holds the name of a specific platform flavor name. e.g. Kubernetes, OpenShift.

const (
	// Kubernetes platform.
	Kubernetes PlatformName = "Kubernetes"
	// OpenShift platform by Red Hat.
	OpenShift PlatformName = "OpenShift"
)

type Repository added in v1.14.0

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

Repository is the k8s resource that represents a package repository. +kubebuilder:object:root=true

func (*Repository) DeepCopy added in v1.14.0

func (in *Repository) DeepCopy() *Repository

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

func (*Repository) DeepCopyInto added in v1.14.0

func (in *Repository) DeepCopyInto(out *Repository)

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

func (*Repository) DeepCopyObject added in v1.14.0

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

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

type RepositoryEntry added in v1.14.0

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

	Data RepositoryEntryData `json:"data"`
}

RepositoryEntry contains metadata on one image belonging to the repository. +kubebuilder:object:root=true

func (*RepositoryEntry) DeepCopy added in v1.14.0

func (in *RepositoryEntry) DeepCopy() *RepositoryEntry

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

func (*RepositoryEntry) DeepCopyInto added in v1.14.0

func (in *RepositoryEntry) DeepCopyInto(out *RepositoryEntry)

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

func (*RepositoryEntry) DeepCopyObject added in v1.14.0

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

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

type RepositoryEntryData added in v1.14.0

type RepositoryEntryData struct {
	// OCI host/repository and name.
	// e.g. quay.io/xxx/xxx
	Image string `json:"image"`
	// Image digest uniquely identifying this image.
	Digest string `json:"digest"`
	// Semver V2 versions that are assigned to the package.
	Versions []string `json:"versions"`
	// Constraints of the package.
	Constraints []PackageManifestConstraint `json:"constraints,omitempty"`
	// Name of the package.
	Name string `json:"name,omitempty"`
}

RepositoryEntryData is the part of RepositoryEntry containing the actual data.

func (*RepositoryEntryData) DeepCopy added in v1.14.0

func (in *RepositoryEntryData) DeepCopy() *RepositoryEntryData

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

func (*RepositoryEntryData) DeepCopyInto added in v1.14.0

func (in *RepositoryEntryData) DeepCopyInto(out *RepositoryEntryData)

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

type TemplateContext added in v1.1.0

type TemplateContext struct {
	// Package object.
	// +example={image: quay.io/package-operator/test-stub-package:v1.11.0, metadata: {name: test}}
	Package TemplateContextPackage `json:"package"`
	// Configuration as presented via the (Cluster)Package API after admission.
	// +example={testProp: Hans}
	Config *runtime.RawExtension `json:"config,omitempty"`
	// Environment specific information.
	Environment PackageEnvironment `json:"environment"`
}

TemplateContext is available within the package templating process.

func (*TemplateContext) DeepCopy added in v1.1.0

func (in *TemplateContext) DeepCopy() *TemplateContext

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

func (*TemplateContext) DeepCopyInto added in v1.1.0

func (in *TemplateContext) DeepCopyInto(out *TemplateContext)

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

type TemplateContextObjectMeta added in v1.1.0

type TemplateContextObjectMeta struct {
	Name        string            `json:"name"`
	Namespace   string            `json:"namespace"`
	Labels      map[string]string `json:"labels"`
	Annotations map[string]string `json:"annotations"`
}

TemplateContextObjectMeta represents a simplified version of metav1.ObjectMeta for use in templates.

func (*TemplateContextObjectMeta) DeepCopy added in v1.1.0

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

func (*TemplateContextObjectMeta) DeepCopyInto added in v1.1.0

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

type TemplateContextPackage added in v1.1.0

type TemplateContextPackage struct {
	TemplateContextObjectMeta `json:"metadata"`
	// Image as presented via the (Cluster)Package API after admission.
	Image string `json:"image"`
}

TemplateContextPackage represents the (Cluster)Package object requesting this package content.

func (*TemplateContextPackage) DeepCopy added in v1.1.0

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

func (*TemplateContextPackage) DeepCopyInto added in v1.1.0

func (in *TemplateContextPackage) DeepCopyInto(out *TemplateContextPackage)

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