diff --git a/api/v1alpha1/doc.go b/api/v1alpha1/doc.go index 4e94042f89..6f154af40d 100644 --- a/api/v1alpha1/doc.go +++ b/api/v1alpha1/doc.go @@ -1,4 +1,14 @@ -// Package v1alpha1 contains API Schema definitions for the hypershift.openshift.io v1alpha1 API group +/* +Package v1alpha1 contains the HyperShift API. + +The HyperShift API enables creating and managing lightweight, flexible, heterogeneous +OpenShift clusters at scale. + +HyperShift clusters are deployed in a topology which isolates the "control plane" +(e.g. etcd, the API server, controller manager, etc.) from the "data plane" (e.g. +worker nodes and their kubelets, and the infrastructure on which they run). This +enables "hosted control plane as a service" use cases. +*/ // +kubebuilder:object:generate=true // +groupName=hypershift.openshift.io package v1alpha1 diff --git a/api/v1alpha1/hosted_controlplane.go b/api/v1alpha1/hosted_controlplane.go index c9b2af431b..b79dc6cb3a 100644 --- a/api/v1alpha1/hosted_controlplane.go +++ b/api/v1alpha1/hosted_controlplane.go @@ -97,11 +97,21 @@ type HostedControlPlaneSpec struct { SecretEncryption *SecretEncryptionSpec `json:"secretEncryption,omitempty"` } +// AvailabilityPolicy specifies a high level availability policy for components. type AvailabilityPolicy string const ( + // HighlyAvailable means components should be resilient to problems across fault + // boundaries as defined by the component to which the policy is attached. This + // usually means running critical workloads with 3 replicas and with little or + // no toleration of disruption of the component. HighlyAvailable AvailabilityPolicy = "HighlyAvailable" - SingleReplica AvailabilityPolicy = "SingleReplica" + + // SingleReplica means components are not expected to be resilient to problems + // across most fault boundaries associated with high availability. This usually + // means running critical workloads with just 1 replica and with toleration of + // full disruption of the component. + SingleReplica AvailabilityPolicy = "SingleReplica" ) type KubeconfigSecretRef struct { diff --git a/api/v1alpha1/hostedcluster_types.go b/api/v1alpha1/hostedcluster_types.go index 60b88719ad..ef2b43f741 100644 --- a/api/v1alpha1/hostedcluster_types.go +++ b/api/v1alpha1/hostedcluster_types.go @@ -129,7 +129,8 @@ type HostedClusterSpec struct { // TODO (alberto): include Ignition endpoint here. Services []ServicePublishingStrategyMapping `json:"services"` - // ControllerAvailabilityPolicy specifies whether to run control plane controllers in HA mode + // ControllerAvailabilityPolicy specifies an availability policy to apply + // to critical control plane components. // Defaults to SingleReplica when not set. // +optional ControllerAvailabilityPolicy AvailabilityPolicy `json:"controllerAvailabilityPolicy,omitempty"` @@ -841,6 +842,14 @@ type ClusterConfiguration struct { Items []runtime.RawExtension `json:"items,omitempty"` } +// +genclient + +// HostedCluster is the primary representation of a HyperShift cluster and encapsulates +// the control plane and common data plane configuration. Creating a HostedCluster +// results in a fully functional OpenShift control plane with no attached nodes. +// To support workloads (e.g. pods), a HostedCluster may have one or more associated +// NodePool resources. +// // +kubebuilder:object:root=true // +kubebuilder:resource:path=hostedclusters,shortName=hc;hcs,scope=Namespaced // +kubebuilder:storageversion @@ -850,12 +859,14 @@ type ClusterConfiguration struct { // +kubebuilder:printcolumn:name="Progress",type="string",JSONPath=".status.version.history[?(@.state!=\"\")].state",description="Progress" // +kubebuilder:printcolumn:name="Available",type="string",JSONPath=".status.conditions[?(@.type==\"Available\")].status",description="Available" // +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type==\"Available\")].reason",description="Reason" -// HostedCluster is the Schema for the hostedclusters API type HostedCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - Spec HostedClusterSpec `json:"spec,omitempty"` + // Spec is the desired behavior of the HostedCluster. + Spec HostedClusterSpec `json:"spec,omitempty"` + + // Status is the latest observed status of the HostedCluster. Status HostedClusterStatus `json:"status,omitempty"` } diff --git a/api/v1alpha1/nodepool_types.go b/api/v1alpha1/nodepool_types.go index d49d1ef4de..d4c9f28e28 100644 --- a/api/v1alpha1/nodepool_types.go +++ b/api/v1alpha1/nodepool_types.go @@ -30,7 +30,12 @@ func init() { SchemeBuilder.Register(&NodePoolList{}) } -// NodePool defines the desired state of NodePool +// +genclient + +// NodePool is a scalable set of worker nodes attached to a HostedCluster. NodePool +// machine architectures are uniform within a given pool, and are independent of +// the control plane’s underlying machine architecture. +// // +kubebuilder:resource:path=nodepools,shortName=np;nps,scope=Namespaced // +kubebuilder:storageversion // +kubebuilder:subresource:status @@ -47,7 +52,10 @@ type NodePool struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - Spec NodePoolSpec `json:"spec,omitempty"` + // Spec is the desired behavior of the NodePool. + Spec NodePoolSpec `json:"spec,omitempty"` + + // Status is the most recently observed status of the NodePool. Status NodePoolStatus `json:"status,omitempty"` } diff --git a/cmd/install/assets/hypershift-operator/hypershift.openshift.io_hostedclusters.yaml b/cmd/install/assets/hypershift-operator/hypershift.openshift.io_hostedclusters.yaml index ba9a750d69..e81d5bb7f7 100644 --- a/cmd/install/assets/hypershift-operator/hypershift.openshift.io_hostedclusters.yaml +++ b/cmd/install/assets/hypershift-operator/hypershift.openshift.io_hostedclusters.yaml @@ -43,7 +43,11 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: HostedCluster is the Schema for the hostedclusters API + description: HostedCluster is the primary representation of a HyperShift cluster + and encapsulates the control plane and common data plane configuration. + Creating a HostedCluster results in a fully functional OpenShift control + plane with no attached nodes. To support workloads (e.g. pods), a HostedCluster + may have one or more associated NodePool resources. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -58,7 +62,7 @@ spec: metadata: type: object spec: - description: HostedClusterSpec defines the desired state of HostedCluster + description: Spec is the desired behavior of the HostedCluster. properties: auditWebhook: description: AuditWebhook contains metadata for configuring an audit @@ -144,9 +148,9 @@ spec: type: array type: object controllerAvailabilityPolicy: - description: ControllerAvailabilityPolicy specifies whether to run - control plane controllers in HA mode Defaults to SingleReplica when - not set. + description: ControllerAvailabilityPolicy specifies an availability + policy to apply to critical control plane components. Defaults to + SingleReplica when not set. type: string dns: description: DNS configuration for the cluster @@ -813,7 +817,7 @@ spec: - sshKey type: object status: - description: HostedClusterStatus defines the observed state of HostedCluster + description: Status is the latest observed status of the HostedCluster. properties: conditions: items: diff --git a/cmd/install/assets/hypershift-operator/hypershift.openshift.io_nodepools.yaml b/cmd/install/assets/hypershift-operator/hypershift.openshift.io_nodepools.yaml index 24f8656d42..c21bbb14ee 100644 --- a/cmd/install/assets/hypershift-operator/hypershift.openshift.io_nodepools.yaml +++ b/cmd/install/assets/hypershift-operator/hypershift.openshift.io_nodepools.yaml @@ -51,7 +51,9 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: NodePool defines the desired state of NodePool + description: NodePool is a scalable set of worker nodes attached to a HostedCluster. + NodePool machine architectures are uniform within a given pool, and are + independent of the control plane’s underlying machine architecture. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -66,7 +68,7 @@ spec: metadata: type: object spec: - description: NodePoolSpec defines the desired state of NodePool + description: Spec is the desired behavior of the NodePool. properties: autoScaling: properties: @@ -325,7 +327,7 @@ spec: - release type: object status: - description: NodePoolStatus defines the observed state of NodePool + description: Status is the most recently observed status of the NodePool. properties: conditions: items: diff --git a/docs/api-doc-gen/config.json b/docs/api-doc-gen/config.json index 18fdf7e9fa..82fc760ce2 100644 --- a/docs/api-doc-gen/config.json +++ b/docs/api-doc-gen/config.json @@ -1,25 +1,29 @@ { "hideMemberFields": [ - "TypeMeta" + "TypeMeta" ], "hideTypePatterns": [ - "ParseError$", - "List$" + "ParseError$", + "List$", + "HostedControlPlane*$", + "KubeconfigSecretRef", + "APIEndpoint", + "AWSEndpointService*" ], "externalPackages": [ - { - "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/apis/meta/v1\\.Duration$", - "docsURLTemplate": "https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#Duration" - }, - { - "typeMatchPrefix": "^k8s\\.io/(api|apimachinery|apiextensions-apiserver/pkg/apis)/", - "docsURLTemplate": "https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#{{lower .TypeIdentifier}}-{{arrIndex .PackageSegments -1}}-{{arrIndex .PackageSegments -2}}" - } + { + "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/apis/meta/v1\\.Duration$", + "docsURLTemplate": "https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#Duration" + }, + { + "typeMatchPrefix": "^k8s\\.io/(api|apimachinery|apiextensions-apiserver/pkg/apis)/", + "docsURLTemplate": "https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#{{lower .TypeIdentifier}}-{{arrIndex .PackageSegments -1}}-{{arrIndex .PackageSegments -2}}" + } ], "typeDisplayNamePrefixOverrides": { - "k8s.io/api/": "Kubernetes ", - "k8s.io/apimachinery/pkg/apis/": "Kubernetes ", - "k8s.io/apiextensions-apiserver/pkg/apis/": "Kubernetes " + "k8s.io/api/": "Kubernetes ", + "k8s.io/apimachinery/pkg/apis/": "Kubernetes ", + "k8s.io/apiextensions-apiserver/pkg/apis/": "Kubernetes " }, "markdownDisabled": false } diff --git a/docs/api-doc-gen/templates/pkg.tpl b/docs/api-doc-gen/templates/pkg.tpl index 50055ab1ed..f6a10309ac 100644 --- a/docs/api-doc-gen/templates/pkg.tpl +++ b/docs/api-doc-gen/templates/pkg.tpl @@ -29,17 +29,6 @@ title: API Reference {{ end }} {{ end }} - Resource Types: - - {{ range (visibleTypes (sortedTypes .Types))}} {{ template "type" . }} {{ end }} diff --git a/docs/api-doc-gen/templates/type.tpl b/docs/api-doc-gen/templates/type.tpl index e28b088abc..b99934b2de 100644 --- a/docs/api-doc-gen/templates/type.tpl +++ b/docs/api-doc-gen/templates/type.tpl @@ -1,9 +1,11 @@ {{ define "type" }} -

- {{- .Name.Name }} - {{ if eq .Kind "Alias" }}({{.Underlying}} alias)

{{ end -}} -

+{{ if isExportedType . -}} +## {{- .Name.Name }} { #{{ anchorIDForType . }} } +{{ else -}} +### {{- .Name.Name }} { #{{ anchorIDForType . }} } +{{ end -}} + {{ with (typeReferences .) }}

(Appears on: @@ -22,6 +24,30 @@ {{ safe (renderComments .CommentLines) }}

+{{ with (constantsOfType .) }} + + + + + + + + + {{- range . -}} + + {{- /* + renderComments implicitly creates a

element, so we + add one to the display name as well to make the contents + of the two cells align evenly. + */ -}} +

+ + + {{- end -}} + +
ValueDescription

{{ typeDisplayName . }}

{{ safe (renderComments .CommentLines) }}
+{{ end }} + {{ if .Members }} diff --git a/docs/content/reference/api.md b/docs/content/reference/api.md index f7c435c973..354b06c011 100644 --- a/docs/content/reference/api.md +++ b/docs/content/reference/api.md @@ -10,18 +10,21 @@ title: API Reference

hypershift.openshift.io/v1alpha1

-

Package v1alpha1 contains API Schema definitions for the hypershift.openshift.io v1alpha1 API group

-

-Resource Types: - -

AESCBCSpec -

-

-(Appears on: -SecretEncryptionSpec) -

-

-

AESCBCSpec defines metadata about the AESCBC secret encryption strategy

+

Package v1alpha1 contains the HyperShift API.

+

The HyperShift API enables creating and managing lightweight, flexible, heterogeneous +OpenShift clusters at scale.

+

HyperShift clusters are deployed in a topology which isolates the “control plane” +(e.g. etcd, the API server, controller manager, etc.) from the “data plane” (e.g. +worker nodes and their kubelets, and the infrastructure on which they run). This +enables “hosted control plane as a service” use cases.

+

+##HostedCluster { #hypershift.openshift.io/v1alpha1.HostedCluster } +

+

HostedCluster is the primary representation of a HyperShift cluster and encapsulates +the control plane and common data plane configuration. Creating a HostedCluster +results in a fully functional OpenShift control plane with no attached nodes. +To support workloads (e.g. pods), a HostedCluster may have one or more associated +NodePool resources.

@@ -33,400 +36,322 @@ Resource Types: + + + + - -
-activeKey
- - -Kubernetes core/v1.LocalObjectReference - - +apiVersion
+string
+ +hypershift.openshift.io/v1alpha1 +
-

ActiveKey defines the active key used to encrypt new secrets

+kind
+string
HostedCluster
-backupKey
+metadata
- -Kubernetes core/v1.LocalObjectReference + +Kubernetes meta/v1.ObjectMeta
-(Optional) -

BackupKey defines the old key during the rotation process so previously created -secrets can continue to be decrypted until they are all re-encrypted with the active key.

+Refer to the Kubernetes API documentation for the fields of the +metadata field.
-

APIEndpoint -

-

-(Appears on: -HostedControlPlaneStatus) -

-

-

- - - - - - - - - +

Spec is the desired behavior of the HostedCluster.

+
+
+
FieldDescription
-host
+spec
-string + +HostedClusterSpec +
-

Host is the hostname on which the API server is serving.

-
- -
-port
+release
-int32 + +Release +
-

Port is the port on which the API server is serving.

+

Release specifies the release image to use for this HostedCluster

-

APIServerNetworking -

-

-(Appears on: -ClusterNetworking) -

-

-

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

-

- - - - - - - - - -
FieldDescription
-advertiseAddress
+fips
-string +bool
-

AdvertiseAddress is the address that workers will use to talk to the -API server. This is an address associated with the loopback adapter of -each worker. If not specified, 172.20.0.1 is used.

+(Optional)
-port
+pullSecret
-int32 + +Kubernetes core/v1.LocalObjectReference +
-

Port is the port at which the APIServer is exposed inside a worker node -Other pods using host networking cannot listen on this port. If not -specified, 6443 is used.

+

PullSecret is a pull secret injected into the container runtime of guest +workers. It should have an “.dockerconfigjson” key containing the pull secret JSON.

-

AWSCloudProviderConfig -

-

-(Appears on: -AWSPlatformSpec) -

-

-

- - - - - - - - - -
FieldDescription
-subnet
+auditWebhook
- -AWSResourceReference + +Kubernetes core/v1.LocalObjectReference
(Optional) -

Subnet is the subnet to use for instances

+

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

-zone
+issuerURL
string
-(Optional) -

Zone is the availability zone where the instances are created

-vpc
+sshKey
-string + +Kubernetes core/v1.LocalObjectReference +
-

VPC specifies the VPC used for the cluster

+

SSHKey is a reference to a Secret containing a single key “id_rsa.pub”, +whose value is the public part of an SSH key that can be used to access +Nodes.

-

AWSEndpointAccessType -(string alias)

-

-(Appears on: -AWSPlatformSpec) -

-

-

-

AWSEndpointService -

-

-

AWSEndpointService specifies a request for an Endpoint Service in AWS

-

- - - - + + - - - -
FieldDescription +networking
+ + +ClusterNetworking + + +
+

Networking contains network-specific settings for this cluster

+
-metadata
+autoscaling
- -Kubernetes meta/v1.ObjectMeta + +ClusterAutoscaling
-Refer to the Kubernetes API documentation for the fields of the -metadata field. +(Optional) +

Autoscaling for compute nodes only, does not cover control plane

-spec
+platform
- -AWSEndpointServiceSpec + +PlatformSpec
-
-
- + + - -
-networkLoadBalancerName
+infraID
string
-

The name of the NLB for which an Endpoint Service should be configured

-
+

InfraID is used to identify the cluster in cloud platforms

-status
+dns
- -AWSEndpointServiceStatus + +DNSSpec
+

DNS configuration for the cluster

-

AWSEndpointServiceSpec -

-

-(Appears on: -AWSEndpointService) -

-

-

AWSEndpointServiceSpec defines the desired state of AWSEndpointService

-

- - - - - - - - - -
FieldDescription
-networkLoadBalancerName
+services
-string + +[]ServicePublishingStrategyMapping +
-

The name of the NLB for which an Endpoint Service should be configured

+

Services defines metadata about how control plane services are published +in the management cluster. +TODO (alberto): include Ignition endpoint here.

-

AWSEndpointServiceStatus -

-

-(Appears on: -AWSEndpointService) -

-

-

AWSEndpointServiceStatus defines the observed state of AWSEndpointService

-

- - - - - - - - - -
FieldDescription
-endpointServiceName
+controllerAvailabilityPolicy
-string + +AvailabilityPolicy +
(Optional) -

The endpoint service name created in AWS in response to the request

+

ControllerAvailabilityPolicy specifies an availability policy to apply +to critical control plane components. +Defaults to SingleReplica when not set.

-conditions
+infrastructureAvailabilityPolicy
- -[]Kubernetes meta/v1.Condition + +AvailabilityPolicy
-

Condition contains details for the current state of the Endpoint Service -request If there is an error processing the request e.g. the NLB doesn’t -exist, then the Available condition will be false, reason AWSErrorReason, -and the error reported in the message.

-

Current condition types are: “Available”

+(Optional) +

InfrastructureAvailabilityPolicy specifies whether to run infrastructure services that +run on the guest cluster nodes in HA mode +Defaults to HighlyAvailable when not set

-

AWSKMSAuthSpec -

-

-(Appears on: -AWSKMSSpec) -

-

-

AWSKMSAuthSpec defines metadata about the management of credentials used to interact with AWS KMS

-

- - - - + + - - - -
FieldDescription +etcd
+ + +EtcdSpec + + +
+

Etcd contains metadata about the etcd cluster the hypershift managed Openshift control plane components +use to store data. Changing the ManagementType for the etcd cluster is not supported after initial creation.

+
-credentials
+configuration
- -Kubernetes core/v1.LocalObjectReference + +ClusterConfiguration
-

Credentials contains the name of the secret that holds the aws credentials that can be used -to make the necessary KMS calls. It should at key AWSCredentialsFileSecretKey contain the -aws credentials file that can be used to configure AWS SDKs

+(Optional) +

Configuration embeds resources that correspond to the openshift configuration API: +https://docs.openshift.com/container-platform/4.7/rest_api/config_apis/config-apis-index.html

-

AWSKMSKeyEntry -

-

-(Appears on: -AWSKMSSpec) -

-

-

AWSKMSKeyEntry defines metadata to locate the encryption key in AWS

-

- - - - + + - - + +
FieldDescription +imageContentSources
+ + +[]ImageContentSource + + +
+(Optional) +

ImageContentSources lists sources/repositories for the release-image content.

+
-arn
+secretEncryption
-string + +SecretEncryptionSpec +
-

ARN is the Amazon Resource Name for the encryption key

+(Optional) +

SecretEncryption contains metadata about the kubernetes secret encryption strategy being used for the +cluster when applicable.

+
+ + + + +status
+ + +HostedClusterStatus + + + + +

Status is the latest observed status of the HostedCluster.

-

AWSKMSSpec -

-

-(Appears on: -KMSSpec) -

+##NodePool { #hypershift.openshift.io/v1alpha1.NodePool }

-

AWSKMSSpec defines metadata about the configuration of the AWS KMS Secret Encryption provider

+

NodePool is a scalable set of worker nodes attached to a HostedCluster. NodePool +machine architectures are uniform within a given pool, and are independent of +the control plane’s underlying machine architecture.

@@ -438,179 +363,169 @@ string + + + + - +

Spec is the desired behavior of the NodePool.

+
+
+
-region
- -string - +apiVersion
+string
+ +hypershift.openshift.io/v1alpha1 +
-

Region contains the AWS region

+kind
+string
NodePool
-activeKey
+metadata
- -AWSKMSKeyEntry + +Kubernetes meta/v1.ObjectMeta
-

ActiveKey defines the active key used to encrypt new secrets

+Refer to the Kubernetes API documentation for the fields of the +metadata field.
-backupKey
+spec
- -AWSKMSKeyEntry + +NodePoolSpec
-(Optional) -

BackupKey defines the old key during the rotation process so previously created -secrets can continue to be decrypted until they are all re-encrypted with the active key.

-
- -
-auth
+clusterName
- -AWSKMSAuthSpec - +string
-

Auth defines metadata about the management of credentials used to interact with AWS KMS

+

ClusterName is the name of the Cluster this object belongs to.

-

AWSNodePoolPlatform -

-

-(Appears on: -NodePoolPlatform) -

-

-

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

-

- - - - - - - - + +
FieldDescription
-instanceType
+nodeCount
-string +int32
-

InstanceType defines the ec2 instance type. -eg. m4-large

+(Optional)
-instanceProfile
+config
-string + +[]Kubernetes core/v1.LocalObjectReference +
+

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

-subnet
+nodePoolManagement
- -AWSResourceReference + +NodePoolManagement
-(Optional) -

Subnet is the subnet to use for instances

-ami
+autoScaling
-string + +NodePoolAutoScaling +
(Optional) -

AMI is the image id to use

-securityGroups
+platform
- -[]AWSResourceReference + +NodePoolPlatform
-(Optional) -

SecurityGroups is the set of security groups to associate with nodepool machines

-rootVolume
+release
- -Volume + +Release
-(Optional) -

RootVolume specifies the root volume of the platform.

+

Release specifies the release image to use for this NodePool +For a nodePool a given version dictates the ignition config and +an image artifact e.g an AMI in AWS. +Release specifies the release image to use for this HostedCluster

+
-resourceTags
+status
- -[]AWSResourceTag + +NodePoolStatus -(Optional) -

resourceTags is a list of additional tags to apply to AWS nodes. -These will be merged with Cluster-level tags and Cluster-level tags take precedence in case of conflicts. -See https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html for information on tagging AWS resources. -AWS supports a maximum of 50 tags per resource. OpenShift reserves 25 tags for its use, leaving 25 tags -available for the user.

+

Status is the most recently observed status of the NodePool.

-

AWSPlatformSpec -

+###AESCBCSpec { #hypershift.openshift.io/v1alpha1.AESCBCSpec }

(Appears on: -PlatformSpec) +SecretEncryptionSpec)

+

AESCBCSpec defines metadata about the AESCBC secret encryption strategy

@@ -622,137 +537,84 @@ available for the user.

+ +
-region
+activeKey
-string + +Kubernetes core/v1.LocalObjectReference +
-

Region is the AWS region for the cluster. -This is used by CRs that are consumed by OCP Operators. -E.g cluster-infrastructure-02-config.yaml and install-config.yaml -This is also used by nodePools to fetch the default boot AMI in a given payload.

+

ActiveKey defines the active key used to encrypt new secrets

-cloudProviderConfig
+backupKey
- -AWSCloudProviderConfig + +Kubernetes core/v1.LocalObjectReference
(Optional) -

CloudProviderConfig is used to generate the ConfigMap with the cloud config consumed -by the Control Plane components.

+

BackupKey defines the old key during the rotation process so previously created +secrets can continue to be decrypted until they are all re-encrypted with the active key.

+###APIServerNetworking { #hypershift.openshift.io/v1alpha1.APIServerNetworking } +

+(Appears on: +ClusterNetworking) +

+

+

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

+

+ + - - - - - - - - - - - - - - + + + +
-serviceEndpoints
- - -[]AWSServiceEndpoint - - -
-(Optional) -

ServiceEndpoints list contains custom endpoints which will override default -service endpoint of AWS Services. -There must be only one ServiceEndpoint for a service.

-
-roles
- - -[]AWSRoleCredentials - - -
-
-kubeCloudControllerCreds
- - -Kubernetes core/v1.LocalObjectReference - - -
-

KubeCloudControllerCreds is a reference to a secret containing cloud -credentials with permissions matching the Kube cloud controller policy. -The secret should have exactly one key, credentials, whose value is -an AWS credentials file.

-
-nodePoolManagementCreds
- - -Kubernetes core/v1.LocalObjectReference - - -
-

NodePoolManagementCreds is a reference to a secret containing cloud -credentials with permissions matching the noe pool management policy. -The secret should have exactly one key, credentials, whose value is -an AWS credentials file.

-
FieldDescription
-resourceTags
+advertiseAddress
- -[]AWSResourceTag - +string
-(Optional) -

resourceTags is a list of additional tags to apply to AWS resources created for the cluster. -See https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html for information on tagging AWS resources. -AWS supports a maximum of 50 tags per resource. OpenShift reserves 25 tags for its use, leaving 25 tags -available for the user.

+

AdvertiseAddress is the address that workers will use to talk to the +API server. This is an address associated with the loopback adapter of +each worker. If not specified, 172.20.0.1 is used.

-endpointAccess
+port
- -AWSEndpointAccessType - +int32
-(Optional) -

EndpointAccess determines if cluster endpoints are public and/or private

+

Port is the port at which the APIServer is exposed inside a worker node +Other pods using host networking cannot listen on this port. If not +specified, 6443 is used.

-

AWSResourceReference -

+###AWSCloudProviderConfig { #hypershift.openshift.io/v1alpha1.AWSCloudProviderConfig }

(Appears on: -AWSCloudProviderConfig, -AWSNodePoolPlatform) +AWSPlatformSpec)

-

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

@@ -764,97 +626,75 @@ a validation error.

-id
+subnet
-string + +AWSResourceReference +
(Optional) -

ID of resource

+

Subnet is the subnet to use for instances

-arn
+zone
string
(Optional) -

ARN of resource

+

Zone is the availability zone where the instances are created

-filters
+vpc
- -[]Filter - +string
-(Optional) -

Filters is a set of key/value pairs used to identify a resource -They are applied according to the rules defined by the AWS API: -https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Filtering.html

+

VPC specifies the VPC used for the cluster

-

AWSResourceTag -

+###AWSEndpointAccessType { #hypershift.openshift.io/v1alpha1.AWSEndpointAccessType }

(Appears on: -AWSNodePoolPlatform, AWSPlatformSpec)

-

AWSResourceTag is a tag to apply to AWS resources created for the cluster.

- + - - - + - - - - + - + - - +
FieldValue Description
-key
- -string - +

"Private"

Private endpoint access allows only private kube-apiserver access and private node communication with the control plane

-

key is the key of the tag

-
-value
- -string - +

"Public"

Public endpoint access allows public kube-apiserver access and public node communication with the control plane

-

value is the value of the tag. -Some AWS service do not support empty values. Since tags are added to resources in many services, the -length of the tag value must meet the requirements of all services.

+

"PublicAndPrivate"

PublicAndPrivate endpoint access allows public kube-apiserver access and private node communication with the control plane

-

AWSRoleCredentials -

+###AWSKMSAuthSpec { #hypershift.openshift.io/v1alpha1.AWSKMSAuthSpec }

(Appears on: -AWSPlatformSpec) +AWSKMSSpec)

+

AWSKMSAuthSpec defines metadata about the management of credentials used to interact with AWS KMS

@@ -866,45 +706,28 @@ length of the tag value must meet the requirements of all services.

- - - - - - - -
-arn
- -string - -
-
-namespace
- -string - -
-
-name
+credentials
-string + +Kubernetes core/v1.LocalObjectReference +
+

Credentials contains the name of the secret that holds the aws credentials that can be used +to make the necessary KMS calls. It should at key AWSCredentialsFileSecretKey contain the +aws credentials file that can be used to configure AWS SDKs

-

AWSServiceEndpoint -

+###AWSKMSKeyEntry { #hypershift.openshift.io/v1alpha1.AWSKMSKeyEntry }

(Appears on: -AWSPlatformSpec) +AWSKMSSpec)

-

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

+

AWSKMSKeyEntry defines metadata to locate the encryption key in AWS

@@ -916,48 +739,24 @@ override existing defaults of AWS Services.

- - - -
-name
- -string - -
-

Name is the name of the AWS service. -This must be provided and cannot be empty.

-
-url
+arn
string
-

URL is fully qualified URI with scheme https, that overrides the default generated -endpoint for a client. -This must be provided and cannot be empty.

+

ARN is the Amazon Resource Name for the encryption key

-

AvailabilityPolicy -(string alias)

-

-(Appears on: -HostedClusterSpec, -HostedControlPlaneSpec) -

-

-

-

ClusterAutoscaling -

+###AWSKMSSpec { #hypershift.openshift.io/v1alpha1.AWSKMSSpec }

(Appears on: -HostedClusterSpec) +KMSSpec)

-

TODO maybe we have profiles for scaling behaviors

+

AWSKMSSpec defines metadata about the configuration of the AWS KMS Secret Encryption provider

@@ -969,65 +768,66 @@ This must be provided and cannot be empty.

-maxNodesTotal
+region
-int32 +string
-

Maximum number of nodes in all node groups. -Cluster autoscaler will not grow the cluster beyond this number.

+

Region contains the AWS region

-maxPodGracePeriod
+activeKey
-int32 + +AWSKMSKeyEntry +
-

Gives pods graceful termination time before scaling down -default: 600 seconds

+

ActiveKey defines the active key used to encrypt new secrets

-maxNodeProvisionTime
+backupKey
-string + +AWSKMSKeyEntry +
-

Maximum time CA waits for node to be provisioned -default: 15 minutes

+(Optional) +

BackupKey defines the old key during the rotation process so previously created +secrets can continue to be decrypted until they are all re-encrypted with the active key.

-podPriorityThreshold
+auth
-int32 + +AWSKMSAuthSpec +
-

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

+

Auth defines metadata about the management of credentials used to interact with AWS KMS

-

ClusterConfiguration -

+###AWSNodePoolPlatform { #hypershift.openshift.io/v1alpha1.AWSNodePoolPlatform }

(Appears on: -HostedClusterSpec, -HostedControlPlaneSpec) +NodePoolPlatform)

-

ClusterConfiguration contains global configuration for a HostedCluster.

+

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

@@ -1039,137 +839,106 @@ More info: -[]Kubernetes core/v1.LocalObjectReference - +string - - -
-(Optional) -

SecretRefs holds references to secrets used in configuration entries -so that they can be properly synced by the hypershift operator.

+

InstanceType defines the ec2 instance type. +eg. m4-large

-configMapRefs
+instanceProfile
- -[]Kubernetes core/v1.LocalObjectReference - +string
-(Optional) -

ConfigMapRefs holds references to configmaps used in configuration entries -so that they can be properly synced by the hypershift operator.

-items
+subnet
- -[]k8s.io/apimachinery/pkg/runtime.RawExtension + +AWSResourceReference
(Optional) -

Items embeds the configuration resource

-
-

ClusterNetworking -

-

-(Appears on: -HostedClusterSpec) -

-

-

- - - - - - - - - - -
FieldDescription
-serviceCIDR
- -string - -
+

Subnet is the subnet to use for instances

-podCIDR
+ami
string
+(Optional) +

AMI is the image id to use

-machineCIDR
+securityGroups
-string + +[]AWSResourceReference +
+(Optional) +

SecurityGroups is the set of security groups to associate with nodepool machines

-networkType
+rootVolume
- -NetworkType + +Volume
-

NetworkType specifies the SDN provider used for cluster networking.

+(Optional) +

RootVolume specifies the root volume of the platform.

-apiServer
+resourceTags
- -APIServerNetworking + +[]AWSResourceTag
-

APIServer contains advanced network settings for the API server that affect -how the APIServer is exposed inside a worker node.

+(Optional) +

resourceTags is a list of additional tags to apply to AWS nodes. +These will be merged with Cluster-level tags and Cluster-level tags take precedence in case of conflicts. +See https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html for information on tagging AWS resources. +AWS supports a maximum of 50 tags per resource. OpenShift reserves 25 tags for its use, leaving 25 tags +available for the user.

-

ClusterVersionStatus -

+###AWSPlatformSpec { #hypershift.openshift.io/v1alpha1.AWSPlatformSpec }

(Appears on: -HostedClusterStatus) +PlatformSpec)

-

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

@@ -1181,130 +950,136 @@ progress, or is failing.

+ + + + - -
-desired
+region
- -Release +string + +
+

Region is the AWS region for the cluster. +This is used by CRs that are consumed by OCP Operators. +E.g cluster-infrastructure-02-config.yaml and install-config.yaml +This is also used by nodePools to fetch the default boot AMI in a given payload.

+
+cloudProviderConfig
+ + +AWSCloudProviderConfig
-

desired is the version that the cluster is reconciling towards. -If the cluster is not yet fully initialized desired will be set -with the information available, which may be an image or a tag.

+(Optional) +

CloudProviderConfig is used to generate the ConfigMap with the cloud config consumed +by the Control Plane components.

-history
+serviceEndpoints
-[]github.com/openshift/api/config/v1.UpdateHistory + +[]AWSServiceEndpoint +
(Optional) -

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

+

ServiceEndpoints list contains custom endpoints which will override default +service endpoint of AWS Services. +There must be only one ServiceEndpoint for a service.

-observedGeneration
+roles
-int64 + +[]AWSRoleCredentials +
-

observedGeneration reports which version of the spec is being synced. -If this value is not equal to metadata.generation, then the desired -and conditions fields may represent a previous version.

-

ConditionType -(string alias)

-

-

-

DNSSpec -

-

-(Appears on: -HostedClusterSpec, -HostedControlPlaneSpec) -

-

-

DNSSpec specifies the DNS configuration in the cluster

-

- - - - + + - -
FieldDescription +kubeCloudControllerCreds
+ + +Kubernetes core/v1.LocalObjectReference + + +
+

KubeCloudControllerCreds is a reference to a secret containing cloud +credentials with permissions matching the Kube cloud controller policy. +The secret should have exactly one key, credentials, whose value is +an AWS credentials file.

+
-baseDomain
+nodePoolManagementCreds
-string + +Kubernetes core/v1.LocalObjectReference +
-

BaseDomain is the base domain of the cluster.

+

NodePoolManagementCreds is a reference to a secret containing cloud +credentials with permissions matching the noe pool management policy. +The secret should have exactly one key, credentials, whose value is +an AWS credentials file.

-publicZoneID
+resourceTags
-string + +[]AWSResourceTag +
(Optional) -

PublicZoneID is the Hosted Zone ID where all the DNS records that are publicly accessible to -the internet exist.

+

resourceTags is a list of additional tags to apply to AWS resources created for the cluster. +See https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html for information on tagging AWS resources. +AWS supports a maximum of 50 tags per resource. OpenShift reserves 25 tags for its use, leaving 25 tags +available for the user.

-privateZoneID
+endpointAccess
-string + +AWSEndpointAccessType +
(Optional) -

PrivateZoneID is the Hosted Zone ID where all the DNS records that are only available internally -to the cluster exist.

+

EndpointAccess determines if cluster endpoints are public and/or private

-

EtcdManagementType -(string alias)

-

-(Appears on: -EtcdSpec) -

-

-

EtcdManagementType is a enum specifying the strategy for managing the cluster’s etcd instance

-

-

EtcdSpec -

+###AWSResourceReference { #hypershift.openshift.io/v1alpha1.AWSResourceReference }

(Appears on: -HostedClusterSpec, -HostedControlPlaneSpec) +AWSCloudProviderConfig, +AWSNodePoolPlatform)

+

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

@@ -1316,57 +1091,54 @@ to the cluster exist.

-managementType
+id
- -EtcdManagementType - +string
-

ManagementType defines how the etcd cluster is managed. Unmanaged means -the etcd cluster is managed by a system outside the hypershift controllers. -Managed means the hypershift controllers manage the provisioning of the etcd cluster -and the operations around it

+(Optional) +

ID of resource

-managed
+arn
- -ManagedEtcdSpec - +string
(Optional) -

Managed provides metadata that defines how the hypershift controllers manage the etcd cluster

+

ARN of resource

-unmanaged
+filters
- -UnmanagedEtcdSpec + +[]Filter
(Optional) -

Unmanaged provides metadata that enables the Openshift controllers to connect to the external etcd cluster

+

Filters is a set of key/value pairs used to identify a resource +They are applied according to the rules defined by the AWS API: +https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Filtering.html

-

EtcdTLSConfig -

+###AWSResourceTag { #hypershift.openshift.io/v1alpha1.AWSResourceTag }

(Appears on: -UnmanagedEtcdSpec) +AWSNodePoolPlatform, +AWSPlatformSpec)

+

AWSResourceTag is a tag to apply to AWS resources created for the cluster.

@@ -1378,30 +1150,36 @@ UnmanagedEtcdSpec + + + +
-clientSecret
+key
- -Kubernetes core/v1.LocalObjectReference - +string
-

ClientSecret refers to a secret for client MTLS authentication with the etcd cluster -The CA must be stored at secret key etcd-client-ca.crt. -The client cert must be stored at secret key etcd-client.crt. -The client key must be stored at secret key etcd-client.key.

+

key is the key of the tag

+
+value
+ +string + +
+

value is the value of the tag. +Some AWS service do not support empty values. Since tags are added to resources in many services, the +length of the tag value must meet the requirements of all services.

-

Filter -

+###AWSRoleCredentials { #hypershift.openshift.io/v1alpha1.AWSRoleCredentials }

(Appears on: -AWSResourceReference) +AWSPlatformSpec)

-

Filter is a filter used to identify an AWS resource

@@ -1413,32 +1191,44 @@ The client key must be stored at secret key etcd-client.key.

+ + + +
-name
+arn
string
-

Name of the filter. Filter names are case-sensitive.

-values
+namespace
-[]string +string + +
+
+name
+ +string
-

Values includes one or more filter values. Filter values are case-sensitive.

-

HostedCluster -

+###AWSServiceEndpoint { #hypershift.openshift.io/v1alpha1.AWSServiceEndpoint } +

+(Appears on: +AWSPlatformSpec) +

-

HostedCluster is the Schema for the hostedclusters API

+

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

@@ -1450,305 +1240,277 @@ string + + +
-metadata
+name
- -Kubernetes meta/v1.ObjectMeta - +string
-Refer to the Kubernetes API documentation for the fields of the -metadata field. +

Name is the name of the AWS service. +This must be provided and cannot be empty.

-spec
+url
- -HostedClusterSpec - +string
-
-
+

URL is fully qualified URI with scheme https, that overrides the default generated +endpoint for a client. +This must be provided and cannot be empty.

+
+###AvailabilityPolicy { #hypershift.openshift.io/v1alpha1.AvailabilityPolicy } +

+(Appears on: +HostedClusterSpec, +HostedControlPlaneSpec) +

+

+

AvailabilityPolicy specifies a high level availability policy for components.

+

+ - - + + + + + + + + +
-release
- - -Release - - -
-

Release specifies the release image to use for this HostedCluster

-
ValueDescription

"HighlyAvailable"

HighlyAvailable means components should be resilient to problems across fault +boundaries as defined by the component to which the policy is attached. This +usually means running critical workloads with 3 replicas and with little or +no toleration of disruption of the component.

+

"SingleReplica"

SingleReplica means components are not expected to be resilient to problems +across most fault boundaries associated with high availability. This usually +means running critical workloads with just 1 replica and with toleration of +full disruption of the component.

+
+###ClusterAutoscaling { #hypershift.openshift.io/v1alpha1.ClusterAutoscaling } +

+(Appears on: +HostedClusterSpec) +

+

+

TODO maybe we have profiles for scaling behaviors

+

+ + - - + + + + + +
-fips
- -bool - -
-(Optional) -FieldDescription
-pullSecret
+maxNodesTotal
- -Kubernetes core/v1.LocalObjectReference - +int32
-

PullSecret is a pull secret injected into the container runtime of guest -workers. It should have an “.dockerconfigjson” key containing the pull secret JSON.

+

Maximum number of nodes in all node groups. +Cluster autoscaler will not grow the cluster beyond this number.

-auditWebhook
+maxPodGracePeriod
- -Kubernetes core/v1.LocalObjectReference - +int32
-(Optional) -

AuditWebhook contains metadata for configuring an audit webhook -endpoint for a cluster to process cluster audit events. It references -a secret that contains the webhook information for the audit webhook endpoint. -It is a secret because if the endpoint has MTLS the kubeconfig will contain client -keys. This is currently only supported in IBM Cloud. The kubeconfig needs to be stored -in the secret with a secret key name that corresponds to the constant AuditWebhookKubeconfigKey.

+

Gives pods graceful termination time before scaling down +default: 600 seconds

-issuerURL
+maxNodeProvisionTime
string
+

Maximum time CA waits for node to be provisioned +default: 15 minutes

-sshKey
+podPriorityThreshold
- -Kubernetes core/v1.LocalObjectReference - +int32
-

SSHKey is a reference to a Secret containing a single key “id_rsa.pub”, -whose value is the public part of an SSH key that can be used to access -Nodes.

+

To allow users to schedule “best-effort” pods, which shouldn’t trigger +Cluster Autoscaler actions, but only run when there are spare resources available, +default: -10 +More info: https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#how-does-cluster-autoscaler-work-with-pod-priority-and-preemption

+###ClusterConfiguration { #hypershift.openshift.io/v1alpha1.ClusterConfiguration } +

+(Appears on: +HostedClusterSpec, +HostedControlPlaneSpec) +

+

+

ClusterConfiguration contains global configuration for a HostedCluster.

+

+ + + + + + + + + +
FieldDescription
-networking
+secretRefs
- -ClusterNetworking + +[]Kubernetes core/v1.LocalObjectReference
-

Networking contains network-specific settings for this cluster

+(Optional) +

SecretRefs holds references to secrets used in configuration entries +so that they can be properly synced by the hypershift operator.

-autoscaling
+configMapRefs
- -ClusterAutoscaling + +[]Kubernetes core/v1.LocalObjectReference
(Optional) -

Autoscaling for compute nodes only, does not cover control plane

+

ConfigMapRefs holds references to configmaps used in configuration entries +so that they can be properly synced by the hypershift operator.

-platform
+items
- -PlatformSpec + +[]k8s.io/apimachinery/pkg/runtime.RawExtension
+(Optional) +

Items embeds the configuration resource

+###ClusterNetworking { #hypershift.openshift.io/v1alpha1.ClusterNetworking } +

+(Appears on: +HostedClusterSpec) +

+

+

+ + + + + + + + - - - - - - - - - - - - - - - - - - -
FieldDescription
-infraID
+serviceCIDR
string
-

InfraID is used to identify the cluster in cloud platforms

-dns
+podCIDR
- -DNSSpec - +string
-

DNS configuration for the cluster

-services
+machineCIDR
- -[]ServicePublishingStrategyMapping - +string
-

Services defines metadata about how control plane services are published -in the management cluster. -TODO (alberto): include Ignition endpoint here.

-controllerAvailabilityPolicy
+networkType
- -AvailabilityPolicy + +NetworkType
-(Optional) -

ControllerAvailabilityPolicy specifies whether to run control plane controllers in HA mode -Defaults to SingleReplica when not set.

+

NetworkType specifies the SDN provider used for cluster networking.

-infrastructureAvailabilityPolicy
+apiServer
- -AvailabilityPolicy - - -
-(Optional) -

InfrastructureAvailabilityPolicy specifies whether to run infrastructure services that -run on the guest cluster nodes in HA mode -Defaults to HighlyAvailable when not set

-
-etcd
- - -EtcdSpec - - -
-

Etcd contains metadata about the etcd cluster the hypershift managed Openshift control plane components -use to store data. Changing the ManagementType for the etcd cluster is not supported after initial creation.

-
-configuration
- - -ClusterConfiguration - - -
-(Optional) -

Configuration embeds resources that correspond to the openshift configuration API: -https://docs.openshift.com/container-platform/4.7/rest_api/config_apis/config-apis-index.html

-
-imageContentSources
- - -[]ImageContentSource - - -
-(Optional) -

ImageContentSources lists sources/repositories for the release-image content.

-
-secretEncryption
- - -SecretEncryptionSpec - - -
-(Optional) -

SecretEncryption contains metadata about the kubernetes secret encryption strategy being used for the -cluster when applicable.

-
- - - - -status
- - -HostedClusterStatus + +APIServerNetworking +

APIServer contains advanced network settings for the API server that affect +how the APIServer is exposed inside a worker node.

-

HostedClusterSpec -

+###ClusterVersionStatus { #hypershift.openshift.io/v1alpha1.ClusterVersionStatus }

(Appears on: -HostedCluster) +HostedClusterStatus)

-

HostedClusterSpec defines the desired state of HostedCluster

+

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

@@ -1760,7 +1522,7 @@ HostedClusterStatus - - - - + +
-release
+desired
Release @@ -1768,255 +1530,274 @@ Release
-

Release specifies the release image to use for this HostedCluster

+

desired is the version that the cluster is reconciling towards. +If the cluster is not yet fully initialized desired will be set +with the information available, which may be an image or a tag.

-fips
+history
-bool +[]github.com/openshift/api/config/v1.UpdateHistory
(Optional) +

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

-pullSecret
- - -Kubernetes core/v1.LocalObjectReference - - -
-

PullSecret is a pull secret injected into the container runtime of guest -workers. It should have an “.dockerconfigjson” key containing the pull secret JSON.

-
-auditWebhook
+observedGeneration
- -Kubernetes core/v1.LocalObjectReference - +int64
-(Optional) -

AuditWebhook contains metadata for configuring an audit webhook -endpoint for a cluster to process cluster audit events. It references -a secret that contains the webhook information for the audit webhook endpoint. -It is a secret because if the endpoint has MTLS the kubeconfig will contain client -keys. This is currently only supported in IBM Cloud. The kubeconfig needs to be stored -in the secret with a secret key name that corresponds to the constant AuditWebhookKubeconfigKey.

+

observedGeneration reports which version of the spec is being synced. +If this value is not equal to metadata.generation, then the desired +and conditions fields may represent a previous version.

+###ConditionType { #hypershift.openshift.io/v1alpha1.ConditionType } +

+

+ + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-issuerURL
- -string - -
-ValueDescription

"Available"

AWSEndpointServiceAvailable indicates whether the AWS Endpoint Service +has been created for the specified NLB

+

"ClusterVersionFailing"

"EtcdAvailable"

"Available"

HostedClusterAvailable indicates whether the HostedCluster has a healthy +control plane.

+

"Available"

"IgnitionEndpointAvailable"

IgnitionEndpointAvailable indicates whether the ignition server for the +HostedCluster is available to handle ignition requests.

+

"InfrastructureReady"

"KubeAPIServerAvailable"

"SupportedHostedCluster"

SupportedHostedCluster indicates whether a HostedCluster is supported by +the current configuration of the hypershift-operator. +e.g. If HostedCluster requests endpointAcess Private but the hypershift-operator +is running on a management cluster outside AWS or is not configured with AWS +credentials, the HostedCluster is not supported.

+

"UnmanagedEtcdAvailable"

UnmanagedEtcdAvailable indicates whether a user-managed etcd cluster is +healthy.

+

"ValidConfiguration"

ValidHostedClusterConfiguration indicates (if status is true) that the +ClusterConfiguration specified for the HostedCluster is valid.

+

"ValidHostedControlPlaneConfiguration"

+###DNSSpec { #hypershift.openshift.io/v1alpha1.DNSSpec } +

+(Appears on: +HostedClusterSpec, +HostedControlPlaneSpec) +

+

+

DNSSpec specifies the DNS configuration in the cluster

+

+ + - - + + + + - - - - + +
-sshKey
- - -Kubernetes core/v1.LocalObjectReference - - -
-

SSHKey is a reference to a Secret containing a single key “id_rsa.pub”, -whose value is the public part of an SSH key that can be used to access -Nodes.

-
FieldDescription
-networking
+baseDomain
- -ClusterNetworking - +string
-

Networking contains network-specific settings for this cluster

+

BaseDomain is the base domain of the cluster.

-autoscaling
+publicZoneID
- -ClusterAutoscaling - +string
(Optional) -

Autoscaling for compute nodes only, does not cover control plane

-
-platform
- - -PlatformSpec - - -
+

PublicZoneID is the Hosted Zone ID where all the DNS records that are publicly accessible to +the internet exist.

-infraID
+privateZoneID
string
-

InfraID is used to identify the cluster in cloud platforms

+(Optional) +

PrivateZoneID is the Hosted Zone ID where all the DNS records that are only available internally +to the cluster exist.

+###EtcdManagementType { #hypershift.openshift.io/v1alpha1.EtcdManagementType } +

+(Appears on: +EtcdSpec) +

+

+

EtcdManagementType is a enum specifying the strategy for managing the cluster’s etcd instance

+

+ + - - + + + + + + + + +
-dns
- - -DNSSpec - - -
-

DNS configuration for the cluster

-
ValueDescription

"Managed"

"Unmanaged"

+###EtcdSpec { #hypershift.openshift.io/v1alpha1.EtcdSpec } +

+(Appears on: +HostedClusterSpec, +HostedControlPlaneSpec) +

+

+

+ + - - + + + + - - - - + +
-services
- - -[]ServicePublishingStrategyMapping - - -
-

Services defines metadata about how control plane services are published -in the management cluster. -TODO (alberto): include Ignition endpoint here.

-
FieldDescription
-controllerAvailabilityPolicy
+managementType
- -AvailabilityPolicy + +EtcdManagementType
-(Optional) -

ControllerAvailabilityPolicy specifies whether to run control plane controllers in HA mode -Defaults to SingleReplica when not set.

+

ManagementType defines how the etcd cluster is managed. Unmanaged means +the etcd cluster is managed by a system outside the hypershift controllers. +Managed means the hypershift controllers manage the provisioning of the etcd cluster +and the operations around it

-infrastructureAvailabilityPolicy
+managed
- -AvailabilityPolicy + +ManagedEtcdSpec
(Optional) -

InfrastructureAvailabilityPolicy specifies whether to run infrastructure services that -run on the guest cluster nodes in HA mode -Defaults to HighlyAvailable when not set

-
-etcd
- - -EtcdSpec - - -
-

Etcd contains metadata about the etcd cluster the hypershift managed Openshift control plane components -use to store data. Changing the ManagementType for the etcd cluster is not supported after initial creation.

+

Managed provides metadata that defines how the hypershift controllers manage the etcd cluster

-configuration
+unmanaged
- -ClusterConfiguration + +UnmanagedEtcdSpec
(Optional) -

Configuration embeds resources that correspond to the openshift configuration API: -https://docs.openshift.com/container-platform/4.7/rest_api/config_apis/config-apis-index.html

+

Unmanaged provides metadata that enables the Openshift controllers to connect to the external etcd cluster

+###EtcdTLSConfig { #hypershift.openshift.io/v1alpha1.EtcdTLSConfig } +

+(Appears on: +UnmanagedEtcdSpec) +

+

+

+ + - - + + + +
-imageContentSources
- - -[]ImageContentSource - - -
-(Optional) -

ImageContentSources lists sources/repositories for the release-image content.

-
FieldDescription
-secretEncryption
+clientSecret
- -SecretEncryptionSpec + +Kubernetes core/v1.LocalObjectReference
-(Optional) -

SecretEncryption contains metadata about the kubernetes secret encryption strategy being used for the -cluster when applicable.

+

ClientSecret refers to a secret for client MTLS authentication with the etcd cluster +The CA must be stored at secret key etcd-client-ca.crt. +The client cert must be stored at secret key etcd-client.crt. +The client key must be stored at secret key etcd-client.key.

-

HostedClusterStatus -

+###Filter { #hypershift.openshift.io/v1alpha1.Filter }

(Appears on: -HostedCluster) +AWSResourceReference)

-

HostedClusterStatus defines the observed state of HostedCluster

+

Filter is a filter used to identify an AWS resource

@@ -2028,65 +1809,35 @@ cluster when applicable.

- - - - - - - -
-version
- - -ClusterVersionStatus - - -
-(Optional) -

Version is the status of the release version applied to the -HostedCluster.

-
-kubeconfig
- - -Kubernetes core/v1.LocalObjectReference - - -
-(Optional) -

KubeConfig is a reference to the secret containing the default kubeconfig -for the cluster.

-
-ignitionEndpoint
+name
string
-(Optional) -

IgnitionEndpoint is the endpoint injected in the ign config userdata. -It exposes the config for instances to become kubernetes nodes.

+

Name of the filter. Filter names are case-sensitive.

-conditions
+values
- -[]Kubernetes meta/v1.Condition - +[]string
+

Values includes one or more filter values. Filter values are case-sensitive.

-

HostedControlPlane -

+###HostedClusterSpec { #hypershift.openshift.io/v1alpha1.HostedClusterSpec } +

+(Appears on: +HostedCluster) +

-

HostedControlPlane defines the desired state of HostedControlPlane

+

HostedClusterSpec defines the desired state of HostedCluster

@@ -2098,39 +1849,26 @@ It exposes the config for instances to become kubernetes nodes.

- @@ -2433,12 +2172,7 @@ HostedControlPlaneStatus
-metadata
+release
- -Kubernetes meta/v1.ObjectMeta + +Release
-Refer to the Kubernetes API documentation for the fields of the -metadata field. +

Release specifies the release image to use for this HostedCluster

-spec
- - -HostedControlPlaneSpec - - -
-
-
- - - @@ -2143,21 +1881,32 @@ Kubernetes core/v1.LocalObjectReference @@ -2218,18 +1976,7 @@ string - - - - @@ -2242,31 +1989,22 @@ DNSSpec - - - - @@ -2280,8 +2018,9 @@ AvailabilityPolicy @@ -2302,129 +2041,129 @@ Defaults to HighlyAvailable when not set

+ +
-releaseImage
+fips
-string +bool
+(Optional)
+

PullSecret is a pull secret injected into the container runtime of guest +workers. It should have an “.dockerconfigjson” key containing the pull secret JSON.

-issuerURL
+auditWebhook
-string + +Kubernetes core/v1.LocalObjectReference +
+(Optional) +

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

-serviceCIDR
+issuerURL
string @@ -2167,43 +1916,52 @@ string
-podCIDR
+sshKey
-string + +Kubernetes core/v1.LocalObjectReference +
+

SSHKey is a reference to a Secret containing a single key “id_rsa.pub”, +whose value is the public part of an SSH key that can be used to access +Nodes.

-machineCIDR
+networking
-string + +ClusterNetworking +
+

Networking contains network-specific settings for this cluster

-networkType
+autoscaling
- -NetworkType + +ClusterAutoscaling
-

NetworkType specifies the SDN provider used for cluster networking.

+(Optional) +

Autoscaling for compute nodes only, does not cover control plane

-sshKey
+platform
- -Kubernetes core/v1.LocalObjectReference + +PlatformSpec
-
-platform
- - -PlatformSpec - - -
+

InfraID is used to identify the cluster in cloud platforms

+

DNS configuration for the cluster

-apiPort
- -int32 - -
-(Optional) -

APIPort is the port at which the APIServer listens inside a worker

-
-apiAdvertiseAddress
+services
-string + +[]ServicePublishingStrategyMapping +
-(Optional) -

APIAdvertiseAddress is the address at which the APIServer listens -inside a worker.

+

Services defines metadata about how control plane services are published +in the management cluster. +TODO (alberto): include Ignition endpoint here.

(Optional) -

ControllerAvailabilityPolicy specifies whether to run control plane controllers in HA mode -Defaults to SingleReplica when not set

+

ControllerAvailabilityPolicy specifies an availability policy to apply +to critical control plane components. +Defaults to SingleReplica when not set.

-fips
+etcd
-bool + +EtcdSpec +
-(Optional) -

FIPS specifies if the nodes for the cluster will be running in FIPS mode

+

Etcd contains metadata about the etcd cluster the hypershift managed Openshift control plane components +use to store data. Changing the ManagementType for the etcd cluster is not supported after initial creation.

-kubeconfig
+configuration
- -KubeconfigSecretRef + +ClusterConfiguration
(Optional) -

KubeConfig specifies the name and key for the kubeconfig secret

+

Configuration embeds resources that correspond to the openshift configuration API: +https://docs.openshift.com/container-platform/4.7/rest_api/config_apis/config-apis-index.html

-services
+imageContentSources
- -[]ServicePublishingStrategyMapping + +[]ImageContentSource
-

Services defines metadata about how control plane services are published -in the management cluster.

+(Optional) +

ImageContentSources lists sources/repositories for the release-image content.

-auditWebhook
+secretEncryption
- -Kubernetes core/v1.LocalObjectReference + +SecretEncryptionSpec
(Optional) -

AuditWebhook contains metadata for configuring an audit webhook -endpoint for a cluster to process cluster audit events. It references -a secret that contains the webhook information for the audit webhook endpoint. -It is a secret because if the endpoint has MTLS the kubeconfig will contain client -keys. This is currently only supported in IBM Cloud. The kubeconfig needs to be stored -in the secret with a secret key name that corresponds to the constant AuditWebhookKubeconfigKey.

+

SecretEncryption contains metadata about the kubernetes secret encryption strategy being used for the +cluster when applicable.

+###HostedClusterStatus { #hypershift.openshift.io/v1alpha1.HostedClusterStatus } +

+(Appears on: +HostedCluster) +

+

+

HostedClusterStatus defines the observed state of HostedCluster

+

+ + - - + + + + - -
-etcd
- - -EtcdSpec - - -
-

Etcd contains metadata about the etcd cluster the hypershift managed Openshift control plane components -use to store data.

-
FieldDescription
-configuration
+version
- -ClusterConfiguration + +ClusterVersionStatus
-

Configuration embeds resources that correspond to the openshift configuration API: -https://docs.openshift.com/container-platform/4.7/rest_api/config_apis/config-apis-index.html

+(Optional) +

Version is the status of the release version applied to the +HostedCluster.

-imageContentSources
+kubeconfig
- -[]ImageContentSource + +Kubernetes core/v1.LocalObjectReference
(Optional) -

ImageContentSources lists sources/repositories for the release-image content.

+

KubeConfig is a reference to the secret containing the default kubeconfig +for the cluster.

-secretEncryption
+ignitionEndpoint
- -SecretEncryptionSpec - +string
(Optional) -

SecretEncryption contains metadata about the kubernetes secret encryption strategy being used for the -cluster when applicable.

-
+

IgnitionEndpoint is the endpoint injected in the ign config userdata. +It exposes the config for instances to become kubernetes nodes.

-status
+conditions
- -HostedControlPlaneStatus + +[]Kubernetes meta/v1.Condition
-

HostedControlPlaneSpec -

-

-(Appears on: -HostedControlPlane) -

+###HostedControlPlaneSpec { #hypershift.openshift.io/v1alpha1.HostedControlPlaneSpec }

HostedControlPlaneSpec defines the desired state of HostedControlPlane

@@ -2745,12 +2479,7 @@ cluster when applicable.

-

HostedControlPlaneStatus -

-

-(Appears on: -HostedControlPlane) -

+###HostedControlPlaneStatus { #hypershift.openshift.io/v1alpha1.HostedControlPlaneStatus }

HostedControlPlaneStatus defines the observed state of HostedControlPlane

@@ -2885,8 +2614,7 @@ Current condition types are: “Available”

-

IBMCloudKMSAuthSpec -

+###IBMCloudKMSAuthSpec { #hypershift.openshift.io/v1alpha1.IBMCloudKMSAuthSpec }

(Appears on: IBMCloudKMSSpec) @@ -2946,8 +2674,7 @@ KMS system (all provider managed).

-

IBMCloudKMSAuthType -(string alias)

+###IBMCloudKMSAuthType { #hypershift.openshift.io/v1alpha1.IBMCloudKMSAuthType }

(Appears on: IBMCloudKMSAuthSpec) @@ -2955,8 +2682,24 @@ KMS system (all provider managed).

IBMCloudKMSAuthType defines the IBM Cloud KMS authentication strategy

-

IBMCloudKMSKeyEntry -

+ + + + + + + + + + + + +
ValueDescription

"Managed"

IBMCloudKMSManagedAuth defines the KMS authentication strategy where the IKS/ROKS platform uses +service to service auth to call IBM Cloud KMS APIs (no customer credentials requried)

+

"Unmanaged"

IBMCloudKMSUnmanagedAuth defines the KMS authentication strategy where a customer supplies IBM Cloud +authentication to interact with IBM Cloud KMS APIs

+
+###IBMCloudKMSKeyEntry { #hypershift.openshift.io/v1alpha1.IBMCloudKMSKeyEntry }

(Appears on: IBMCloudKMSSpec) @@ -3030,8 +2773,7 @@ key is enabled for data encryption.

-

IBMCloudKMSManagedAuthSpec -

+###IBMCloudKMSManagedAuthSpec { #hypershift.openshift.io/v1alpha1.IBMCloudKMSManagedAuthSpec }

(Appears on: IBMCloudKMSAuthSpec) @@ -3040,8 +2782,7 @@ key is enabled for data encryption.

IBMCloudKMSManagedAuthSpec defines metadata around the service to service authentication strategy for the IBM Cloud KMS system (all provider managed).

-

IBMCloudKMSSpec -

+###IBMCloudKMSSpec { #hypershift.openshift.io/v1alpha1.IBMCloudKMSSpec }

(Appears on: KMSSpec) @@ -3096,8 +2837,7 @@ IBMCloudKMSAuthSpec -

IBMCloudKMSUnmanagedAuthSpec -

+###IBMCloudKMSUnmanagedAuthSpec { #hypershift.openshift.io/v1alpha1.IBMCloudKMSUnmanagedAuthSpec }

(Appears on: IBMCloudKMSAuthSpec) @@ -3129,8 +2869,7 @@ call IBM Cloud KMS APIs

-

ImageContentSource -

+###ImageContentSource { #hypershift.openshift.io/v1alpha1.ImageContentSource }

(Appears on: HostedClusterSpec, @@ -3172,16 +2911,14 @@ string -

InPlaceUpgrade -

+###InPlaceUpgrade { #hypershift.openshift.io/v1alpha1.InPlaceUpgrade }

(Appears on: NodePoolManagement)

-

KMSProvider -(string alias)

+###KMSProvider { #hypershift.openshift.io/v1alpha1.KMSProvider }

(Appears on: KMSSpec) @@ -3189,8 +2926,20 @@ string

KMSProvider defines the supported KMS providers

-

KMSSpec -

+ + + + + + + + + + + + +
ValueDescription

"AWS"

"IBMCloud"

+###KMSSpec { #hypershift.openshift.io/v1alpha1.KMSSpec }

(Appears on: SecretEncryptionSpec) @@ -3249,47 +2998,7 @@ AWSKMSSpec -

KubeconfigSecretRef -

-

-(Appears on: -HostedControlPlaneSpec, -HostedControlPlaneStatus) -

-

-

- - - - - - - - - - - - - - - - - -
FieldDescription
-name
- -string - -
-
-key
- -string - -
-
-

ManagedEtcdSpec -

+###ManagedEtcdSpec { #hypershift.openshift.io/v1alpha1.ManagedEtcdSpec }

(Appears on: EtcdSpec) @@ -3319,8 +3028,7 @@ ManagedEtcdStorageSpec -

ManagedEtcdStorageSpec -

+###ManagedEtcdStorageSpec { #hypershift.openshift.io/v1alpha1.ManagedEtcdStorageSpec }

(Appears on: ManagedEtcdSpec) @@ -3368,16 +3076,26 @@ availability configuration).

-

ManagedEtcdStorageType -(string alias)

+###ManagedEtcdStorageType { #hypershift.openshift.io/v1alpha1.ManagedEtcdStorageType }

(Appears on: ManagedEtcdStorageSpec)

-

NetworkType -(string alias)

+ + + + + + + + + + +
ValueDescription

"PersistentVolume"

PersistentVolumeEtcdStorage uses PersistentVolumes for etcd storage.

+
+###NetworkType { #hypershift.openshift.io/v1alpha1.NetworkType }

(Appears on: ClusterNetworking, @@ -3386,160 +3104,22 @@ availability configuration).

NetworkType specifies the SDN provider used for cluster networking.

-

NodePool -

-

-

NodePool defines the desired state of NodePool

-

- + - - - - - - - - - - - - + - - +
FieldValue Description
-metadata
- - -Kubernetes meta/v1.ObjectMeta - - -
-Refer to the Kubernetes API documentation for the fields of the -metadata field. -
-spec
- - -NodePoolSpec - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - -
-clusterName
- -string - -
-

ClusterName is the name of the Cluster this object belongs to.

-
-nodeCount
- -int32 - -
-(Optional) -
-config
- - -[]Kubernetes core/v1.LocalObjectReference - - -
-

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

-
-nodePoolManagement
- - -NodePoolManagement - - -
-
-autoScaling
- - -NodePoolAutoScaling - - -
-(Optional) -
-platform
- - -NodePoolPlatform - - +

"Calico"

Calico specifies Calico as the SDN provider

-
-release
- - -Release - - -
-

Release specifies the release image to use for this NodePool -For a nodePool a given version dictates the ignition config and -an image artifact e.g an AMI in AWS. -Release specifies the release image to use for this HostedCluster

-
-
-status
- - -NodePoolStatus - - -
+

"OpenShiftSDN"

OpenShiftSDN specifies OpenshiftSDN as the SDN provider

-

NodePoolAutoScaling -

+###NodePoolAutoScaling { #hypershift.openshift.io/v1alpha1.NodePoolAutoScaling }

(Appears on: NodePoolSpec) @@ -3576,8 +3156,7 @@ int32 -

NodePoolManagement -

+###NodePoolManagement { #hypershift.openshift.io/v1alpha1.NodePoolManagement }

(Appears on: NodePoolSpec) @@ -3641,8 +3220,7 @@ bool -

NodePoolPlatform -

+###NodePoolPlatform { #hypershift.openshift.io/v1alpha1.NodePoolPlatform }

(Appears on: NodePoolSpec) @@ -3686,8 +3264,7 @@ AWSNodePoolPlatform -

NodePoolSpec -

+###NodePoolSpec { #hypershift.openshift.io/v1alpha1.NodePoolSpec }

(Appears on: NodePool) @@ -3800,8 +3377,7 @@ Release specifies the release image to use for this HostedCluster

-

NodePoolStatus -

+###NodePoolStatus { #hypershift.openshift.io/v1alpha1.NodePoolStatus }

(Appears on: NodePool) @@ -3857,8 +3433,7 @@ an image artifact e.g an AMI in AWS.

-

NodePortPublishingStrategy -

+###NodePortPublishingStrategy { #hypershift.openshift.io/v1alpha1.NodePortPublishingStrategy }

(Appears on: ServicePublishingStrategy) @@ -3898,8 +3473,7 @@ int32 -

PersistentVolumeEtcdStorageSpec -

+###PersistentVolumeEtcdStorageSpec { #hypershift.openshift.io/v1alpha1.PersistentVolumeEtcdStorageSpec }

(Appears on: ManagedEtcdStorageSpec) @@ -3945,8 +3519,7 @@ k8s.io/apimachinery/pkg/api/resource.Quantity -

PlatformSpec -

+###PlatformSpec { #hypershift.openshift.io/v1alpha1.PlatformSpec }

(Appears on: HostedClusterSpec, @@ -3991,8 +3564,7 @@ AWSPlatformSpec -

PlatformType -(string alias)

+###PlatformType { #hypershift.openshift.io/v1alpha1.PlatformType }

(Appears on: NodePoolPlatform, @@ -4001,8 +3573,23 @@ AWSPlatformSpec

PlatformType is a specific supported infrastructure provider.

-

PublishingStrategyType -(string alias)

+ + + + + + + + + + + + + + +
ValueDescription

"AWS"

AWSPlatformType represents Amazon Web Services infrastructure.

+

"IBMCloud"

"None"

+###PublishingStrategyType { #hypershift.openshift.io/v1alpha1.PublishingStrategyType }

(Appears on: ServicePublishingStrategy) @@ -4010,8 +3597,7 @@ AWSPlatformSpec

PublishingStrategyType defines publishing strategies for services.

-

Release -

+###Release { #hypershift.openshift.io/v1alpha1.Release }

(Appears on: ClusterVersionStatus, @@ -4041,8 +3627,7 @@ string -

ReplaceUpgrade -

+###ReplaceUpgrade { #hypershift.openshift.io/v1alpha1.ReplaceUpgrade }

(Appears on: NodePoolManagement) @@ -4083,8 +3668,7 @@ RollingUpdate -

RollingUpdate -

+###RollingUpdate { #hypershift.openshift.io/v1alpha1.RollingUpdate }

(Appears on: ReplaceUpgrade) @@ -4125,8 +3709,7 @@ k8s.io/apimachinery/pkg/util/intstr.IntOrString -

SecretEncryptionSpec -

+###SecretEncryptionSpec { #hypershift.openshift.io/v1alpha1.SecretEncryptionSpec }

(Appears on: HostedClusterSpec, @@ -4187,8 +3770,7 @@ AESCBCSpec -

SecretEncryptionType -(string alias)

+###SecretEncryptionType { #hypershift.openshift.io/v1alpha1.SecretEncryptionType }

(Appears on: SecretEncryptionSpec) @@ -4196,8 +3778,22 @@ AESCBCSpec

SecretEncryptionType defines the type of kube secret encryption being used.

-

ServicePublishingStrategy -

+ + + + + + + + + + + + +
ValueDescription

"aescbc"

AESCBC uses AES-CBC with PKCS#7 padding to do secret encryption

+

"kms"

KMS integrates with a cloud provider’s key management service to do secret encryption

+
+###ServicePublishingStrategy { #hypershift.openshift.io/v1alpha1.ServicePublishingStrategy }

(Appears on: ServicePublishingStrategyMapping) @@ -4241,8 +3837,7 @@ NodePortPublishingStrategy -

ServicePublishingStrategyMapping -

+###ServicePublishingStrategyMapping { #hypershift.openshift.io/v1alpha1.ServicePublishingStrategyMapping }

(Appears on: HostedClusterSpec, @@ -4286,8 +3881,7 @@ ServicePublishingStrategy -

ServiceType -(string alias)

+###ServiceType { #hypershift.openshift.io/v1alpha1.ServiceType }

(Appears on: ServicePublishingStrategyMapping) @@ -4295,8 +3889,7 @@ ServicePublishingStrategy

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

-

UnmanagedEtcdSpec -

+###UnmanagedEtcdSpec { #hypershift.openshift.io/v1alpha1.UnmanagedEtcdSpec }

(Appears on: EtcdSpec) @@ -4340,24 +3933,47 @@ the etcd cluster

-

UpgradeStrategy -(string alias)

+###UpgradeStrategy { #hypershift.openshift.io/v1alpha1.UpgradeStrategy }

(Appears on: ReplaceUpgrade)

-

UpgradeType -(string alias)

+ + + + + + + + + + + + +
ValueDescription

"OnDelete"

"RollingUpdate"

+###UpgradeType { #hypershift.openshift.io/v1alpha1.UpgradeType }

(Appears on: NodePoolManagement)

-

Volume -

+ + + + + + + + + + + + +
ValueDescription

"InPlace"

"Replace"

+###Volume { #hypershift.openshift.io/v1alpha1.Volume }

(Appears on: AWSNodePoolPlatform) diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 4bb056d6a3..d88140b69c 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -9,3 +9,7 @@ plugins: docs_dir: content repo_url: https://github.com/openshift/hypershift repo_name: openshift/hypershift +markdown_extensions: +- toc: + toc_depth: "2-2" +- attr_list: