v1

package
v0.0.0-...-ac479d4 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2024 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Overview

Package v1 contains API Schema definitions for the hive v1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package +groupName=hive.openshift.io

Package v1 contains API Schema definitions for the hive v1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/openshift/hive/apis/hive +k8s:defaulter-gen=TypeMeta +groupName=hive.openshift.io

Index

Constants

View Source
const (
	// FinalizerDeprovision is used on ClusterDeployments to ensure we run a successful deprovision
	// job before cleaning up the API object.
	FinalizerDeprovision string = "hive.openshift.io/deprovision"

	// HiveClusterTypeLabel is an optional label that can be applied to ClusterDeployments. It is
	// shown in short output, usable in searching, and adds metrics vectors which can be used to
	// alert on cluster types differently.
	HiveClusterTypeLabel = "hive.openshift.io/cluster-type"

	// HiveInstallLogLabel is used on ConfigMaps uploaded by the install manager which contain an install log.
	HiveInstallLogLabel = "hive.openshift.io/install-log"

	// HiveClusterPlatformLabel is a label that is applied to ClusterDeployments
	// to denote which platform the cluster was created on. This can be used in
	// searching and filtering clusters, as well as in SelectorSyncSets to only
	// target specific cloud platforms.
	HiveClusterPlatformLabel = "hive.openshift.io/cluster-platform"

	// HiveClusterRegionLabel is a label that is applied to ClusterDeployments
	// to denote which region the cluster was created in. This can be used in
	// searching and filtering clusters, as well as in SelectorSyncSets to only
	// target specific regions of the cluster-platform.
	HiveClusterRegionLabel = "hive.openshift.io/cluster-region"

	// FinalizerArgoCDCluster is used on ClusterDeployments to ensure we clean up the ArgoCD cluster
	// secret before cleaning up the API object.
	FinalizerArgoCDCluster = "hive.openshift.io/argocd-cluster"
)
View Source
const (
	// HibernatingReasonResumingOrRunning is used as the reason for the Hibernating condition when the cluster
	// is resuming or running. Precise details are available in the Ready condition.
	HibernatingReasonResumingOrRunning = "ResumingOrRunning"
	// HibernatingReasonStopping is used as the reason when the cluster is transitioning
	// from a Running state to a Hibernating state.
	HibernatingReasonStopping = string(ClusterPowerStateStopping)
	// HibernatingReasonWaitingForMachinesToStop is used on the Hibernating condition when waiting for cloud VMs to stop
	HibernatingReasonWaitingForMachinesToStop = string(ClusterPowerStateWaitingForMachinesToStop)
	// HibernatingReasonHibernating is used as the reason when the cluster is in a
	// Hibernating state.
	HibernatingReasonHibernating = string(ClusterPowerStateHibernating)
	// HibernatingReasonUnsupported is used as the reason when the cluster spec
	// specifies that the cluster be moved to a Hibernating state, but the cloud provider of
	// the cluster is not supported.
	HibernatingReasonUnsupported = "Unsupported"
	// HibernatingReasonFailedToStop is used when there was an error stopping machines
	// to enter hibernation
	HibernatingReasonFailedToStop = string(ClusterPowerStateFailedToStop)
	// HibernatingReasonSyncSetsNotApplied is used as the reason when SyncSets have not yet been applied
	// for the cluster based on ClusterSync.Status.FirstSucessTime
	HibernatingReasonSyncSetsNotApplied = string(ClusterPowerStateSyncSetsNotApplied)
	// HibernatingReasonSyncSetsApplied means SyncSets have been successfully applied at some point.
	// (It does not necessarily mean they are currently copacetic -- check ClusterSync status
	// for that.)
	HibernatingReasonSyncSetsApplied = "SyncSetsApplied"
	// HibernatingReasonPowerStatePaused indicates that we can't/won't discover the state of the
	// cluster's cloud machines because the powerstate-paused annotation is set.
	HibernatingReasonPowerStatePaused = "PowerStatePaused"
	// HibernatingReasonClusterDeploymentDeleted indicates that a Cluster Deployment has been deleted
	// and that the cluster is deprovisioning unless preserveOnDelete is set to true.
	HibernatingReasonClusterDeploymentDeleted = "ClusterDeploymentDeleted"

	// ReadyReasonStoppingOrHibernating is used as the reason for the Ready condition when the cluster
	// is stopping or hibernating. Precise details are available in the Hibernating condition.
	ReadyReasonStoppingOrHibernating = "StoppingOrHibernating"
	// ReadyReasonStartingMachines is used to reflect attempt to list and start cloud VMs
	ReadyReasonStartingMachines = string(ClusterPowerStateStartingMachines)
	// ReadyReasonFailedToStartMachines is used when there was an error starting machines
	// to leave hibernation
	ReadyReasonFailedToStartMachines = string(ClusterPowerStateFailedToStartMachines)
	// ReadyReasonWaitingForMachines is used on the Ready condition when waiting for cloud VMs to start.
	ReadyReasonWaitingForMachines = string(ClusterPowerStateWaitingForMachines)
	// ReadyReasonWaitingForNodes is used on the Ready condition when waiting for nodes to become Ready.
	ReadyReasonWaitingForNodes = string(ClusterPowerStateWaitingForNodes)
	// ReadyReasonPausingForClusterOperatorsToSettle is used on the Ready condition when pausing to let ClusterOperators start and post new status before we check it.
	ReadyReasonPausingForClusterOperatorsToSettle = string(ClusterPowerStatePausingForClusterOperatorsToSettle)
	// ReadyReasonWaitingForClusterOperators is used on the Ready condition when waiting for ClusterOperators to
	// get to a good state. (Available=True, Processing=False, Degraded=False)
	ReadyReasonWaitingForClusterOperators = string(ClusterPowerStateWaitingForClusterOperators)
	// ReadyReasonRunning is used on the Ready condition as the reason when the cluster is running and ready
	ReadyReasonRunning = string(ClusterPowerStateRunning)
	// ReadyReasonPowerStatePaused indicates that we can't/won't discover the state of the
	// cluster's cloud machines because the powerstate-paused annotation is set.
	ReadyReasonPowerStatePaused = "PowerStatePaused"
	// ReadyReasonClusterDeploymentDeleted indicates that a Cluster Deployment has been deleted
	// and that the cluster is deprovisioning unless preserveOnDelete is set to true.
	ReadyReasonClusterDeploymentDeleted = "ClusterDeploymentDeleted"
)

Cluster hibernating and ready reasons

View Source
const (
	// ProvisionedReasonProvisioning is set while the cluster is still provisioning.
	ProvisionedReasonProvisioning = "Provisioning"
	// ProvisionedReasonProvisionStopped means cluster provisioning is stopped. The ProvisionStopped condition may contain more detail.
	ProvisionedReasonProvisionStopped = "ProvisionStopped"
	// ProvisionedReasonProvisioned is set when the provision is successful.
	ProvisionedReasonProvisioned = "Provisioned"
	// ProvisionedReasonDeprovisioning is set when we start to deprovision the cluster.
	ProvisionedReasonDeprovisioning = "Deprovisioning"
	// ProvisionedReasonDeprovisionFailed means the deprovision failed terminally.
	ProvisionedReasonDeprovisionFailed = "DeprovisionFailed"
	// ProvisionedReasonDeprovisioned is set when the cluster has been successfully deprovisioned
	ProvisionedReasonDeprovisioned = "Deprovisioned"
)

Provisioned status condition reasons

View Source
const (
	// CustomizationApplyReasonSucceeded indicates that the customization
	// worked properly on the last applied cluster deployment.
	CustomizationApplyReasonSucceeded = "Succeeded"
	// CustomizationApplyReasonBrokenSyntax indicates that Hive failed to apply
	// customization patches on install-config. More details would be found in
	// ApplySucceded condition message.
	CustomizationApplyReasonBrokenSyntax = "BrokenBySyntax"
	// CustomizationApplyReasonBrokenCloud indicates that cluster deployment provision has failed
	// when using this customization. More details would be found in the ApplySucceeded condition message.
	CustomizationApplyReasonBrokenCloud = "BrokenByCloud"
	// CustomizationApplyReasonInstallationPending indicates that the customization patches have
	// been successfully applied but provisioning is not completed yet.
	CustomizationApplyReasonInstallationPending = "InstallationPending"
)
View Source
const (
	// InventoryReasonValid is used when all ClusterDeploymentCustomization are
	// available and when used the ClusterDeployments are successfully installed.
	InventoryReasonValid = "Valid"
	// InventoryReasonInvalid is used when there is something wrong with ClusterDeploymentCustomization, for example
	// patching issue, provisioning failure, missing, etc.
	InventoryReasonInvalid = "Invalid"
)
View Source
const (
	// FinalizerDNSZone is used on DNSZones to ensure we successfully deprovision
	// the cloud objects before cleaning up the API object.
	FinalizerDNSZone string = "hive.openshift.io/dnszone"

	// FinalizerDNSEndpoint is used on DNSZones to ensure we successfully
	// delete the parent-link records before cleaning up the API object.
	FinalizerDNSEndpoint string = "hive.openshift.io/dnsendpoint"
)
View Source
const (
	ApplySucceededCondition conditionsv1.ConditionType = "ApplySucceeded"
)
View Source
const InitializedConditionReason = "Initialized"

InitializedConditionReason is used when a condition is initialized for the first time, and the status of the condition is still Unknown

View Source
const (
	// MachinePoolImageIDOverrideAnnotation can be applied to MachinePools to control the precise image ID to be used
	// for the MachineSets we reconcile for this pool. This feature is presently only implemented for AWS and GCP, and
	// is intended for very limited use cases we do not recommend pursuing regularly. As such it is not currently
	// part of our official API.
	MachinePoolImageIDOverrideAnnotation = "hive.openshift.io/image-id-override"
)

Variables

View Source
var (
	// HiveAPIGroup is the group that all hive objects belong to in the API server.
	HiveAPIGroup = "hive.openshift.io"

	// HiveAPIVersion is the api version that all hive objects are currently at.
	HiveAPIVersion = "v1"

	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: HiveAPIGroup, Version: HiveAPIVersion}

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

	// AddToScheme is a shortcut for SchemeBuilder.AddToScheme
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var FeatureSets = map[FeatureSet]*FeatureGatesEnabled{
	DefaultFeatureSet: {
		Enabled: []string{},
	},
	CustomFeatureSet: {
		Enabled: []string{},
	},
}

FeatureSets Contains a map of Feature names to Enabled/Disabled Feature.

PositivePolarityClusterDeploymentConditions is a slice containing all condition types with positive polarity For controllers that handle these conditions, the desired state is True All cluster deployment condition types that are not in this slice are assumed to have negative polarity

Functions

func RegisterDefaults

func RegisterDefaults(scheme *runtime.Scheme) error

RegisterDefaults adds defaulters functions to the given scheme. Public to allow building arbitrary schemes. All generated defaulters are covering - they call all nested defaulters.

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type AWSAssociatedVPC

type AWSAssociatedVPC struct {
	AWSPrivateLinkVPC `json:",inline"`
	// CredentialsSecretRef references a secret in the TargetNamespace that will be used to authenticate with
	// AWS for associating the VPC with the Private HostedZone created for PrivateLink.
	// When not provided, the common credentials for the controller should be used.
	//
	// +optional
	CredentialsSecretRef *corev1.LocalObjectReference `json:"credentialsSecretRef"`
}

AWSAssociatedVPC defines a VPC that should be able to resolve the DNS addresses setup for Private Link.

func (*AWSAssociatedVPC) DeepCopy

func (in *AWSAssociatedVPC) DeepCopy() *AWSAssociatedVPC

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

func (*AWSAssociatedVPC) DeepCopyInto

func (in *AWSAssociatedVPC) DeepCopyInto(out *AWSAssociatedVPC)

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

type AWSClusterDeprovision

type AWSClusterDeprovision struct {
	// Region is the AWS region for this deprovisioning
	Region string `json:"region"`

	// CredentialsSecretRef is the AWS account credentials to use for deprovisioning the cluster
	// +optional
	CredentialsSecretRef *corev1.LocalObjectReference `json:"credentialsSecretRef,omitempty"`

	// CredentialsAssumeRole refers to the IAM role that must be assumed to obtain
	// AWS account access for deprovisioning the cluster.
	// +optional
	CredentialsAssumeRole *aws.AssumeRole `json:"credentialsAssumeRole,omitempty"`

	// HostedZoneRole is the role to assume when performing operations
	// on a hosted zone owned by another account.
	// +optional
	HostedZoneRole *string `json:"hostedZoneRole,omitempty"`
}

AWSClusterDeprovision contains AWS-specific configuration for a ClusterDeprovision

func (*AWSClusterDeprovision) DeepCopy

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

func (*AWSClusterDeprovision) DeepCopyInto

func (in *AWSClusterDeprovision) DeepCopyInto(out *AWSClusterDeprovision)

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

type AWSDNSZoneSpec

type AWSDNSZoneSpec struct {
	// CredentialsSecretRef contains a reference to a secret that contains AWS credentials
	// for CRUD operations
	// +optional
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef,omitempty"`

	// CredentialsAssumeRole refers to the IAM role that must be assumed to obtain
	// AWS account access for the DNS CRUD operations.
	// +optional
	CredentialsAssumeRole *aws.AssumeRole `json:"credentialsAssumeRole,omitempty"`

	// AdditionalTags is a set of additional tags to set on the DNS hosted zone. In addition
	// to these tags,the DNS Zone controller will set a hive.openhsift.io/hostedzone tag
	// identifying the HostedZone record that it belongs to.
	AdditionalTags []AWSResourceTag `json:"additionalTags,omitempty"`

	// Region is the AWS region to use for route53 operations.
	// This defaults to us-east-1.
	// For AWS China, use cn-northwest-1.
	// +optional
	Region string `json:"region,omitempty"`
}

AWSDNSZoneSpec contains AWS-specific DNSZone specifications

func (*AWSDNSZoneSpec) DeepCopy

func (in *AWSDNSZoneSpec) DeepCopy() *AWSDNSZoneSpec

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

func (*AWSDNSZoneSpec) DeepCopyInto

func (in *AWSDNSZoneSpec) DeepCopyInto(out *AWSDNSZoneSpec)

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

type AWSDNSZoneStatus

type AWSDNSZoneStatus struct {
	// ZoneID is the ID of the zone in AWS
	// +optional
	ZoneID *string `json:"zoneID,omitempty"`
}

AWSDNSZoneStatus contains status information specific to AWS DNS zones

func (*AWSDNSZoneStatus) DeepCopy

func (in *AWSDNSZoneStatus) DeepCopy() *AWSDNSZoneStatus

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

func (*AWSDNSZoneStatus) DeepCopyInto

func (in *AWSDNSZoneStatus) DeepCopyInto(out *AWSDNSZoneStatus)

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

type AWSPrivateLinkConfig

type AWSPrivateLinkConfig struct {
	// CredentialsSecretRef references a secret in the TargetNamespace that will be used to authenticate with
	// AWS for creating the resources for AWS PrivateLink.
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef"`

	// EndpointVPCInventory is a list of VPCs and the corresponding subnets in various AWS regions.
	// The controller uses this list to choose a VPC for creating AWS VPC Endpoints. Since the
	// VPC Endpoints must be in the same region as the ClusterDeployment, we must have VPCs in that
	// region to be able to setup Private Link.
	EndpointVPCInventory []AWSPrivateLinkInventory `json:"endpointVPCInventory,omitempty"`

	// AssociatedVPCs is the list of VPCs that should be able to resolve the DNS addresses
	// setup for Private Link. This allows clients in VPC to resolve the AWS PrivateLink address
	// using AWS's default DNS resolver for Private Route53 Hosted Zones.
	//
	// This list should at minimum include the VPC where the current Hive controller is running.
	AssociatedVPCs []AWSAssociatedVPC `json:"associatedVPCs,omitempty"`

	// DNSRecordType defines what type of DNS record should be created in Private Hosted Zone
	// for the customer cluster's API endpoint (which is the VPC Endpoint's regional DNS name).
	//
	// +kubebuilder:default=Alias
	// +optional
	DNSRecordType AWSPrivateLinkDNSRecordType `json:"dnsRecordType,omitempty"`
}

AWSPrivateLinkConfig defines the configuration for the aws-private-link controller.

func (*AWSPrivateLinkConfig) DeepCopy

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

func (*AWSPrivateLinkConfig) DeepCopyInto

func (in *AWSPrivateLinkConfig) DeepCopyInto(out *AWSPrivateLinkConfig)

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

type AWSPrivateLinkDNSRecordType

type AWSPrivateLinkDNSRecordType string

AWSPrivateLinkDNSRecordType defines what type of DNS record should be created in Private Hosted Zone for the customer cluster's API endpoint (which is the VPC Endpoint's regional DNS name). +kubebuilder:validation:Enum=Alias;ARecord

const (
	// AliasAWSPrivateLinkDNSRecordType uses Route53 Alias record type for pointing the customer cluster's
	// API DNS name to the DNS name of the VPC endpoint. This is the default and should be used for most
	// cases as it is provided at no extra cost in terms of DNS queries and usually resolves faster in AWS
	// environments.
	AliasAWSPrivateLinkDNSRecordType AWSPrivateLinkDNSRecordType = "Alias"

	// ARecordAWSPrivateLinkDNSRecordType uses Route53 A record type for pointing the customer cluster's
	// API DNS name to the DNS name of the VPC endpoint. This should be used when Alias record type cannot
	// be used or other restrictions prevent use of Alias records.
	ARecordAWSPrivateLinkDNSRecordType AWSPrivateLinkDNSRecordType = "ARecord"
)

type AWSPrivateLinkInventory

type AWSPrivateLinkInventory struct {
	AWSPrivateLinkVPC `json:",inline"`
	Subnets           []AWSPrivateLinkSubnet `json:"subnets"`
}

AWSPrivateLinkInventory is a VPC and its corresponding subnets in an AWS region. This VPC will be used to create an AWS VPC Endpoint whenever there is a VPC Endpoint Service created for a ClusterDeployment.

func (*AWSPrivateLinkInventory) DeepCopy

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

func (*AWSPrivateLinkInventory) DeepCopyInto

func (in *AWSPrivateLinkInventory) DeepCopyInto(out *AWSPrivateLinkInventory)

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

type AWSPrivateLinkSubnet

type AWSPrivateLinkSubnet struct {
	SubnetID         string `json:"subnetID"`
	AvailabilityZone string `json:"availabilityZone"`
}

AWSPrivateLinkSubnet defines a subnet in the an AWS VPC.

func (*AWSPrivateLinkSubnet) DeepCopy

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

func (*AWSPrivateLinkSubnet) DeepCopyInto

func (in *AWSPrivateLinkSubnet) DeepCopyInto(out *AWSPrivateLinkSubnet)

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

type AWSPrivateLinkVPC

type AWSPrivateLinkVPC struct {
	VPCID  string `json:"vpcID"`
	Region string `json:"region"`
}

AWSPrivateLinkVPC defines an AWS VPC in a region.

func (*AWSPrivateLinkVPC) DeepCopy

func (in *AWSPrivateLinkVPC) DeepCopy() *AWSPrivateLinkVPC

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

func (*AWSPrivateLinkVPC) DeepCopyInto

func (in *AWSPrivateLinkVPC) DeepCopyInto(out *AWSPrivateLinkVPC)

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

type AWSResourceTag

type AWSResourceTag struct {
	// Key is the key for the tag
	Key string `json:"key"`
	// Value is the value for the tag
	Value string `json:"value"`
}

AWSResourceTag represents a tag that is applied to an AWS cloud resource

func (*AWSResourceTag) DeepCopy

func (in *AWSResourceTag) DeepCopy() *AWSResourceTag

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

func (*AWSResourceTag) DeepCopyInto

func (in *AWSResourceTag) DeepCopyInto(out *AWSResourceTag)

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

type AWSServiceProviderCredentials

type AWSServiceProviderCredentials struct {
	// CredentialsSecretRef references a secret in the TargetNamespace that will be used to authenticate with
	// AWS to become the Service Provider. Being a Service Provider allows the controllers
	// to assume the role in customer AWS accounts to manager clusters.
	// +optional
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef,omitempty"`
}

AWSServiceProviderCredentials is used to configure credentials related to being a service provider on AWS.

func (*AWSServiceProviderCredentials) DeepCopy

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

func (*AWSServiceProviderCredentials) DeepCopyInto

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

type ArgoCDConfig

type ArgoCDConfig struct {
	// Enabled dictates if ArgoCD gitops integration is enabled.
	// If not specified, the default is disabled.
	Enabled bool `json:"enabled"`

	// Namespace specifies the namespace where ArgoCD is installed. Used for the location of cluster secrets.
	// Defaults to "argocd"
	// +optional
	Namespace string `json:"namespace,omitempty"`
}

ArgoCDConfig contains settings for integration with ArgoCD.

func (*ArgoCDConfig) DeepCopy

func (in *ArgoCDConfig) DeepCopy() *ArgoCDConfig

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

func (*ArgoCDConfig) DeepCopyInto

func (in *ArgoCDConfig) DeepCopyInto(out *ArgoCDConfig)

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

type AzureClusterDeprovision

type AzureClusterDeprovision struct {
	// CredentialsSecretRef is the Azure account credentials to use for deprovisioning the cluster
	CredentialsSecretRef *corev1.LocalObjectReference `json:"credentialsSecretRef,omitempty"`
	// cloudName is the name of the Azure cloud environment which can be used to configure the Azure SDK
	// with the appropriate Azure API endpoints.
	// If empty, the value is equal to "AzurePublicCloud".
	// +optional
	CloudName *azure.CloudEnvironment `json:"cloudName,omitempty"`
	// ResourceGroupName is the name of the resource group where the cluster was installed.
	// Required for new deprovisions (schema notwithstanding).
	// +optional
	ResourceGroupName *string `json:"resourceGroupName,omitempty"`
}

AzureClusterDeprovision contains Azure-specific configuration for a ClusterDeprovision

func (*AzureClusterDeprovision) DeepCopy

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

func (*AzureClusterDeprovision) DeepCopyInto

func (in *AzureClusterDeprovision) DeepCopyInto(out *AzureClusterDeprovision)

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

type AzureDNSZoneSpec

type AzureDNSZoneSpec struct {
	// CredentialsSecretRef references a secret that will be used to authenticate with
	// Azure CloudDNS. It will need permission to create and manage CloudDNS Hosted Zones.
	// Secret should have a key named 'osServicePrincipal.json'.
	// The credentials must specify the project to use.
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef"`

	// ResourceGroupName specifies the Azure resource group in which the Hosted Zone should be created.
	ResourceGroupName string `json:"resourceGroupName"`

	// CloudName is the name of the Azure cloud environment which can be used to configure the Azure SDK
	// with the appropriate Azure API endpoints.
	// If empty, the value is equal to "AzurePublicCloud".
	// +optional
	CloudName azure.CloudEnvironment `json:"cloudName,omitempty"`
}

AzureDNSZoneSpec contains Azure-specific DNSZone specifications

func (*AzureDNSZoneSpec) DeepCopy

func (in *AzureDNSZoneSpec) DeepCopy() *AzureDNSZoneSpec

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

func (*AzureDNSZoneSpec) DeepCopyInto

func (in *AzureDNSZoneSpec) DeepCopyInto(out *AzureDNSZoneSpec)

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

type AzureDNSZoneStatus

type AzureDNSZoneStatus struct {
}

AzureDNSZoneStatus contains status information specific to Azure DNS zones

func (*AzureDNSZoneStatus) DeepCopy

func (in *AzureDNSZoneStatus) DeepCopy() *AzureDNSZoneStatus

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

func (*AzureDNSZoneStatus) DeepCopyInto

func (in *AzureDNSZoneStatus) DeepCopyInto(out *AzureDNSZoneStatus)

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

type BackupConfig

type BackupConfig struct {
	// Velero specifies configuration for the Velero backup integration.
	// +optional
	Velero VeleroBackupConfig `json:"velero,omitempty"`

	// MinBackupPeriodSeconds specifies that a minimum of MinBackupPeriodSeconds will occur in between each backup.
	// This is used to rate limit backups. This potentially batches together multiple changes into 1 backup.
	// No backups will be lost as changes that happen during this interval are queued up and will result in a
	// backup happening once the interval has been completed.
	// +optional
	MinBackupPeriodSeconds *int `json:"minBackupPeriodSeconds,omitempty"`
}

BackupConfig contains settings for the Velero backup integration.

func (*BackupConfig) DeepCopy

func (in *BackupConfig) DeepCopy() *BackupConfig

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

func (*BackupConfig) DeepCopyInto

func (in *BackupConfig) DeepCopyInto(out *BackupConfig)

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

type BackupReference

type BackupReference struct {
	Name      string `json:"name"`
	Namespace string `json:"namespace"`
}

BackupReference is a reference to a backup resource

func (*BackupReference) DeepCopy

func (in *BackupReference) DeepCopy() *BackupReference

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

func (*BackupReference) DeepCopyInto

func (in *BackupReference) DeepCopyInto(out *BackupReference)

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

type CertificateBundleSpec

type CertificateBundleSpec struct {
	// Name is an identifier that must be unique within the bundle and must be referenced by
	// an ingress or by the control plane serving certs
	// +required
	Name string `json:"name"`

	// Generate indicates whether this bundle should have real certificates generated for it.
	// +optional
	Generate bool `json:"generate,omitempty"`

	// CertificateSecretRef is the reference to the secret that contains the certificate bundle. If
	// the certificate bundle is to be generated, it will be generated with the name in this
	// reference. Otherwise, it is expected that the secret should exist in the same namespace
	// as the ClusterDeployment
	CertificateSecretRef corev1.LocalObjectReference `json:"certificateSecretRef"`
}

CertificateBundleSpec specifies a certificate bundle associated with a cluster deployment

func (*CertificateBundleSpec) DeepCopy

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

func (*CertificateBundleSpec) DeepCopyInto

func (in *CertificateBundleSpec) DeepCopyInto(out *CertificateBundleSpec)

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

type CertificateBundleStatus

type CertificateBundleStatus struct {
	// Name of the certificate bundle
	Name string `json:"name"`

	// Generated indicates whether the certificate bundle was generated
	Generated bool `json:"generated"`
}

CertificateBundleStatus specifies whether a certificate bundle was generated for this cluster deployment.

func (*CertificateBundleStatus) DeepCopy

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

func (*CertificateBundleStatus) DeepCopyInto

func (in *CertificateBundleStatus) DeepCopyInto(out *CertificateBundleStatus)

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

type Checkpoint

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

	Spec   CheckpointSpec   `json:"spec,omitempty"`
	Status CheckpointStatus `json:"status,omitempty"`
}

Checkpoint is the Schema for the backup of Hive objects. +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Namespaced

func (*Checkpoint) DeepCopy

func (in *Checkpoint) DeepCopy() *Checkpoint

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

func (*Checkpoint) DeepCopyInto

func (in *Checkpoint) DeepCopyInto(out *Checkpoint)

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

func (*Checkpoint) DeepCopyObject

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

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

type CheckpointList

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

CheckpointList contains a list of Checkpoint

func (*CheckpointList) DeepCopy

func (in *CheckpointList) DeepCopy() *CheckpointList

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

func (*CheckpointList) DeepCopyInto

func (in *CheckpointList) DeepCopyInto(out *CheckpointList)

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

func (*CheckpointList) DeepCopyObject

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

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

type CheckpointSpec

type CheckpointSpec struct {
	// LastBackupChecksum is the checksum of all Hive objects in the namespace at the time of the last backup.
	LastBackupChecksum string `json:"lastBackupChecksum"`

	// LastBackupTime is the last time we performed a backup of the namespace
	LastBackupTime metav1.Time `json:"lastBackupTime"`

	// LastBackupRef is a reference to last backup object created
	LastBackupRef BackupReference `json:"lastBackupRef"`
}

CheckpointSpec defines the metadata around the Hive objects state in the namespace at the time of the last backup.

func (*CheckpointSpec) DeepCopy

func (in *CheckpointSpec) DeepCopy() *CheckpointSpec

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

func (*CheckpointSpec) DeepCopyInto

func (in *CheckpointSpec) DeepCopyInto(out *CheckpointSpec)

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

type CheckpointStatus

type CheckpointStatus struct {
}

CheckpointStatus defines the observed state of Checkpoint

func (*CheckpointStatus) DeepCopy

func (in *CheckpointStatus) DeepCopy() *CheckpointStatus

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

func (*CheckpointStatus) DeepCopyInto

func (in *CheckpointStatus) DeepCopyInto(out *CheckpointStatus)

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

type ClusterClaim

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

	Spec   ClusterClaimSpec   `json:"spec"`
	Status ClusterClaimStatus `json:"status,omitempty"`
}

ClusterClaim represents a claim to a cluster from a cluster pool. +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:path=clusterclaims +kubebuilder:printcolumn:name="Pool",type="string",JSONPath=".spec.clusterPoolName" +kubebuilder:printcolumn:name="Pending",type="string",JSONPath=".status.conditions[?(@.type=='Pending')].reason" +kubebuilder:printcolumn:name="ClusterNamespace",type="string",JSONPath=".spec.namespace" +kubebuilder:printcolumn:name="ClusterRunning",type="string",JSONPath=".status.conditions[?(@.type=='ClusterRunning')].reason" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*ClusterClaim) DeepCopy

func (in *ClusterClaim) DeepCopy() *ClusterClaim

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

func (*ClusterClaim) DeepCopyInto

func (in *ClusterClaim) DeepCopyInto(out *ClusterClaim)

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

func (*ClusterClaim) DeepCopyObject

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

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

type ClusterClaimCondition

type ClusterClaimCondition struct {
	// Type is the type of the condition.
	Type ClusterClaimConditionType `json:"type"`
	// Status is the status of the condition.
	Status corev1.ConditionStatus `json:"status"`
	// LastProbeTime is the last time we probed the condition.
	// +optional
	LastProbeTime metav1.Time `json:"lastProbeTime,omitempty"`
	// LastTransitionTime is the last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Reason is a unique, one-word, CamelCase reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Message is a human-readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

ClusterClaimCondition contains details for the current condition of a cluster claim.

func (ClusterClaimCondition) ConditionType

func (c ClusterClaimCondition) ConditionType() ConditionType

ConditionType satisfies the conditions.Condition interface

func (*ClusterClaimCondition) DeepCopy

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

func (*ClusterClaimCondition) DeepCopyInto

func (in *ClusterClaimCondition) DeepCopyInto(out *ClusterClaimCondition)

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

type ClusterClaimConditionType

type ClusterClaimConditionType string

ClusterClaimConditionType is a valid value for ClusterClaimCondition.Type.

const (
	// ClusterClaimPendingCondition is set when a cluster has not yet been assigned and made ready to the claim.
	ClusterClaimPendingCondition ClusterClaimConditionType = "Pending"
	// ClusterRunningCondition is true when a claimed cluster is running and ready for use.
	ClusterRunningCondition ClusterClaimConditionType = "ClusterRunning"
)

func (ClusterClaimConditionType) String

func (t ClusterClaimConditionType) String() string

String satisfies the conditions.ConditionType interface

type ClusterClaimList

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

ClusterClaimList contains a list of ClusterClaims.

func (*ClusterClaimList) DeepCopy

func (in *ClusterClaimList) DeepCopy() *ClusterClaimList

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

func (*ClusterClaimList) DeepCopyInto

func (in *ClusterClaimList) DeepCopyInto(out *ClusterClaimList)

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

func (*ClusterClaimList) DeepCopyObject

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

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

type ClusterClaimSpec

type ClusterClaimSpec struct {
	// ClusterPoolName is the name of the cluster pool from which to claim a cluster.
	ClusterPoolName string `json:"clusterPoolName"`

	// Subjects hold references to which to authorize access to the claimed cluster.
	// +optional
	Subjects []rbacv1.Subject `json:"subjects,omitempty"`

	// Namespace is the namespace containing the ClusterDeployment (name will match the namespace) of the claimed cluster.
	// This field will be set as soon as a suitable cluster can be found, however that cluster may still be
	// resuming and not yet ready for use. Wait for the ClusterRunning condition to be true to avoid this issue.
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Lifetime is the maximum lifetime of the claim after it is assigned a cluster. If the claim still exists
	// when the lifetime has elapsed, the claim will be deleted by Hive.
	// This is a Duration value; see https://pkg.go.dev/time#ParseDuration for accepted formats.
	// Note: due to discrepancies in validation vs parsing, we use a Pattern instead of `Format=duration`. See
	// https://bugzilla.redhat.com/show_bug.cgi?id=2050332
	// https://github.com/kubernetes/apimachinery/issues/131
	// https://github.com/kubernetes/apiextensions-apiserver/issues/56
	// +optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	Lifetime *metav1.Duration `json:"lifetime,omitempty"`
}

ClusterClaimSpec defines the desired state of the ClusterClaim.

func (*ClusterClaimSpec) DeepCopy

func (in *ClusterClaimSpec) DeepCopy() *ClusterClaimSpec

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

func (*ClusterClaimSpec) DeepCopyInto

func (in *ClusterClaimSpec) DeepCopyInto(out *ClusterClaimSpec)

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

type ClusterClaimStatus

type ClusterClaimStatus struct {
	// Conditions includes more detailed status for the cluster pool.
	// +optional
	Conditions []ClusterClaimCondition `json:"conditions,omitempty"`

	// Lifetime is the maximum lifetime of the claim after it is assigned a cluster. If the claim still exists
	// when the lifetime has elapsed, the claim will be deleted by Hive.
	// +optional
	Lifetime *metav1.Duration `json:"lifetime,omitempty"`
}

ClusterClaimStatus defines the observed state of ClusterClaim.

func (*ClusterClaimStatus) DeepCopy

func (in *ClusterClaimStatus) DeepCopy() *ClusterClaimStatus

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

func (*ClusterClaimStatus) DeepCopyInto

func (in *ClusterClaimStatus) DeepCopyInto(out *ClusterClaimStatus)

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

type ClusterDeployment

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

	Spec   ClusterDeploymentSpec   `json:"spec,omitempty"`
	Status ClusterDeploymentStatus `json:"status,omitempty"`
}

ClusterDeployment is the Schema for the clusterdeployments API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="InfraID",type="string",JSONPath=".spec.clusterMetadata.infraID" +kubebuilder:printcolumn:name="Platform",type="string",JSONPath=".metadata.labels.hive\\.openshift\\.io/cluster-platform" +kubebuilder:printcolumn:name="Region",type="string",JSONPath=".metadata.labels.hive\\.openshift\\.io/cluster-region" +kubebuilder:printcolumn:name="Version",type="string",JSONPath=".metadata.labels.hive\\.openshift\\.io/version" +kubebuilder:printcolumn:name="ClusterType",type="string",JSONPath=".metadata.labels.hive\\.openshift\\.io/cluster-type" +kubebuilder:printcolumn:name="ProvisionStatus",type="string",JSONPath=".status.conditions[?(@.type=='Provisioned')].reason" +kubebuilder:printcolumn:name="PowerState",type="string",JSONPath=".status.powerState" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:path=clusterdeployments,shortName=cd,scope=Namespaced

func (*ClusterDeployment) DeepCopy

func (in *ClusterDeployment) DeepCopy() *ClusterDeployment

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

func (*ClusterDeployment) DeepCopyInto

func (in *ClusterDeployment) DeepCopyInto(out *ClusterDeployment)

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

func (*ClusterDeployment) DeepCopyObject

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

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

type ClusterDeploymentCondition

type ClusterDeploymentCondition struct {
	// Type is the type of the condition.
	Type ClusterDeploymentConditionType `json:"type"`
	// Status is the status of the condition.
	Status corev1.ConditionStatus `json:"status"`
	// LastProbeTime is the last time we probed the condition.
	// +optional
	LastProbeTime metav1.Time `json:"lastProbeTime,omitempty"`
	// LastTransitionTime is the last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Reason is a unique, one-word, CamelCase reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Message is a human-readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

ClusterDeploymentCondition contains details for the current condition of a cluster deployment

func (ClusterDeploymentCondition) ConditionType

func (c ClusterDeploymentCondition) ConditionType() ConditionType

ConditionType satisfies the conditions.Condition interface

func (*ClusterDeploymentCondition) DeepCopy

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

func (*ClusterDeploymentCondition) DeepCopyInto

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

type ClusterDeploymentConditionType

type ClusterDeploymentConditionType string

ClusterDeploymentConditionType is a valid value for ClusterDeploymentCondition.Type

const (
	// InstallerImageResolutionFailedCondition is a condition that indicates whether the job
	// to determine the installer image based on a release image was successful.
	InstallerImageResolutionFailedCondition ClusterDeploymentConditionType = "InstallerImageResolutionFailed"

	// ControlPlaneCertificateNotFoundCondition is set when a control plane certificate bundle
	// is not available, preventing the target cluster's control plane from being configured with
	// certificates.
	ControlPlaneCertificateNotFoundCondition ClusterDeploymentConditionType = "ControlPlaneCertificateNotFound"

	// IngressCertificateNotFoundCondition is a condition indicating that one of the CertificateBundle
	// secrets required by an Ingress is not available.
	IngressCertificateNotFoundCondition ClusterDeploymentConditionType = "IngressCertificateNotFound"

	// UnreachableCondition indicates that Hive is unable to establish an API connection to the remote cluster.
	UnreachableCondition ClusterDeploymentConditionType = "Unreachable"

	// ActiveAPIURLOverrideCondition indicates that Hive is communicating with the remote cluster using the
	// API URL override.
	ActiveAPIURLOverrideCondition ClusterDeploymentConditionType = "ActiveAPIURLOverride"

	// DNSNotReadyCondition indicates that the the DNSZone object created for the clusterDeployment
	// (ie manageDNS==true) has not yet indicated that the DNS zone is successfully responding to queries.
	DNSNotReadyCondition ClusterDeploymentConditionType = "DNSNotReady"

	// InstallImagesResolvedCondition indicates that the the install images for the clusterDeployment
	// have been not been resolved. This usually includes the installer and OpenShift cli images.
	InstallImagesNotResolvedCondition ClusterDeploymentConditionType = "InstallImagesNotResolved"

	// ProvisionFailedCondition indicates that a provision failed
	ProvisionFailedCondition ClusterDeploymentConditionType = "ProvisionFailed"

	// SyncSetFailedCondition indicates if any syncset for a cluster deployment failed
	SyncSetFailedCondition ClusterDeploymentConditionType = "SyncSetFailed"

	// RelocationFailedCondition indicates if a relocation to another Hive instance has failed
	RelocationFailedCondition ClusterDeploymentConditionType = "RelocationFailed"

	// ClusterHibernatingCondition is set when the ClusterDeployment is either
	// transitioning to/from a hibernating state or is in a hibernating state.
	ClusterHibernatingCondition ClusterDeploymentConditionType = "Hibernating"

	// ClusterReadyCondition works in conjunction with ClusterHibernatingCondition and gives more information
	// pertaining to the transition status of the cluster and whether it is running and ready
	ClusterReadyCondition ClusterDeploymentConditionType = "Ready"

	// InstallLaunchErrorCondition is set when a cluster provision fails to launch an install pod
	InstallLaunchErrorCondition ClusterDeploymentConditionType = "InstallLaunchError"

	// DeprovisionLaunchErrorCondition is set when a cluster deprovision fails to launch.
	DeprovisionLaunchErrorCondition ClusterDeploymentConditionType = "DeprovisionLaunchError"

	// ProvisionStoppedCondition is set when cluster provisioning is stopped.
	// This indicates that at least one provision attempt was made, but there will be no further
	// retries (without InstallAttemptsLimit changes or other hive configuration stopping further retries).
	ProvisionStoppedCondition ClusterDeploymentConditionType = "ProvisionStopped"

	// Provisioned is True when a cluster is installed; False while it is provisioning or deprovisioning.
	// The Reason indicates where it is in that lifecycle.
	ProvisionedCondition ClusterDeploymentConditionType = "Provisioned"

	// RequirementsMetCondition is set True when all pre-provision requirements have been met,
	// and the controllers can begin the cluster install.
	RequirementsMetCondition ClusterDeploymentConditionType = "RequirementsMet"

	// AuthenticationFailureCondition is true when platform credentials cannot be used because of authentication failure
	AuthenticationFailureClusterDeploymentCondition ClusterDeploymentConditionType = "AuthenticationFailure"

	// AWSPrivateLinkReadyClusterDeploymentCondition is true when private link access has been
	// setup for the cluster.
	AWSPrivateLinkReadyClusterDeploymentCondition ClusterDeploymentConditionType = "AWSPrivateLinkReady"

	// AWSPrivateLinkFailedClusterDeploymentCondition is true controller fails to setup private link access
	// for the cluster.
	AWSPrivateLinkFailedClusterDeploymentCondition ClusterDeploymentConditionType = "AWSPrivateLinkFailed"

	// PrivateLinkReadyClusterDeploymentCondition is true when private link access has been
	// setup for the cluster.
	PrivateLinkReadyClusterDeploymentCondition ClusterDeploymentConditionType = "PrivateLinkReady"

	// PrivateLinkFailedClusterDeploymentCondition is true controller fails to setup private link access
	// for the cluster.
	PrivateLinkFailedClusterDeploymentCondition ClusterDeploymentConditionType = "PrivateLinkFailed"

	// These are conditions that are copied from ClusterInstall on to the ClusterDeployment object.
	ClusterInstallFailedClusterDeploymentCondition          ClusterDeploymentConditionType = "ClusterInstallFailed"
	ClusterInstallCompletedClusterDeploymentCondition       ClusterDeploymentConditionType = "ClusterInstallCompleted"
	ClusterInstallStoppedClusterDeploymentCondition         ClusterDeploymentConditionType = "ClusterInstallStopped"
	ClusterInstallRequirementsMetClusterDeploymentCondition ClusterDeploymentConditionType = "ClusterInstallRequirementsMet"

	// ClusterImageSetNotFoundCondition is a legacy condition type that is not intended to be used
	// in production.  This type is never used by hive.
	ClusterImageSetNotFoundCondition ClusterDeploymentConditionType = "ClusterImageSetNotFound"
)

func (ClusterDeploymentConditionType) String

String satisfies the conditions.ConditionType interface

type ClusterDeploymentCustomization

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

	Spec   ClusterDeploymentCustomizationSpec   `json:"spec"`
	Status ClusterDeploymentCustomizationStatus `json:"status,omitempty"`
}

ClusterDeploymentCustomization is the Schema for clusterdeploymentcustomizations API. +kubebuilder:subresource:status +k8s:openapi-gen=true +kubebuilder:resource:scope=Namespaced

func (*ClusterDeploymentCustomization) DeepCopy

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

func (*ClusterDeploymentCustomization) DeepCopyInto

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

func (*ClusterDeploymentCustomization) DeepCopyObject

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

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

type ClusterDeploymentCustomizationList

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

ClusterDeploymentCustomizationList contains a list of ClusterDeploymentCustomizations.

func (*ClusterDeploymentCustomizationList) DeepCopy

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

func (*ClusterDeploymentCustomizationList) DeepCopyInto

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

func (*ClusterDeploymentCustomizationList) DeepCopyObject

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

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

type ClusterDeploymentCustomizationSpec

type ClusterDeploymentCustomizationSpec struct {
	// InstallConfigPatches is a list of patches to be applied to the install-config.
	InstallConfigPatches []PatchEntity `json:"installConfigPatches,omitempty"`
}

ClusterDeploymentCustomizationSpec defines the desired state of ClusterDeploymentCustomization.

func (*ClusterDeploymentCustomizationSpec) DeepCopy

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

func (*ClusterDeploymentCustomizationSpec) DeepCopyInto

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

type ClusterDeploymentCustomizationStatus

type ClusterDeploymentCustomizationStatus struct {
	// ClusterDeploymentRef is a reference to the cluster deployment that this customization is applied on.
	// +optional
	ClusterDeploymentRef *corev1.LocalObjectReference `json:"clusterDeploymentRef,omitempty"`

	// ClusterPoolRef is the name of the current cluster pool the CDC used at.
	// +optional
	ClusterPoolRef *corev1.LocalObjectReference `json:"clusterPoolRef,omitempty"`

	// LastAppliedConfiguration contains the last applied patches to the install-config.
	// The information will retain for reference in case the customization is updated.
	// +optional
	LastAppliedConfiguration string `json:"lastAppliedConfiguration,omitempty"`

	// Conditions describes the state of the operator's reconciliation functionality.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +optional
	Conditions []conditionsv1.Condition `json:"conditions,omitempty"  patchStrategy:"merge" patchMergeKey:"type"`
}

ClusterDeploymentCustomizationStatus defines the observed state of ClusterDeploymentCustomization.

func (*ClusterDeploymentCustomizationStatus) DeepCopy

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

func (*ClusterDeploymentCustomizationStatus) DeepCopyInto

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

type ClusterDeploymentList

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

ClusterDeploymentList contains a list of ClusterDeployment

func (*ClusterDeploymentList) DeepCopy

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

func (*ClusterDeploymentList) DeepCopyInto

func (in *ClusterDeploymentList) DeepCopyInto(out *ClusterDeploymentList)

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

func (*ClusterDeploymentList) DeepCopyObject

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

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

type ClusterDeploymentSpec

type ClusterDeploymentSpec struct {

	// ClusterName is the friendly name of the cluster. It is used for subdomains,
	// some resource tagging, and other instances where a friendly name for the
	// cluster is useful.
	// +required
	ClusterName string `json:"clusterName"`

	// BaseDomain is the base domain to which the cluster should belong.
	// +required
	BaseDomain string `json:"baseDomain"`

	// Platform is the configuration for the specific platform upon which to
	// perform the installation.
	// +required
	Platform Platform `json:"platform"`

	// PullSecretRef is the reference to the secret to use when pulling images.
	// +optional
	PullSecretRef *corev1.LocalObjectReference `json:"pullSecretRef,omitempty"`

	// PreserveOnDelete allows the user to disconnect a cluster from Hive without deprovisioning it. This can also be
	// used to abandon ongoing cluster deprovision.
	// +optional
	PreserveOnDelete bool `json:"preserveOnDelete,omitempty"`

	// ControlPlaneConfig contains additional configuration for the target cluster's control plane
	// +optional
	ControlPlaneConfig ControlPlaneConfigSpec `json:"controlPlaneConfig,omitempty"`

	// Ingress allows defining desired clusteringress/shards to be configured on the cluster.
	// +optional
	Ingress []ClusterIngress `json:"ingress,omitempty"`

	// CertificateBundles is a list of certificate bundles associated with this cluster
	// +optional
	CertificateBundles []CertificateBundleSpec `json:"certificateBundles,omitempty"`

	// ManageDNS specifies whether a DNSZone should be created and managed automatically
	// for this ClusterDeployment
	// +optional
	ManageDNS bool `json:"manageDNS,omitempty"`

	// ClusterMetadata contains metadata information about the installed cluster.
	ClusterMetadata *ClusterMetadata `json:"clusterMetadata,omitempty"`

	// Installed is true if the cluster has been installed
	// +optional
	Installed bool `json:"installed"`

	// Provisioning contains settings used only for initial cluster provisioning.
	// May be unset in the case of adopted clusters.
	Provisioning *Provisioning `json:"provisioning,omitempty"`

	// ClusterInstallLocalReference provides reference to an object that implements
	// the hivecontract ClusterInstall. The namespace of the object is same as the
	// ClusterDeployment.
	// This cannot be set when Provisioning is also set.
	// +optional
	ClusterInstallRef *ClusterInstallLocalReference `json:"clusterInstallRef,omitempty"`

	// ClusterPoolRef is a reference to the ClusterPool that this ClusterDeployment originated from.
	// +optional
	ClusterPoolRef *ClusterPoolReference `json:"clusterPoolRef,omitempty"`

	// PowerState indicates whether a cluster should be running or hibernating. When omitted,
	// PowerState defaults to the Running state.
	// +kubebuilder:validation:Enum="";Running;Hibernating
	// +optional
	PowerState ClusterPowerState `json:"powerState,omitempty"`

	// HibernateAfter will transition a cluster to hibernating power state after it has been running for the
	// given duration. The time that a cluster has been running is the time since the cluster was installed or the
	// time since the cluster last came out of hibernation.
	// This is a Duration value; see https://pkg.go.dev/time#ParseDuration for accepted formats.
	// Note: due to discrepancies in validation vs parsing, we use a Pattern instead of `Format=duration`. See
	// https://bugzilla.redhat.com/show_bug.cgi?id=2050332
	// https://github.com/kubernetes/apimachinery/issues/131
	// https://github.com/kubernetes/apiextensions-apiserver/issues/56
	// +optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	HibernateAfter *metav1.Duration `json:"hibernateAfter,omitempty"`

	// InstallAttemptsLimit is the maximum number of times Hive will attempt to install the cluster.
	// +optional
	InstallAttemptsLimit *int32 `json:"installAttemptsLimit,omitempty"`

	// BoundServiceAccountSigningKeySecretRef refers to a Secret that contains a
	// 'bound-service-account-signing-key.key' data key pointing to the private
	// key that will be used to sign ServiceAccount objects. Primarily used to
	// provision AWS clusters to use Amazon's Security Token Service.
	// +optional
	BoundServiceAccountSigningKeySecretRef *corev1.LocalObjectReference `json:"boundServiceAccountSigningKeySecretRef,omitempty"`
}

ClusterDeploymentSpec defines the desired state of ClusterDeployment

func (*ClusterDeploymentSpec) DeepCopy

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

func (*ClusterDeploymentSpec) DeepCopyInto

func (in *ClusterDeploymentSpec) DeepCopyInto(out *ClusterDeploymentSpec)

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

type ClusterDeploymentStatus

type ClusterDeploymentStatus struct {

	// InstallRestarts is the total count of container restarts on the clusters install job.
	InstallRestarts int `json:"installRestarts,omitempty"`

	// APIURL is the URL where the cluster's API can be accessed.
	APIURL string `json:"apiURL,omitempty"`

	// WebConsoleURL is the URL for the cluster's web console UI.
	WebConsoleURL string `json:"webConsoleURL,omitempty"`

	// InstallerImage is the name of the installer image to use when installing the target cluster
	// +optional
	InstallerImage *string `json:"installerImage,omitempty"`

	// InstallVersion is the version of OpenShift as reported by the release image
	// resolved for the installation.
	// +optional
	InstallVersion *string `json:"installVersion,omitempty"`

	// CLIImage is the name of the oc cli image to use when installing the target cluster
	// +optional
	CLIImage *string `json:"cliImage,omitempty"`

	// Conditions includes more detailed status for the cluster deployment
	// +optional
	Conditions []ClusterDeploymentCondition `json:"conditions,omitempty"`

	// CertificateBundles contains of the status of the certificate bundles associated with this cluster deployment.
	// +optional
	CertificateBundles []CertificateBundleStatus `json:"certificateBundles,omitempty"`

	// InstallStartedTimestamp is the time when all pre-requisites were met and cluster installation was launched.
	InstallStartedTimestamp *metav1.Time `json:"installStartedTimestamp,omitempty"`

	// InstalledTimestamp is the time we first detected that the cluster has been successfully installed.
	InstalledTimestamp *metav1.Time `json:"installedTimestamp,omitempty"`

	// PowerState indicates the powerstate of cluster
	// +optional
	PowerState ClusterPowerState `json:"powerState,omitempty"`

	// ProvisionRef is a reference to the last ClusterProvision created for the deployment
	// +optional
	ProvisionRef *corev1.LocalObjectReference `json:"provisionRef,omitempty"`

	// Platform contains the observed state for the specific platform upon which to
	// perform the installation.
	// +optional
	Platform *PlatformStatus `json:"platformStatus,omitempty"`
}

ClusterDeploymentStatus defines the observed state of ClusterDeployment

func (*ClusterDeploymentStatus) DeepCopy

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

func (*ClusterDeploymentStatus) DeepCopyInto

func (in *ClusterDeploymentStatus) DeepCopyInto(out *ClusterDeploymentStatus)

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

type ClusterDeprovision

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

	Spec   ClusterDeprovisionSpec   `json:"spec,omitempty"`
	Status ClusterDeprovisionStatus `json:"status,omitempty"`
}

ClusterDeprovision is the Schema for the clusterdeprovisions API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="InfraID",type="string",JSONPath=".spec.infraID" +kubebuilder:printcolumn:name="ClusterID",type="string",JSONPath=".spec.clusterID" +kubebuilder:printcolumn:name="Completed",type="boolean",JSONPath=".status.completed" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:path=clusterdeprovisions,shortName=cdr,scope=Namespaced

func (*ClusterDeprovision) DeepCopy

func (in *ClusterDeprovision) DeepCopy() *ClusterDeprovision

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

func (*ClusterDeprovision) DeepCopyInto

func (in *ClusterDeprovision) DeepCopyInto(out *ClusterDeprovision)

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

func (*ClusterDeprovision) DeepCopyObject

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

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

type ClusterDeprovisionCondition

type ClusterDeprovisionCondition struct {
	// Type is the type of the condition.
	Type ClusterDeprovisionConditionType `json:"type"`
	// Status is the status of the condition.
	Status corev1.ConditionStatus `json:"status"`
	// LastProbeTime is the last time we probed the condition.
	// +optional
	LastProbeTime metav1.Time `json:"lastProbeTime,omitempty"`
	// LastTransitionTime is the last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Reason is a unique, one-word, CamelCase reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Message is a human-readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

ClusterDeprovisionCondition contains details for the current condition of a ClusterDeprovision

func (ClusterDeprovisionCondition) ConditionType

func (c ClusterDeprovisionCondition) ConditionType() ConditionType

ConditionType satisfies the conditions.Condition interface

func (*ClusterDeprovisionCondition) DeepCopy

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

func (*ClusterDeprovisionCondition) DeepCopyInto

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

type ClusterDeprovisionConditionType

type ClusterDeprovisionConditionType string

ClusterDeprovisionConditionType is a valid value for ClusterDeprovisionCondition.Type

const (
	// AuthenticationFailureClusterDeprovisionCondition is true when credentials cannot be used because of authentication failure
	AuthenticationFailureClusterDeprovisionCondition ClusterDeprovisionConditionType = "AuthenticationFailure"

	// DeprovisionFailedClusterDeprovisionCondition is true when deprovision attempt failed
	DeprovisionFailedClusterDeprovisionCondition ClusterDeprovisionConditionType = "DeprovisionFailed"
)

func (ClusterDeprovisionConditionType) String

String satisfies the conditions.ConditionType interface

type ClusterDeprovisionList

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

ClusterDeprovisionList contains a list of ClusterDeprovision

func (*ClusterDeprovisionList) DeepCopy

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

func (*ClusterDeprovisionList) DeepCopyInto

func (in *ClusterDeprovisionList) DeepCopyInto(out *ClusterDeprovisionList)

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

func (*ClusterDeprovisionList) DeepCopyObject

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

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

type ClusterDeprovisionPlatform

type ClusterDeprovisionPlatform struct {
	// AWS contains AWS-specific deprovision settings
	AWS *AWSClusterDeprovision `json:"aws,omitempty"`
	// Azure contains Azure-specific deprovision settings
	Azure *AzureClusterDeprovision `json:"azure,omitempty"`
	// GCP contains GCP-specific deprovision settings
	GCP *GCPClusterDeprovision `json:"gcp,omitempty"`
	// OpenStack contains OpenStack-specific deprovision settings
	OpenStack *OpenStackClusterDeprovision `json:"openstack,omitempty"`
	// VSphere contains VMWare vSphere-specific deprovision settings
	VSphere *VSphereClusterDeprovision `json:"vsphere,omitempty"`
	// Ovirt contains oVirt-specific deprovision settings
	Ovirt *OvirtClusterDeprovision `json:"ovirt,omitempty"`
	// IBMCloud contains IBM Cloud specific deprovision settings
	IBMCloud *IBMClusterDeprovision `json:"ibmcloud,omitempty"`
}

ClusterDeprovisionPlatform contains platform-specific configuration for the deprovision

func (*ClusterDeprovisionPlatform) DeepCopy

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

func (*ClusterDeprovisionPlatform) DeepCopyInto

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

type ClusterDeprovisionSpec

type ClusterDeprovisionSpec struct {
	// InfraID is the identifier generated during installation for a cluster. It is used for tagging/naming resources in cloud providers.
	InfraID string `json:"infraID"`

	// ClusterID is a globally unique identifier for the cluster to deprovision. It will be used if specified.
	ClusterID string `json:"clusterID,omitempty"`

	// ClusterName is the friendly name of the cluster. It is used for subdomains,
	// some resource tagging, and other instances where a friendly name for the
	// cluster is useful.
	ClusterName string `json:"clusterName,omitempty"`

	// BaseDomain is the DNS base domain.
	BaseDomain string `json:"baseDomain,omitempty"`

	// Platform contains platform-specific configuration for a ClusterDeprovision
	Platform ClusterDeprovisionPlatform `json:"platform,omitempty"`
}

ClusterDeprovisionSpec defines the desired state of ClusterDeprovision

func (*ClusterDeprovisionSpec) DeepCopy

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

func (*ClusterDeprovisionSpec) DeepCopyInto

func (in *ClusterDeprovisionSpec) DeepCopyInto(out *ClusterDeprovisionSpec)

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

type ClusterDeprovisionStatus

type ClusterDeprovisionStatus struct {
	// Completed is true when the uninstall has completed successfully
	Completed bool `json:"completed,omitempty"`

	// Conditions includes more detailed status for the cluster deprovision
	// +optional
	Conditions []ClusterDeprovisionCondition `json:"conditions,omitempty"`
}

ClusterDeprovisionStatus defines the observed state of ClusterDeprovision

func (*ClusterDeprovisionStatus) DeepCopy

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

func (*ClusterDeprovisionStatus) DeepCopyInto

func (in *ClusterDeprovisionStatus) DeepCopyInto(out *ClusterDeprovisionStatus)

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

type ClusterImageSet

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

	Spec   ClusterImageSetSpec   `json:"spec,omitempty"`
	Status ClusterImageSetStatus `json:"status,omitempty"`
}

ClusterImageSet is the Schema for the clusterimagesets API +k8s:openapi-gen=true +kubebuilder:resource:scope=Cluster +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Release",type="string",JSONPath=".spec.releaseImage" +kubebuilder:resource:path=clusterimagesets,shortName=imgset,scope=Cluster

func (*ClusterImageSet) DeepCopy

func (in *ClusterImageSet) DeepCopy() *ClusterImageSet

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

func (*ClusterImageSet) DeepCopyInto

func (in *ClusterImageSet) DeepCopyInto(out *ClusterImageSet)

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

func (*ClusterImageSet) DeepCopyObject

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

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

type ClusterImageSetList

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

ClusterImageSetList contains a list of ClusterImageSet

func (*ClusterImageSetList) DeepCopy

func (in *ClusterImageSetList) DeepCopy() *ClusterImageSetList

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

func (*ClusterImageSetList) DeepCopyInto

func (in *ClusterImageSetList) DeepCopyInto(out *ClusterImageSetList)

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

func (*ClusterImageSetList) DeepCopyObject

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

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

type ClusterImageSetReference

type ClusterImageSetReference struct {
	// Name is the name of the ClusterImageSet that this refers to
	Name string `json:"name"`
}

ClusterImageSetReference is a reference to a ClusterImageSet

func (*ClusterImageSetReference) DeepCopy

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

func (*ClusterImageSetReference) DeepCopyInto

func (in *ClusterImageSetReference) DeepCopyInto(out *ClusterImageSetReference)

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

type ClusterImageSetSpec

type ClusterImageSetSpec struct {
	// ReleaseImage is the image that contains the payload to use when installing
	// a cluster.
	ReleaseImage string `json:"releaseImage"`
}

ClusterImageSetSpec defines the desired state of ClusterImageSet

func (*ClusterImageSetSpec) DeepCopy

func (in *ClusterImageSetSpec) DeepCopy() *ClusterImageSetSpec

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

func (*ClusterImageSetSpec) DeepCopyInto

func (in *ClusterImageSetSpec) DeepCopyInto(out *ClusterImageSetSpec)

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

type ClusterImageSetStatus

type ClusterImageSetStatus struct{}

ClusterImageSetStatus defines the observed state of ClusterImageSet

func (*ClusterImageSetStatus) DeepCopy

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

func (*ClusterImageSetStatus) DeepCopyInto

func (in *ClusterImageSetStatus) DeepCopyInto(out *ClusterImageSetStatus)

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

type ClusterIngress

type ClusterIngress struct {
	// Name of the ClusterIngress object to create.
	// +required
	Name string `json:"name"`

	// Domain (sometimes referred to as shard) is the full DNS suffix that the resulting
	// IngressController object will service (eg abcd.mycluster.mydomain.com).
	// +required
	Domain string `json:"domain"`

	// NamespaceSelector allows filtering the list of namespaces serviced by the
	// ingress controller.
	// +optional
	NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"`

	// RouteSelector allows filtering the set of Routes serviced by the ingress controller
	// +optional
	RouteSelector *metav1.LabelSelector `json:"routeSelector,omitempty"`

	// ServingCertificate references a CertificateBundle in the ClusterDeployment.Spec that
	// should be used for this Ingress
	// +optional
	ServingCertificate string `json:"servingCertificate,omitempty"`

	// HttpErrorCodePages allows configuring custom HTTP error pages using the IngressController object
	// +optional
	HttpErrorCodePages *configv1.ConfigMapNameReference `json:"httpErrorCodePages,omitempty"`
}

ClusterIngress contains the configurable pieces for any ClusterIngress objects that should exist on the cluster.

func (*ClusterIngress) DeepCopy

func (in *ClusterIngress) DeepCopy() *ClusterIngress

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

func (*ClusterIngress) DeepCopyInto

func (in *ClusterIngress) DeepCopyInto(out *ClusterIngress)

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

type ClusterInstallCondition

type ClusterInstallCondition struct {
	// Type is the type of the condition.
	Type ClusterInstallConditionType `json:"type"`
	// Status is the status of the condition.
	Status corev1.ConditionStatus `json:"status"`
	// LastProbeTime is the last time we probed the condition.
	// +optional
	LastProbeTime metav1.Time `json:"lastProbeTime,omitempty"`
	// LastTransitionTime is the last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Reason is a unique, one-word, CamelCase reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Message is a human-readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

ClusterInstallCondition contains details for the current condition of a cluster install.

func (ClusterInstallCondition) ConditionType

func (c ClusterInstallCondition) ConditionType() ConditionType

ConditionType satisfies the conditions.Condition interface

func (*ClusterInstallCondition) DeepCopy

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

func (*ClusterInstallCondition) DeepCopyInto

func (in *ClusterInstallCondition) DeepCopyInto(out *ClusterInstallCondition)

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

type ClusterInstallConditionType

type ClusterInstallConditionType string
const (
	// ClusterInstallRequirementsMet is True when all pre-install requirements have been met.
	ClusterInstallRequirementsMet ClusterInstallConditionType = "RequirementsMet"

	// ClusterInstallCompleted is True when the requested install has been completed successfully.
	ClusterInstallCompleted ClusterInstallConditionType = "Completed"

	// ClusterInstallFailed is True when an attempt to install the cluster has failed.
	// The ClusterInstall controllers may still be retrying if supported, and this condition will
	// go back to False if a later attempt succeeds.
	ClusterInstallFailed ClusterInstallConditionType = "Failed"

	// ClusterInstallStopped is True the controllers are no longer working on this
	// ClusterInstall. Combine with Completed or Failed to know if the overall request was
	// successful or not.
	ClusterInstallStopped ClusterInstallConditionType = "Stopped"
)

func (ClusterInstallConditionType) String

String satisfies the conditions.ConditionType interface

type ClusterInstallLocalReference

type ClusterInstallLocalReference struct {
	Group   string `json:"group"`
	Version string `json:"version"`
	Kind    string `json:"kind"`

	Name string `json:"name"`
}

ClusterInstallLocalReference provides reference to an object that implements the hivecontract ClusterInstall. The namespace of the object is same as the ClusterDeployment.

func (*ClusterInstallLocalReference) DeepCopy

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

func (*ClusterInstallLocalReference) DeepCopyInto

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

type ClusterMetadata

type ClusterMetadata struct {

	// ClusterID is a globally unique identifier for this cluster generated during installation. Used for reporting metrics among other places.
	ClusterID string `json:"clusterID"`

	// InfraID is an identifier for this cluster generated during installation and used for tagging/naming resources in cloud providers.
	InfraID string `json:"infraID"`

	// AdminKubeconfigSecretRef references the secret containing the admin kubeconfig for this cluster.
	AdminKubeconfigSecretRef corev1.LocalObjectReference `json:"adminKubeconfigSecretRef"`

	// AdminPasswordSecretRef references the secret containing the admin username/password which can be used to login to this cluster.
	// +optional
	AdminPasswordSecretRef *corev1.LocalObjectReference `json:"adminPasswordSecretRef,omitempty"`

	// Platform holds platform-specific cluster metadata
	// +optional
	Platform *ClusterPlatformMetadata `json:"platform,omitempty"`
}

ClusterMetadata contains metadata information about the installed cluster.

func (*ClusterMetadata) DeepCopy

func (in *ClusterMetadata) DeepCopy() *ClusterMetadata

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

func (*ClusterMetadata) DeepCopyInto

func (in *ClusterMetadata) DeepCopyInto(out *ClusterMetadata)

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

type ClusterOperatorState

type ClusterOperatorState struct {
	// Name is the name of the cluster operator
	Name string `json:"name"`

	// Conditions is the set of conditions in the status of the cluster operator
	// on the target cluster
	Conditions []configv1.ClusterOperatorStatusCondition `json:"conditions,omitempty"`
}

ClusterOperatorState summarizes the status of a single cluster operator

func (*ClusterOperatorState) DeepCopy

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

func (*ClusterOperatorState) DeepCopyInto

func (in *ClusterOperatorState) DeepCopyInto(out *ClusterOperatorState)

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

type ClusterPlatformMetadata

type ClusterPlatformMetadata struct {
	// AWS holds AWS-specific cluster metadata
	// +optional
	AWS *aws.Metadata `json:"aws,omitempty"`

	// Azure holds azure-specific cluster metadata
	// +optional
	Azure *azure.Metadata `json:"azure,omitempty"`

	// GCP holds GCP-specific cluster metadata
	// +optional
	GCP *gcp.Metadata `json:"gcp,omitempty"`
}

func (*ClusterPlatformMetadata) DeepCopy

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

func (*ClusterPlatformMetadata) DeepCopyInto

func (in *ClusterPlatformMetadata) DeepCopyInto(out *ClusterPlatformMetadata)

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

type ClusterPool

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

	Spec   ClusterPoolSpec   `json:"spec"`
	Status ClusterPoolStatus `json:"status,omitempty"`
}

ClusterPool represents a pool of clusters that should be kept ready to be given out to users. Clusters are removed from the pool once claimed and then automatically replaced with a new one. +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:subresource:scale:specpath=.spec.size,statuspath=.status.size +kubebuilder:printcolumn:name="Size",type="string",JSONPath=".spec.size" +kubebuilder:printcolumn:name="Standby",type="string",JSONPath=".status.standby" +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.ready" +kubebuilder:printcolumn:name="BaseDomain",type="string",JSONPath=".spec.baseDomain" +kubebuilder:printcolumn:name="ImageSet",type="string",JSONPath=".spec.imageSetRef.name" +kubebuilder:resource:path=clusterpools,shortName=cp

func (*ClusterPool) DeepCopy

func (in *ClusterPool) DeepCopy() *ClusterPool

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

func (*ClusterPool) DeepCopyInto

func (in *ClusterPool) DeepCopyInto(out *ClusterPool)

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

func (*ClusterPool) DeepCopyObject

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

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

type ClusterPoolClaimLifetime

type ClusterPoolClaimLifetime struct {
	// Default is the default lifetime of the claim when no lifetime is set on the claim itself.
	// This is a Duration value; see https://pkg.go.dev/time#ParseDuration for accepted formats.
	// Note: due to discrepancies in validation vs parsing, we use a Pattern instead of `Format=duration`. See
	// https://bugzilla.redhat.com/show_bug.cgi?id=2050332
	// https://github.com/kubernetes/apimachinery/issues/131
	// https://github.com/kubernetes/apiextensions-apiserver/issues/56
	// +optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	Default *metav1.Duration `json:"default,omitempty"`

	// Maximum is the maximum lifetime of the claim after it is assigned a cluster. If the claim still exists
	// when the lifetime has elapsed, the claim will be deleted by Hive.
	// The lifetime of a claim is the mimimum of the lifetimes set by the cluster pool and the claim itself.
	// This is a Duration value; see https://pkg.go.dev/time#ParseDuration for accepted formats.
	// Note: due to discrepancies in validation vs parsing, we use a Pattern instead of `Format=duration`. See
	// https://bugzilla.redhat.com/show_bug.cgi?id=2050332
	// https://github.com/kubernetes/apimachinery/issues/131
	// https://github.com/kubernetes/apiextensions-apiserver/issues/56
	// +optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	Maximum *metav1.Duration `json:"maximum,omitempty"`
}

ClusterPoolClaimLifetime defines the lifetimes for claims for the cluster pool.

func (*ClusterPoolClaimLifetime) DeepCopy

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

func (*ClusterPoolClaimLifetime) DeepCopyInto

func (in *ClusterPoolClaimLifetime) DeepCopyInto(out *ClusterPoolClaimLifetime)

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

type ClusterPoolCondition

type ClusterPoolCondition struct {
	// Type is the type of the condition.
	Type ClusterPoolConditionType `json:"type"`
	// Status is the status of the condition.
	Status corev1.ConditionStatus `json:"status"`
	// LastProbeTime is the last time we probed the condition.
	// +optional
	LastProbeTime metav1.Time `json:"lastProbeTime,omitempty"`
	// LastTransitionTime is the last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Reason is a unique, one-word, CamelCase reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Message is a human-readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

ClusterPoolCondition contains details for the current condition of a cluster pool

func (ClusterPoolCondition) ConditionType

func (c ClusterPoolCondition) ConditionType() ConditionType

ConditionType satisfies the conditions.Condition interface

func (*ClusterPoolCondition) DeepCopy

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

func (*ClusterPoolCondition) DeepCopyInto

func (in *ClusterPoolCondition) DeepCopyInto(out *ClusterPoolCondition)

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

type ClusterPoolConditionType

type ClusterPoolConditionType string

ClusterPoolConditionType is a valid value for ClusterPoolCondition.Type

const (
	// ClusterPoolMissingDependenciesCondition is set when a cluster pool is missing dependencies required to create a
	// cluster. Dependencies include resources such as the ClusterImageSet and the credentials Secret.
	ClusterPoolMissingDependenciesCondition ClusterPoolConditionType = "MissingDependencies"
	// ClusterPoolCapacityAvailableCondition is set to provide information on whether the cluster pool has capacity
	// available to create more clusters for the pool.
	ClusterPoolCapacityAvailableCondition ClusterPoolConditionType = "CapacityAvailable"
	// ClusterPoolAllClustersCurrentCondition indicates whether all unassigned (installing or ready)
	// ClusterDeployments in the pool match the current configuration of the ClusterPool.
	ClusterPoolAllClustersCurrentCondition ClusterPoolConditionType = "AllClustersCurrent"
	// ClusterPoolInventoryValidCondition is set to provide information on whether the cluster pool inventory is valid.
	ClusterPoolInventoryValidCondition ClusterPoolConditionType = "InventoryValid"
	// ClusterPoolDeletionPossibleCondition gives information about a deleted ClusterPool which is pending cleanup.
	// Note that it is normal for this condition to remain Initialized/Unknown until the ClusterPool is deleted.
	ClusterPoolDeletionPossibleCondition ClusterPoolConditionType = "DeletionPossible"
)

func (ClusterPoolConditionType) String

func (t ClusterPoolConditionType) String() string

String satisfies the conditions.ConditionType interface

type ClusterPoolList

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

ClusterPoolList contains a list of ClusterPools

func (*ClusterPoolList) DeepCopy

func (in *ClusterPoolList) DeepCopy() *ClusterPoolList

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

func (*ClusterPoolList) DeepCopyInto

func (in *ClusterPoolList) DeepCopyInto(out *ClusterPoolList)

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

func (*ClusterPoolList) DeepCopyObject

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

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

type ClusterPoolReference

type ClusterPoolReference struct {
	// Namespace is the namespace where the ClusterPool resides.
	Namespace string `json:"namespace"`
	// PoolName is the name of the ClusterPool for which the cluster was created.
	PoolName string `json:"poolName"`
	// ClaimName is the name of the ClusterClaim that claimed the cluster from the pool.
	// +optional
	ClaimName string `json:"claimName,omitempty"`
	// ClaimedTimestamp is the time this cluster was assigned to a ClusterClaim. This is only used for
	// ClusterDeployments belonging to ClusterPools.
	ClaimedTimestamp *metav1.Time `json:"claimedTimestamp,omitempty"`
	// CustomizationRef is the ClusterPool Inventory claimed customization for this ClusterDeployment.
	// The Customization exists in the ClusterPool namespace.
	// +optional
	CustomizationRef *corev1.LocalObjectReference `json:"clusterDeploymentCustomization,omitempty"`
}

ClusterPoolReference is a reference to a ClusterPool

func (*ClusterPoolReference) DeepCopy

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

func (*ClusterPoolReference) DeepCopyInto

func (in *ClusterPoolReference) DeepCopyInto(out *ClusterPoolReference)

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

type ClusterPoolSpec

type ClusterPoolSpec struct {

	// Platform encompasses the desired platform for the cluster.
	// +required
	Platform Platform `json:"platform"`

	// PullSecretRef is the reference to the secret to use when pulling images.
	// +optional
	PullSecretRef *corev1.LocalObjectReference `json:"pullSecretRef,omitempty"`

	// Size is the default number of clusters that we should keep provisioned and waiting for use.
	// +kubebuilder:validation:Minimum=0
	// +required
	Size int32 `json:"size"`

	// RunningCount is the number of clusters we should keep running. The remainder will be kept hibernated until claimed.
	// By default no clusters will be kept running (all will be hibernated).
	// +kubebuilder:validation:Minimum=0
	// +optional
	RunningCount int32 `json:"runningCount,omitempty"`

	// MaxSize is the maximum number of clusters that will be provisioned including clusters that have been claimed
	// and ones waiting to be used.
	// By default there is no limit.
	// +optional
	MaxSize *int32 `json:"maxSize,omitempty"`

	// MaxConcurrent is the maximum number of clusters that will be provisioned or deprovisioned at an time. This includes the
	// claimed clusters being deprovisioned.
	// By default there is no limit.
	// +optional
	MaxConcurrent *int32 `json:"maxConcurrent,omitempty"`

	// BaseDomain is the base domain to use for all clusters created in this pool.
	// +required
	BaseDomain string `json:"baseDomain"`

	// ImageSetRef is a reference to a ClusterImageSet. The release image specified in the ClusterImageSet will be used
	// by clusters created for this cluster pool.
	ImageSetRef ClusterImageSetReference `json:"imageSetRef"`

	// Labels to be applied to new ClusterDeployments created for the pool. ClusterDeployments that have already been
	// claimed will not be affected when this value is modified.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Annotations to be applied to new ClusterDeployments created for the pool. ClusterDeployments that have already been
	// claimed will not be affected when this value is modified.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// InstallConfigSecretTemplateRef is a secret with the key install-config.yaml consisting of the content of the install-config.yaml
	// to be used as a template for all clusters in this pool.
	// Cluster specific settings (name, basedomain) will be injected dynamically when the ClusterDeployment install-config Secret is generated.
	// +optional
	InstallConfigSecretTemplateRef *corev1.LocalObjectReference `json:"installConfigSecretTemplateRef,omitempty"`

	// HibernateAfter will be applied to new ClusterDeployments created for the pool. HibernateAfter will transition
	// clusters in the clusterpool to hibernating power state after it has been running for the given duration. The time
	// that a cluster has been running is the time since the cluster was installed or the time since the cluster last came
	// out of hibernation.
	// This is a Duration value; see https://pkg.go.dev/time#ParseDuration for accepted formats.
	// Note: due to discrepancies in validation vs parsing, we use a Pattern instead of `Format=duration`. See
	// https://bugzilla.redhat.com/show_bug.cgi?id=2050332
	// https://github.com/kubernetes/apimachinery/issues/131
	// https://github.com/kubernetes/apiextensions-apiserver/issues/56
	// +optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	HibernateAfter *metav1.Duration `json:"hibernateAfter,omitempty"`

	// InstallAttemptsLimit is the maximum number of times Hive will attempt to install the cluster.
	// +optional
	InstallAttemptsLimit *int32 `json:"installAttemptsLimit,omitempty"`

	// SkipMachinePools allows creating clusterpools where the machinepools are not managed by hive after cluster creation
	// +optional
	SkipMachinePools bool `json:"skipMachinePools,omitempty"`

	// ClaimLifetime defines the lifetimes for claims for the cluster pool.
	// +optional
	ClaimLifetime *ClusterPoolClaimLifetime `json:"claimLifetime,omitempty"`

	// HibernationConfig configures the hibernation/resume behavior of ClusterDeployments owned by the ClusterPool.
	// +optional
	HibernationConfig *HibernationConfig `json:"hibernationConfig"`

	// Inventory maintains a list of entries consumed by the ClusterPool
	// to customize the default ClusterDeployment.
	// +optional
	Inventory []InventoryEntry `json:"inventory,omitempty"`

	// InstallerEnv are extra environment variables to pass through to the installer. This may be used to enable
	// additional features of the installer.
	// +optional
	InstallerEnv []corev1.EnvVar `json:"installerEnv,omitempty"`
}

ClusterPoolSpec defines the desired state of the ClusterPool.

func (*ClusterPoolSpec) DeepCopy

func (in *ClusterPoolSpec) DeepCopy() *ClusterPoolSpec

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

func (*ClusterPoolSpec) DeepCopyInto

func (in *ClusterPoolSpec) DeepCopyInto(out *ClusterPoolSpec)

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

type ClusterPoolStatus

type ClusterPoolStatus struct {
	// Size is the number of unclaimed clusters that have been created for the pool.
	Size int32 `json:"size"`

	// Standby is the number of unclaimed clusters that are installed, but not running.
	// +optional
	Standby int32 `json:"standby"`

	// Ready is the number of unclaimed clusters that are installed and are running and ready to be claimed.
	Ready int32 `json:"ready"`

	// Conditions includes more detailed status for the cluster pool
	// +optional
	Conditions []ClusterPoolCondition `json:"conditions,omitempty"`
}

ClusterPoolStatus defines the observed state of ClusterPool

func (*ClusterPoolStatus) DeepCopy

func (in *ClusterPoolStatus) DeepCopy() *ClusterPoolStatus

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

func (*ClusterPoolStatus) DeepCopyInto

func (in *ClusterPoolStatus) DeepCopyInto(out *ClusterPoolStatus)

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

type ClusterPowerState

type ClusterPowerState string

ClusterPowerState is used to indicate whether a cluster is running or in a hibernating state.

const (
	// ClusterPowerStateRunning is the default state of a cluster after it has
	// been installed. All of its machines should be running.
	ClusterPowerStateRunning ClusterPowerState = "Running"

	// ClusterPowerStateHibernating indicates the machines belonging to a cluster
	// are stopped.
	ClusterPowerStateHibernating ClusterPowerState = "Hibernating"

	// ClusterPowerStateSyncSetsNotApplied indicates SyncSets have not yet been applied
	// for the cluster based on ClusterSync.Status.FirstSucessTime
	ClusterPowerStateSyncSetsNotApplied ClusterPowerState = "SyncSetsNotApplied"

	// ClusterPowerStateStartingMachines is used to reflect attempt to list and start cloud VMs
	ClusterPowerStateStartingMachines ClusterPowerState = "StartingMachines"

	// ClusterPowerStateFailedToStartMachines
	ClusterPowerStateFailedToStartMachines ClusterPowerState = "FailedToStartMachines"

	// ClusterPowerStateStopping indicates the cluster is transitioning
	// from a Running state to a Hibernating state.
	ClusterPowerStateStopping ClusterPowerState = "Stopping"

	// ClusterPowerStateFailedToStop is used when there was an error stopping machines
	// to enter hibernation
	ClusterPowerStateFailedToStop ClusterPowerState = "FailedToStop"

	// ClusterPowerStateWaitingForMachinesToStop is used when waiting for cloud VMs to stop
	ClusterPowerStateWaitingForMachinesToStop ClusterPowerState = "WaitingForMachinesToStop"

	// ClusterPowerStateWaitingForMachines is used when waiting for cloud VMs to start.
	ClusterPowerStateWaitingForMachines ClusterPowerState = "WaitingForMachines"

	// ClusterPowerStateWaitingForNodes is used when waiting for nodes to become Ready.
	ClusterPowerStateWaitingForNodes ClusterPowerState = "WaitingForNodes"

	// ClusterPowerStatePausingForClusterOperatorsToSettle is used when pausing to let ClusterOperators start and post new status before we check it.
	ClusterPowerStatePausingForClusterOperatorsToSettle ClusterPowerState = "PausingForClusterOperatorsToSettle"

	// ClusterPowerStateWaitingForClusterOperators is used when waiting for ClusterOperators to
	// get to a good state. (Available=True, Processing=False, Degraded=False)
	ClusterPowerStateWaitingForClusterOperators ClusterPowerState = "WaitingForClusterOperators"

	// ClusterPowerStateUnknown indicates that we can't/won't discover the state of the cluster's cloud machines.
	ClusterPowerStateUnknown = "Unknown"
)

type ClusterProvision

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

	// +kubebuilder:pruning:PreserveUnknownFields
	Spec   ClusterProvisionSpec   `json:"spec,omitempty"`
	Status ClusterProvisionStatus `json:"status,omitempty"`
}

ClusterProvision is the Schema for the clusterprovisions API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="ClusterDeployment",type="string",JSONPath=".spec.clusterDeploymentRef.name" +kubebuilder:printcolumn:name="Stage",type="string",JSONPath=".spec.stage" +kubebuilder:printcolumn:name="InfraID",type="string",JSONPath=".spec.infraID" +kubebuilder:resource:path=clusterprovisions,scope=Namespaced

func (*ClusterProvision) DeepCopy

func (in *ClusterProvision) DeepCopy() *ClusterProvision

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

func (*ClusterProvision) DeepCopyInto

func (in *ClusterProvision) DeepCopyInto(out *ClusterProvision)

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

func (*ClusterProvision) DeepCopyObject

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

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

type ClusterProvisionCondition

type ClusterProvisionCondition struct {
	// Type is the type of the condition.
	Type ClusterProvisionConditionType `json:"type"`
	// Status is the status of the condition.
	Status corev1.ConditionStatus `json:"status"`
	// LastProbeTime is the last time we probed the condition.
	// +optional
	LastProbeTime metav1.Time `json:"lastProbeTime,omitempty"`
	// LastTransitionTime is the last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Reason is a unique, one-word, CamelCase reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Message is a human-readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

ClusterProvisionCondition contains details for the current condition of a cluster provision

func (ClusterProvisionCondition) ConditionType

func (c ClusterProvisionCondition) ConditionType() ConditionType

ConditionType satisfies the conditions.Condition interface

func (*ClusterProvisionCondition) DeepCopy

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

func (*ClusterProvisionCondition) DeepCopyInto

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

type ClusterProvisionConditionType

type ClusterProvisionConditionType string

ClusterProvisionConditionType is a valid value for ClusterProvisionCondition.Type

const (
	// ClusterProvisionInitializedCondition is set when a cluster provision has finished initialization.
	ClusterProvisionInitializedCondition ClusterProvisionConditionType = "ClusterProvisionInitialized"

	// ClusterProvisionCompletedCondition is set when a cluster provision completes.
	ClusterProvisionCompletedCondition ClusterProvisionConditionType = "ClusterProvisionCompleted"

	// ClusterProvisionFailedCondition is set when a cluster provision fails.
	ClusterProvisionFailedCondition ClusterProvisionConditionType = "ClusterProvisionFailed"

	// ClusterProvisionJobCreated is set when the install job is created for a cluster provision.
	ClusterProvisionJobCreated ClusterProvisionConditionType = "ClusterProvisionJobCreated"

	// InstallPodStuckCondition is set when the install pod is stuck
	InstallPodStuckCondition ClusterProvisionConditionType = "InstallPodStuck"
)

func (ClusterProvisionConditionType) String

String satisfies the conditions.ConditionType interface

type ClusterProvisionList

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

ClusterProvisionList contains a list of ClusterProvision

func (*ClusterProvisionList) DeepCopy

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

func (*ClusterProvisionList) DeepCopyInto

func (in *ClusterProvisionList) DeepCopyInto(out *ClusterProvisionList)

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

func (*ClusterProvisionList) DeepCopyObject

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

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

type ClusterProvisionSpec

type ClusterProvisionSpec struct {

	// ClusterDeploymentRef references the cluster deployment provisioned.
	ClusterDeploymentRef corev1.LocalObjectReference `json:"clusterDeploymentRef"`

	// PodSpec is the spec to use for the installer pod.
	PodSpec corev1.PodSpec `json:"podSpec"`

	// Attempt is which attempt number of the cluster deployment that this ClusterProvision is
	Attempt int `json:"attempt"`

	// Stage is the stage of provisioning that the cluster deployment has reached.
	Stage ClusterProvisionStage `json:"stage"`

	// ClusterID is a globally unique identifier for this cluster generated during installation. Used for reporting metrics among other places.
	ClusterID *string `json:"clusterID,omitempty"`

	// InfraID is an identifier for this cluster generated during installation and used for tagging/naming resources in cloud providers.
	InfraID *string `json:"infraID,omitempty"`

	// InstallLog is the log from the installer.
	InstallLog *string `json:"installLog,omitempty"`

	// Metadata is the metadata.json generated by the installer, providing metadata information about the cluster created.
	// NOTE: This is not used because it didn't work (it was always empty). We think because the thing it's storing
	// (ClusterMetadata from installer) is not a runtime.Object, so can't be put in a RawExtension.
	Metadata *runtime.RawExtension `json:"metadata,omitempty"`

	// MetadataJSON is a JSON representation of the ClusterMetadata produced by the installer. We don't use a
	// runtime.RawExtension because ClusterMetadata isn't a runtime.Object. We don't use ClusterMetadata itself
	// because we don't want our API consumers to need to pull in the installer code and its dependencies.
	// +optional
	MetadataJSON []byte `json:"metadataJSON,omitempty"`

	// AdminKubeconfigSecretRef references the secret containing the admin kubeconfig for this cluster.
	AdminKubeconfigSecretRef *corev1.LocalObjectReference `json:"adminKubeconfigSecretRef,omitempty"`

	// AdminPasswordSecretRef references the secret containing the admin username/password which can be used to login to this cluster.
	AdminPasswordSecretRef *corev1.LocalObjectReference `json:"adminPasswordSecretRef,omitempty"`

	// PrevClusterID is the cluster ID of the previous failed provision attempt.
	PrevClusterID *string `json:"prevClusterID,omitempty"`

	// PrevInfraID is the infra ID of the previous failed provision attempt.
	PrevInfraID *string `json:"prevInfraID,omitempty"`

	// PrevProvisionName is the name of the previous failed provision attempt.
	PrevProvisionName *string `json:"prevProvisionName,omitempty"`
}

ClusterProvisionSpec defines the results of provisioning a cluster.

func (*ClusterProvisionSpec) DeepCopy

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

func (*ClusterProvisionSpec) DeepCopyInto

func (in *ClusterProvisionSpec) DeepCopyInto(out *ClusterProvisionSpec)

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

type ClusterProvisionStage

type ClusterProvisionStage string

ClusterProvisionStage is the stage of provisioning.

const (
	// ClusterProvisionStageInitializing indicates that pre-provision initialization is underway.
	ClusterProvisionStageInitializing ClusterProvisionStage = "initializing"
	// ClusterProvisionStageProvisioning indicates that the cluster provision is ongoing.
	ClusterProvisionStageProvisioning ClusterProvisionStage = "provisioning"
	// ClusterProvisionStageComplete indicates that the cluster provision completed successfully.
	ClusterProvisionStageComplete ClusterProvisionStage = "complete"
	// ClusterProvisionStageFailed indicates that the cluster provision failed.
	ClusterProvisionStageFailed ClusterProvisionStage = "failed"
)

type ClusterProvisionStatus

type ClusterProvisionStatus struct {
	// JobRef is the reference to the job performing the provision.
	JobRef *corev1.LocalObjectReference `json:"jobRef,omitempty"`

	// Conditions includes more detailed status for the cluster provision
	// +optional
	Conditions []ClusterProvisionCondition `json:"conditions,omitempty"`
}

ClusterProvisionStatus defines the observed state of ClusterProvision.

func (*ClusterProvisionStatus) DeepCopy

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

func (*ClusterProvisionStatus) DeepCopyInto

func (in *ClusterProvisionStatus) DeepCopyInto(out *ClusterProvisionStatus)

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

type ClusterRelocate

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

	Spec   ClusterRelocateSpec   `json:"spec,omitempty"`
	Status ClusterRelocateStatus `json:"status,omitempty"`
}

ClusterRelocate is the Schema for the ClusterRelocates API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Selector",type="string",JSONPath=".spec.clusterDeploymentSelector" +kubebuilder:resource:path=clusterrelocates

func (*ClusterRelocate) DeepCopy

func (in *ClusterRelocate) DeepCopy() *ClusterRelocate

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

func (*ClusterRelocate) DeepCopyInto

func (in *ClusterRelocate) DeepCopyInto(out *ClusterRelocate)

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

func (*ClusterRelocate) DeepCopyObject

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

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

type ClusterRelocateList

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

ClusterRelocateList contains a list of ClusterRelocate

func (*ClusterRelocateList) DeepCopy

func (in *ClusterRelocateList) DeepCopy() *ClusterRelocateList

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

func (*ClusterRelocateList) DeepCopyInto

func (in *ClusterRelocateList) DeepCopyInto(out *ClusterRelocateList)

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

func (*ClusterRelocateList) DeepCopyObject

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

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

type ClusterRelocateSpec

type ClusterRelocateSpec struct {
	// KubeconfigSecretRef is a reference to the secret containing the kubeconfig for the destination Hive instance.
	// The kubeconfig must be in a data field where the key is "kubeconfig".
	KubeconfigSecretRef KubeconfigSecretReference `json:"kubeconfigSecretRef"`

	// ClusterDeploymentSelector is a LabelSelector indicating which clusters will be relocated.
	ClusterDeploymentSelector metav1.LabelSelector `json:"clusterDeploymentSelector"`
}

ClusterRelocateSpec defines the relocation of clusters from one Hive instance to another.

func (*ClusterRelocateSpec) DeepCopy

func (in *ClusterRelocateSpec) DeepCopy() *ClusterRelocateSpec

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

func (*ClusterRelocateSpec) DeepCopyInto

func (in *ClusterRelocateSpec) DeepCopyInto(out *ClusterRelocateSpec)

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

type ClusterRelocateStatus

type ClusterRelocateStatus struct{}

ClusterRelocateStatus defines the observed state of ClusterRelocate.

func (*ClusterRelocateStatus) DeepCopy

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

func (*ClusterRelocateStatus) DeepCopyInto

func (in *ClusterRelocateStatus) DeepCopyInto(out *ClusterRelocateStatus)

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

type ClusterState

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

	Spec   ClusterStateSpec   `json:"spec,omitempty"`
	Status ClusterStateStatus `json:"status,omitempty"`
}

ClusterState is the Schema for the clusterstates API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Namespaced

func (*ClusterState) DeepCopy

func (in *ClusterState) DeepCopy() *ClusterState

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

func (*ClusterState) DeepCopyInto

func (in *ClusterState) DeepCopyInto(out *ClusterState)

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

func (*ClusterState) DeepCopyObject

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

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

type ClusterStateList

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

ClusterStateList contains a list of ClusterState

func (*ClusterStateList) DeepCopy

func (in *ClusterStateList) DeepCopy() *ClusterStateList

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

func (*ClusterStateList) DeepCopyInto

func (in *ClusterStateList) DeepCopyInto(out *ClusterStateList)

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

func (*ClusterStateList) DeepCopyObject

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

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

type ClusterStateSpec

type ClusterStateSpec struct {
}

ClusterStateSpec defines the desired state of ClusterState

func (*ClusterStateSpec) DeepCopy

func (in *ClusterStateSpec) DeepCopy() *ClusterStateSpec

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

func (*ClusterStateSpec) DeepCopyInto

func (in *ClusterStateSpec) DeepCopyInto(out *ClusterStateSpec)

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

type ClusterStateStatus

type ClusterStateStatus struct {
	// LastUpdated is the last time that operator state was updated
	LastUpdated *metav1.Time `json:"lastUpdated,omitempty"`

	// ClusterOperators contains the state for every cluster operator in the
	// target cluster
	ClusterOperators []ClusterOperatorState `json:"clusterOperators,omitempty"`
}

ClusterStateStatus defines the observed state of ClusterState

func (*ClusterStateStatus) DeepCopy

func (in *ClusterStateStatus) DeepCopy() *ClusterStateStatus

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

func (*ClusterStateStatus) DeepCopyInto

func (in *ClusterStateStatus) DeepCopyInto(out *ClusterStateStatus)

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

type Condition

type Condition interface {
	ConditionType() ConditionType
}

type ConditionType

type ConditionType interface {
	fmt.Stringer
}

type ControlPlaneAdditionalCertificate

type ControlPlaneAdditionalCertificate struct {
	// Name references a CertificateBundle in the ClusterDeployment.Spec that should be
	// used for this additional certificate.
	Name string `json:"name"`

	// Domain is the domain of the additional control plane certificate
	Domain string `json:"domain"`
}

ControlPlaneAdditionalCertificate defines an additional serving certificate for a control plane

func (*ControlPlaneAdditionalCertificate) DeepCopy

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

func (*ControlPlaneAdditionalCertificate) DeepCopyInto

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

type ControlPlaneConfigSpec

type ControlPlaneConfigSpec struct {
	// ServingCertificates specifies serving certificates for the control plane
	// +optional
	ServingCertificates ControlPlaneServingCertificateSpec `json:"servingCertificates,omitempty"`

	// APIURLOverride is the optional URL override to which Hive will transition for communication with the API
	// server of the remote cluster. When a remote cluster is created, Hive will initially communicate using the
	// API URL established during installation. If an API URL Override is specified, Hive will periodically attempt
	// to connect to the remote cluster using the override URL. Once Hive has determined that the override URL is
	// active, Hive will use the override URL for further communications with the API server of the remote cluster.
	// +optional
	APIURLOverride string `json:"apiURLOverride,omitempty"`

	// APIServerIPOverride is the optional override of the API server IP address.
	// Hive will use this IP address for creating TCP connections.
	// Port from the original API server URL will be used.
	// This field can be used when repointing the APIServer's DNS is not viable option.
	// +optional
	APIServerIPOverride string `json:"apiServerIPOverride,omitempty"`
}

ControlPlaneConfigSpec contains additional configuration settings for a target cluster's control plane.

func (*ControlPlaneConfigSpec) DeepCopy

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

func (*ControlPlaneConfigSpec) DeepCopyInto

func (in *ControlPlaneConfigSpec) DeepCopyInto(out *ControlPlaneConfigSpec)

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

type ControlPlaneServingCertificateSpec

type ControlPlaneServingCertificateSpec struct {
	// Default references the name of a CertificateBundle in the ClusterDeployment that should be
	// used for the control plane's default endpoint.
	// +optional
	Default string `json:"default,omitempty"`

	// Additional is a list of additional domains and certificates that are also associated with
	// the control plane's api endpoint.
	// +optional
	Additional []ControlPlaneAdditionalCertificate `json:"additional,omitempty"`
}

ControlPlaneServingCertificateSpec specifies serving certificate settings for the control plane of the target cluster.

func (*ControlPlaneServingCertificateSpec) DeepCopy

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

func (*ControlPlaneServingCertificateSpec) DeepCopyInto

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

type ControllerConfig

type ControllerConfig struct {
	// ConcurrentReconciles specifies number of concurrent reconciles for a controller
	// +optional
	ConcurrentReconciles *int32 `json:"concurrentReconciles,omitempty"`
	// ClientQPS specifies client rate limiter QPS for a controller
	// +optional
	ClientQPS *int32 `json:"clientQPS,omitempty"`
	// ClientBurst specifies client rate limiter burst for a controller
	// +optional
	ClientBurst *int32 `json:"clientBurst,omitempty"`
	// QueueQPS specifies workqueue rate limiter QPS for a controller
	// +optional
	QueueQPS *int32 `json:"queueQPS,omitempty"`
	// QueueBurst specifies workqueue rate limiter burst for a controller
	// +optional
	QueueBurst *int32 `json:"queueBurst,omitempty"`
	// Replicas specifies the number of replicas the specific controller pod should use.
	// This is ONLY for controllers that have been split out into their own pods.
	// This is ignored for all others.
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`
	// Resources describes the compute resource requirements of the controller container.
	// This is ONLY for controllers that have been split out into their own pods.
	// This is ignored for all others.
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
}

ControllerConfig contains the configuration for a controller

func (*ControllerConfig) DeepCopy

func (in *ControllerConfig) DeepCopy() *ControllerConfig

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

func (*ControllerConfig) DeepCopyInto

func (in *ControllerConfig) DeepCopyInto(out *ControllerConfig)

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

type ControllerName

type ControllerName string

+kubebuilder:validation:Enum=clusterDeployment;clusterrelocate;clusterstate;clusterversion;controlPlaneCerts;dnsendpoint;dnszone;remoteingress;remotemachineset;machinepool;syncidentityprovider;unreachable;velerobackup;clusterprovision;clusterDeprovision;clusterpool;clusterpoolnamespace;hibernation;clusterclaim;metrics;clustersync

const (
	ClusterClaimControllerName         ControllerName = "clusterclaim"
	ClusterDeploymentControllerName    ControllerName = "clusterDeployment"
	ClusterDeprovisionControllerName   ControllerName = "clusterDeprovision"
	ClusterpoolControllerName          ControllerName = "clusterpool"
	ClusterpoolNamespaceControllerName ControllerName = "clusterpoolnamespace"
	ClusterProvisionControllerName     ControllerName = "clusterProvision"
	ClusterRelocateControllerName      ControllerName = "clusterRelocate"
	ClusterStateControllerName         ControllerName = "clusterState"
	ClusterVersionControllerName       ControllerName = "clusterversion"
	ControlPlaneCertsControllerName    ControllerName = "controlPlaneCerts"
	DNSEndpointControllerName          ControllerName = "dnsendpoint"
	DNSZoneControllerName              ControllerName = "dnszone"
	FakeClusterInstallControllerName   ControllerName = "fakeclusterinstall"
	HibernationControllerName          ControllerName = "hibernation"
	RemoteIngressControllerName        ControllerName = "remoteingress"
	SyncIdentityProviderControllerName ControllerName = "syncidentityprovider"
	UnreachableControllerName          ControllerName = "unreachable"
	VeleroBackupControllerName         ControllerName = "velerobackup"
	MetricsControllerName              ControllerName = "metrics"
	ClustersyncControllerName          ControllerName = "clustersync"
	AWSPrivateLinkControllerName       ControllerName = "awsprivatelink"
	PrivateLinkControllerName          ControllerName = "privatelink"
	HiveControllerName                 ControllerName = "hive"

	// DeprecatedRemoteMachinesetControllerName was deprecated but can be used to disable the
	// MachinePool controller which supercedes it for compatability.
	DeprecatedRemoteMachinesetControllerName ControllerName = "remotemachineset"
	MachinePoolControllerName                ControllerName = "machinepool"
)

WARNING: All the controller names below should also be added to the kubebuilder validation of the type ControllerName

func (ControllerName) String

func (controllerName ControllerName) String() string

type ControllerNames

type ControllerNames []ControllerName

ControllerNames is a slice of controller names

func (ControllerNames) Contains

func (c ControllerNames) Contains(controllerName ControllerName) bool

Contains says whether or not the controller name is in the slice of controller names.

func (ControllerNames) DeepCopy

func (in ControllerNames) DeepCopy() ControllerNames

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

func (ControllerNames) DeepCopyInto

func (in ControllerNames) DeepCopyInto(out *ControllerNames)

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

type ControllersConfig

type ControllersConfig struct {
	// Default specifies default configuration for all the controllers, can be used to override following coded defaults
	// default for concurrent reconciles is 5
	// default for client qps is 5
	// default for client burst is 10
	// default for queue qps is 10
	// default for queue burst is 100
	// +optional
	Default *ControllerConfig `json:"default,omitempty"`
	// Controllers contains a list of configurations for different controllers
	// +optional
	Controllers []SpecificControllerConfig `json:"controllers,omitempty"`
}

ControllersConfig contains default as well as controller specific configurations

func (*ControllersConfig) DeepCopy

func (in *ControllersConfig) DeepCopy() *ControllersConfig

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

func (*ControllersConfig) DeepCopyInto

func (in *ControllersConfig) DeepCopyInto(out *ControllersConfig)

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

type DNSZone

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

	Spec   DNSZoneSpec   `json:"spec,omitempty"`
	Status DNSZoneStatus `json:"status,omitempty"`
}

DNSZone is the Schema for the dnszones API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Namespaced

func (*DNSZone) DeepCopy

func (in *DNSZone) DeepCopy() *DNSZone

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

func (*DNSZone) DeepCopyInto

func (in *DNSZone) DeepCopyInto(out *DNSZone)

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

func (*DNSZone) DeepCopyObject

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

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

type DNSZoneCondition

type DNSZoneCondition struct {
	// Type is the type of the condition.
	Type DNSZoneConditionType `json:"type"`
	// Status is the status of the condition.
	Status corev1.ConditionStatus `json:"status"`
	// LastProbeTime is the last time we probed the condition.
	// +optional
	LastProbeTime metav1.Time `json:"lastProbeTime,omitempty"`
	// LastTransitionTime is the last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Reason is a unique, one-word, CamelCase reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Message is a human-readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

DNSZoneCondition contains details for the current condition of a DNSZone

func (DNSZoneCondition) ConditionType

func (c DNSZoneCondition) ConditionType() ConditionType

ConditionType satisfies the conditions.Condition interface

func (*DNSZoneCondition) DeepCopy

func (in *DNSZoneCondition) DeepCopy() *DNSZoneCondition

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

func (*DNSZoneCondition) DeepCopyInto

func (in *DNSZoneCondition) DeepCopyInto(out *DNSZoneCondition)

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

type DNSZoneConditionType

type DNSZoneConditionType string

DNSZoneConditionType is a valid value for DNSZoneCondition.Type

const (
	// ZoneAvailableDNSZoneCondition is true if the DNSZone is responding to DNS queries
	ZoneAvailableDNSZoneCondition DNSZoneConditionType = "ZoneAvailable"
	// ParentLinkCreatedCondition is true if the parent link has been created
	ParentLinkCreatedCondition DNSZoneConditionType = "ParentLinkCreated"
	// DomainNotManaged is true if we try to reconcile a DNSZone and the HiveConfig
	// does not contain a ManagedDNS entry for the domain in the DNSZone
	DomainNotManaged DNSZoneConditionType = "DomainNotManaged"
	// InsufficientCredentialsCondition is true when credentials cannot be used to create a
	// DNS zone because of insufficient permissions
	InsufficientCredentialsCondition DNSZoneConditionType = "InsufficientCredentials"
	// AuthenticationFailureCondition is true when credentials cannot be used to create a
	// DNS zone because they fail authentication
	AuthenticationFailureCondition DNSZoneConditionType = "AuthenticationFailure"
	// APIOptInRequiredCondition is true when the user account used for managing DNS
	// needs to enable the DNS apis.
	APIOptInRequiredCondition DNSZoneConditionType = "APIOptInRequired"
	// GenericDNSErrorsCondition is true when there's some DNS Zone related error that isn't related to
	// authentication or credentials, and needs to be bubbled up to ClusterDeployment
	GenericDNSErrorsCondition DNSZoneConditionType = "DNSError"
)

func (DNSZoneConditionType) String

func (t DNSZoneConditionType) String() string

String satisfies the conditions.ConditionType interface

type DNSZoneList

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

DNSZoneList contains a list of DNSZone

func (*DNSZoneList) DeepCopy

func (in *DNSZoneList) DeepCopy() *DNSZoneList

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

func (*DNSZoneList) DeepCopyInto

func (in *DNSZoneList) DeepCopyInto(out *DNSZoneList)

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

func (*DNSZoneList) DeepCopyObject

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

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

type DNSZoneSpec

type DNSZoneSpec struct {
	// Zone is the DNS zone to host
	Zone string `json:"zone"`

	// LinkToParentDomain specifies whether DNS records should
	// be automatically created to link this DNSZone with a
	// parent domain.
	// +optional
	LinkToParentDomain bool `json:"linkToParentDomain,omitempty"`

	// PreserveOnDelete allows the user to disconnect a DNSZone from Hive without deprovisioning it.
	// This can also be used to abandon ongoing DNSZone deprovision.
	// Typically set automatically due to PreserveOnDelete being set on a ClusterDeployment.
	// +optional
	PreserveOnDelete bool `json:"preserveOnDelete,omitempty"`

	// AWS specifies AWS-specific cloud configuration
	// +optional
	AWS *AWSDNSZoneSpec `json:"aws,omitempty"`

	// GCP specifies GCP-specific cloud configuration
	// +optional
	GCP *GCPDNSZoneSpec `json:"gcp,omitempty"`

	// Azure specifes Azure-specific cloud configuration
	// +optional
	Azure *AzureDNSZoneSpec `json:"azure,omitempty"`
}

DNSZoneSpec defines the desired state of DNSZone

func (*DNSZoneSpec) DeepCopy

func (in *DNSZoneSpec) DeepCopy() *DNSZoneSpec

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

func (*DNSZoneSpec) DeepCopyInto

func (in *DNSZoneSpec) DeepCopyInto(out *DNSZoneSpec)

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

type DNSZoneStatus

type DNSZoneStatus struct {
	// LastSyncTimestamp is the time that the zone was last sync'd.
	// +optional
	LastSyncTimestamp *metav1.Time `json:"lastSyncTimestamp,omitempty"`

	// LastSyncGeneration is the generation of the zone resource that was last sync'd. This is used to know
	// if the Object has changed and we should sync immediately.
	// +optional
	LastSyncGeneration int64 `json:"lastSyncGeneration,omitempty"`

	// NameServers is a list of nameservers for this DNS zone
	// +optional
	NameServers []string `json:"nameServers,omitempty"`

	// AWSDNSZoneStatus contains status information specific to AWS
	// +optional
	AWS *AWSDNSZoneStatus `json:"aws,omitempty"`

	// GCPDNSZoneStatus contains status information specific to GCP
	// +optional
	GCP *GCPDNSZoneStatus `json:"gcp,omitempty"`

	// AzureDNSZoneStatus contains status information specific to Azure
	Azure *AzureDNSZoneStatus `json:"azure,omitempty"`

	// Conditions includes more detailed status for the DNSZone
	// +optional
	Conditions []DNSZoneCondition `json:"conditions,omitempty"`
}

DNSZoneStatus defines the observed state of DNSZone

func (*DNSZoneStatus) DeepCopy

func (in *DNSZoneStatus) DeepCopy() *DNSZoneStatus

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

func (*DNSZoneStatus) DeepCopyInto

func (in *DNSZoneStatus) DeepCopyInto(out *DNSZoneStatus)

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

type DeleteProtectionType

type DeleteProtectionType string
const (
	DeleteProtectionEnabled DeleteProtectionType = "enabled"
)

type DeploymentConfig

type DeploymentConfig struct {
	// DeploymentName is the name of one of the Deployments/StatefulSets managed by hive-operator.
	// NOTE: At this time each deployment has only one container. In the future, we may provide a
	// way to specify which container this DeploymentConfig will be applied to.
	// +kubebuilder:validation:Enum=hive-controllers;hive-clustersync;hiveadmission
	DeploymentName DeploymentName `json:"deploymentName"`

	// Resources allows customization of the resource (memory, CPU, etc.) limits and requests used
	// by containers in the Deployment/StatefulSet named by DeploymentName.
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources"`
}

func (*DeploymentConfig) DeepCopy

func (in *DeploymentConfig) DeepCopy() *DeploymentConfig

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

func (*DeploymentConfig) DeepCopyInto

func (in *DeploymentConfig) DeepCopyInto(out *DeploymentConfig)

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

type DeploymentName

type DeploymentName string
const (
	DeploymentNameControllers DeploymentName = "hive-controllers"
	DeploymentNameClustersync DeploymentName = "hive-clustersync"
	DeploymentNameMachinepool DeploymentName = "hive-machinepool"
	DeploymentNameAdmission   DeploymentName = "hiveadmission"
)

type FailedProvisionAWSConfig

type FailedProvisionAWSConfig struct {
	// CredentialsSecretRef references a secret in the TargetNamespace that will be used to authenticate with
	// AWS S3. It will need permission to upload logs to S3.
	// Secret should have keys named aws_access_key_id and aws_secret_access_key that contain the AWS credentials.
	// Example Secret:
	//   data:
	//     aws_access_key_id: minio
	//     aws_secret_access_key: minio123
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef"`

	// Region is the AWS region to use for S3 operations.
	// This defaults to us-east-1.
	// For AWS China, use cn-northwest-1.
	// +optional
	Region string `json:"region,omitempty"`

	// ServiceEndpoint is the url to connect to an S3 compatible provider.
	ServiceEndpoint string `json:"serviceEndpoint,omitempty"`

	// Bucket is the S3 bucket to store the logs in.
	Bucket string `json:"bucket,omitempty"`
}

FailedProvisionAWSConfig contains AWS-specific info to upload log files.

func (*FailedProvisionAWSConfig) DeepCopy

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

func (*FailedProvisionAWSConfig) DeepCopyInto

func (in *FailedProvisionAWSConfig) DeepCopyInto(out *FailedProvisionAWSConfig)

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

type FailedProvisionConfig

type FailedProvisionConfig struct {

	// DEPRECATED: This flag is no longer respected and will be removed in the future.
	SkipGatherLogs bool                      `json:"skipGatherLogs,omitempty"`
	AWS            *FailedProvisionAWSConfig `json:"aws,omitempty"`
	// RetryReasons is a list of installFailingReason strings from the [additional-]install-log-regexes ConfigMaps.
	// If specified, Hive will only retry a failed installation if it results in one of the listed reasons. If
	// omitted (not the same thing as empty!), Hive will retry regardless of the failure reason. (The total number
	// of install attempts is still constrained by ClusterDeployment.Spec.InstallAttemptsLimit.)
	RetryReasons *[]string `json:"retryReasons,omitempty"`
}

FailedProvisionConfig contains settings to control behavior undertaken by Hive when an installation attempt fails.

func (*FailedProvisionConfig) DeepCopy

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

func (*FailedProvisionConfig) DeepCopyInto

func (in *FailedProvisionConfig) DeepCopyInto(out *FailedProvisionConfig)

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

type FeatureGateSelection

type FeatureGateSelection struct {
	// featureSet changes the list of features in the cluster.  The default is empty.  Be very careful adjusting this setting.
	// +unionDiscriminator
	// +optional
	FeatureSet FeatureSet `json:"featureSet,omitempty"`

	// custom allows the enabling or disabling of any feature.
	// Because of its nature, this setting cannot be validated.  If you have any typos or accidentally apply invalid combinations
	// might cause unknown behavior. featureSet must equal "Custom" must be set to use this field.
	// +optional
	// +nullable
	Custom *FeatureGatesEnabled `json:"custom,omitempty"`
}

FeatureGateSelection allows selecting feature gates for the controller.

func (*FeatureGateSelection) DeepCopy

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

func (*FeatureGateSelection) DeepCopyInto

func (in *FeatureGateSelection) DeepCopyInto(out *FeatureGateSelection)

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

type FeatureGatesEnabled

type FeatureGatesEnabled struct {
	// enabled is a list of all feature gates that you want to force on
	// +optional
	Enabled []string `json:"enabled,omitempty"`
}

FeatureGatesEnabled is list of feature gates that must be enabled.

func (*FeatureGatesEnabled) DeepCopy

func (in *FeatureGatesEnabled) DeepCopy() *FeatureGatesEnabled

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

func (*FeatureGatesEnabled) DeepCopyInto

func (in *FeatureGatesEnabled) DeepCopyInto(out *FeatureGatesEnabled)

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

type FeatureSet

type FeatureSet string

FeatureSet defines the set of feature gates that should be used. +kubebuilder:validation:Enum="";Custom

var (
	// DefaultFeatureSet feature set is the default things supported as part of normal supported platform.
	DefaultFeatureSet FeatureSet = ""

	// CustomFeatureSet allows the enabling or disabling of any feature. Turning this feature set on IS NOT SUPPORTED.
	// Because of its nature, this setting cannot be validated.  If you have any typos or accidentally apply invalid combinations
	// it might leave object in a state that is unrecoverable.
	CustomFeatureSet FeatureSet = "Custom"
)

type GCPClusterDeprovision

type GCPClusterDeprovision struct {
	// Region is the GCP region for this deprovision
	Region string `json:"region"`
	// CredentialsSecretRef is the GCP account credentials to use for deprovisioning the cluster
	CredentialsSecretRef *corev1.LocalObjectReference `json:"credentialsSecretRef,omitempty"`

	// NetworkProjectID is used for shared VPC setups
	// +optional
	NetworkProjectID *string `json:"networkProjectID,omitempty"`
}

GCPClusterDeprovision contains GCP-specific configuration for a ClusterDeprovision

func (*GCPClusterDeprovision) DeepCopy

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

func (*GCPClusterDeprovision) DeepCopyInto

func (in *GCPClusterDeprovision) DeepCopyInto(out *GCPClusterDeprovision)

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

type GCPDNSZoneSpec

type GCPDNSZoneSpec struct {
	// CredentialsSecretRef references a secret that will be used to authenticate with
	// GCP CloudDNS. It will need permission to create and manage CloudDNS Hosted Zones.
	// Secret should have a key named 'osServiceAccount.json'.
	// The credentials must specify the project to use.
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef"`
}

GCPDNSZoneSpec contains GCP-specific DNSZone specifications

func (*GCPDNSZoneSpec) DeepCopy

func (in *GCPDNSZoneSpec) DeepCopy() *GCPDNSZoneSpec

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

func (*GCPDNSZoneSpec) DeepCopyInto

func (in *GCPDNSZoneSpec) DeepCopyInto(out *GCPDNSZoneSpec)

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

type GCPDNSZoneStatus

type GCPDNSZoneStatus struct {
	// ZoneName is the name of the zone in GCP Cloud DNS
	// +optional
	ZoneName *string `json:"zoneName,omitempty"`
}

GCPDNSZoneStatus contains status information specific to GCP Cloud DNS zones

func (*GCPDNSZoneStatus) DeepCopy

func (in *GCPDNSZoneStatus) DeepCopy() *GCPDNSZoneStatus

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

func (*GCPDNSZoneStatus) DeepCopyInto

func (in *GCPDNSZoneStatus) DeepCopyInto(out *GCPDNSZoneStatus)

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

type GCPPrivateServiceConnectConfig

type GCPPrivateServiceConnectConfig struct {
	// CredentialsSecretRef references a secret in the TargetNamespace that will be used to authenticate with
	// GCP for creating the resources for GCP Private Service Connect
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef"`

	// EndpointVPCInventory is a list of VPCs and the corresponding subnets in various GCP regions.
	// The controller uses this list to choose a VPC for creating GCP Endpoints. Since the VPC Endpoints
	// must be in the same region as the ClusterDeployment, we must have VPCs in that region to be able
	// to setup Private Service Connect.
	// +optional
	EndpointVPCInventory []GCPPrivateServiceConnectInventory `json:"endpointVPCInventory,omitempty"`
}

GCPPrivateServiceConnectConfig defines the gcp private service connect config for the private-link controller.

func (*GCPPrivateServiceConnectConfig) DeepCopy

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

func (*GCPPrivateServiceConnectConfig) DeepCopyInto

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

type GCPPrivateServiceConnectInventory

type GCPPrivateServiceConnectInventory struct {
	Network string                           `json:"network"`
	Subnets []GCPPrivateServiceConnectSubnet `json:"subnets"`
}

GCPPrivateServiceConnectInventory is a VPC and its corresponding subnets. This VPC will be used to create a GCP Endpoint whenever there is a Private Service Connect service created for a ClusterDeployment.

func (*GCPPrivateServiceConnectInventory) DeepCopy

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

func (*GCPPrivateServiceConnectInventory) DeepCopyInto

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

type GCPPrivateServiceConnectSubnet

type GCPPrivateServiceConnectSubnet struct {
	Subnet string `json:"subnet"`
	Region string `json:"region"`
}

GCPPrivateServiceConnectSubnet defines subnet and the corresponding GCP region.

func (*GCPPrivateServiceConnectSubnet) DeepCopy

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

func (*GCPPrivateServiceConnectSubnet) DeepCopyInto

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

type HibernationConfig

type HibernationConfig struct {
	// ResumeTimeout is the maximum amount of time we will wait for an unclaimed ClusterDeployment to resume from
	// hibernation (e.g. at the behest of runningCount, or in preparation for being claimed). If this time is
	// exceeded, the ClusterDeployment will be considered Broken and we will replace it. The default (unspecified
	// or zero) means no timeout -- we will allow the ClusterDeployment to continue trying to resume "forever".
	// This is a Duration value; see https://pkg.go.dev/time#ParseDuration for accepted formats.
	// Note: due to discrepancies in validation vs parsing, we use a Pattern instead of `Format=duration`. See
	// https://bugzilla.redhat.com/show_bug.cgi?id=2050332
	// https://github.com/kubernetes/apimachinery/issues/131
	// https://github.com/kubernetes/apiextensions-apiserver/issues/56
	// +optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	ResumeTimeout metav1.Duration `json:"resumeTimeout"`
}

func (*HibernationConfig) DeepCopy

func (in *HibernationConfig) DeepCopy() *HibernationConfig

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

func (*HibernationConfig) DeepCopyInto

func (in *HibernationConfig) DeepCopyInto(out *HibernationConfig)

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

type HiveConfig

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

	Spec   HiveConfigSpec   `json:"spec,omitempty"`
	Status HiveConfigStatus `json:"status,omitempty"`
}

HiveConfig is the Schema for the hives API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster

func (*HiveConfig) DeepCopy

func (in *HiveConfig) DeepCopy() *HiveConfig

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

func (*HiveConfig) DeepCopyInto

func (in *HiveConfig) DeepCopyInto(out *HiveConfig)

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

func (*HiveConfig) DeepCopyObject

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

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

type HiveConfigCondition

type HiveConfigCondition struct {
	// Type is the type of the condition.
	Type HiveConfigConditionType `json:"type"`
	// Status is the status of the condition.
	Status corev1.ConditionStatus `json:"status"`
	// LastProbeTime is the last time we probed the condition.
	// +optional
	LastProbeTime metav1.Time `json:"lastProbeTime,omitempty"`
	// LastTransitionTime is the last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Reason is a unique, one-word, CamelCase reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Message is a human-readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

HiveConfigCondition contains details for the current condition of a HiveConfig

func (*HiveConfigCondition) DeepCopy

func (in *HiveConfigCondition) DeepCopy() *HiveConfigCondition

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

func (*HiveConfigCondition) DeepCopyInto

func (in *HiveConfigCondition) DeepCopyInto(out *HiveConfigCondition)

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

type HiveConfigConditionType

type HiveConfigConditionType string

HiveConfigConditionType is a valid value for HiveConfigCondition.Type

const (
	// HiveReadyCondition is set when hive is deployed successfully and ready to provision clusters
	HiveReadyCondition HiveConfigConditionType = "Ready"
)

type HiveConfigList

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

HiveConfigList contains a list of Hive

func (*HiveConfigList) DeepCopy

func (in *HiveConfigList) DeepCopy() *HiveConfigList

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

func (*HiveConfigList) DeepCopyInto

func (in *HiveConfigList) DeepCopyInto(out *HiveConfigList)

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

func (*HiveConfigList) DeepCopyObject

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

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

type HiveConfigSpec

type HiveConfigSpec struct {

	// TargetNamespace is the namespace where the core Hive components should be run. Defaults to "hive". Will be
	// created if it does not already exist. All resource references in HiveConfig can be assumed to be in the
	// TargetNamespace.
	// NOTE: Whereas it is possible to edit this value, causing hive to "move" its core components to the new
	// namespace, the old namespace is not deleted, as it will still contain resources created by kubernetes
	// and/or other OpenShift controllers.
	// +optional
	TargetNamespace string `json:"targetNamespace,omitempty"`

	// ManagedDomains is the list of DNS domains that are managed by the Hive cluster
	// When specifying 'manageDNS: true' in a ClusterDeployment, the ClusterDeployment's
	// baseDomain should be a direct child of one of these domains, otherwise the
	// ClusterDeployment creation will result in a validation error.
	// +optional
	ManagedDomains []ManageDNSConfig `json:"managedDomains,omitempty"`

	// AdditionalCertificateAuthoritiesSecretRef is a list of references to secrets in the
	// TargetNamespace that contain an additional Certificate Authority to use when communicating
	// with target clusters. These certificate authorities will be used in addition to any self-signed
	// CA generated by each cluster on installation. The cert data should be stored in the Secret key named 'ca.crt'.
	// +optional
	AdditionalCertificateAuthoritiesSecretRef []corev1.LocalObjectReference `json:"additionalCertificateAuthoritiesSecretRef,omitempty"`

	// GlobalPullSecretRef is used to specify a pull secret that will be used globally by all of the cluster deployments.
	// For each cluster deployment, the contents of GlobalPullSecret will be merged with the specific pull secret for
	// a cluster deployment(if specified), with precedence given to the contents of the pull secret for the cluster deployment.
	// The global pull secret is assumed to be in the TargetNamespace.
	// +optional
	GlobalPullSecretRef *corev1.LocalObjectReference `json:"globalPullSecretRef,omitempty"`

	// Backup specifies configuration for backup integration.
	// If absent, backup integration will be disabled.
	// +optional
	Backup BackupConfig `json:"backup,omitempty"`

	// FailedProvisionConfig is used to configure settings related to handling provision failures.
	// +optional
	FailedProvisionConfig FailedProvisionConfig `json:"failedProvisionConfig,omitempty"`

	// ServiceProviderCredentialsConfig is used to configure credentials related to being a service provider on
	// various cloud platforms.
	// +optional
	ServiceProviderCredentialsConfig ServiceProviderCredentials `json:"serviceProviderCredentialsConfig,omitempty"`

	// LogLevel is the level of logging to use for the Hive controllers.
	// Acceptable levels, from coarsest to finest, are panic, fatal, error, warn, info, debug, and trace.
	// The default level is info.
	// +optional
	LogLevel string `json:"logLevel,omitempty"`

	// SyncSetReapplyInterval is a string duration indicating how much time must pass before SyncSet resources
	// will be reapplied.
	// The default reapply interval is two hours.
	SyncSetReapplyInterval string `json:"syncSetReapplyInterval,omitempty"`

	// MachinePoolPollInterval is a string duration indicating how much time must pass before checking whether
	// remote resources related to MachinePools need to be reapplied. Set to zero to disable polling -- we'll
	// only reconcile when hub objects change.
	// The default interval is 30m.
	MachinePoolPollInterval string `json:"machinePoolPollInterval,omitempty"`

	// ClusterVersionPollInterval is a string duration indicating how much time must pass before checking
	// whether we need to update the hive.openshift.io/version* labels on ClusterDeployment. If zero or unset,
	// we'll only reconcile when the ClusterDeployment changes.
	ClusterVersionPollInterval string `json:"clusterVersionPollInterval,omitempty"`

	// MaintenanceMode can be set to true to disable the hive controllers in situations where we need to ensure
	// nothing is running that will add or act upon finalizers on Hive types. This should rarely be needed.
	// Sets replicas to 0 for the hive-controllers deployment to accomplish this.
	MaintenanceMode *bool `json:"maintenanceMode,omitempty"`

	// DeprovisionsDisabled can be set to true to block deprovision jobs from running.
	DeprovisionsDisabled *bool `json:"deprovisionsDisabled,omitempty"`

	// DeleteProtection can be set to "enabled" to turn on automatic delete protection for ClusterDeployments. When
	// enabled, Hive will add the "hive.openshift.io/protected-delete" annotation to new ClusterDeployments. Once a
	// ClusterDeployment has been installed, a user must remove the annotation from a ClusterDeployment prior to
	// deleting it.
	// +kubebuilder:validation:Enum=enabled
	// +optional
	DeleteProtection DeleteProtectionType `json:"deleteProtection,omitempty"`

	// DisabledControllers allows selectively disabling Hive controllers by name.
	// The name of an individual controller matches the name of the controller as seen in the Hive logging output.
	DisabledControllers []string `json:"disabledControllers,omitempty"`

	// ControllersConfig is used to configure different hive controllers
	// +optional
	ControllersConfig *ControllersConfig `json:"controllersConfig,omitempty"`

	// DeploymentConfig is used to configure (pods/containers of) the Deployments generated by hive-operator.
	// +optional
	DeploymentConfig *[]DeploymentConfig `json:"deploymentConfig,omitempty"`

	// PrivateLink is used to configure the privatelink controller.
	// +optional
	PrivateLink *PrivateLinkConfig `json:"privateLink,omitempty"`

	// AWSPrivateLink defines the configuration for the aws-private-link controller.
	// It provides 3 major pieces of information required by the controller,
	// 1. The Credentials that should be used to create AWS PrivateLink resources other than
	//     what exist in the customer's account.
	// 2. A list of VPCs that can be used by the controller to choose one to create AWS VPC Endpoints
	//     for the AWS VPC Endpoint Services created for ClusterDeployments in their
	//     corresponding regions.
	// 3. A list of VPCs that should be able to resolve the DNS addresses setup for Private Link.
	AWSPrivateLink *AWSPrivateLinkConfig `json:"awsPrivateLink,omitempty"`

	// ReleaseImageVerificationConfigMapRef is a reference to the ConfigMap that
	// will be used to verify release images.
	//
	// The config map structure is exactly the same as the config map used for verification of release
	// images for OpenShift 4 during upgrades. Therefore you can usually set this to the config map shipped
	// as part of OpenShift (openshift-config-managed/release-verification).
	//
	// See https://github.com/openshift/cluster-update-keys for more details.
	// The keys within the config map in the data field define how verification is performed:
	//
	// verifier-public-key-*: One or more GPG public keys in ASCII form that must have signed the
	//                        release image by digest.
	//
	// store-*: A URL (scheme file://, http://, or https://) location that contains signatures. These
	//          signatures are in the atomic container signature format. The URL will have the digest
	//          of the image appended to it as "<STORE>/<ALGO>=<DIGEST>/signature-<NUMBER>" as described
	//          in the container image signing format. The docker-image-manifest section of the
	//          signature must match the release image digest. Signatures are searched starting at
	//          NUMBER 1 and incrementing if the signature exists but is not valid. The signature is a
	//          GPG signed and encrypted JSON message. The file store is provided for testing only at
	//          the current time, although future versions of the CVO might allow host mounting of
	//          signatures.
	//
	// See https://github.com/containers/image/blob/ab49b0a48428c623a8f03b41b9083d48966b34a9/docs/signature-protocols.md
	// for a description of the signature store
	//
	// The returned verifier will require that any new release image will only be considered verified
	// if each provided public key has signed the release image digest. The signature may be in any
	// store and the lookup order is internally defined.
	//
	// If not set, no verification will be performed.
	// +optional
	ReleaseImageVerificationConfigMapRef *ReleaseImageVerificationConfigMapReference `json:"releaseImageVerificationConfigMapRef,omitempty"`
	// ArgoCD specifies configuration for ArgoCD integration. If enabled, Hive will automatically add provisioned
	// clusters to ArgoCD, and remove them when they are deprovisioned.
	ArgoCD ArgoCDConfig `json:"argoCDConfig,omitempty"`

	FeatureGates *FeatureGateSelection `json:"featureGates,omitempty"`

	// ExportMetrics has been disabled and has no effect. If upgrading from a version where it was
	// active, please be aware of the following in your HiveConfig.Spec.TargetNamespace (default
	// `hive` if unset):
	// 1) ServiceMonitors named hive-controllers and hive-clustersync;
	// 2) Role and RoleBinding named prometheus-k8s;
	// 3) The `openshift.io/cluster-monitoring` metadata.label on the Namespace itself.
	// You may wish to delete these resources. Or you may wish to continue using them to enable
	// monitoring in your environment; but be aware that hive will no longer reconcile them.
	ExportMetrics bool `json:"exportMetrics,omitempty"`

	// MetricsConfig encapsulates metrics specific configurations, like opting in for certain metrics.
	// +optional
	MetricsConfig *metricsconfig.MetricsConfig `json:"metricsConfig,omitempty"`
}

HiveConfigSpec defines the desired state of Hive

func (*HiveConfigSpec) DeepCopy

func (in *HiveConfigSpec) DeepCopy() *HiveConfigSpec

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

func (*HiveConfigSpec) DeepCopyInto

func (in *HiveConfigSpec) DeepCopyInto(out *HiveConfigSpec)

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

type HiveConfigStatus

type HiveConfigStatus struct {
	// AggregatorClientCAHash keeps an md5 hash of the aggregator client CA
	// configmap data from the openshift-config-managed namespace. When the configmap changes,
	// admission is redeployed.
	AggregatorClientCAHash string `json:"aggregatorClientCAHash,omitempty"`

	// ObservedGeneration will record the most recently processed HiveConfig object's generation.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// ConfigApplied will be set by the hive operator to indicate whether or not the LastGenerationObserved
	// was successfully reconciled.
	ConfigApplied bool `json:"configApplied,omitempty"`

	// Conditions includes more detailed status for the HiveConfig
	// +optional
	Conditions []HiveConfigCondition `json:"conditions,omitempty"`
}

HiveConfigStatus defines the observed state of Hive

func (*HiveConfigStatus) DeepCopy

func (in *HiveConfigStatus) DeepCopy() *HiveConfigStatus

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

func (*HiveConfigStatus) DeepCopyInto

func (in *HiveConfigStatus) DeepCopyInto(out *HiveConfigStatus)

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

type IBMClusterDeprovision

type IBMClusterDeprovision struct {
	// CredentialsSecretRef is the IBM Cloud credentials to use for deprovisioning the cluster
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef"`
	// Region specifies the IBM Cloud region
	Region string `json:"region"`
	// BaseDomain is the DNS base domain.
	// TODO: Use the non-platform-specific BaseDomain field.
	BaseDomain string `json:"baseDomain"`
}

IBMClusterDeprovision contains IBM Cloud specific configuration for a ClusterDeprovision

func (*IBMClusterDeprovision) DeepCopy

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

func (*IBMClusterDeprovision) DeepCopyInto

func (in *IBMClusterDeprovision) DeepCopyInto(out *IBMClusterDeprovision)

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

type IdentityProviderStatus

type IdentityProviderStatus struct {
}

IdentityProviderStatus defines the observed state of SyncSet

func (*IdentityProviderStatus) DeepCopy

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

func (*IdentityProviderStatus) DeepCopyInto

func (in *IdentityProviderStatus) DeepCopyInto(out *IdentityProviderStatus)

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

type InventoryEntry

type InventoryEntry struct {
	// Kind denotes the kind of the referenced resource. The default is ClusterDeploymentCustomization, which is also currently the only supported value.
	// +kubebuilder:default=ClusterDeploymentCustomization
	Kind InventoryEntryKind `json:"kind,omitempty"`
	// Name is the name of the referenced resource.
	// +required
	Name string `json:"name,omitempty"`
}

InventoryEntry maintains a reference to a custom resource consumed by a clusterpool to customize the cluster deployment.

func (*InventoryEntry) DeepCopy

func (in *InventoryEntry) DeepCopy() *InventoryEntry

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

func (*InventoryEntry) DeepCopyInto

func (in *InventoryEntry) DeepCopyInto(out *InventoryEntry)

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

type InventoryEntryKind

type InventoryEntryKind string

InventoryEntryKind is the Kind of the inventory entry. +kubebuilder:validation:Enum="";ClusterDeploymentCustomization

const ClusterDeploymentCustomizationInventoryEntry InventoryEntryKind = "ClusterDeploymentCustomization"

type KubeconfigSecretReference

type KubeconfigSecretReference struct {
	// Name is the name of the secret.
	Name string `json:"name"`
	// Namespace is the namespace where the secret lives.
	Namespace string `json:"namespace"`
}

KubeconfigSecretReference is a reference to a secret containing the kubeconfig for a remote cluster.

func (*KubeconfigSecretReference) DeepCopy

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

func (*KubeconfigSecretReference) DeepCopyInto

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

type MachinePool

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

	Spec   MachinePoolSpec   `json:"spec,omitempty"`
	Status MachinePoolStatus `json:"status,omitempty"`
}

MachinePool is the Schema for the machinepools API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas +kubebuilder:printcolumn:name="PoolName",type="string",JSONPath=".spec.name" +kubebuilder:printcolumn:name="ClusterDeployment",type="string",JSONPath=".spec.clusterDeploymentRef.name" +kubebuilder:printcolumn:name="Replicas",type="integer",JSONPath=".spec.replicas" +kubebuilder:resource:path=machinepools,scope=Namespaced

func (*MachinePool) DeepCopy

func (in *MachinePool) DeepCopy() *MachinePool

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

func (*MachinePool) DeepCopyInto

func (in *MachinePool) DeepCopyInto(out *MachinePool)

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

func (*MachinePool) DeepCopyObject

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

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

type MachinePoolAutoscaling

type MachinePoolAutoscaling struct {
	// MinReplicas is the minimum number of replicas for the machine pool.
	MinReplicas int32 `json:"minReplicas"`

	// MaxReplicas is the maximum number of replicas for the machine pool.
	MaxReplicas int32 `json:"maxReplicas"`
}

MachinePoolAutoscaling details how the machine pool is to be auto-scaled.

func (*MachinePoolAutoscaling) DeepCopy

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

func (*MachinePoolAutoscaling) DeepCopyInto

func (in *MachinePoolAutoscaling) DeepCopyInto(out *MachinePoolAutoscaling)

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

type MachinePoolCondition

type MachinePoolCondition struct {
	// Type is the type of the condition.
	Type MachinePoolConditionType `json:"type"`
	// Status is the status of the condition.
	Status corev1.ConditionStatus `json:"status"`
	// LastProbeTime is the last time we probed the condition.
	// +optional
	LastProbeTime metav1.Time `json:"lastProbeTime,omitempty"`
	// LastTransitionTime is the last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Reason is a unique, one-word, CamelCase reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Message is a human-readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

MachinePoolCondition contains details for the current condition of a machine pool

func (MachinePoolCondition) ConditionType

func (c MachinePoolCondition) ConditionType() ConditionType

ConditionType satisfies the conditions.Condition interface

func (*MachinePoolCondition) DeepCopy

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

func (*MachinePoolCondition) DeepCopyInto

func (in *MachinePoolCondition) DeepCopyInto(out *MachinePoolCondition)

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

type MachinePoolConditionType

type MachinePoolConditionType string

MachinePoolConditionType is a valid value for MachinePoolCondition.Type

const (
	// NotEnoughReplicasMachinePoolCondition is true when the minReplicas field
	// is set too low for the number of machinesets for the machine pool.
	NotEnoughReplicasMachinePoolCondition MachinePoolConditionType = "NotEnoughReplicas"

	// NoMachinePoolNameLeasesAvailable is true when the cloud provider requires a name lease for the in-cluster MachineSet, but no
	// leases are available.
	NoMachinePoolNameLeasesAvailable MachinePoolConditionType = "NoMachinePoolNameLeasesAvailable"

	// InvalidSubnetsMachinePoolCondition is true when there are missing or invalid entries in the subnet field
	InvalidSubnetsMachinePoolCondition MachinePoolConditionType = "InvalidSubnets"

	// UnsupportedConfigurationMachinePoolCondition is true when the configuration of the MachinePool is unsupported
	// by the cluster.
	UnsupportedConfigurationMachinePoolCondition MachinePoolConditionType = "UnsupportedConfiguration"
)

func (MachinePoolConditionType) String

func (t MachinePoolConditionType) String() string

String satisfies the conditions.ConditionType interface

type MachinePoolList

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

MachinePoolList contains a list of MachinePool

func (*MachinePoolList) DeepCopy

func (in *MachinePoolList) DeepCopy() *MachinePoolList

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

func (*MachinePoolList) DeepCopyInto

func (in *MachinePoolList) DeepCopyInto(out *MachinePoolList)

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

func (*MachinePoolList) DeepCopyObject

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

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

type MachinePoolNameLease

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

	Spec   MachinePoolNameLeaseSpec   `json:"spec,omitempty"`
	Status MachinePoolNameLeaseStatus `json:"status,omitempty"`
}

MachinePoolNameLease is the Schema for the MachinePoolNameLeases API. This resource is mostly empty as we're primarily relying on the name to determine if a lease is available. Note that not all cloud providers require the use of a lease for naming, at present this is only required for GCP where we're extremely restricted on name lengths. +k8s:openapi-gen=true +kubebuilder:printcolumn:name="MachinePool",type="string",JSONPath=".metadata.labels.hive\\.openshift\\.io/machine-pool-name" +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".metadata.labels.hive\\.openshift\\.io/cluster-deployment-name" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:scope=Namespaced

func (*MachinePoolNameLease) DeepCopy

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

func (*MachinePoolNameLease) DeepCopyInto

func (in *MachinePoolNameLease) DeepCopyInto(out *MachinePoolNameLease)

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

func (*MachinePoolNameLease) DeepCopyObject

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

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

type MachinePoolNameLeaseList

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

MachinePoolNameLeaseList contains a list of MachinePoolNameLeases.

func (*MachinePoolNameLeaseList) DeepCopy

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

func (*MachinePoolNameLeaseList) DeepCopyInto

func (in *MachinePoolNameLeaseList) DeepCopyInto(out *MachinePoolNameLeaseList)

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

func (*MachinePoolNameLeaseList) DeepCopyObject

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

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

type MachinePoolNameLeaseSpec

type MachinePoolNameLeaseSpec struct {
}

MachinePoolNameLeaseSpec is a minimal resource for obtaining unique machine pool names of a limited length.

func (*MachinePoolNameLeaseSpec) DeepCopy

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

func (*MachinePoolNameLeaseSpec) DeepCopyInto

func (in *MachinePoolNameLeaseSpec) DeepCopyInto(out *MachinePoolNameLeaseSpec)

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

type MachinePoolNameLeaseStatus

type MachinePoolNameLeaseStatus struct {
}

MachinePoolNameLeaseStatus defines the observed state of MachinePoolNameLease.

func (*MachinePoolNameLeaseStatus) DeepCopy

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

func (*MachinePoolNameLeaseStatus) DeepCopyInto

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

type MachinePoolPlatform

type MachinePoolPlatform struct {
	// AWS is the configuration used when installing on AWS.
	AWS *aws.MachinePoolPlatform `json:"aws,omitempty"`
	// Azure is the configuration used when installing on Azure.
	Azure *azure.MachinePool `json:"azure,omitempty"`
	// GCP is the configuration used when installing on GCP.
	GCP *gcp.MachinePool `json:"gcp,omitempty"`
	// OpenStack is the configuration used when installing on OpenStack.
	OpenStack *openstack.MachinePool `json:"openstack,omitempty"`
	// VSphere is the configuration used when installing on vSphere
	VSphere *vsphere.MachinePool `json:"vsphere,omitempty"`
	// Ovirt is the configuration used when installing on oVirt.
	Ovirt *ovirt.MachinePool `json:"ovirt,omitempty"`
	// IBMCloud is the configuration used when installing on IBM Cloud.
	IBMCloud *ibmcloud.MachinePool `json:"ibmcloud,omitempty"`
}

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

func (*MachinePoolPlatform) DeepCopy

func (in *MachinePoolPlatform) DeepCopy() *MachinePoolPlatform

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

func (*MachinePoolPlatform) DeepCopyInto

func (in *MachinePoolPlatform) DeepCopyInto(out *MachinePoolPlatform)

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

type MachinePoolSpec

type MachinePoolSpec struct {

	// ClusterDeploymentRef references the cluster deployment to which this
	// machine pool belongs.
	ClusterDeploymentRef corev1.LocalObjectReference `json:"clusterDeploymentRef"`

	// Name is the name of the machine pool.
	Name string `json:"name"`

	// Replicas is the count of machines for this machine pool.
	// Replicas and autoscaling cannot be used together.
	// Default is 1, if autoscaling is not used.
	// +optional
	Replicas *int64 `json:"replicas,omitempty"`

	// Autoscaling is the details for auto-scaling the machine pool.
	// Replicas and autoscaling cannot be used together.
	// +optional
	Autoscaling *MachinePoolAutoscaling `json:"autoscaling,omitempty"`

	// Platform is configuration for machine pool specific to the platform.
	// When using a MachinePool to control the default worker machines
	// created by installer, these must match the values provided in the
	// install-config.
	Platform MachinePoolPlatform `json:"platform"`

	// Map of label string keys and values that will be applied to the created MachineSet's
	// MachineSpec. This affects the labels that will end up on the *Nodes* (in contrast with
	// the MachineLabels field). This list will overwrite any modifications made to Node labels
	// on an ongoing basis.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Map of label string keys and values that will be applied to the created MachineSet's
	// MachineTemplateSpec. This affects the labels that will end up on the *Machines* (in
	// contrast with the Labels field). This list will overwrite any modifications made to
	// Machine labels on an ongoing basis. Note: We ignore entries that conflict with
	// generated labels.
	// +optional
	MachineLabels map[string]string `json:"machineLabels,omitempty"`

	// List of taints that will be applied to the created MachineSet's MachineSpec.
	// This list will overwrite any modifications made to Node taints on an ongoing basis.
	// In case of duplicate entries, first encountered taint Value will be preserved,
	// and the rest collapsed on the corresponding MachineSets.
	// Note that taints are uniquely identified based on key+effect, not just key.
	// +optional
	Taints []corev1.Taint `json:"taints,omitempty"`
}

MachinePoolSpec defines the desired state of MachinePool

func (*MachinePoolSpec) DeepCopy

func (in *MachinePoolSpec) DeepCopy() *MachinePoolSpec

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

func (*MachinePoolSpec) DeepCopyInto

func (in *MachinePoolSpec) DeepCopyInto(out *MachinePoolSpec)

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

type MachinePoolStatus

type MachinePoolStatus struct {
	// Replicas is the current number of replicas for the machine pool.
	// +optional
	Replicas int32 `json:"replicas,omitempty"`

	// MachineSets is the status of the machine sets for the machine pool on the remote cluster.
	MachineSets []MachineSetStatus `json:"machineSets,omitempty"`

	// Conditions includes more detailed status for the cluster deployment
	// +optional
	Conditions []MachinePoolCondition `json:"conditions,omitempty"`

	// OwnedLabels lists the keys of labels this MachinePool created on the remote MachineSet's
	// MachineSpec. (In contrast with OwnedMachineLabels.)
	// Used to identify labels to remove from the remote MachineSet when they are absent from
	// the MachinePool's spec.labels.
	// +optional
	OwnedLabels []string `json:"ownedLabels,omitempty"`

	// OwnedMachineLabels lists the keys of labels this MachinePool created on the remote
	// MachineSet's MachineTemplateSpec. (In contrast with OwnedLabels.)
	// Used to identify labels to remove from the remote MachineSet when they are absent from
	// the MachinePool's spec.machineLabels.
	// +optional
	OwnedMachineLabels []string `json:"ownedMachineLabels,omitempty"`

	// OwnedTaints lists identifiers of taints this MachinePool created on the remote MachineSet.
	// Used to identify taints to remove from the remote MachineSet when they are absent from
	// the MachinePool's spec.taints.
	// +optional
	OwnedTaints []TaintIdentifier `json:"ownedTaints,omitempty"`

	// ControlledByReplica indicates which replica of the hive-machinepool StatefulSet is responsible
	// for this MachinePool. Note that this value indicates the replica that most recently handled the
	// MachinePool. If the hive-machinepool statefulset is scaled up or down, the controlling replica
	// can change, potentially causing logs to be spread across multiple pods.
	ControlledByReplica *int64 `json:"controlledByReplica,omitempty"`
}

MachinePoolStatus defines the observed state of MachinePool

func (*MachinePoolStatus) DeepCopy

func (in *MachinePoolStatus) DeepCopy() *MachinePoolStatus

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

func (*MachinePoolStatus) DeepCopyInto

func (in *MachinePoolStatus) DeepCopyInto(out *MachinePoolStatus)

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

type MachineSetStatus

type MachineSetStatus struct {
	// Name is the name of the machine set.
	Name string `json:"name"`

	// Replicas is the current number of replicas for the machine set.
	Replicas int32 `json:"replicas"`

	// The number of ready replicas for this MachineSet. A machine is considered ready
	// when the node has been created and is "Ready". It is transferred as-is from the
	// MachineSet from remote cluster.
	// +optional
	ReadyReplicas int32 `json:"readyReplicas,omitempty"`

	// MinReplicas is the minimum number of replicas for the machine set.
	MinReplicas int32 `json:"minReplicas"`

	// MaxReplicas is the maximum number of replicas for the machine set.
	MaxReplicas int32 `json:"maxReplicas"`

	// In the event that there is a terminal problem reconciling the
	// replicas, both ErrorReason and ErrorMessage will be set. ErrorReason
	// will be populated with a succinct value suitable for machine
	// interpretation, while ErrorMessage will contain a more verbose
	// string suitable for logging and human consumption.
	// +optional
	ErrorReason *string `json:"errorReason,omitempty"`
	// +optional
	ErrorMessage *string `json:"errorMessage,omitempty"`
}

MachineSetStatus is the status of a machineset in the remote cluster.

func (*MachineSetStatus) DeepCopy

func (in *MachineSetStatus) DeepCopy() *MachineSetStatus

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

func (*MachineSetStatus) DeepCopyInto

func (in *MachineSetStatus) DeepCopyInto(out *MachineSetStatus)

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

type ManageDNSAWSConfig

type ManageDNSAWSConfig struct {
	// CredentialsSecretRef references a secret in the TargetNamespace that will be used to authenticate with
	// AWS Route53. It will need permission to manage entries for the domain
	// listed in the parent ManageDNSConfig object.
	// Secret should have AWS keys named 'aws_access_key_id' and 'aws_secret_access_key'.
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef"`

	// Region is the AWS region to use for route53 operations.
	// This defaults to us-east-1.
	// For AWS China, use cn-northwest-1.
	// +optional
	Region string `json:"region,omitempty"`
}

ManageDNSAWSConfig contains AWS-specific info to manage a given domain.

func (*ManageDNSAWSConfig) DeepCopy

func (in *ManageDNSAWSConfig) DeepCopy() *ManageDNSAWSConfig

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

func (*ManageDNSAWSConfig) DeepCopyInto

func (in *ManageDNSAWSConfig) DeepCopyInto(out *ManageDNSAWSConfig)

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

type ManageDNSAzureConfig

type ManageDNSAzureConfig struct {
	// CredentialsSecretRef references a secret in the TargetNamespace that will be used to authenticate with
	// Azure DNS. It wil need permission to manage entries in each of the
	// managed domains listed in the parent ManageDNSConfig object.
	// Secret should have a key named 'osServicePrincipal.json'
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef"`

	// ResourceGroupName specifies the Azure resource group containing the DNS zones
	// for the domains being managed.
	ResourceGroupName string `json:"resourceGroupName"`

	// CloudName is the name of the Azure cloud environment which can be used to configure the Azure SDK
	// with the appropriate Azure API endpoints.
	// If empty, the value is equal to "AzurePublicCloud".
	// +optional
	CloudName azure.CloudEnvironment `json:"cloudName,omitempty"`
}

ManageDNSAzureConfig contains Azure-specific info to manage a given domain

func (*ManageDNSAzureConfig) DeepCopy

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

func (*ManageDNSAzureConfig) DeepCopyInto

func (in *ManageDNSAzureConfig) DeepCopyInto(out *ManageDNSAzureConfig)

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

type ManageDNSConfig

type ManageDNSConfig struct {

	// Domains is the list of domains that hive will be managing entries for with the provided credentials.
	Domains []string `json:"domains"`

	// AWS contains AWS-specific settings for external DNS
	// +optional
	AWS *ManageDNSAWSConfig `json:"aws,omitempty"`

	// GCP contains GCP-specific settings for external DNS
	// +optional
	GCP *ManageDNSGCPConfig `json:"gcp,omitempty"`

	// Azure contains Azure-specific settings for external DNS
	// +optional
	Azure *ManageDNSAzureConfig `json:"azure,omitempty"`
}

ManageDNSConfig contains the domain being managed, and the cloud-specific details for accessing/managing the domain.

func (*ManageDNSConfig) DeepCopy

func (in *ManageDNSConfig) DeepCopy() *ManageDNSConfig

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

func (*ManageDNSConfig) DeepCopyInto

func (in *ManageDNSConfig) DeepCopyInto(out *ManageDNSConfig)

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

type ManageDNSGCPConfig

type ManageDNSGCPConfig struct {
	// CredentialsSecretRef references a secret in the TargetNamespace that will be used to authenticate with
	// GCP DNS. It will need permission to manage entries in each of the
	// managed domains for this cluster.
	// listed in the parent ManageDNSConfig object.
	// Secret should have a key named 'osServiceAccount.json'.
	// The credentials must specify the project to use.
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef"`
}

ManageDNSGCPConfig contains GCP-specific info to manage a given domain.

func (*ManageDNSGCPConfig) DeepCopy

func (in *ManageDNSGCPConfig) DeepCopy() *ManageDNSGCPConfig

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

func (*ManageDNSGCPConfig) DeepCopyInto

func (in *ManageDNSGCPConfig) DeepCopyInto(out *ManageDNSGCPConfig)

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

type MetaRuntimeObject

type MetaRuntimeObject interface {
	metav1.Object
	runtime.Object
}

MetaRuntimeObject allows for the generic specification of hive objects since all hive objects implement both the meta and runtime object interfaces.

type OpenStackClusterDeprovision

type OpenStackClusterDeprovision struct {
	// Cloud is the secion in the clouds.yaml secret below to use for auth/connectivity.
	Cloud string `json:"cloud"`
	// CredentialsSecretRef is the OpenStack account credentials to use for deprovisioning the cluster
	CredentialsSecretRef *corev1.LocalObjectReference `json:"credentialsSecretRef,omitempty"`
	// CertificatesSecretRef refers to a secret that contains CA certificates
	// necessary for communicating with the OpenStack.
	//
	// +optional
	CertificatesSecretRef *corev1.LocalObjectReference `json:"certificatesSecretRef,omitempty"`
}

OpenStackClusterDeprovision contains OpenStack-specific configuration for a ClusterDeprovision

func (*OpenStackClusterDeprovision) DeepCopy

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

func (*OpenStackClusterDeprovision) DeepCopyInto

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

type OvirtClusterDeprovision

type OvirtClusterDeprovision struct {
	// The oVirt cluster ID
	ClusterID string `json:"clusterID"`
	// CredentialsSecretRef is the oVirt account credentials to use for deprovisioning the cluster
	// secret fields: ovirt_url, ovirt_username, ovirt_password, ovirt_ca_bundle
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef"`
	// CertificatesSecretRef refers to a secret that contains the oVirt CA certificates
	// necessary for communicating with the oVirt.
	CertificatesSecretRef corev1.LocalObjectReference `json:"certificatesSecretRef"`
}

OvirtClusterDeprovision contains oVirt-specific configuration for a ClusterDeprovision

func (*OvirtClusterDeprovision) DeepCopy

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

func (*OvirtClusterDeprovision) DeepCopyInto

func (in *OvirtClusterDeprovision) DeepCopyInto(out *OvirtClusterDeprovision)

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

type PatchEntity

type PatchEntity struct {
	// Op is the operation to perform: add, remove, replace, move, copy, test
	// +required
	Op string `json:"op"`
	// Path is the json path to the value to be modified
	// +required
	Path string `json:"path"`
	// From is the json path to copy or move the value from
	// +optional
	From string `json:"from,omitempty"`
	// Value is the value to be used in the operation
	// +required
	Value string `json:"value"`
}

PatchEntity represent a json patch (RFC 6902) to be applied to the install-config

func (*PatchEntity) DeepCopy

func (in *PatchEntity) DeepCopy() *PatchEntity

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

func (*PatchEntity) DeepCopyInto

func (in *PatchEntity) DeepCopyInto(out *PatchEntity)

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

type Platform

type Platform struct {
	// AWS is the configuration used when installing on AWS.
	AWS *aws.Platform `json:"aws,omitempty"`

	// Azure is the configuration used when installing on Azure.
	// +optional
	Azure *azure.Platform `json:"azure,omitempty"`

	// BareMetal is the configuration used when installing on bare metal.
	BareMetal *baremetal.Platform `json:"baremetal,omitempty"`

	// GCP is the configuration used when installing on Google Cloud Platform.
	// +optional
	GCP *gcp.Platform `json:"gcp,omitempty"`

	// OpenStack is the configuration used when installing on OpenStack
	OpenStack *openstack.Platform `json:"openstack,omitempty"`

	// VSphere is the configuration used when installing on vSphere
	VSphere *vsphere.Platform `json:"vsphere,omitempty"`

	// Ovirt is the configuration used when installing on oVirt
	Ovirt *ovirt.Platform `json:"ovirt,omitempty"`

	// AgentBareMetal is the configuration used when performing an Assisted Agent based installation
	// to bare metal.
	AgentBareMetal *agent.BareMetalPlatform `json:"agentBareMetal,omitempty"`

	// IBMCloud is the configuration used when installing on IBM Cloud
	IBMCloud *ibmcloud.Platform `json:"ibmcloud,omitempty"`

	// None indicates platform-agnostic install.
	// https://docs.openshift.com/container-platform/4.7/installing/installing_platform_agnostic/installing-platform-agnostic.html
	None *none.Platform `json:"none,omitempty"`
}

Platform is the configuration for the specific platform upon which to perform the installation. Only one of the platform configuration should be set.

func (*Platform) DeepCopy

func (in *Platform) DeepCopy() *Platform

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

func (*Platform) DeepCopyInto

func (in *Platform) DeepCopyInto(out *Platform)

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

type PlatformStatus

type PlatformStatus struct {
	// AWS is the observed state on AWS.
	AWS *aws.PlatformStatus `json:"aws,omitempty"`

	// GCP is the observed state on GCP
	GCP *gcp.PlatformStatus `json:"gcp,omitempty"`
}

PlatformStatus contains the observed state for the specific platform upon which to perform the installation

func (*PlatformStatus) DeepCopy

func (in *PlatformStatus) DeepCopy() *PlatformStatus

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

func (*PlatformStatus) DeepCopyInto

func (in *PlatformStatus) DeepCopyInto(out *PlatformStatus)

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

type PrivateLinkConfig

type PrivateLinkConfig struct {
	// GCP is the configuration for GCP hub and link resources.
	// +optional
	GCP *GCPPrivateServiceConnectConfig `json:"gcp,omitempty"`
}

PrivateLinkConfig defines the configuration for the privatelink controller.

func (*PrivateLinkConfig) DeepCopy

func (in *PrivateLinkConfig) DeepCopy() *PrivateLinkConfig

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

func (*PrivateLinkConfig) DeepCopyInto

func (in *PrivateLinkConfig) DeepCopyInto(out *PrivateLinkConfig)

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

type Provisioning

type Provisioning struct {
	// InstallConfigSecretRef is the reference to a secret that contains an openshift-install
	// InstallConfig. This file will be passed through directly to the installer.
	// Any version of InstallConfig can be used, provided it can be parsed by the openshift-install
	// version for the release you are provisioning.
	// +optional
	InstallConfigSecretRef *corev1.LocalObjectReference `json:"installConfigSecretRef,omitempty"`

	// ReleaseImage is the image containing metadata for all components that run in the cluster, and
	// is the primary and best way to specify what specific version of OpenShift you wish to install.
	ReleaseImage string `json:"releaseImage,omitempty"`

	// InstallerImageOverride allows specifying a URI for the installer image, normally gleaned from
	// the metadata within the ReleaseImage.
	// +optional
	InstallerImageOverride string `json:"installerImageOverride,omitempty"`

	// ImageSetRef is a reference to a ClusterImageSet. If a value is specified for ReleaseImage,
	// that will take precedence over the one from the ClusterImageSet.
	ImageSetRef *ClusterImageSetReference `json:"imageSetRef,omitempty"`

	// ManifestsConfigMapRef is a reference to user-provided manifests to add to or replace manifests
	// that are generated by the installer. It serves the same purpose as, and is mutually exclusive
	// with, ManifestsSecretRef.
	ManifestsConfigMapRef *corev1.LocalObjectReference `json:"manifestsConfigMapRef,omitempty"`

	// ManifestsSecretRef is a reference to user-provided manifests to add to or replace manifests
	// that are generated by the installer. It serves the same purpose as, and is mutually exclusive
	// with, ManifestsConfigMapRef.
	ManifestsSecretRef *corev1.LocalObjectReference `json:"manifestsSecretRef,omitempty"`

	// SSHPrivateKeySecretRef is the reference to the secret that contains the private SSH key to use
	// for access to compute instances. This private key should correspond to the public key included
	// in the InstallConfig. The private key is used by Hive to gather logs on the target cluster if
	// there are install failures.
	// The SSH private key is expected to be in the secret data under the "ssh-privatekey" key.
	// +optional
	SSHPrivateKeySecretRef *corev1.LocalObjectReference `json:"sshPrivateKeySecretRef,omitempty"`

	// SSHKnownHosts are known hosts to be configured in the hive install manager pod to avoid ssh prompts.
	// Use of ssh in the install pod is somewhat limited today (failure log gathering from cluster, some bare metal
	// provisioning scenarios), so this setting is often not needed.
	SSHKnownHosts []string `json:"sshKnownHosts,omitempty"`

	// InstallerEnv are extra environment variables to pass through to the installer. This may be used to enable
	// additional features of the installer.
	// +optional
	InstallerEnv []corev1.EnvVar `json:"installerEnv,omitempty"`
}

Provisioning contains settings used only for initial cluster provisioning.

func (*Provisioning) DeepCopy

func (in *Provisioning) DeepCopy() *Provisioning

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

func (*Provisioning) DeepCopyInto

func (in *Provisioning) DeepCopyInto(out *Provisioning)

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

type ReleaseImageVerificationConfigMapReference

type ReleaseImageVerificationConfigMapReference struct {
	// Namespace of the ConfigMap
	Namespace string `json:"namespace"`
	// Name of the ConfigMap
	Name string `json:"name"`
}

ReleaseImageVerificationConfigMapReference is a reference to the ConfigMap that will be used to verify release images.

func (*ReleaseImageVerificationConfigMapReference) DeepCopy

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

func (*ReleaseImageVerificationConfigMapReference) DeepCopyInto

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

type RelocateStatus

type RelocateStatus string

RelocateStatus is the status of a cluster relocate. This is used in the value of the "hive.openshift.io/relocate" annotation.

const (
	// RelocateOutgoing indicates that a resource is on the source side of an in-progress relocate
	RelocateOutgoing RelocateStatus = "outgoing"
	// RelocateComplete indicates that a resource is on the source side of a completed relocate
	RelocateComplete RelocateStatus = "complete"
	// RelocateIncoming indicates that a resource is on the destination side of an in-progress relocate
	RelocateIncoming RelocateStatus = "incoming"
)

type SecretMapping

type SecretMapping struct {

	// SourceRef specifies the name and namespace of a secret on the management cluster
	SourceRef SecretReference `json:"sourceRef"`

	// TargetRef specifies the target name and namespace of the secret on the target cluster
	TargetRef SecretReference `json:"targetRef"`
}

SecretMapping defines a source and destination for a secret to be synced by a SyncSet

func (*SecretMapping) DeepCopy

func (in *SecretMapping) DeepCopy() *SecretMapping

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

func (*SecretMapping) DeepCopyInto

func (in *SecretMapping) DeepCopyInto(out *SecretMapping)

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

type SecretReference

type SecretReference struct {
	// Name is the name of the secret
	Name string `json:"name"`
	// Namespace is the namespace where the secret lives. If not present for the source
	// secret reference, it is assumed to be the same namespace as the syncset with the
	// reference.
	// +optional
	Namespace string `json:"namespace,omitempty"`
}

SecretReference is a reference to a secret by name and namespace

func (*SecretReference) DeepCopy

func (in *SecretReference) DeepCopy() *SecretReference

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

func (*SecretReference) DeepCopyInto

func (in *SecretReference) DeepCopyInto(out *SecretReference)

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

type SelectorSyncIdentityProvider

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

	Spec   SelectorSyncIdentityProviderSpec `json:"spec,omitempty"`
	Status IdentityProviderStatus           `json:"status,omitempty"`
}

SelectorSyncIdentityProvider is the Schema for the SelectorSyncSet API +k8s:openapi-gen=true +kubebuilder:resource:scope=Cluster

func (*SelectorSyncIdentityProvider) DeepCopy

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

func (*SelectorSyncIdentityProvider) DeepCopyInto

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

func (*SelectorSyncIdentityProvider) DeepCopyObject

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

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

type SelectorSyncIdentityProviderList

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

SelectorSyncIdentityProviderList contains a list of SelectorSyncIdentityProviders

func (*SelectorSyncIdentityProviderList) DeepCopy

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

func (*SelectorSyncIdentityProviderList) DeepCopyInto

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

func (*SelectorSyncIdentityProviderList) DeepCopyObject

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

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

type SelectorSyncIdentityProviderSpec

type SelectorSyncIdentityProviderSpec struct {
	SyncIdentityProviderCommonSpec `json:",inline"`

	// ClusterDeploymentSelector is a LabelSelector indicating which clusters the SelectorIdentityProvider
	// applies to in any namespace.
	// +optional
	ClusterDeploymentSelector metav1.LabelSelector `json:"clusterDeploymentSelector,omitempty"`
}

SelectorSyncIdentityProviderSpec defines the SyncIdentityProviderCommonSpec to sync to ClusterDeploymentSelector indicating which clusters the SelectorSyncIdentityProvider applies to in any namespace.

func (*SelectorSyncIdentityProviderSpec) DeepCopy

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

func (*SelectorSyncIdentityProviderSpec) DeepCopyInto

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

type SelectorSyncSet

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

	Spec   SelectorSyncSetSpec   `json:"spec,omitempty"`
	Status SelectorSyncSetStatus `json:"status,omitempty"`
}

SelectorSyncSet is the Schema for the SelectorSyncSet API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:path=selectorsyncsets,shortName=sss,scope=Cluster

func (*SelectorSyncSet) DeepCopy

func (in *SelectorSyncSet) DeepCopy() *SelectorSyncSet

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

func (*SelectorSyncSet) DeepCopyInto

func (in *SelectorSyncSet) DeepCopyInto(out *SelectorSyncSet)

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

func (*SelectorSyncSet) DeepCopyObject

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

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

type SelectorSyncSetList

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

SelectorSyncSetList contains a list of SyncSets

func (*SelectorSyncSetList) DeepCopy

func (in *SelectorSyncSetList) DeepCopy() *SelectorSyncSetList

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

func (*SelectorSyncSetList) DeepCopyInto

func (in *SelectorSyncSetList) DeepCopyInto(out *SelectorSyncSetList)

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

func (*SelectorSyncSetList) DeepCopyObject

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

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

type SelectorSyncSetSpec

type SelectorSyncSetSpec struct {
	SyncSetCommonSpec `json:",inline"`

	// ClusterDeploymentSelector is a LabelSelector indicating which clusters the SelectorSyncSet
	// applies to in any namespace.
	// +optional
	ClusterDeploymentSelector metav1.LabelSelector `json:"clusterDeploymentSelector,omitempty"`
}

SelectorSyncSetSpec defines the SyncSetCommonSpec resources and patches to sync along with a ClusterDeploymentSelector indicating which clusters the SelectorSyncSet applies to in any namespace.

func (*SelectorSyncSetSpec) DeepCopy

func (in *SelectorSyncSetSpec) DeepCopy() *SelectorSyncSetSpec

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

func (*SelectorSyncSetSpec) DeepCopyInto

func (in *SelectorSyncSetSpec) DeepCopyInto(out *SelectorSyncSetSpec)

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

type SelectorSyncSetStatus

type SelectorSyncSetStatus struct {
}

SelectorSyncSetStatus defines the observed state of a SelectorSyncSet

func (*SelectorSyncSetStatus) DeepCopy

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

func (*SelectorSyncSetStatus) DeepCopyInto

func (in *SelectorSyncSetStatus) DeepCopyInto(out *SelectorSyncSetStatus)

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

type ServiceProviderCredentials

type ServiceProviderCredentials struct {
	// AWS is used to configure credentials related to being a service provider on AWS.
	// +optional
	AWS *AWSServiceProviderCredentials `json:"aws,omitempty"`
}

ServiceProviderCredentials is used to configure credentials related to being a service provider on various cloud platforms.

func (*ServiceProviderCredentials) DeepCopy

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

func (*ServiceProviderCredentials) DeepCopyInto

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

type SpecificControllerConfig

type SpecificControllerConfig struct {
	// Name specifies the name of the controller
	Name ControllerName `json:"name"`
	// ControllerConfig contains the configuration for the controller specified by Name field
	Config ControllerConfig `json:"config"`
}

SpecificControllerConfig contains the configuration for a specific controller

func (*SpecificControllerConfig) DeepCopy

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

func (*SpecificControllerConfig) DeepCopyInto

func (in *SpecificControllerConfig) DeepCopyInto(out *SpecificControllerConfig)

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

type SyncCondition

type SyncCondition struct {
	// Type is the type of the condition.
	Type SyncConditionType `json:"type"`
	// Status is the status of the condition.
	Status corev1.ConditionStatus `json:"status"`
	// LastProbeTime is the last time we probed the condition.
	// +optional
	LastProbeTime metav1.Time `json:"lastProbeTime,omitempty"`
	// LastTransitionTime is the last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Reason is a unique, one-word, CamelCase reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Message is a human-readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

SyncCondition is a condition in a SyncStatus

func (SyncCondition) ConditionType

func (c SyncCondition) ConditionType() ConditionType

ConditionType satisfies the conditions.Condition interface

func (*SyncCondition) DeepCopy

func (in *SyncCondition) DeepCopy() *SyncCondition

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

func (*SyncCondition) DeepCopyInto

func (in *SyncCondition) DeepCopyInto(out *SyncCondition)

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

type SyncConditionType

type SyncConditionType string

SyncConditionType is a valid value for SyncCondition.Type

const (
	// ApplySuccessSyncCondition indicates whether the resource or patch has been applied.
	ApplySuccessSyncCondition SyncConditionType = "ApplySuccess"

	// ApplyFailureSyncCondition indicates that a resource or patch has failed to apply.
	// It should include a reason and message for the failure.
	ApplyFailureSyncCondition SyncConditionType = "ApplyFailure"

	// DeletionFailedSyncCondition indicates that resource deletion has failed.
	// It should include a reason and message for the failure.
	DeletionFailedSyncCondition SyncConditionType = "DeletionFailed"

	// UnknownObjectSyncCondition indicates that the resource type cannot be determined.
	// It should include a reason and message for the failure.
	UnknownObjectSyncCondition SyncConditionType = "UnknownObject"
)

func (SyncConditionType) String

func (t SyncConditionType) String() string

String satisfies the conditions.ConditionType interface

type SyncIdentityProvider

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

	Spec   SyncIdentityProviderSpec `json:"spec,omitempty"`
	Status IdentityProviderStatus   `json:"status,omitempty"`
}

SyncIdentityProvider is the Schema for the SyncIdentityProvider API +k8s:openapi-gen=true +kubebuilder:resource:scope=Namespaced

func (*SyncIdentityProvider) DeepCopy

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

func (*SyncIdentityProvider) DeepCopyInto

func (in *SyncIdentityProvider) DeepCopyInto(out *SyncIdentityProvider)

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

func (*SyncIdentityProvider) DeepCopyObject

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

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

type SyncIdentityProviderCommonSpec

type SyncIdentityProviderCommonSpec struct {
	//IdentityProviders is an ordered list of ways for a user to identify themselves
	// +required
	IdentityProviders []openshiftapiv1.IdentityProvider `json:"identityProviders"`
}

SyncIdentityProviderCommonSpec defines the identity providers to sync

func (*SyncIdentityProviderCommonSpec) DeepCopy

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

func (*SyncIdentityProviderCommonSpec) DeepCopyInto

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

type SyncIdentityProviderList

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

SyncIdentityProviderList contains a list of SyncIdentityProviders

func (*SyncIdentityProviderList) DeepCopy

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

func (*SyncIdentityProviderList) DeepCopyInto

func (in *SyncIdentityProviderList) DeepCopyInto(out *SyncIdentityProviderList)

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

func (*SyncIdentityProviderList) DeepCopyObject

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

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

type SyncIdentityProviderSpec

type SyncIdentityProviderSpec struct {
	SyncIdentityProviderCommonSpec `json:",inline"`

	// ClusterDeploymentRefs is the list of LocalObjectReference indicating which clusters the
	// SyncSet applies to in the SyncSet's namespace.
	// +required
	ClusterDeploymentRefs []corev1.LocalObjectReference `json:"clusterDeploymentRefs"`
}

SyncIdentityProviderSpec defines the SyncIdentityProviderCommonSpec identity providers to sync along with ClusterDeploymentRefs indicating which clusters the SyncIdentityProvider applies to in the SyncIdentityProvider's namespace.

func (*SyncIdentityProviderSpec) DeepCopy

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

func (*SyncIdentityProviderSpec) DeepCopyInto

func (in *SyncIdentityProviderSpec) DeepCopyInto(out *SyncIdentityProviderSpec)

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

type SyncObjectPatch

type SyncObjectPatch struct {
	// APIVersion is the Group and Version of the object to be patched.
	APIVersion string `json:"apiVersion"`

	// Kind is the Kind of the object to be patched.
	Kind string `json:"kind"`

	// Name is the name of the object to be patched.
	Name string `json:"name"`

	// Namespace is the Namespace in which the object to patch exists.
	// Defaults to the SyncSet's Namespace.
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Patch is the patch to apply.
	Patch string `json:"patch"`

	// PatchType indicates the PatchType as "strategic" (default), "json", or "merge".
	// +optional
	PatchType string `json:"patchType,omitempty"`
}

SyncObjectPatch represents a patch to be applied to a specific object

func (*SyncObjectPatch) DeepCopy

func (in *SyncObjectPatch) DeepCopy() *SyncObjectPatch

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

func (*SyncObjectPatch) DeepCopyInto

func (in *SyncObjectPatch) DeepCopyInto(out *SyncObjectPatch)

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

type SyncSet

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

	Spec   SyncSetSpec   `json:"spec,omitempty"`
	Status SyncSetStatus `json:"status,omitempty"`
}

SyncSet is the Schema for the SyncSet API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:path=syncsets,shortName=ss,scope=Namespaced

func (*SyncSet) DeepCopy

func (in *SyncSet) DeepCopy() *SyncSet

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

func (*SyncSet) DeepCopyInto

func (in *SyncSet) DeepCopyInto(out *SyncSet)

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

func (*SyncSet) DeepCopyObject

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

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

type SyncSetApplyBehavior

type SyncSetApplyBehavior string

SyncSetApplyBehavior is a string representing the behavior to use when aplying a syncset to target cluster. +kubebuilder:validation:Enum="";Apply;CreateOnly;CreateOrUpdate

const (
	// ApplySyncSetApplyBehavior is the default apply behavior. It will result
	// in resources getting applied using the 'oc apply' command to the target
	// cluster.
	ApplySyncSetApplyBehavior SyncSetApplyBehavior = "Apply"

	// CreateOnlySyncSetApplyBehavior results in resources only getting created
	// if they do not exist, otherwise they are left alone.
	CreateOnlySyncSetApplyBehavior SyncSetApplyBehavior = "CreateOnly"

	// CreateOrUpdateSyncSetApplyBehavior results in resources getting created if
	// they do not exist, otherwise they are updated with the contents of the
	// syncset resource. This is different from Apply behavior in that an annotation
	// is not added to the target resource with the "lastApplied" value. It allows
	// for syncing larger resources, but loses the ability to sync map entry deletes.
	CreateOrUpdateSyncSetApplyBehavior SyncSetApplyBehavior = "CreateOrUpdate"
)

type SyncSetCommonSpec

type SyncSetCommonSpec struct {
	// Resources is the list of objects to sync from RawExtension definitions.
	// +optional
	Resources []runtime.RawExtension `json:"resources,omitempty"`

	// ResourceApplyMode indicates if the Resource apply mode is "Upsert" (default) or "Sync".
	// ApplyMode "Upsert" indicates create and update.
	// ApplyMode "Sync" indicates create, update and delete.
	// +optional
	ResourceApplyMode SyncSetResourceApplyMode `json:"resourceApplyMode,omitempty"`

	// Patches is the list of patches to apply.
	// +optional
	Patches []SyncObjectPatch `json:"patches,omitempty"`

	// Secrets is the list of secrets to sync along with their respective destinations.
	// +optional
	Secrets []SecretMapping `json:"secretMappings,omitempty"`

	// ApplyBehavior indicates how resources in this syncset will be applied to the target
	// cluster. The default value of "Apply" indicates that resources should be applied
	// using the 'oc apply' command. If no value is set, "Apply" is assumed.
	// A value of "CreateOnly" indicates that the resource will only be created if it does
	// not already exist in the target cluster. Otherwise, it will be left alone.
	// A value of "CreateOrUpdate" indicates that the resource will be created/updated without
	// the use of the 'oc apply' command, allowing larger resources to be synced, but losing
	// some functionality of the 'oc apply' command such as the ability to remove annotations,
	// labels, and other map entries in general.
	// +optional
	ApplyBehavior SyncSetApplyBehavior `json:"applyBehavior,omitempty"`

	// EnableResourceTemplates, if True, causes hive to honor golang text/templates in Resources.
	// While the standard syntax is supported, it won't do you a whole lot of good as the parser
	// does not pass a data object (i.e. there is no "dot" for you to use). This currently exists
	// to expose a single function: {{ fromCDLabel "some.label/key" }} will
	// be substituted with the string value of ClusterDeployment.Labels["some.label/key"]. The
	// empty string is interpolated if there are no labels, or if the indicated key does not exist.
	// Note that this only works in values (not e.g. map keys) that are of type string.
	EnableResourceTemplates bool `json:"enableResourceTemplates,omitempty"`
}

SyncSetCommonSpec defines the resources and patches to sync

func (*SyncSetCommonSpec) DeepCopy

func (in *SyncSetCommonSpec) DeepCopy() *SyncSetCommonSpec

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

func (*SyncSetCommonSpec) DeepCopyInto

func (in *SyncSetCommonSpec) DeepCopyInto(out *SyncSetCommonSpec)

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

type SyncSetList

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

SyncSetList contains a list of SyncSets

func (*SyncSetList) DeepCopy

func (in *SyncSetList) DeepCopy() *SyncSetList

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

func (*SyncSetList) DeepCopyInto

func (in *SyncSetList) DeepCopyInto(out *SyncSetList)

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

func (*SyncSetList) DeepCopyObject

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

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

type SyncSetObjectStatus

type SyncSetObjectStatus struct {
	// Name is the name of the SyncSet.
	Name string `json:"name"`

	// Resources is the list of SyncStatus for objects that have been synced.
	// +optional
	Resources []SyncStatus `json:"resources,omitempty"`

	// ResourceApplyMode indicates if the Resource apply mode is "Upsert" (default) or "Sync".
	// ApplyMode "Upsert" indicates create and update.
	// ApplyMode "Sync" indicates create, update and delete.
	// +optional
	ResourceApplyMode SyncSetResourceApplyMode `json:"resourceApplyMode,omitempty"`

	// Patches is the list of SyncStatus for patches that have been applied.
	// +optional
	Patches []SyncStatus `json:"patches,omitempty"`

	// Secrets is the list of SyncStatus for secrets that have been synced.
	// +optional
	Secrets []SyncStatus `json:"secrets,omitempty"`

	// Conditions is the list of SyncConditions used to indicate UnknownObject
	// when a resource type cannot be determined from a SyncSet resource.
	// +optional
	Conditions []SyncCondition `json:"conditions,omitempty"`
}

SyncSetObjectStatus describes the status of resources created or patches that have been applied from a SyncSet or SelectorSyncSet.

func (*SyncSetObjectStatus) DeepCopy

func (in *SyncSetObjectStatus) DeepCopy() *SyncSetObjectStatus

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

func (*SyncSetObjectStatus) DeepCopyInto

func (in *SyncSetObjectStatus) DeepCopyInto(out *SyncSetObjectStatus)

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

type SyncSetPatchApplyMode

type SyncSetPatchApplyMode string

SyncSetPatchApplyMode is a string representing the mode with which to apply SyncSet Patches.

const (
	// ApplyOncePatchApplyMode indicates that the patch should be applied
	// only once.
	ApplyOncePatchApplyMode SyncSetPatchApplyMode = "ApplyOnce"

	// AlwaysApplyPatchApplyMode indicates that the patch should be
	// continuously applied.
	AlwaysApplyPatchApplyMode SyncSetPatchApplyMode = "AlwaysApply"
)

type SyncSetResourceApplyMode

type SyncSetResourceApplyMode string

SyncSetResourceApplyMode is a string representing the mode with which to apply SyncSet Resources.

const (
	// UpsertResourceApplyMode indicates that objects will be updated
	// or inserted (created).
	UpsertResourceApplyMode SyncSetResourceApplyMode = "Upsert"

	// SyncResourceApplyMode inherits the create or update functionality
	// of Upsert but also indicates that objects will be deleted if created
	// previously and detected missing from defined Resources in the SyncSet.
	SyncResourceApplyMode SyncSetResourceApplyMode = "Sync"
)

type SyncSetSpec

type SyncSetSpec struct {
	SyncSetCommonSpec `json:",inline"`

	// ClusterDeploymentRefs is the list of LocalObjectReference indicating which clusters the
	// SyncSet applies to in the SyncSet's namespace.
	// +required
	ClusterDeploymentRefs []corev1.LocalObjectReference `json:"clusterDeploymentRefs"`
}

SyncSetSpec defines the SyncSetCommonSpec resources and patches to sync along with ClusterDeploymentRefs indicating which clusters the SyncSet applies to in the SyncSet's namespace.

func (*SyncSetSpec) DeepCopy

func (in *SyncSetSpec) DeepCopy() *SyncSetSpec

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

func (*SyncSetSpec) DeepCopyInto

func (in *SyncSetSpec) DeepCopyInto(out *SyncSetSpec)

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

type SyncSetStatus

type SyncSetStatus struct {
}

SyncSetStatus defines the observed state of a SyncSet

func (*SyncSetStatus) DeepCopy

func (in *SyncSetStatus) DeepCopy() *SyncSetStatus

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

func (*SyncSetStatus) DeepCopyInto

func (in *SyncSetStatus) DeepCopyInto(out *SyncSetStatus)

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

type SyncStatus

type SyncStatus struct {
	// APIVersion is the Group and Version of the object that was synced or
	// patched.
	APIVersion string `json:"apiVersion"`

	// Kind is the Kind of the object that was synced or patched.
	Kind string `json:"kind"`

	// Resource is the resource name for the object that was synced.
	// This will be populated for resources, but not patches
	// +optional
	Resource string `json:"resource,omitempty"`

	// Name is the name of the object that was synced or patched.
	Name string `json:"name"`

	// Namespace is the Namespace of the object that was synced or patched.
	Namespace string `json:"namespace"`

	// Hash is the unique md5 hash of the resource or patch.
	Hash string `json:"hash"`

	// Conditions is the list of conditions indicating success or failure of object
	// create, update and delete as well as patch application.
	Conditions []SyncCondition `json:"conditions"`
}

SyncStatus describes objects that have been created or patches that have been applied using the unique md5 sum of the object or patch.

func (*SyncStatus) DeepCopy

func (in *SyncStatus) DeepCopy() *SyncStatus

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

func (*SyncStatus) DeepCopyInto

func (in *SyncStatus) DeepCopyInto(out *SyncStatus)

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

type TaintIdentifier

type TaintIdentifier struct {
	// Key matches corev1.Taint.Key.
	Key string `json:"key,omitempty"`
	// Effect matches corev1.Taint.Effect.
	Effect corev1.TaintEffect `json:"effect,omitempty"`
}

TaintIdentifier uniquely identifies a Taint. (It turns out taints are mutually exclusive by key+effect, not simply by key.)

func (*TaintIdentifier) DeepCopy

func (in *TaintIdentifier) DeepCopy() *TaintIdentifier

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

func (*TaintIdentifier) DeepCopyInto

func (in *TaintIdentifier) DeepCopyInto(out *TaintIdentifier)

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

type VSphereClusterDeprovision

type VSphereClusterDeprovision struct {
	// CredentialsSecretRef is the vSphere account credentials to use for deprovisioning the cluster
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef"`
	// CertificatesSecretRef refers to a secret that contains the vSphere CA certificates
	// necessary for communicating with the VCenter.
	CertificatesSecretRef corev1.LocalObjectReference `json:"certificatesSecretRef"`
	// VCenter is the vSphere vCenter hostname.
	VCenter string `json:"vCenter"`
}

VSphereClusterDeprovision contains VMware vSphere-specific configuration for a ClusterDeprovision

func (*VSphereClusterDeprovision) DeepCopy

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

func (*VSphereClusterDeprovision) DeepCopyInto

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

type VeleroBackupConfig

type VeleroBackupConfig struct {
	// Enabled dictates if Velero backup integration is enabled.
	// If not specified, the default is disabled.
	// +optional
	Enabled bool `json:"enabled,omitempty"`

	// Namespace specifies in which namespace velero backup objects should be created.
	// If not specified, the default is a namespace named "velero".
	// +optional
	Namespace string `json:"namespace,omitempty"`
}

VeleroBackupConfig contains settings for the Velero backup integration.

func (*VeleroBackupConfig) DeepCopy

func (in *VeleroBackupConfig) DeepCopy() *VeleroBackupConfig

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

func (*VeleroBackupConfig) DeepCopyInto

func (in *VeleroBackupConfig) DeepCopyInto(out *VeleroBackupConfig)

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

Directories

Path Synopsis
Package agent contains API Schema definitions for assisted agent based installations.
Package agent contains API Schema definitions for assisted agent based installations.
Package aws contains API Schema definitions for AWS clusters.
Package aws contains API Schema definitions for AWS clusters.
Package azure contains API Schema definitions for Azure cluster.
Package azure contains API Schema definitions for Azure cluster.
Package baremetal contains API Schema definitions for bare metal clusters.
Package baremetal contains API Schema definitions for bare metal clusters.
Package gcp contains API Schema definitions for GCP clusters.
Package gcp contains API Schema definitions for GCP clusters.
Package ibmcloud contains API Schema definitions for IBM Cloud clusters.
Package ibmcloud contains API Schema definitions for IBM Cloud clusters.
Package metricsconfig contains API Schema definitions for configurations specific to metrics controller.
Package metricsconfig contains API Schema definitions for configurations specific to metrics controller.
Package none contains API Schema definitions for platform-agnostic installations.
Package none contains API Schema definitions for platform-agnostic installations.
Package openstack contains API Schema definitions for OpenStack clusters.
Package openstack contains API Schema definitions for OpenStack clusters.
Package ovirt contains ovirt-specific structures for installer configuration and management.
Package ovirt contains ovirt-specific structures for installer configuration and management.
Package vsphere contains contains API Schema definitions for vSphere clusters.
Package vsphere contains contains API Schema definitions for vSphere clusters.

Jump to

Keyboard shortcuts

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