v1alpha1

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Aug 20, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

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

Index

Constants

View Source
const (
	// AuditWebhookKubeconfigKey is the key name in the AuditWebhook secret that stores audit webhook kubeconfig
	AuditWebhookKubeconfigKey                 = "webhook-kubeconfig"
	DisablePKIReconciliationAnnotation        = "hypershift.openshift.io/disable-pki-reconciliation"
	IdentityProviderOverridesAnnotationPrefix = "idpoverrides.hypershift.openshift.io/"
	OauthLoginURLOverrideAnnotation           = "oauth.hypershift.openshift.io/login-url-override"
	//KonnectivityServerImageAnnotation is a temporary annotation that allows the specification of the konnectivity server image.
	//This will be removed when Konnectivity is added to the Openshift release payload
	KonnectivityServerImageAnnotation = "hypershift.openshift.io/konnectivity-server-image"
	//KonnectivityAgentImageAnnotation is a temporary annotation that allows the specification of the konnectivity agent image.
	//This will be removed when Konnectivity is added to the Openshift release payload
	KonnectivityAgentImageAnnotation = "hypershift.openshift.io/konnectivity-agent-image"
	// RestartDateAnnotation is a annotation that can be used to trigger a rolling restart of all components managed by hypershift.
	// it is important in some situations like CA rotation where components need to be fully restarted to pick up new CAs. It's also
	// important in some recovery situations where a fresh start of the component helps fix symptoms a user might be experiencing.
	RestartDateAnnotation = "hypershift.openshift.io/restart-date"
	// ClusterAPIManagerImage is an annotation that allows the specification of the cluster api manager image.
	// This is a temporary workaround necessary for compliance reasons on the IBM Cloud side:
	// no images can be pulled from registries outside of IBM Cloud's official regional registries
	ClusterAPIManagerImage = "hypershift.openshift.io/capi-manager-image"
	// ClusterAutoscalerImage is an annotation that allows the specification of the cluster autoscaler image.
	// This is a temporary workaround necessary for compliance reasons on the IBM Cloud side:
	//no images can be pulled from registries outside of IBM Cloud's official regional registries
	ClusterAutoscalerImage = "hypershift.openshift.io/cluster-autoscaler-image"
)
View Source
const (
	IgnitionServerDeploymentAsExpectedReason    = "IgnitionServerDeploymentAsExpected"
	IgnitionServerDeploymentStatusUnknownReason = "IgnitionServerDeploymentStatusUnknown"
	IgnitionServerDeploymentNotFoundReason      = "IgnitionServerDeploymentNotFound"
	IgnitionServerDeploymentUnavailableReason   = "IgnitionServerDeploymentUnavailable"

	HostedClusterAsExpectedReason          = "HostedClusterAsExpected"
	HostedClusterUnhealthyComponentsReason = "UnhealthyControlPlaneComponents"

	UnmanagedEtcdStatusUnknownReason = "UnmanagedEtcdStatusUnknown"
	UnmanagedEtcdMisconfiguredReason = "UnmanagedEtcdMisconfigured"
	UnmanagedEtcdAsExpected          = "UnmanagedEtcdAsExpected"
)
View Source
const (
	NodePoolValidReleaseImageConditionType       = "ValidReleaseImage"
	NodePoolValidAMIConditionType                = "ValidAMI"
	NodePoolConfigValidConfigConditionType       = "ValidConfig"
	NodePoolUpdateManagementEnabledConditionType = "UpdateManagementEnabled"
	NodePoolAutoscalingEnabledConditionType      = "AutoscalingEnabled"
	NodePoolAutorepairEnabledConditionType       = "AutorepairEnabled"
	NodePoolUpdatingVersionConditionType         = "UpdatingVersion"
	NodePoolUpdatingConfigConditionType          = "UpdatingConfig"
	NodePoolAsExpectedConditionReason            = "AsExpected"
	NodePoolValidationFailedConditionReason      = "ValidationFailed"
)
View Source
const (
	IgnitionEndpointMissingReason string = "IgnitionEndpointMissing"
	IgnitionCACertMissingReason   string = "IgnitionCACertMissing"
)

The following are reasons for the IgnitionEndpointAvailable condition.

View Source
const UpgradeStrategyOnDelete = UpgradeStrategy("OnDelete")
View Source
const UpgradeStrategyRollingUpdate = UpgradeStrategy("RollingUpdate")
View Source
const UpgradeTypeInPlace = UpgradeType("InPlace")
View Source
const UpgradeTypeReplace = UpgradeType("Replace")

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "hypershift.openshift.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

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

Functions

This section is empty.

Types

type APIEndpoint

type APIEndpoint struct {
	// Host is the hostname on which the API server is serving.
	Host string `json:"host"`

	// Port is the port on which the API server is serving.
	Port int32 `json:"port"`
}

func (*APIEndpoint) DeepCopy

func (in *APIEndpoint) DeepCopy() *APIEndpoint

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

func (*APIEndpoint) DeepCopyInto

func (in *APIEndpoint) DeepCopyInto(out *APIEndpoint)

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

type APIServerNetworking

type APIServerNetworking struct {
	// AdvertiseAddress is the address that workers will use to talk to the
	// API server. This is an address associated with the loopback adapter of
	// each worker. If not specified, 172.20.0.1 is used.
	AdvertiseAddress *string `json:"advertiseAddress,omitempty"`

	// Port is the port at which the APIServer is exposed inside a worker node
	// Other pods using host networking cannot listen on this port. If not
	// specified, 6443 is used.
	Port *int32 `json:"port,omitempty"`
}

APIServerNetworking specifies how the APIServer is exposed inside a worker node.

func (*APIServerNetworking) DeepCopy

func (in *APIServerNetworking) DeepCopy() *APIServerNetworking

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

func (*APIServerNetworking) DeepCopyInto

func (in *APIServerNetworking) DeepCopyInto(out *APIServerNetworking)

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

type AWSCloudProviderConfig

type AWSCloudProviderConfig struct {
	// Subnet is the subnet to use for instances
	// +optional
	Subnet *AWSResourceReference `json:"subnet,omitempty"`

	// Zone is the availability zone where the instances are created
	// +optional
	Zone string `json:"zone,omitempty"`

	// VPC specifies the VPC used for the cluster
	VPC string `json:"vpc"`
}

func (*AWSCloudProviderConfig) DeepCopy

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

func (*AWSCloudProviderConfig) DeepCopyInto

func (in *AWSCloudProviderConfig) DeepCopyInto(out *AWSCloudProviderConfig)

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

type AWSNodePoolPlatform

type AWSNodePoolPlatform struct {
	// InstanceType defines the ec2 instance type.
	// eg. m4-large
	InstanceType    string `json:"instanceType"`
	InstanceProfile string `json:"instanceProfile,omitempty"`
	// Subnet is the subnet to use for instances
	// +optional
	Subnet *AWSResourceReference `json:"subnet,omitempty"`
	// AMI is the image id to use
	// +optional
	AMI string `json:"ami,omitempty"`
	// SecurityGroups is the set of security groups to associate with nodepool machines
	// +optional
	SecurityGroups []AWSResourceReference `json:"securityGroups,omitempty"`
}

AWSNodePoolPlatform stores the configuration for a node pool installed on AWS.

func (*AWSNodePoolPlatform) DeepCopy

func (in *AWSNodePoolPlatform) DeepCopy() *AWSNodePoolPlatform

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

func (*AWSNodePoolPlatform) DeepCopyInto

func (in *AWSNodePoolPlatform) DeepCopyInto(out *AWSNodePoolPlatform)

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

type AWSPlatformSpec

type AWSPlatformSpec struct {
	// Region is the AWS region for the cluster.
	// This is used by CRs that are consumed by OCP Operators.
	// E.g cluster-infrastructure-02-config.yaml and install-config.yaml
	// This is also used by nodePools to fetch the default boot AMI in a given payload.
	Region string `json:"region"`

	// CloudProviderConfig is used to generate the ConfigMap with the cloud config consumed
	// by the Control Plane components.
	// +optional
	CloudProviderConfig *AWSCloudProviderConfig `json:"cloudProviderConfig,omitempty"`

	// ServiceEndpoints list contains custom endpoints which will override default
	// service endpoint of AWS Services.
	// There must be only one ServiceEndpoint for a service.
	// +optional
	ServiceEndpoints []AWSServiceEndpoint `json:"serviceEndpoints,omitempty"`

	Roles []AWSRoleCredentials `json:"roles,omitempty"`

	// KubeCloudControllerCreds is a reference to a secret containing cloud
	// credentials with permissions matching the Kube cloud controller policy.
	// The secret should have exactly one key, `credentials`, whose value is
	// an AWS credentials file.
	KubeCloudControllerCreds corev1.LocalObjectReference `json:"kubeCloudControllerCreds"`

	// NodePoolManagementCreds is a reference to a secret containing cloud
	// credentials with permissions matching the noe pool management policy.
	// The secret should have exactly one key, `credentials`, whose value is
	// an AWS credentials file.
	NodePoolManagementCreds corev1.LocalObjectReference `json:"nodePoolManagementCreds"`
}

func (*AWSPlatformSpec) DeepCopy

func (in *AWSPlatformSpec) DeepCopy() *AWSPlatformSpec

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

func (*AWSPlatformSpec) DeepCopyInto

func (in *AWSPlatformSpec) DeepCopyInto(out *AWSPlatformSpec)

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

type AWSResourceReference

type AWSResourceReference struct {
	// ID of resource
	// +optional
	ID *string `json:"id,omitempty"`

	// ARN of resource
	// +optional
	ARN *string `json:"arn,omitempty"`

	// Filters is a set of key/value pairs used to identify a resource
	// They are applied according to the rules defined by the AWS API:
	// https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Filtering.html
	// +optional
	Filters []Filter `json:"filters,omitempty"`
}

AWSResourceReference is a reference to a specific AWS resource by ID, ARN, or filters. Only one of ID, ARN or Filters may be specified. Specifying more than one will result in a validation error.

func (*AWSResourceReference) DeepCopy

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

func (*AWSResourceReference) DeepCopyInto

func (in *AWSResourceReference) DeepCopyInto(out *AWSResourceReference)

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

type AWSRoleCredentials

type AWSRoleCredentials struct {
	ARN       string `json:"arn"`
	Namespace string `json:"namespace"`
	Name      string `json:"name"`
}

func (*AWSRoleCredentials) DeepCopy

func (in *AWSRoleCredentials) DeepCopy() *AWSRoleCredentials

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

func (*AWSRoleCredentials) DeepCopyInto

func (in *AWSRoleCredentials) DeepCopyInto(out *AWSRoleCredentials)

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

type AWSServiceEndpoint

type AWSServiceEndpoint struct {
	// Name is the name of the AWS service.
	// This must be provided and cannot be empty.
	Name string `json:"name"`

	// URL is fully qualified URI with scheme https, that overrides the default generated
	// endpoint for a client.
	// This must be provided and cannot be empty.
	//
	// +kubebuilder:validation:Pattern=`^https://`
	URL string `json:"url"`
}

AWSServiceEndpoint stores the configuration for services to override existing defaults of AWS Services.

func (*AWSServiceEndpoint) DeepCopy

func (in *AWSServiceEndpoint) DeepCopy() *AWSServiceEndpoint

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

func (*AWSServiceEndpoint) DeepCopyInto

func (in *AWSServiceEndpoint) DeepCopyInto(out *AWSServiceEndpoint)

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

type AvailabilityPolicy

type AvailabilityPolicy string
const (
	HighlyAvailable AvailabilityPolicy = "HighlyAvailable"
	SingleReplica   AvailabilityPolicy = "SingleReplica"
)

type ClusterAutoscaling

type ClusterAutoscaling struct {
	// Maximum number of nodes in all node groups.
	// Cluster autoscaler will not grow the cluster beyond this number.
	// +kubebuilder:validation:Minimum=0
	MaxNodesTotal *int32 `json:"maxNodesTotal,omitempty"`

	// Gives pods graceful termination time before scaling down
	// default: 600 seconds
	// +kubebuilder:validation:Minimum=0
	MaxPodGracePeriod *int32 `json:"maxPodGracePeriod,omitempty"`

	// Maximum time CA waits for node to be provisioned
	// default: 15 minutes
	// +kubebuilder:validation:Pattern=^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
	MaxNodeProvisionTime string `json:"maxNodeProvisionTime,omitempty"`

	// To allow users to schedule "best-effort" pods, which shouldn't trigger
	// Cluster Autoscaler actions, but only run when there are spare resources available,
	// default: -10
	// More info: https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#how-does-cluster-autoscaler-work-with-pod-priority-and-preemption
	PodPriorityThreshold *int32 `json:"podPriorityThreshold,omitempty"`
}

TODO maybe we have profiles for scaling behaviors

func (*ClusterAutoscaling) DeepCopy

func (in *ClusterAutoscaling) DeepCopy() *ClusterAutoscaling

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

func (*ClusterAutoscaling) DeepCopyInto

func (in *ClusterAutoscaling) DeepCopyInto(out *ClusterAutoscaling)

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

type ClusterConfiguration

type ClusterConfiguration struct {
	// SecretRefs holds references to secrets used in configuration entries
	// so that they can be properly synced by the hypershift operator.
	// +kubebuilder:validation:Optional
	// +optional
	SecretRefs []corev1.LocalObjectReference `json:"secretRefs,omitempty"`

	// ConfigMapRefs holds references to configmaps used in configuration entries
	// so that they can be properly synced by the hypershift operator.
	// +kubebuilder:validation:Optional
	// +optional
	ConfigMapRefs []corev1.LocalObjectReference `json:"configMapRefs,omitempty"`

	// Items embeds the configuration resource
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Optional
	// +optional
	Items []runtime.RawExtension `json:"items,omitempty"`
}

ClusterConfiguration contains global configuration for a HostedCluster.

func (*ClusterConfiguration) DeepCopy

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

func (*ClusterConfiguration) DeepCopyInto

func (in *ClusterConfiguration) DeepCopyInto(out *ClusterConfiguration)

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

type ClusterNetworking

type ClusterNetworking struct {
	ServiceCIDR string `json:"serviceCIDR"`
	PodCIDR     string `json:"podCIDR"`
	MachineCIDR string `json:"machineCIDR"`
	// NetworkType specifies the SDN provider used for cluster networking.
	// +kubebuilder:default:="OpenShiftSDN"
	NetworkType NetworkType `json:"networkType"`

	// APIServer contains advanced network settings for the API server that affect
	// how the APIServer is exposed inside a worker node.
	APIServer *APIServerNetworking `json:"apiServer,omitempty"`
}

func (*ClusterNetworking) DeepCopy

func (in *ClusterNetworking) DeepCopy() *ClusterNetworking

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

func (*ClusterNetworking) DeepCopyInto

func (in *ClusterNetworking) DeepCopyInto(out *ClusterNetworking)

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

type ClusterVersionStatus

type ClusterVersionStatus struct {
	// desired is the version that the cluster is reconciling towards.
	// If the cluster is not yet fully initialized desired will be set
	// with the information available, which may be an image or a tag.
	// +kubebuilder:validation:Required
	// +required
	Desired Release `json:"desired"`

	// history contains a list of the most recent versions applied to the cluster.
	// This value may be empty during cluster startup, and then will be updated
	// when a new update is being applied. The newest update is first in the
	// list and it is ordered by recency. Updates in the history have state
	// Completed if the rollout completed - if an update was failing or halfway
	// applied the state will be Partial. Only a limited amount of update history
	// is preserved.
	// +optional
	History []configv1.UpdateHistory `json:"history,omitempty"`

	// observedGeneration reports which version of the spec is being synced.
	// If this value is not equal to metadata.generation, then the desired
	// and conditions fields may represent a previous version.
	// +kubebuilder:validation:Required
	// +required
	ObservedGeneration int64 `json:"observedGeneration"`
}

ClusterVersionStatus reports the status of the cluster versioning, including any upgrades that are in progress. The current field will be set to whichever version the cluster is reconciling to, and the conditions array will report whether the update succeeded, is in progress, or is failing. +k8s:deepcopy-gen=true

func (*ClusterVersionStatus) DeepCopy

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

func (*ClusterVersionStatus) DeepCopyInto

func (in *ClusterVersionStatus) DeepCopyInto(out *ClusterVersionStatus)

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

type ConditionType

type ConditionType string
const (
	HostedControlPlaneAvailable ConditionType = "Available"
	EtcdAvailable               ConditionType = "EtcdAvailable"
	KubeAPIServerAvailable      ConditionType = "KubeAPIServerAvailable"
	InfrastructureReady         ConditionType = "InfrastructureReady"
	ValidConfiguration          ConditionType = "ValidConfiguration"
	ClusterVersionFailing       ConditionType = "ClusterVersionFailing"
)
const (
	// HostedClusterAvailable indicates whether the HostedCluster has a healthy
	// control plane.
	HostedClusterAvailable ConditionType = "Available"

	// IgnitionEndpointAvailable indicates whether the ignition server for the
	// HostedCluster is available to handle ignition requests.
	IgnitionEndpointAvailable ConditionType = "IgnitionEndpointAvailable"

	// UnmanagedEtcdAvailable indicates whether a user-managed etcd cluster is
	// healthy.
	UnmanagedEtcdAvailable ConditionType = "UnmanagedEtcdAvailable"

	// ValidHostedClusterConfiguration indicates (if status is true) that the
	// ClusterConfiguration specified for the HostedCluster is valid.
	ValidHostedClusterConfiguration ConditionType = "ValidConfiguration"
)

type DNSSpec

type DNSSpec struct {
	// BaseDomain is the base domain of the cluster.
	BaseDomain string `json:"baseDomain"`

	// PublicZoneID is the Hosted Zone ID where all the DNS records that are publicly accessible to
	// the internet exist.
	// +optional
	PublicZoneID string `json:"publicZoneID,omitempty"`

	// PrivateZoneID is the Hosted Zone ID where all the DNS records that are only available internally
	// to the cluster exist.
	// +optional
	PrivateZoneID string `json:"privateZoneID,omitempty"`
}

DNSSpec specifies the DNS configuration in the cluster

func (*DNSSpec) DeepCopy

func (in *DNSSpec) DeepCopy() *DNSSpec

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

func (*DNSSpec) DeepCopyInto

func (in *DNSSpec) DeepCopyInto(out *DNSSpec)

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

type EtcdManagementType

type EtcdManagementType string

EtcdManagementType is a enum specifying the strategy for managing the cluster's etcd instance +kubebuilder:validation:Enum=Managed;Unmanaged

const (
	Managed   EtcdManagementType = "Managed"
	Unmanaged EtcdManagementType = "Unmanaged"
)

type EtcdSpec

type EtcdSpec struct {
	// ManagementType defines how the etcd cluster is managed. Unmanaged means
	// the etcd cluster is managed by a system outside the hypershift controllers.
	// Managed means the hypershift controllers manage the provisioning of the etcd cluster
	// and the operations around it
	// +unionDiscriminator
	ManagementType EtcdManagementType `json:"managementType"`

	// Managed provides metadata that defines how the hypershift controllers manage the etcd cluster
	// +optional
	Managed *ManagedEtcdSpec `json:"managed,omitempty"`

	// Unmanaged provides metadata that enables the Openshift controllers to connect to the external etcd cluster
	// +optional
	Unmanaged *UnmanagedEtcdSpec `json:"unmanaged,omitempty"`
}

func (*EtcdSpec) DeepCopy

func (in *EtcdSpec) DeepCopy() *EtcdSpec

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

func (*EtcdSpec) DeepCopyInto

func (in *EtcdSpec) DeepCopyInto(out *EtcdSpec)

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

type EtcdTLSConfig

type EtcdTLSConfig struct {
	// ClientSecret refers to a secret for client MTLS authentication with the etcd cluster
	// The CA must be stored at secret key etcd-client-ca.crt.
	// The client cert must be stored at secret key etcd-client.crt.
	// The client key must be stored at secret key etcd-client.key.
	ClientSecret corev1.LocalObjectReference `json:"clientSecret"`
}

func (*EtcdTLSConfig) DeepCopy

func (in *EtcdTLSConfig) DeepCopy() *EtcdTLSConfig

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

func (*EtcdTLSConfig) DeepCopyInto

func (in *EtcdTLSConfig) DeepCopyInto(out *EtcdTLSConfig)

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

type Filter

type Filter struct {
	// Name of the filter. Filter names are case-sensitive.
	Name string `json:"name"`

	// Values includes one or more filter values. Filter values are case-sensitive.
	Values []string `json:"values"`
}

Filter is a filter used to identify an AWS resource

func (*Filter) DeepCopy

func (in *Filter) DeepCopy() *Filter

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

func (*Filter) DeepCopyInto

func (in *Filter) DeepCopyInto(out *Filter)

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

type HostedCluster

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

	Spec   HostedClusterSpec   `json:"spec,omitempty"`
	Status HostedClusterStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:resource:path=hostedclusters,shortName=hc;hcs,scope=Namespaced +kubebuilder:storageversion +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Version",type="string",JSONPath=".status.version.history[?(@.state==\"Completed\")].version",description="Version" +kubebuilder:printcolumn:name="KubeConfig",type="string",JSONPath=".status.kubeconfig.name",description="KubeConfig Secret" +kubebuilder:printcolumn:name="Progress",type="string",JSONPath=".status.version.history[?(@.state!=\"\")].state",description="Progress" +kubebuilder:printcolumn:name="Available",type="string",JSONPath=".status.conditions[?(@.type==\"Available\")].status",description="Available" +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type==\"Available\")].reason",description="Reason" HostedCluster is the Schema for the hostedclusters API

func (*HostedCluster) DeepCopy

func (in *HostedCluster) DeepCopy() *HostedCluster

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

func (*HostedCluster) DeepCopyInto

func (in *HostedCluster) DeepCopyInto(out *HostedCluster)

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

func (*HostedCluster) DeepCopyObject

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

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

type HostedClusterList

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

+kubebuilder:object:root=true HostedClusterList contains a list of HostedCluster

func (*HostedClusterList) DeepCopy

func (in *HostedClusterList) DeepCopy() *HostedClusterList

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

func (*HostedClusterList) DeepCopyInto

func (in *HostedClusterList) DeepCopyInto(out *HostedClusterList)

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

func (*HostedClusterList) DeepCopyObject

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

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

type HostedClusterSpec

type HostedClusterSpec struct {

	// Release specifies the release image to use for this HostedCluster
	Release Release `json:"release"`

	// +optional
	FIPS bool `json:"fips"`

	// PullSecret is a pull secret injected into the container runtime of guest
	// workers. It should have an ".dockerconfigjson" key containing the pull secret JSON.
	PullSecret corev1.LocalObjectReference `json:"pullSecret"`

	// AuditWebhook contains metadata for configuring an audit webhook
	// endpoint for a cluster to process cluster audit events. It references
	// a secret that contains the webhook information for the audit webhook endpoint.
	// It is a secret because if the endpoint has MTLS the kubeconfig will contain client
	// keys. This is currently only supported in IBM Cloud. The kubeconfig needs to be stored
	// in the secret with a secret key name that corresponds to the constant AuditWebhookKubeconfigKey.
	// +optional
	AuditWebhook *corev1.LocalObjectReference `json:"auditWebhook,omitempty"`

	// SigningKey is a reference to a Secret containing a single key "key"
	// +optional
	SigningKey corev1.LocalObjectReference `json:"signingKey,omitempty"`

	// +kubebuilder:default:="https://kubernetes.default.svc"
	IssuerURL string `json:"issuerURL"`

	// SSHKey is a reference to a Secret containing a single key "id_rsa.pub",
	// whose value is the public part of an SSH key that can be used to access
	// Nodes.
	SSHKey corev1.LocalObjectReference `json:"sshKey"`

	// Networking contains network-specific settings for this cluster
	Networking ClusterNetworking `json:"networking"`

	// Autoscaling for compute nodes only, does not cover control plane
	// +optional
	Autoscaling ClusterAutoscaling `json:"autoscaling,omitempty"`

	Platform PlatformSpec `json:"platform"`

	// InfraID is used to identify the cluster in cloud platforms
	InfraID string `json:"infraID,omitempty"`

	// DNS configuration for the cluster
	DNS DNSSpec `json:"dns,omitempty"`

	// Services defines metadata about how control plane services are published
	// in the management cluster.
	// TODO (alberto): include Ignition endpoint here.
	Services []ServicePublishingStrategyMapping `json:"services"`

	// ControllerAvailabilityPolicy specifies whether to run control plane controllers in HA mode
	// Defaults to SingleReplica when not set.
	// +optional
	ControllerAvailabilityPolicy AvailabilityPolicy `json:"controllerAvailabilityPolicy,omitempty"`

	// Etcd contains metadata about the etcd cluster the hypershift managed Openshift control plane components
	// use to store data. Changing the ManagementType for the etcd cluster is not supported after initial creation.
	// +kubebuilder:validation:Optional
	// +kubebuilder:default={managementType: "Managed"}
	Etcd EtcdSpec `json:"etcd"`

	// Configuration embeds resources that correspond to the openshift configuration API:
	// https://docs.openshift.com/container-platform/4.7/rest_api/config_apis/config-apis-index.html
	// +kubebuilder:validation:Optional
	// +optional
	Configuration *ClusterConfiguration `json:"configuration,omitempty"`
}

HostedClusterSpec defines the desired state of HostedCluster

func (*HostedClusterSpec) DeepCopy

func (in *HostedClusterSpec) DeepCopy() *HostedClusterSpec

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

func (*HostedClusterSpec) DeepCopyInto

func (in *HostedClusterSpec) DeepCopyInto(out *HostedClusterSpec)

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

type HostedClusterStatus

type HostedClusterStatus struct {
	// Version is the status of the release version applied to the
	// HostedCluster.
	// +optional
	Version *ClusterVersionStatus `json:"version,omitempty"`

	// KubeConfig is a reference to the secret containing the default kubeconfig
	// for the cluster.
	// +optional
	KubeConfig *corev1.LocalObjectReference `json:"kubeconfig,omitempty"`

	// IgnitionEndpoint is the endpoint injected in the ign config userdata.
	// It exposes the config for instances to become kubernetes nodes.
	// +optional
	IgnitionEndpoint string `json:"ignitionEndpoint"`

	Conditions []metav1.Condition `json:"conditions"`
}

HostedClusterStatus defines the observed state of HostedCluster

func (*HostedClusterStatus) DeepCopy

func (in *HostedClusterStatus) DeepCopy() *HostedClusterStatus

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

func (*HostedClusterStatus) DeepCopyInto

func (in *HostedClusterStatus) DeepCopyInto(out *HostedClusterStatus)

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

type HostedControlPlane

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

	Spec   HostedControlPlaneSpec   `json:"spec,omitempty"`
	Status HostedControlPlaneStatus `json:"status,omitempty"`
}

HostedControlPlane defines the desired state of HostedControlPlane +kubebuilder:resource:path=hostedcontrolplanes,shortName=hcp;hcps,scope=Namespaced,categories=cluster-api +kubebuilder:storageversion +kubebuilder:subresource:status +kubebuilder:object:root=true

func (*HostedControlPlane) DeepCopy

func (in *HostedControlPlane) DeepCopy() *HostedControlPlane

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

func (*HostedControlPlane) DeepCopyInto

func (in *HostedControlPlane) DeepCopyInto(out *HostedControlPlane)

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

func (*HostedControlPlane) DeepCopyObject

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

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

type HostedControlPlaneList

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

+kubebuilder:object:root=true HostedControlPlaneList contains a list of HostedControlPlanes.

func (*HostedControlPlaneList) DeepCopy

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

func (*HostedControlPlaneList) DeepCopyInto

func (in *HostedControlPlaneList) DeepCopyInto(out *HostedControlPlaneList)

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

func (*HostedControlPlaneList) DeepCopyObject

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

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

type HostedControlPlaneSpec

type HostedControlPlaneSpec struct {
	ReleaseImage string                      `json:"releaseImage"`
	PullSecret   corev1.LocalObjectReference `json:"pullSecret"`
	SigningKey   corev1.LocalObjectReference `json:"signingKey"`
	IssuerURL    string                      `json:"issuerURL"`
	ServiceCIDR  string                      `json:"serviceCIDR"`
	PodCIDR      string                      `json:"podCIDR"`
	MachineCIDR  string                      `json:"machineCIDR"`
	// NetworkType specifies the SDN provider used for cluster networking.
	NetworkType NetworkType                 `json:"networkType"`
	SSHKey      corev1.LocalObjectReference `json:"sshKey"`
	InfraID     string                      `json:"infraID"`
	Platform    PlatformSpec                `json:"platform"`
	DNS         DNSSpec                     `json:"dns"`

	// APIPort is the port at which the APIServer listens inside a worker
	// +optional
	APIPort *int32 `json:"apiPort,omitempty"`
	// APIAdvertiseAddress is the address at which the APIServer listens
	// inside a worker.
	// +optional
	APIAdvertiseAddress *string `json:"apiAdvertiseAddress,omitempty"`

	// ControllerAvailabilityPolicy specifies whether to run control plane controllers in HA mode
	// Defaults to SingleReplica when not set
	// +optional
	ControllerAvailabilityPolicy AvailabilityPolicy `json:"controllerAvailabilityPolicy,omitempty"`

	// FIPS specifies if the nodes for the cluster will be running in FIPS mode
	// +optional
	FIPS bool `json:"fips"`

	// KubeConfig specifies the name and key for the kubeconfig secret
	// +optional
	KubeConfig *KubeconfigSecretRef `json:"kubeconfig,omitempty"`

	// Services defines metadata about how control plane services are published
	// in the management cluster.
	Services []ServicePublishingStrategyMapping `json:"services"`

	// AuditWebhook contains metadata for configuring an audit webhook
	// endpoint for a cluster to process cluster audit events. It references
	// a secret that contains the webhook information for the audit webhook endpoint.
	// It is a secret because if the endpoint has MTLS the kubeconfig will contain client
	// keys. This is currently only supported in IBM Cloud. The kubeconfig needs to be stored
	// in the secret with a secret key name that corresponds to the constant AuditWebhookKubeconfigKey.
	// +optional
	AuditWebhook *corev1.LocalObjectReference `json:"auditWebhook,omitempty"`

	// Etcd contains metadata about the etcd cluster the hypershift managed Openshift control plane components
	// use to store data.
	Etcd EtcdSpec `json:"etcd"`

	// Configuration embeds resources that correspond to the openshift configuration API:
	// https://docs.openshift.com/container-platform/4.7/rest_api/config_apis/config-apis-index.html
	// +kubebuilder:validation:Optional
	Configuration *ClusterConfiguration `json:"configuration,omitempty"`
}

HostedControlPlaneSpec defines the desired state of HostedControlPlane

func (*HostedControlPlaneSpec) DeepCopy

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

func (*HostedControlPlaneSpec) DeepCopyInto

func (in *HostedControlPlaneSpec) DeepCopyInto(out *HostedControlPlaneSpec)

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

type HostedControlPlaneStatus

type HostedControlPlaneStatus struct {
	// Ready denotes that the HostedControlPlane API Server is ready to
	// receive requests
	// This satisfies CAPI contract https://github.com/kubernetes-sigs/cluster-api/blob/cd3a694deac89d5ebeb888307deaa61487207aa0/controllers/cluster_controller_phases.go#L226-L230
	// +kubebuilder:validation:Required
	// +kubebuilder:default=false
	Ready bool `json:"ready"`

	// Initialized denotes whether or not the control plane has
	// provided a kubeadm-config.
	// Once this condition is marked true, its value is never changed. See the Ready condition for an indication of
	// the current readiness of the cluster's control plane.
	// This satisfies CAPI contract https://github.com/kubernetes-sigs/cluster-api/blob/cd3a694deac89d5ebeb888307deaa61487207aa0/controllers/cluster_controller_phases.go#L238-L252
	// +kubebuilder:validation:Required
	// +kubebuilder:default=false
	Initialized bool `json:"initialized"`

	// ExternalManagedControlPlane indicates to cluster-api that the control plane
	// is managed by an external service.
	// https://github.com/kubernetes-sigs/cluster-api/blob/65e5385bffd71bf4aad3cf34a537f11b217c7fab/controllers/machine_controller.go#L468
	// +kubebuilder:default=true
	ExternalManagedControlPlane *bool `json:"externalManagedControlPlane,omitempty"`

	// ControlPlaneEndpoint contains the endpoint information by which
	// external clients can access the control plane.  This is populated
	// after the infrastructure is ready.
	// +kubebuilder:validation:Optional
	ControlPlaneEndpoint APIEndpoint `json:"controlPlaneEndpoint,omitempty"`

	// Version is the semantic version of the release applied by
	// the hosted control plane operator
	// +kubebuilder:validation:Optional
	Version string `json:"version,omitempty"`

	// ReleaseImage is the release image applied to the hosted control plane.
	ReleaseImage string `json:"releaseImage,omitempty"`

	// lastReleaseImageTransitionTime is the time of the last update to the current
	// releaseImage property.
	// +kubebuilder:validation:Optional
	LastReleaseImageTransitionTime *metav1.Time `json:"lastReleaseImageTransitionTime,omitempty"`

	// KubeConfig is a reference to the secret containing the default kubeconfig
	// for this control plane.
	KubeConfig *KubeconfigSecretRef `json:"kubeConfig,omitempty"`

	// Condition contains details for one aspect of the current state of the HostedControlPlane.
	// Current condition types are: "Available"
	// +kubebuilder:validation:Required
	Conditions []metav1.Condition `json:"conditions"`
}

HostedControlPlaneStatus defines the observed state of HostedControlPlane

func (*HostedControlPlaneStatus) DeepCopy

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

func (*HostedControlPlaneStatus) DeepCopyInto

func (in *HostedControlPlaneStatus) DeepCopyInto(out *HostedControlPlaneStatus)

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

type InPlaceUpgrade

type InPlaceUpgrade struct {
}

func (*InPlaceUpgrade) DeepCopy

func (in *InPlaceUpgrade) DeepCopy() *InPlaceUpgrade

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

func (*InPlaceUpgrade) DeepCopyInto

func (in *InPlaceUpgrade) DeepCopyInto(out *InPlaceUpgrade)

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

type KubeconfigSecretRef

type KubeconfigSecretRef struct {
	Name string `json:"name"`
	Key  string `json:"key"`
}

func (*KubeconfigSecretRef) DeepCopy

func (in *KubeconfigSecretRef) DeepCopy() *KubeconfigSecretRef

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

func (*KubeconfigSecretRef) DeepCopyInto

func (in *KubeconfigSecretRef) DeepCopyInto(out *KubeconfigSecretRef)

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

type ManagedEtcdSpec

type ManagedEtcdSpec struct {
}

func (*ManagedEtcdSpec) DeepCopy

func (in *ManagedEtcdSpec) DeepCopy() *ManagedEtcdSpec

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

func (*ManagedEtcdSpec) DeepCopyInto

func (in *ManagedEtcdSpec) DeepCopyInto(out *ManagedEtcdSpec)

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

type NetworkType

type NetworkType string

NetworkType specifies the SDN provider used for cluster networking. +kubebuilder:validation:Enum=OpenShiftSDN;Calico

const (
	// OpenShiftSDN specifies OpenshiftSDN as the SDN provider
	OpenShiftSDN NetworkType = "OpenShiftSDN"

	// Calico specifies Calico as the SDN provider
	Calico NetworkType = "Calico"
)

type NodePool

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

	Spec   NodePoolSpec   `json:"spec,omitempty"`
	Status NodePoolStatus `json:"status,omitempty"`
}

NodePool defines the desired state of NodePool +kubebuilder:resource:path=nodepools,shortName=np;nps,scope=Namespaced +kubebuilder:storageversion +kubebuilder:subresource:status +kubebuilder:object:root=true +kubebuilder:subresource:scale:specpath=.spec.nodeCount,statuspath=.status.nodeCount +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".spec.clusterName",description="Cluster" +kubebuilder:printcolumn:name="NodeCount",type="integer",JSONPath=".status.nodeCount",description="Available Nodes" +kubebuilder:printcolumn:name="Autoscaling",type="string",JSONPath=".status.conditions[?(@.type==\"AutoscalingEnabled\")].status",description="Autoscaling Enabled" +kubebuilder:printcolumn:name="Autorepair",type="string",JSONPath=".status.conditions[?(@.type==\"AutorepairEnabled\")].status",description="Node Autorepair Enabled" +kubebuilder:printcolumn:name="Version",type="string",JSONPath=".status.version",description="Current version" +kubebuilder:printcolumn:name="UpdatingVersion",type="string",JSONPath=".status.conditions[?(@.type==\"UpdatingVersion\")].status",description="UpdatingVersion in progress" +kubebuilder:printcolumn:name="UpdatingConfig",type="string",JSONPath=".status.conditions[?(@.type==\"UpdatingConfig\")].status",description="UpdatingConfig in progress"

func (*NodePool) DeepCopy

func (in *NodePool) DeepCopy() *NodePool

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

func (*NodePool) DeepCopyInto

func (in *NodePool) DeepCopyInto(out *NodePool)

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

func (*NodePool) DeepCopyObject

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

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

type NodePoolAutoScaling

type NodePoolAutoScaling struct {
	// +kubebuilder:validation:Minimum=1
	Min int32 `json:"min"`
	// +kubebuilder:validation:Minimum=1
	Max int32 `json:"max"`
}

func (*NodePoolAutoScaling) DeepCopy

func (in *NodePoolAutoScaling) DeepCopy() *NodePoolAutoScaling

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

func (*NodePoolAutoScaling) DeepCopyInto

func (in *NodePoolAutoScaling) DeepCopyInto(out *NodePoolAutoScaling)

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

type NodePoolList

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

+kubebuilder:object:root=true NodePoolList contains a list of NodePools.

func (*NodePoolList) DeepCopy

func (in *NodePoolList) DeepCopy() *NodePoolList

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

func (*NodePoolList) DeepCopyInto

func (in *NodePoolList) DeepCopyInto(out *NodePoolList)

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

func (*NodePoolList) DeepCopyObject

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

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

type NodePoolManagement

type NodePoolManagement struct {
	// +kubebuilder:validation:Enum=Replace;InPlace
	UpgradeType UpgradeType `json:"upgradeType"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:default={strategy: "RollingUpdate", rollingUpdate: {maxSurge: 1, maxUnavailable: 0 }}
	Replace *ReplaceUpgrade `json:"recreate,omitempty"`
	// +kubebuilder:validation:Optional
	InPlace *InPlaceUpgrade `json:"inPlace,omitempty"`

	// +optional
	AutoRepair bool `json:"autoRepair"`
}

func (*NodePoolManagement) DeepCopy

func (in *NodePoolManagement) DeepCopy() *NodePoolManagement

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

func (*NodePoolManagement) DeepCopyInto

func (in *NodePoolManagement) DeepCopyInto(out *NodePoolManagement)

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

type NodePoolPlatform

type NodePoolPlatform struct {
	Type PlatformType `json:"type"`
	// AWS is the configuration used when installing on AWS.
	AWS *AWSNodePoolPlatform `json:"aws,omitempty"`
}

NodePoolPlatform is the platform-specific configuration for a node pool. Only one of the platforms should be set.

func (*NodePoolPlatform) DeepCopy

func (in *NodePoolPlatform) DeepCopy() *NodePoolPlatform

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

func (*NodePoolPlatform) DeepCopyInto

func (in *NodePoolPlatform) DeepCopyInto(out *NodePoolPlatform)

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

type NodePoolSpec

type NodePoolSpec struct {
	// ClusterName is the name of the Cluster this object belongs to.
	ClusterName string `json:"clusterName"`
	// +optional
	NodeCount *int32 `json:"nodeCount"`

	// +kubebuilder:validation:Optional
	// TODO (alberto): this ConfigMaps are meant to contain
	// MachineConfig, KubeletConfig and ContainerRuntimeConfig but
	// MCO only supports MachineConfig in bootstrap mode atm
	// https://github.com/openshift/machine-config-operator/blob/9c6c2bfd7ed498bfbc296d530d1839bd6a177b0b/pkg/controller/bootstrap/bootstrap.go#L104-L119
	// By contractual convention the ConfigMap structure is as follow:
	// type: ConfigMap
	//   data:
	//     config: |-
	Config []v1.LocalObjectReference `json:"config,omitempty"`

	Management NodePoolManagement `json:"nodePoolManagement"`

	// +optional
	AutoScaling *NodePoolAutoScaling `json:"autoScaling,omitempty"`

	Platform NodePoolPlatform `json:"platform"`

	// Release specifies the release image to use for this NodePool
	// For a nodePool a given version dictates the ignition config and
	// an image artifact e.g an AMI in AWS.
	// Release specifies the release image to use for this HostedCluster
	// +kubebuilder:validation:Required
	// +required
	Release Release `json:"release"`
}

NodePoolSpec defines the desired state of NodePool

func (*NodePoolSpec) DeepCopy

func (in *NodePoolSpec) DeepCopy() *NodePoolSpec

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

func (*NodePoolSpec) DeepCopyInto

func (in *NodePoolSpec) DeepCopyInto(out *NodePoolSpec)

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

type NodePoolStatus

type NodePoolStatus struct {
	// NodeCount is the most recently observed number of replicas.
	// +optional
	NodeCount int32 `json:"nodeCount"`

	Conditions []metav1.Condition `json:"conditions"`

	// Version is the semantic version of the release applied by
	// the hosted control plane operator.
	// For a nodePool a given version represents the ignition config and
	// an image artifact e.g an AMI in AWS.
	// +kubebuilder:validation:Optional
	Version string `json:"version,omitempty"`
}

NodePoolStatus defines the observed state of NodePool

func (*NodePoolStatus) DeepCopy

func (in *NodePoolStatus) DeepCopy() *NodePoolStatus

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

func (*NodePoolStatus) DeepCopyInto

func (in *NodePoolStatus) DeepCopyInto(out *NodePoolStatus)

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

type NodePortPublishingStrategy

type NodePortPublishingStrategy struct {
	// Address is the host/ip that the nodePort service is exposed over
	Address string `json:"address"`
	// Port is the nodePort of the service. If <=0 the nodePort is dynamically assigned when the service is created
	Port int32 `json:"port,omitempty"`
}

NodePortPublishingStrategy defines the network endpoint that can be used to contact the NodePort service

func (*NodePortPublishingStrategy) DeepCopy

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

func (*NodePortPublishingStrategy) DeepCopyInto

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

type PlatformSpec

type PlatformSpec struct {
	// Type is the underlying infrastructure provider for the cluster.
	//
	// +unionDiscriminator
	Type PlatformType `json:"type"`

	// AWS contains AWS-specific settings for the HostedCluster
	// +optional
	AWS *AWSPlatformSpec `json:"aws,omitempty"`
}

func (*PlatformSpec) DeepCopy

func (in *PlatformSpec) DeepCopy() *PlatformSpec

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

func (*PlatformSpec) DeepCopyInto

func (in *PlatformSpec) DeepCopyInto(out *PlatformSpec)

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

type PlatformType

type PlatformType string

PlatformType is a specific supported infrastructure provider. +kubebuilder:validation:Enum=AWS;None;IBMCloud

const (
	// AWSPlatformType represents Amazon Web Services infrastructure.
	AWSPlatform PlatformType = "AWS"

	NonePlatform PlatformType = "None"

	IBMCloudPlatform PlatformType = "IBMCloud"
)

type PublishingStrategyType

type PublishingStrategyType string

PublishingStrategyType defines publishing strategies for services.

var (
	// LoadBalancer exposes  a service with a LoadBalancer kube service.
	LoadBalancer PublishingStrategyType = "LoadBalancer"
	// NodePort exposes a service with a NodePort kube service.
	NodePort PublishingStrategyType = "NodePort"
	// Route exposes services with a Route + ClusterIP kube service.
	Route PublishingStrategyType = "Route"
	// None disables exposing the service
	None PublishingStrategyType = "None"
)

type Release

type Release struct {
	// Image is the release image pullspec for the control plane
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=^(\w+\S+)$
	Image string `json:"image"`
}

func (*Release) DeepCopy

func (in *Release) DeepCopy() *Release

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

func (*Release) DeepCopyInto

func (in *Release) DeepCopyInto(out *Release)

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

type ReplaceUpgrade

type ReplaceUpgrade struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=RollingUpdate;OnDelete
	Strategy UpgradeStrategy `json:"strategy"`
	// +kubebuilder:validation:Optional
	RollingUpdate *RollingUpdate `json:"rollingUpdate,omitempty"`
}

func (*ReplaceUpgrade) DeepCopy

func (in *ReplaceUpgrade) DeepCopy() *ReplaceUpgrade

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

func (*ReplaceUpgrade) DeepCopyInto

func (in *ReplaceUpgrade) DeepCopyInto(out *ReplaceUpgrade)

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

type RollingUpdate

type RollingUpdate struct {
	MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`
	MaxSurge       *intstr.IntOrString `json:"maxSurge,omitempty"`
}

func (*RollingUpdate) DeepCopy

func (in *RollingUpdate) DeepCopy() *RollingUpdate

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

func (*RollingUpdate) DeepCopyInto

func (in *RollingUpdate) DeepCopyInto(out *RollingUpdate)

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

type ServicePublishingStrategy

type ServicePublishingStrategy struct {
	// Type defines the publishing strategy used for the service.
	// +kubebuilder:validation:Enum=LoadBalancer;NodePort;Route;None
	Type PublishingStrategyType `json:"type"`
	// NodePort is used to define extra metadata for the NodePort publishing strategy.
	NodePort *NodePortPublishingStrategy `json:"nodePort,omitempty"`
}

ServicePublishingStrategy defines metadata around how a service is published

func (*ServicePublishingStrategy) DeepCopy

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

func (*ServicePublishingStrategy) DeepCopyInto

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

type ServicePublishingStrategyMapping

type ServicePublishingStrategyMapping struct {
	// Service identifies the type of service being published
	// +kubebuilder:validation:Enum=APIServer;OAuthServer;OIDC;Konnectivity;Ignition
	Service                   ServiceType `json:"service"`
	ServicePublishingStrategy `json:"servicePublishingStrategy"`
}

ServicePublishingStrategyMapping defines the service being published and metadata about the publishing strategy.

func (*ServicePublishingStrategyMapping) DeepCopy

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

func (*ServicePublishingStrategyMapping) DeepCopyInto

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

type ServiceType

type ServiceType string

ServiceType defines what control plane services can be exposed from the management control plane

var (
	APIServer    ServiceType = "APIServer"
	Konnectivity ServiceType = "Konnectivity"
	OAuthServer  ServiceType = "OAuthServer"
	OIDC         ServiceType = "OIDC"
	Ignition     ServiceType = "Ignition"
)

type UnmanagedEtcdSpec

type UnmanagedEtcdSpec struct {
	// Endpoint is the full url to connect to the etcd cluster endpoint. An example is
	// https://etcd-client:2379
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^https://`
	Endpoint string `json:"endpoint"`

	// TLS defines a reference to a TLS secret that can be used for client MTLS authentication with
	// the etcd cluster
	TLS EtcdTLSConfig `json:"tls"`
}

UnmanagedEtcdSpec defines metadata that enables the Openshift controllers to connect to the external etcd cluster

func (*UnmanagedEtcdSpec) DeepCopy

func (in *UnmanagedEtcdSpec) DeepCopy() *UnmanagedEtcdSpec

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

func (*UnmanagedEtcdSpec) DeepCopyInto

func (in *UnmanagedEtcdSpec) DeepCopyInto(out *UnmanagedEtcdSpec)

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

type UpgradeStrategy

type UpgradeStrategy string

type UpgradeType

type UpgradeType string

Jump to

Keyboard shortcuts

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