Documentation
¶
Overview ¶
Package v1alpha1 is the v1alpha1 version of the API.
Index ¶
- Constants
- Variables
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- type BGPCommunity
- type BGPVIPConfig
- type BGPVIPConfigList
- type BGPVIPConfigSpec
- type BGPVIPConfigStatus
- type BGPVIPHostPeers
- type BGPVIPPasswordSecret
- type BGPVIPPeer
- type FailureDetectionMode
- type ImageDigestFormat
- type InternalReleaseImage
- func (in *InternalReleaseImage) DeepCopy() *InternalReleaseImage
- func (in *InternalReleaseImage) DeepCopyInto(out *InternalReleaseImage)
- func (in *InternalReleaseImage) DeepCopyObject() runtime.Object
- func (in InternalReleaseImage) OpenAPIModelName() string
- func (InternalReleaseImage) SwaggerDoc() map[string]string
- type InternalReleaseImageBundleStatus
- func (in *InternalReleaseImageBundleStatus) DeepCopy() *InternalReleaseImageBundleStatus
- func (in *InternalReleaseImageBundleStatus) DeepCopyInto(out *InternalReleaseImageBundleStatus)
- func (in InternalReleaseImageBundleStatus) OpenAPIModelName() string
- func (InternalReleaseImageBundleStatus) SwaggerDoc() map[string]string
- type InternalReleaseImageConditionType
- type InternalReleaseImageList
- func (in *InternalReleaseImageList) DeepCopy() *InternalReleaseImageList
- func (in *InternalReleaseImageList) DeepCopyInto(out *InternalReleaseImageList)
- func (in *InternalReleaseImageList) DeepCopyObject() runtime.Object
- func (in InternalReleaseImageList) OpenAPIModelName() string
- func (InternalReleaseImageList) SwaggerDoc() map[string]string
- type InternalReleaseImageRef
- type InternalReleaseImageSpec
- type InternalReleaseImageStatus
- type InternalReleaseImageStatusConditionType
- type OSImageStream
- type OSImageStreamList
- type OSImageStreamSet
- type OSImageStreamSpec
- type OSImageStreamStatus
- type PeerReachabilityMode
Constants ¶
const ( // BGPVIPConfigRendered is set by the machine-config-operator when the // per-node peer configuration reflecting the current spec generation // has been rendered. BGPVIPConfigRendered = "Rendered" // BGPVIPConfigSessionsConfigured is set by the cluster-network-operator // when the FRR session configuration reflecting the current spec has // been rendered for application. It does not assert admission-webhook // acceptance or on-node application of the generated FRRConfiguration. BGPVIPConfigSessionsConfigured = "SessionsConfigured" )
Variables ¶
var ( GroupName = "machineconfiguration.openshift.io" GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} // Install is a function which adds this version to a scheme Install = schemeBuilder.AddToScheme // SchemeGroupVersion generated code relies on this name // Deprecated SchemeGroupVersion = GroupVersion // AddToScheme exists solely to keep the old generators creating valid code // DEPRECATED AddToScheme = schemeBuilder.AddToScheme )
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource generated code relies on this being here, but it logically belongs to the group DEPRECATED
Types ¶
type BGPCommunity ¶
type BGPCommunity string
BGPCommunity is a BGP community string: colon-separated decimal numbers without leading zeros - "n:n" for a classic community (RFC 1997, 16-bit segments of at least 0 and not exceeding 65535) or "n:n:n" for a large community (RFC 8092, 32-bit segments of at least 0 and not exceeding 4294967295). Must be at least 3 characters in length and must not exceed 32 characters. +kubebuilder:validation:MinLength=3 +kubebuilder:validation:MaxLength=32 +kubebuilder:validation:XValidation:rule="self.matches('^(0|[1-9][0-9]*)(:(0|[1-9][0-9]*)){1,2}$')",message="must be a classic (n:n) or large (n:n:n) BGP community: colon-separated decimal numbers without leading zeros" +kubebuilder:validation:XValidation:rule="!self.matches('^(0|[1-9][0-9]*)(:(0|[1-9][0-9]*)){1,2}$') || (self.split(':').size() == 2 ? self.split(':').all(s, s.size() <= 5 && int(s) <= 65535) : self.split(':').all(s, s.size() <= 10 && int(s) <= 4294967295))",message="classic community (n:n) segments must be between 0 and 65535; large community (n:n:n) segments must be between 0 and 4294967295"
type BGPVIPConfig ¶
type BGPVIPConfig struct {
metav1.TypeMeta `json:",inline"`
// metadata is the standard object's metadata.
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
// +required
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec is the desired BGP VIP peering configuration.
// +required
Spec BGPVIPConfigSpec `json:"spec,omitempty,omitzero"`
// status reports the consumers' progress applying the configuration.
// +optional
Status BGPVIPConfigStatus `json:"status,omitempty,omitzero"`
}
BGPVIPConfig carries the BGP peering configuration for BGP-based VIP management (enhancement openshift/enhancements#1982). It is a singleton named "cluster", generated by the installer from platform.baremetal.bgpVIPConfig in the install-config, and may be edited day-2 to reconfigure peering. The configuration is rendered into node-level BGP configuration by its consumers, the machine-config-operator and the cluster-network-operator, which report their progress in status.
Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.
func (*BGPVIPConfig) DeepCopy ¶
func (in *BGPVIPConfig) DeepCopy() *BGPVIPConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BGPVIPConfig.
func (*BGPVIPConfig) DeepCopyInto ¶
func (in *BGPVIPConfig) DeepCopyInto(out *BGPVIPConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BGPVIPConfig) DeepCopyObject ¶
func (in *BGPVIPConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (BGPVIPConfig) OpenAPIModelName ¶
func (in BGPVIPConfig) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (BGPVIPConfig) SwaggerDoc ¶
func (BGPVIPConfig) SwaggerDoc() map[string]string
type BGPVIPConfigList ¶
type BGPVIPConfigList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []BGPVIPConfig `json:"items"`
}
BGPVIPConfigList is a list of BGPVIPConfig resources.
Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.
func (*BGPVIPConfigList) DeepCopy ¶
func (in *BGPVIPConfigList) DeepCopy() *BGPVIPConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BGPVIPConfigList.
func (*BGPVIPConfigList) DeepCopyInto ¶
func (in *BGPVIPConfigList) DeepCopyInto(out *BGPVIPConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BGPVIPConfigList) DeepCopyObject ¶
func (in *BGPVIPConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (BGPVIPConfigList) OpenAPIModelName ¶
func (in BGPVIPConfigList) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (BGPVIPConfigList) SwaggerDoc ¶
func (BGPVIPConfigList) SwaggerDoc() map[string]string
type BGPVIPConfigSpec ¶
type BGPVIPConfigSpec struct {
// localASN is the BGP autonomous system number (ASN) the cluster's BGP
// speakers present to the configured peers. Use the ASN your network
// administrator assigned to the cluster - the peer routers must expect
// it or no session establishes; private-range ASNs (e.g. 64512-65534)
// are typical for datacenter fabrics. Must be at least 1 and must not
// exceed 4294967295.
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=4294967295
// +required
LocalASN int64 `json:"localASN,omitempty"`
// defaultPeers are the BGP peers every node establishes sessions with,
// unless the node is named in hostOverrides. Must have at least 1 entry
// and must not exceed 16 entries, unique by peerAddress.
// +listType=map
// +listMapKey=peerAddress
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=16
// +required
DefaultPeers []BGPVIPPeer `json:"defaultPeers,omitempty"`
// communities are BGP community strings attached to the VIP
// advertisements: "n:n" classic communities (RFC 1997) where each
// segment is a 16-bit value of at least 0 and not exceeding 65535, or
// "n:n:n" large communities (RFC 8092) where each segment is a 32-bit
// value of at least 0 and not exceeding 4294967295. When omitted, no
// communities are attached. Entries are unique; when set, must have at
// least 1 entry and must not exceed 8 entries.
// +listType=set
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=8
// +optional
Communities []BGPCommunity `json:"communities,omitempty"`
// hostOverrides replaces (does not merge with) defaultPeers for the
// named nodes. Only the per-node peer file rendered by the
// machine-config-operator consumes overrides; the cluster-wide session
// configuration rendered by the cluster-network-operator uses
// defaultPeers. When omitted, all nodes use defaultPeers; when set, must
// have at least 1 entry and must not exceed 256 entries, unique by
// hostname.
// +listType=map
// +listMapKey=hostname
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=256
// +optional
HostOverrides []BGPVIPHostPeers `json:"hostOverrides,omitempty"`
}
BGPVIPConfigSpec describes the BGP peering used to advertise the API and Ingress VIPs.
func (*BGPVIPConfigSpec) DeepCopy ¶
func (in *BGPVIPConfigSpec) DeepCopy() *BGPVIPConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BGPVIPConfigSpec.
func (*BGPVIPConfigSpec) DeepCopyInto ¶
func (in *BGPVIPConfigSpec) DeepCopyInto(out *BGPVIPConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (BGPVIPConfigSpec) OpenAPIModelName ¶
func (in BGPVIPConfigSpec) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (BGPVIPConfigSpec) SwaggerDoc ¶
func (BGPVIPConfigSpec) SwaggerDoc() map[string]string
type BGPVIPConfigStatus ¶
type BGPVIPConfigStatus struct {
// conditions reports the state of processing the configuration; when
// set, must have at least 1 entry and must not exceed 8 entries. Known
// condition types are "Rendered" (the machine-config-operator has
// rendered the per-node peer configuration) and "SessionsConfigured"
// (the cluster-network-operator has rendered the FRR session
// configuration for application). SessionsConfigured does not assert
// that the generated FRRConfiguration was accepted by the frr-k8s
// admission webhook or applied on the nodes. Each condition's
// observedGeneration reports the generation of the spec most recently
// processed by the operator that writes it.
// +listType=map
// +listMapKey=type
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=8
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
BGPVIPConfigStatus reports the consumers' progress applying the spec. +kubebuilder:validation:MinProperties=1
func (*BGPVIPConfigStatus) DeepCopy ¶
func (in *BGPVIPConfigStatus) DeepCopy() *BGPVIPConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BGPVIPConfigStatus.
func (*BGPVIPConfigStatus) DeepCopyInto ¶
func (in *BGPVIPConfigStatus) DeepCopyInto(out *BGPVIPConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (BGPVIPConfigStatus) OpenAPIModelName ¶
func (in BGPVIPConfigStatus) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (BGPVIPConfigStatus) SwaggerDoc ¶
func (BGPVIPConfigStatus) SwaggerDoc() map[string]string
type BGPVIPHostPeers ¶
type BGPVIPHostPeers struct {
// hostname of the node this override applies to, as a non-empty RFC
// 1123 subdomain of at most 253 characters with dot-separated labels of
// at most 63 characters each. It is compared verbatim against
// the hostname the node resolves for itself (as rendered into the
// per-node peer file), so a short name and its fully qualified form are
// distinct entries and only the exact match applies.
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
// +kubebuilder:validation:XValidation:rule="self.matches('^[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?(\\\\.[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?)*$')",message="hostname must be an RFC 1123 subdomain with labels of at most 63 characters"
// +required
Hostname string `json:"hostname,omitempty"`
// peers replaces defaultPeers for this node. Must have at least 1 entry
// and must not exceed 16 entries, unique by peerAddress.
// +listType=map
// +listMapKey=peerAddress
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=16
// +required
Peers []BGPVIPPeer `json:"peers,omitempty"`
}
BGPVIPHostPeers is a per-node replacement peer list.
func (*BGPVIPHostPeers) DeepCopy ¶
func (in *BGPVIPHostPeers) DeepCopy() *BGPVIPHostPeers
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BGPVIPHostPeers.
func (*BGPVIPHostPeers) DeepCopyInto ¶
func (in *BGPVIPHostPeers) DeepCopyInto(out *BGPVIPHostPeers)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (BGPVIPHostPeers) OpenAPIModelName ¶
func (in BGPVIPHostPeers) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (BGPVIPHostPeers) SwaggerDoc ¶
func (BGPVIPHostPeers) SwaggerDoc() map[string]string
type BGPVIPPasswordSecret ¶
type BGPVIPPasswordSecret struct {
// name is the metadata.name of the referenced Secret in the
// openshift-config namespace. Must be a non-empty RFC 1123 subdomain of
// at most 253 characters, matching what Kubernetes accepts as a Secret
// name.
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
// +kubebuilder:validation:XValidation:rule="self.matches('^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$')",message="name must be a lowercase RFC 1123 subdomain"
// +required
Name string `json:"name,omitempty"`
}
BGPVIPPasswordSecret references a Secret in the openshift-config namespace by name.
func (*BGPVIPPasswordSecret) DeepCopy ¶
func (in *BGPVIPPasswordSecret) DeepCopy() *BGPVIPPasswordSecret
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BGPVIPPasswordSecret.
func (*BGPVIPPasswordSecret) DeepCopyInto ¶
func (in *BGPVIPPasswordSecret) DeepCopyInto(out *BGPVIPPasswordSecret)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (BGPVIPPasswordSecret) OpenAPIModelName ¶
func (in BGPVIPPasswordSecret) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (BGPVIPPasswordSecret) SwaggerDoc ¶
func (BGPVIPPasswordSecret) SwaggerDoc() map[string]string
type BGPVIPPeer ¶
type BGPVIPPeer struct {
// peerAddress is the IP address of the BGP peer (IPv4 or IPv6) in
// canonical form (lowercase, no leading zeros, IPv6 zero-compressed);
// must be at least 2 characters in length and must not exceed 45
// characters. The session's address family follows the address family
// of this value. Canonical form is required so that two
// spellings of one address cannot form duplicate peers.
// +kubebuilder:validation:MinLength=2
// +kubebuilder:validation:MaxLength=45
// +kubebuilder:validation:XValidation:rule="isIP(self) && ip.isCanonical(self)",message="peerAddress must be a valid IP address in canonical form"
// +required
PeerAddress string `json:"peerAddress,omitempty"`
// peerASN is the autonomous system number of the peer. Must be at
// least 1 and must not exceed 4294967295.
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=4294967295
// +required
PeerASN int64 `json:"peerASN,omitempty"`
// passwordSecret references the Secret carrying the TCP MD5 password
// (RFC 2385) for the session. The Secret must be of type
// kubernetes.io/basic-auth, live in the openshift-config namespace, and
// carry the password in its "password" key (at most 80 bytes, the
// kernel's TCP MD5 limit). The Secret type, key, and size requirements
// are not validated by the API server; the consumers validate them when
// resolving the reference and must never surface the Secret contents in
// status, events, or logs. Passwords are never stored in this API. When
// omitted, the session is unauthenticated.
// +optional
PasswordSecret BGPVIPPasswordSecret `json:"passwordSecret,omitempty,omitzero"`
// port is the TCP port of the BGP session; must be at least 1 and must
// not exceed 65535. When omitted, port 179 is used.
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=65535
// +optional
Port int32 `json:"port,omitempty"`
// failureDetection determines how a failed peer is detected. When set
// to "BFD", a BFD session is established with the peer and BGP reacts
// to BFD failure detection. When set to "HoldTimer", failure detection
// relies on the BGP hold timer alone. When omitted, failure detection
// relies on the BGP hold timer.
// +optional
FailureDetection FailureDetectionMode `json:"failureDetection,omitempty"`
// peerReachability describes how the peer is reached. When set to
// "MultiHop", the session may be established with a peer several
// router hops away. When set to "DirectlyConnected", the peer must be
// on a directly connected network. When omitted, the peer must be
// directly connected.
// +optional
PeerReachability PeerReachabilityMode `json:"peerReachability,omitempty"`
// holdTimeSeconds is the BGP hold time in seconds; must be at least 3
// (the RFC 4271 minimum for a non-zero hold time) and must not exceed
// 65535. When omitted, no hold time is configured and the FRR default
// (180 seconds) applies.
// When both holdTimeSeconds and keepaliveTimeSeconds are set,
// holdTimeSeconds must be at least 3 times keepaliveTimeSeconds.
// +kubebuilder:validation:Minimum=3
// +kubebuilder:validation:Maximum=65535
// +optional
HoldTimeSeconds int32 `json:"holdTimeSeconds,omitempty"`
// keepaliveTimeSeconds is the BGP keepalive interval in seconds; must
// be at least 1 and must not exceed 65535. When omitted, no keepalive
// interval is configured and the FRR default (60 seconds) applies. When both
// holdTimeSeconds and keepaliveTimeSeconds are set, holdTimeSeconds
// must be at least 3 times keepaliveTimeSeconds.
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=65535
// +optional
KeepaliveTimeSeconds int32 `json:"keepaliveTimeSeconds,omitempty"`
}
BGPVIPPeer describes one BGP peer. +kubebuilder:validation:XValidation:rule="!(has(self.holdTimeSeconds) && has(self.keepaliveTimeSeconds)) || self.holdTimeSeconds >= 3 * self.keepaliveTimeSeconds",message="holdTimeSeconds must be at least 3 times keepaliveTimeSeconds"
func (*BGPVIPPeer) DeepCopy ¶
func (in *BGPVIPPeer) DeepCopy() *BGPVIPPeer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BGPVIPPeer.
func (*BGPVIPPeer) DeepCopyInto ¶
func (in *BGPVIPPeer) DeepCopyInto(out *BGPVIPPeer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (BGPVIPPeer) OpenAPIModelName ¶
func (in BGPVIPPeer) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (BGPVIPPeer) SwaggerDoc ¶
func (BGPVIPPeer) SwaggerDoc() map[string]string
type FailureDetectionMode ¶
type FailureDetectionMode string
FailureDetectionMode describes what detects a failed BGP peer. +kubebuilder:validation:Enum:=BFD;HoldTimer
const ( // FailureDetectionBFD backs the session with a BFD session for fast // failure detection. FailureDetectionBFD FailureDetectionMode = "BFD" // FailureDetectionHoldTimer relies on the BGP hold timer alone. FailureDetectionHoldTimer FailureDetectionMode = "HoldTimer" )
type ImageDigestFormat ¶
type ImageDigestFormat string
ImageDigestFormat is a type that conforms to the format host[:port][/namespace]/name@sha256:<digest>. The digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. The length of the field must be between 1 to 447 characters. +kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=447 +kubebuilder:validation:XValidation:rule=`(self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$'))`,message="the OCI Image reference must end with a valid '@sha256:<digest>' suffix, where '<digest>' is 64 characters long" +kubebuilder:validation:XValidation:rule=`(self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$'))`,message="the OCI Image name should follow the host[:port][/namespace]/name format, resembling a valid URL without the scheme"
type InternalReleaseImage ¶
type InternalReleaseImage struct {
metav1.TypeMeta `json:",inline"`
// metadata is the standard object's metadata.
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
// +required
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec describes the configuration of this internal release image.
// +required
Spec InternalReleaseImageSpec `json:"spec,omitempty,omitzero"`
// status describes the last observed state of this internal release image.
// +optional
Status InternalReleaseImageStatus `json:"status,omitempty,omitzero"`
}
InternalReleaseImage is used to keep track and manage a set of release bundles (OCP and OLM operators images) that are stored into the control planes nodes.
Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4
func (*InternalReleaseImage) DeepCopy ¶
func (in *InternalReleaseImage) DeepCopy() *InternalReleaseImage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalReleaseImage.
func (*InternalReleaseImage) DeepCopyInto ¶
func (in *InternalReleaseImage) DeepCopyInto(out *InternalReleaseImage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*InternalReleaseImage) DeepCopyObject ¶
func (in *InternalReleaseImage) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (InternalReleaseImage) OpenAPIModelName ¶
func (in InternalReleaseImage) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (InternalReleaseImage) SwaggerDoc ¶
func (InternalReleaseImage) SwaggerDoc() map[string]string
type InternalReleaseImageBundleStatus ¶
type InternalReleaseImageBundleStatus struct {
// conditions represent the observations of an internal release image current state. Valid types are:
// Mounted, Installing, Available, Removing and Degraded.
//
// If Mounted is true, that means that a valid ISO has been discovered and mounted on one of the cluster nodes.
// If Installing is true, that means that a new release bundle is currently being copied on one (or more) cluster nodes, and not yet completed.
// If Available is true, it means that the release has been previously installed on all the cluster nodes, and it can be used.
// If Removing is true, it means that a release deletion is in progress on one (or more) cluster nodes, and not yet completed.
// If Degraded is true, that means something has gone wrong (possibly on one or more cluster nodes).
//
// In general, after installing a new release bundle, it is required to wait for the Conditions "Available" to become "True" (and all
// the other conditions to be equal to "False") before being able to pull its content.
//
// +listType=map
// +listMapKey=type
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=5
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
// name indicates the desired release bundle identifier. This field is required and must be between 1 and 64 characters long.
// The expected name format is ocp-release-bundle-<version>-<arch|stream>.
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=64
// +kubebuilder:validation:XValidation:rule=`self.matches('^ocp-release-bundle-[0-9]+\\.[0-9]+\\.[0-9]+-[A-Za-z0-9._-]+$')`,message="must be ocp-release-bundle-<version>-<arch|stream> and <= 64 chars"
// +required
Name string `json:"name,omitempty"`
// image is an OCP release image referenced by digest.
// The format of the image pull spec is: host[:port][/namespace]/name@sha256:<digest>,
// where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9.
// The length of the whole spec must be between 1 to 447 characters.
// The field is optional, and it will be provided after a release will be successfully installed.
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=447
// +kubebuilder:validation:XValidation:rule=`(self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$'))`,message="the OCI Image reference must end with a valid '@sha256:<digest>' suffix, where '<digest>' is 64 characters long"
// +kubebuilder:validation:XValidation:rule=`(self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$'))`,message="the OCI Image name should follow the host[:port][/namespace]/name format, resembling a valid URL without the scheme"
// +optional
Image string `json:"image,omitempty"`
}
func (*InternalReleaseImageBundleStatus) DeepCopy ¶
func (in *InternalReleaseImageBundleStatus) DeepCopy() *InternalReleaseImageBundleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalReleaseImageBundleStatus.
func (*InternalReleaseImageBundleStatus) DeepCopyInto ¶
func (in *InternalReleaseImageBundleStatus) DeepCopyInto(out *InternalReleaseImageBundleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (InternalReleaseImageBundleStatus) OpenAPIModelName ¶
func (in InternalReleaseImageBundleStatus) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (InternalReleaseImageBundleStatus) SwaggerDoc ¶
func (InternalReleaseImageBundleStatus) SwaggerDoc() map[string]string
type InternalReleaseImageConditionType ¶
type InternalReleaseImageConditionType string
InternalReleaseImageConditionType is each possible state for each possible InternalReleaseImageBundleStatus conditions type. +enum
const ( // InternalReleaseImageConditionTypeMounted describes a new release, not yet installed, that has been discovered when an ISO has been attached to // one of the control plane nodes InternalReleaseImageConditionTypeMounted InternalReleaseImageConditionType = "Mounted" // InternalReleaseImageConditionTypeInstalling describes a new release that is getting installed in the cluster. Due the size of the data // transfered, the operation could take several minutes. The condition will remain in such state until all the control plane nodes will // complete the installing operation InternalReleaseImageConditionTypeInstalling InternalReleaseImageConditionType = "Installing" // InternalReleaseImageConditionTypeAvailable describes a release that has been successfully installed in the cluster, ready to be consumed. This // means that the release has been successfully installed on all the control plane nodes InternalReleaseImageConditionTypeAvailable InternalReleaseImageConditionType = "Available" // InternalReleaseImageConditionTypeRemoving describes an existing release that is getting removed from the cluster. The condition will remain in such // state until all the control plane nodes will complete the removal operation InternalReleaseImageConditionTypeRemoving InternalReleaseImageConditionType = "Removing" // InternalReleaseImageConditionTypeDegraded describes a failure, happened in one or more control plane nodes, for the current release InternalReleaseImageConditionTypeDegraded InternalReleaseImageConditionType = "Degraded" )
type InternalReleaseImageList ¶
type InternalReleaseImageList struct {
metav1.TypeMeta `json:",inline"`
// metadata is the standard list's metadata.
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
metav1.ListMeta `json:"metadata"`
Items []InternalReleaseImage `json:"items"`
}
InternalReleaseImageList is a list of InternalReleaseImage resources
Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4
func (*InternalReleaseImageList) DeepCopy ¶
func (in *InternalReleaseImageList) DeepCopy() *InternalReleaseImageList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalReleaseImageList.
func (*InternalReleaseImageList) DeepCopyInto ¶
func (in *InternalReleaseImageList) DeepCopyInto(out *InternalReleaseImageList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*InternalReleaseImageList) DeepCopyObject ¶
func (in *InternalReleaseImageList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (InternalReleaseImageList) OpenAPIModelName ¶
func (in InternalReleaseImageList) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (InternalReleaseImageList) SwaggerDoc ¶
func (InternalReleaseImageList) SwaggerDoc() map[string]string
type InternalReleaseImageRef ¶
type InternalReleaseImageRef struct {
// name indicates the desired release bundle identifier. This field is required and must be between 1 and 64 characters long.
// The expected name format is ocp-release-bundle-<version>-<arch|stream>.
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=64
// +kubebuilder:validation:XValidation:rule=`self.matches('^ocp-release-bundle-[0-9]+\\.[0-9]+\\.[0-9]+-[A-Za-z0-9._-]+$')`,message="must be ocp-release-bundle-<version>-<arch|stream> and <= 64 chars"
Name string `json:"name,omitempty"`
}
InternalReleaseImageRef is used to provide a simple reference for a release bundle. Currently it contains only the name field.
func (*InternalReleaseImageRef) DeepCopy ¶
func (in *InternalReleaseImageRef) DeepCopy() *InternalReleaseImageRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalReleaseImageRef.
func (*InternalReleaseImageRef) DeepCopyInto ¶
func (in *InternalReleaseImageRef) DeepCopyInto(out *InternalReleaseImageRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (InternalReleaseImageRef) OpenAPIModelName ¶
func (in InternalReleaseImageRef) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (InternalReleaseImageRef) SwaggerDoc ¶
func (InternalReleaseImageRef) SwaggerDoc() map[string]string
type InternalReleaseImageSpec ¶
type InternalReleaseImageSpec struct {
// releases is a list of release bundle identifiers that the user wants to
// add/remove to/from the control plane nodes.
// Entries must be unique, keyed on the name field.
// releases must contain at least one entry and must not exceed 16 entries.
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=16
// +listType=map
// +listMapKey=name
// +required
Releases []InternalReleaseImageRef `json:"releases,omitempty"`
}
InternalReleaseImageSpec defines the desired state of a InternalReleaseImage.
func (*InternalReleaseImageSpec) DeepCopy ¶
func (in *InternalReleaseImageSpec) DeepCopy() *InternalReleaseImageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalReleaseImageSpec.
func (*InternalReleaseImageSpec) DeepCopyInto ¶
func (in *InternalReleaseImageSpec) DeepCopyInto(out *InternalReleaseImageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (InternalReleaseImageSpec) OpenAPIModelName ¶
func (in InternalReleaseImageSpec) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (InternalReleaseImageSpec) SwaggerDoc ¶
func (InternalReleaseImageSpec) SwaggerDoc() map[string]string
type InternalReleaseImageStatus ¶
type InternalReleaseImageStatus struct {
// conditions represent the observations of the InternalReleaseImage controller current state.
// Valid types are: Degraded.
// If Degraded is true, that means something has gone wrong in the controller.
// +listType=map
// +listMapKey=type
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=20
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
// releases is a list of the release bundles currently owned and managed by the
// cluster.
// A release bundle content could be safely pulled only when its Conditions field
// contains at least an Available entry set to "True" and Degraded to "False".
// Entries must be unique, keyed on the name field.
// releases must contain at least one entry and must not exceed 32 entries.
// +listType=map
// +listMapKey=name
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=32
// +required
Releases []InternalReleaseImageBundleStatus `json:"releases,omitempty"`
}
InternalReleaseImageStatus describes the current state of a InternalReleaseImage.
func (*InternalReleaseImageStatus) DeepCopy ¶
func (in *InternalReleaseImageStatus) DeepCopy() *InternalReleaseImageStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalReleaseImageStatus.
func (*InternalReleaseImageStatus) DeepCopyInto ¶
func (in *InternalReleaseImageStatus) DeepCopyInto(out *InternalReleaseImageStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (InternalReleaseImageStatus) OpenAPIModelName ¶
func (in InternalReleaseImageStatus) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (InternalReleaseImageStatus) SwaggerDoc ¶
func (InternalReleaseImageStatus) SwaggerDoc() map[string]string
type InternalReleaseImageStatusConditionType ¶
type InternalReleaseImageStatusConditionType string
InternalReleaseImageStatusConditionType describes the possible states for InternalReleaseImageStatus. +enum
const ( // InternalReleaseImageStatusConditionTypeDegraded describes a failure in the controller. InternalReleaseImageStatusConditionTypeDegraded InternalReleaseImageStatusConditionType = "Degraded" )
type OSImageStream ¶
type OSImageStream struct {
metav1.TypeMeta `json:",inline"`
// metadata is the standard object's metadata.
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec contains the desired OSImageStream config configuration.
// +required
Spec *OSImageStreamSpec `json:"spec,omitempty"`
// status describes the last observed state of this OSImageStream.
// Populated by the MachineConfigOperator after reading release metadata.
// When not present, the controller has not yet reconciled this resource.
// +optional
Status OSImageStreamStatus `json:"status,omitempty,omitzero"`
}
OSImageStream describes a set of streams and associated images available for the MachineConfigPools to be used as base OS images.
The resource is a singleton named "cluster".
Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4 +kubebuilder:object:root=true +kubebuilder:resource:path=osimagestreams,scope=Cluster +kubebuilder:subresource:status +openshift:api-approved.openshift.io=https://github.com/openshift/api/pull/2555 +openshift:file-pattern=cvoRunLevel=0000_80,operatorName=machine-config,operatorOrdering=01 +openshift:enable:FeatureGate=OSStreams +kubebuilder:metadata:labels=openshift.io/operator-managed= +kubebuilder:validation:XValidation:rule="self.metadata.name == 'cluster'",message="osimagestream is a singleton, .metadata.name must be 'cluster'" +kubebuilder:validation:XValidation:rule="self.spec == oldSelf.spec || !has(self.spec.defaultStream) || !has(self.status) || self.spec.defaultStream in self.status.availableStreams.map(s, s.name)",message="spec.defaultStream must reference an existing stream name from status.availableStreams"
func (*OSImageStream) DeepCopy ¶
func (in *OSImageStream) DeepCopy() *OSImageStream
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSImageStream.
func (*OSImageStream) DeepCopyInto ¶
func (in *OSImageStream) DeepCopyInto(out *OSImageStream)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OSImageStream) DeepCopyObject ¶
func (in *OSImageStream) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (OSImageStream) OpenAPIModelName ¶
func (in OSImageStream) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (OSImageStream) SwaggerDoc ¶
func (OSImageStream) SwaggerDoc() map[string]string
type OSImageStreamList ¶
type OSImageStreamList struct {
metav1.TypeMeta `json:",inline"`
// metadata is the standard list's metadata.
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
metav1.ListMeta `json:"metadata"`
Items []OSImageStream `json:"items"`
}
OSImageStreamList is a list of OSImageStream resources
Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4
func (*OSImageStreamList) DeepCopy ¶
func (in *OSImageStreamList) DeepCopy() *OSImageStreamList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSImageStreamList.
func (*OSImageStreamList) DeepCopyInto ¶
func (in *OSImageStreamList) DeepCopyInto(out *OSImageStreamList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OSImageStreamList) DeepCopyObject ¶
func (in *OSImageStreamList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (OSImageStreamList) OpenAPIModelName ¶
func (in OSImageStreamList) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (OSImageStreamList) SwaggerDoc ¶
func (OSImageStreamList) SwaggerDoc() map[string]string
type OSImageStreamSet ¶
type OSImageStreamSet struct {
// name is the required identifier of the stream.
//
// name is determined by the operator based on the OCI label of the
// discovered OS or Extension Image.
//
// Must be a valid RFC 1123 subdomain between 1 and 253 characters in length,
// consisting of lowercase alphanumeric characters, hyphens ('-'), and periods ('.').
//
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
Name string `json:"name,omitempty"`
// osImage is a required OS Image referenced by digest.
//
// osImage contains the immutable, fundamental operating system components, including the kernel
// and base utilities, that define the core environment for the node's host operating system.
//
// The format of the image pull spec is: host[:port][/namespace]/name@sha256:<digest>,
// where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9.
// The length of the whole spec must be between 1 to 447 characters.
// +required
OSImage ImageDigestFormat `json:"osImage,omitempty"`
// osExtensionsImage is a required OS Extensions Image referenced by digest.
//
// osExtensionsImage bundles the extra repositories used to enable extensions, augmenting
// the base operating system without modifying the underlying immutable osImage.
//
// The format of the image pull spec is: host[:port][/namespace]/name@sha256:<digest>,
// where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9.
// The length of the whole spec must be between 1 to 447 characters.
// +required
OSExtensionsImage ImageDigestFormat `json:"osExtensionsImage,omitempty"`
}
func (*OSImageStreamSet) DeepCopy ¶
func (in *OSImageStreamSet) DeepCopy() *OSImageStreamSet
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSImageStreamSet.
func (*OSImageStreamSet) DeepCopyInto ¶
func (in *OSImageStreamSet) DeepCopyInto(out *OSImageStreamSet)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (OSImageStreamSet) OpenAPIModelName ¶
func (in OSImageStreamSet) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (OSImageStreamSet) SwaggerDoc ¶
func (OSImageStreamSet) SwaggerDoc() map[string]string
type OSImageStreamSpec ¶
type OSImageStreamSpec struct {
// defaultStream is the desired name of the stream that should be used as the
// default when no specific stream is requested by a MachineConfigPool.
//
// This field is set by the installer during installation. Users may need to
// update it if the currently selected stream is no longer available, for
// example when the stream has reached its End of Life.
// The MachineConfigOperator uses this value to determine which stream from
// status.availableStreams to apply as the default for MachineConfigPools
// that do not specify a stream override.
//
// When status.availableStreams has been populated by the operator, updating
// this field requires that the new value references the name of one of the
// streams in status.availableStreams. Status-only updates by the operator
// are not subject to this constraint, allowing the operator to update
// availableStreams independently of this field.
// During initial creation, before the operator has populated status, any
// valid value is accepted.
//
// When omitted, the operator determines the default stream automatically.
// Once set, this field cannot be removed.
//
// It must be a valid RFC 1123 subdomain between 1 and 253 characters in length,
// consisting of lowercase alphanumeric characters, hyphens ('-'), and periods ('.').
//
// +optional
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
DefaultStream string `json:"defaultStream,omitempty"`
}
OSImageStreamSpec defines the desired state of a OSImageStream. +kubebuilder:validation:XValidation:rule="!has(oldSelf.defaultStream) || has(self.defaultStream)",message="spec.defaultStream cannot be removed once set"
func (*OSImageStreamSpec) DeepCopy ¶
func (in *OSImageStreamSpec) DeepCopy() *OSImageStreamSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSImageStreamSpec.
func (*OSImageStreamSpec) DeepCopyInto ¶
func (in *OSImageStreamSpec) DeepCopyInto(out *OSImageStreamSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (OSImageStreamSpec) OpenAPIModelName ¶
func (in OSImageStreamSpec) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (OSImageStreamSpec) SwaggerDoc ¶
func (OSImageStreamSpec) SwaggerDoc() map[string]string
type OSImageStreamStatus ¶
type OSImageStreamStatus struct {
// availableStreams is a list of the available OS Image Streams that can be
// used as the base image for MachineConfigPools.
// availableStreams is required, must have at least one item, must not exceed
// 100 items, and must have unique entries keyed on the name field.
//
// +required
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=100
// +listType=map
// +listMapKey=name
AvailableStreams []OSImageStreamSet `json:"availableStreams,omitempty"`
// defaultStream is the name of the stream that should be used as the default
// when no specific stream is requested by a MachineConfigPool.
//
// It must be a valid RFC 1123 subdomain between 1 and 253 characters in length,
// consisting of lowercase alphanumeric characters, hyphens ('-'), and periods ('.'),
// and must reference the name of one of the streams in availableStreams.
//
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
DefaultStream string `json:"defaultStream,omitempty"`
}
OSImageStreamStatus describes the current state of a OSImageStream +kubebuilder:validation:XValidation:rule="self.defaultStream in self.availableStreams.map(s, s.name)",message="defaultStream must reference a stream name from availableStreams"
func (*OSImageStreamStatus) DeepCopy ¶
func (in *OSImageStreamStatus) DeepCopy() *OSImageStreamStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSImageStreamStatus.
func (*OSImageStreamStatus) DeepCopyInto ¶
func (in *OSImageStreamStatus) DeepCopyInto(out *OSImageStreamStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (OSImageStreamStatus) OpenAPIModelName ¶
func (in OSImageStreamStatus) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (OSImageStreamStatus) SwaggerDoc ¶
func (OSImageStreamStatus) SwaggerDoc() map[string]string
type PeerReachabilityMode ¶
type PeerReachabilityMode string
PeerReachabilityMode describes how the BGP peer is reached. +kubebuilder:validation:Enum:=DirectlyConnected;MultiHop
const ( // PeerReachabilityDirectlyConnected requires the peer to be on a // directly connected network. PeerReachabilityDirectlyConnected PeerReachabilityMode = "DirectlyConnected" // PeerReachabilityMultiHop allows the session to cross multiple // router hops. PeerReachabilityMultiHop PeerReachabilityMode = "MultiHop" )