Skip to content

Commit

Permalink
operator hive-operator (1.2.4693-ec3bc72)
Browse files Browse the repository at this point in the history
dlom authored Jan 27, 2025

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent affc007 commit 7e11cdd
Showing 23 changed files with 8,677 additions and 0 deletions.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
name: checkpoints.hive.openshift.io
spec:
group: hive.openshift.io
names:
kind: Checkpoint
listKind: CheckpointList
plural: checkpoints
singular: checkpoint
scope: Namespaced
versions:
- name: v1
schema:
openAPIV3Schema:
description: Checkpoint is the Schema for the backup of Hive objects.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: CheckpointSpec defines the metadata around the Hive objects
state in the namespace at the time of the last backup.
properties:
lastBackupChecksum:
description: LastBackupChecksum is the checksum of all Hive objects
in the namespace at the time of the last backup.
type: string
lastBackupRef:
description: LastBackupRef is a reference to last backup object created
properties:
name:
type: string
namespace:
type: string
required:
- name
- namespace
type: object
lastBackupTime:
description: LastBackupTime is the last time we performed a backup
of the namespace
format: date-time
type: string
required:
- lastBackupChecksum
- lastBackupRef
- lastBackupTime
type: object
status:
description: CheckpointStatus defines the observed state of Checkpoint
type: object
type: object
served: true
storage: true
subresources:
status: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
name: clusterclaims.hive.openshift.io
spec:
group: hive.openshift.io
names:
kind: ClusterClaim
listKind: ClusterClaimList
plural: clusterclaims
singular: clusterclaim
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.clusterPoolName
name: Pool
type: string
- jsonPath: .status.conditions[?(@.type=='Pending')].reason
name: Pending
type: string
- jsonPath: .spec.namespace
name: ClusterNamespace
type: string
- jsonPath: .status.conditions[?(@.type=='ClusterRunning')].reason
name: ClusterRunning
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1
schema:
openAPIV3Schema:
description: ClusterClaim represents a claim to a cluster from a cluster pool.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: ClusterClaimSpec defines the desired state of the ClusterClaim.
properties:
clusterPoolName:
description: ClusterPoolName is the name of the cluster pool from
which to claim a cluster.
type: string
lifetime:
description: |-
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
pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
type: string
namespace:
description: |-
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.
type: string
subjects:
description: Subjects hold references to which to authorize access
to the claimed cluster.
items:
description: |-
Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference,
or a value for non-objects such as user and group names.
properties:
apiGroup:
description: |-
APIGroup holds the API group of the referenced subject.
Defaults to "" for ServiceAccount subjects.
Defaults to "rbac.authorization.k8s.io" for User and Group subjects.
type: string
kind:
description: |-
Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount".
If the Authorizer does not recognized the kind value, the Authorizer should report an error.
type: string
name:
description: Name of the object being referenced.
type: string
namespace:
description: |-
Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty
the Authorizer should report an error.
type: string
required:
- kind
- name
type: object
x-kubernetes-map-type: atomic
type: array
required:
- clusterPoolName
type: object
status:
description: ClusterClaimStatus defines the observed state of ClusterClaim.
properties:
conditions:
description: Conditions includes more detailed status for the cluster
pool.
items:
description: ClusterClaimCondition contains details for the current
condition of a cluster claim.
properties:
lastProbeTime:
description: LastProbeTime is the last time we probed the condition.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime is the last time the condition
transitioned from one status to another.
format: date-time
type: string
message:
description: Message is a human-readable message indicating
details about last transition.
type: string
reason:
description: Reason is a unique, one-word, CamelCase reason
for the condition's last transition.
type: string
status:
description: Status is the status of the condition.
type: string
type:
description: Type is the type of the condition.
type: string
required:
- status
- type
type: object
type: array
lifetime:
description: |-
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.
type: string
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
name: clusterdeploymentcustomizations.hive.openshift.io
spec:
group: hive.openshift.io
names:
kind: ClusterDeploymentCustomization
listKind: ClusterDeploymentCustomizationList
plural: clusterdeploymentcustomizations
singular: clusterdeploymentcustomization
scope: Namespaced
versions:
- name: v1
schema:
openAPIV3Schema:
description: ClusterDeploymentCustomization is the Schema for clusterdeploymentcustomizations
API.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: ClusterDeploymentCustomizationSpec defines the desired state
of ClusterDeploymentCustomization.
properties:
installConfigPatches:
description: InstallConfigPatches is a list of patches to be applied
to the install-config.
items:
description: PatchEntity represents a json patch (RFC 6902) to be
applied
properties:
from:
description: From is the json path to copy or move the value
from
type: string
op:
description: Op is the operation to perform.
enum:
- add
- remove
- replace
- move
- copy
- test
type: string
path:
description: Path is the json path to the value to be modified
type: string
value:
description: |-
Value is the *string* value to be used in the operation. For more complex values, use
ValueJSON.
type: string
valueJSON:
description: |-
ValueJSON is a string representing a JSON object to be used in the operation. As such,
internal quotes must be escaped. If nonempty, Value is ignored.
type: string
required:
- op
- path
type: object
type: array
type: object
status:
description: ClusterDeploymentCustomizationStatus defines the observed
state of ClusterDeploymentCustomization.
properties:
clusterDeploymentRef:
description: ClusterDeploymentRef is a reference to the cluster deployment
that this customization is applied on.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
clusterPoolRef:
description: ClusterPoolRef is the name of the current cluster pool
the CDC used at.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
conditions:
description: Conditions describes the state of the operator's reconciliation
functionality.
items:
description: |-
Condition represents the state of the operator's
reconciliation functionality.
properties:
lastHeartbeatTime:
format: date-time
type: string
lastTransitionTime:
format: date-time
type: string
message:
type: string
reason:
type: string
status:
type: string
type:
description: ConditionType is the state of the operator's reconciliation
functionality.
type: string
required:
- status
- type
type: object
type: array
lastAppliedConfiguration:
description: |-
LastAppliedConfiguration contains the last applied patches to the install-config.
The information will retain for reference in case the customization is updated.
type: string
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
name: clusterimagesets.hive.openshift.io
spec:
group: hive.openshift.io
names:
kind: ClusterImageSet
listKind: ClusterImageSetList
plural: clusterimagesets
shortNames:
- imgset
singular: clusterimageset
scope: Cluster
versions:
- additionalPrinterColumns:
- jsonPath: .spec.releaseImage
name: Release
type: string
name: v1
schema:
openAPIV3Schema:
description: ClusterImageSet is the Schema for the clusterimagesets API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: ClusterImageSetSpec defines the desired state of ClusterImageSet
properties:
releaseImage:
description: |-
ReleaseImage is the image that contains the payload to use when installing
a cluster.
type: string
required:
- releaseImage
type: object
status:
description: ClusterImageSetStatus defines the observed state of ClusterImageSet
type: object
type: object
served: true
storage: true
subresources:
status: {}

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
labels:
contracts.hive.openshift.io/clusterinstall: "false"
name: clusterprovisions.hive.openshift.io
spec:
group: hive.openshift.io
names:
kind: ClusterProvision
listKind: ClusterProvisionList
plural: clusterprovisions
singular: clusterprovision
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.clusterDeploymentRef.name
name: ClusterDeployment
type: string
- jsonPath: .spec.stage
name: Stage
type: string
- jsonPath: .spec.infraID
name: InfraID
type: string
name: v1
schema:
openAPIV3Schema:
description: ClusterProvision is the Schema for the clusterprovisions API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: ClusterProvisionSpec defines the results of provisioning
a cluster.
properties:
adminKubeconfigSecretRef:
description: AdminKubeconfigSecretRef references the secret containing
the admin kubeconfig for this cluster.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
adminPasswordSecretRef:
description: AdminPasswordSecretRef references the secret containing
the admin username/password which can be used to login to this cluster.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
attempt:
description: Attempt is which attempt number of the cluster deployment
that this ClusterProvision is
type: integer
clusterDeploymentRef:
description: ClusterDeploymentRef references the cluster deployment
provisioned.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
clusterID:
description: ClusterID is a globally unique identifier for this cluster
generated during installation. Used for reporting metrics among
other places.
type: string
infraID:
description: InfraID is an identifier for this cluster generated during
installation and used for tagging/naming resources in cloud providers.
type: string
installLog:
description: InstallLog is the log from the installer.
type: string
metadata:
description: |-
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.
type: object
x-kubernetes-preserve-unknown-fields: true
metadataJSON:
description: |-
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.
format: byte
type: string
prevClusterID:
description: PrevClusterID is the cluster ID of the previous failed
provision attempt.
type: string
prevInfraID:
description: PrevInfraID is the infra ID of the previous failed provision
attempt.
type: string
prevProvisionName:
description: PrevProvisionName is the name of the previous failed
provision attempt.
type: string
stage:
description: Stage is the stage of provisioning that the cluster deployment
has reached.
type: string
required:
- attempt
- clusterDeploymentRef
- podSpec
- stage
type: object
x-kubernetes-preserve-unknown-fields: true
status:
description: ClusterProvisionStatus defines the observed state of ClusterProvision.
properties:
conditions:
description: Conditions includes more detailed status for the cluster
provision
items:
description: ClusterProvisionCondition contains details for the
current condition of a cluster provision
properties:
lastProbeTime:
description: LastProbeTime is the last time we probed the condition.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime is the last time the condition
transitioned from one status to another.
format: date-time
type: string
message:
description: Message is a human-readable message indicating
details about last transition.
type: string
reason:
description: Reason is a unique, one-word, CamelCase reason
for the condition's last transition.
type: string
status:
description: Status is the status of the condition.
type: string
type:
description: Type is the type of the condition.
type: string
required:
- status
- type
type: object
type: array
jobRef:
description: JobRef is the reference to the job performing the provision.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
type: object
type: object
served: true
storage: true
subresources:
status: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
name: clusterrelocates.hive.openshift.io
spec:
group: hive.openshift.io
names:
kind: ClusterRelocate
listKind: ClusterRelocateList
plural: clusterrelocates
singular: clusterrelocate
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.clusterDeploymentSelector
name: Selector
type: string
name: v1
schema:
openAPIV3Schema:
description: ClusterRelocate is the Schema for the ClusterRelocates API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: ClusterRelocateSpec defines the relocation of clusters from
one Hive instance to another.
properties:
clusterDeploymentSelector:
description: ClusterDeploymentSelector is a LabelSelector indicating
which clusters will be relocated.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
kubeconfigSecretRef:
description: |-
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".
properties:
name:
description: Name is the name of the secret.
type: string
namespace:
description: Namespace is the namespace where the secret lives.
type: string
required:
- name
- namespace
type: object
required:
- clusterDeploymentSelector
- kubeconfigSecretRef
type: object
status:
description: ClusterRelocateStatus defines the observed state of ClusterRelocate.
type: object
type: object
served: true
storage: true
subresources:
status: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
name: clusterstates.hive.openshift.io
spec:
group: hive.openshift.io
names:
kind: ClusterState
listKind: ClusterStateList
plural: clusterstates
singular: clusterstate
scope: Namespaced
versions:
- name: v1
schema:
openAPIV3Schema:
description: ClusterState is the Schema for the clusterstates API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: ClusterStateSpec defines the desired state of ClusterState
type: object
status:
description: ClusterStateStatus defines the observed state of ClusterState
properties:
clusterOperators:
description: |-
ClusterOperators contains the state for every cluster operator in the
target cluster
items:
description: ClusterOperatorState summarizes the status of a single
cluster operator
properties:
conditions:
description: |-
Conditions is the set of conditions in the status of the cluster operator
on the target cluster
items:
description: |-
ClusterOperatorStatusCondition represents the state of the operator's
managed and monitored components.
properties:
lastTransitionTime:
description: lastTransitionTime is the time of the last
update to the current status property.
format: date-time
type: string
message:
description: |-
message provides additional information about the current condition.
This is only to be consumed by humans. It may contain Line Feed
characters (U+000A), which should be rendered as new lines.
type: string
reason:
description: reason is the CamelCase reason for the condition's
current status.
type: string
status:
description: status of the condition, one of True, False,
Unknown.
type: string
type:
description: type specifies the aspect reported by this
condition.
type: string
required:
- lastTransitionTime
- status
- type
type: object
type: array
name:
description: Name is the name of the cluster operator
type: string
required:
- name
type: object
type: array
lastUpdated:
description: LastUpdated is the last time that operator state was
updated
format: date-time
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,264 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
name: dnszones.hive.openshift.io
spec:
group: hive.openshift.io
names:
kind: DNSZone
listKind: DNSZoneList
plural: dnszones
singular: dnszone
scope: Namespaced
versions:
- name: v1
schema:
openAPIV3Schema:
description: DNSZone is the Schema for the dnszones API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: DNSZoneSpec defines the desired state of DNSZone
properties:
aws:
description: AWS specifies AWS-specific cloud configuration
properties:
additionalTags:
description: |-
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.
items:
description: AWSResourceTag represents a tag that is applied
to an AWS cloud resource
properties:
key:
description: Key is the key for the tag
type: string
value:
description: Value is the value for the tag
type: string
required:
- key
- value
type: object
type: array
credentialsAssumeRole:
description: |-
CredentialsAssumeRole refers to the IAM role that must be assumed to obtain
AWS account access for the DNS CRUD operations.
properties:
externalID:
description: |-
ExternalID is random string generated by platform so that assume role
is protected from confused deputy problem.
more info: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html
type: string
roleARN:
type: string
required:
- roleARN
type: object
credentialsSecretRef:
description: |-
CredentialsSecretRef contains a reference to a secret that contains AWS credentials
for CRUD operations
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
region:
description: |-
Region is the AWS region to use for route53 operations.
This defaults to us-east-1.
For AWS China, use cn-northwest-1.
type: string
type: object
azure:
description: Azure specifes Azure-specific cloud configuration
properties:
cloudName:
description: |-
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".
enum:
- ""
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
type: string
credentialsSecretRef:
description: |-
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.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
resourceGroupName:
description: ResourceGroupName specifies the Azure resource group
in which the Hosted Zone should be created.
type: string
required:
- credentialsSecretRef
- resourceGroupName
type: object
gcp:
description: GCP specifies GCP-specific cloud configuration
properties:
credentialsSecretRef:
description: |-
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.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
required:
- credentialsSecretRef
type: object
linkToParentDomain:
description: |-
LinkToParentDomain specifies whether DNS records should
be automatically created to link this DNSZone with a
parent domain.
type: boolean
preserveOnDelete:
description: |-
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.
type: boolean
zone:
description: Zone is the DNS zone to host
type: string
required:
- zone
type: object
status:
description: DNSZoneStatus defines the observed state of DNSZone
properties:
aws:
description: AWSDNSZoneStatus contains status information specific
to AWS
properties:
zoneID:
description: ZoneID is the ID of the zone in AWS
type: string
type: object
azure:
description: AzureDNSZoneStatus contains status information specific
to Azure
type: object
conditions:
description: Conditions includes more detailed status for the DNSZone
items:
description: DNSZoneCondition contains details for the current condition
of a DNSZone
properties:
lastProbeTime:
description: LastProbeTime is the last time we probed the condition.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime is the last time the condition
transitioned from one status to another.
format: date-time
type: string
message:
description: Message is a human-readable message indicating
details about last transition.
type: string
reason:
description: Reason is a unique, one-word, CamelCase reason
for the condition's last transition.
type: string
status:
description: Status is the status of the condition.
type: string
type:
description: Type is the type of the condition.
type: string
required:
- status
- type
type: object
type: array
gcp:
description: GCPDNSZoneStatus contains status information specific
to GCP
properties:
zoneName:
description: ZoneName is the name of the zone in GCP Cloud DNS
type: string
type: object
lastSyncGeneration:
description: |-
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.
format: int64
type: integer
lastSyncTimestamp:
description: LastSyncTimestamp is the time that the zone was last
sync'd.
format: date-time
type: string
nameServers:
description: NameServers is a list of nameservers for this DNS zone
items:
type: string
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
name: machinepoolnameleases.hive.openshift.io
spec:
group: hive.openshift.io
names:
kind: MachinePoolNameLease
listKind: MachinePoolNameLeaseList
plural: machinepoolnameleases
singular: machinepoolnamelease
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.labels.hive\.openshift\.io/machine-pool-name
name: MachinePool
type: string
- jsonPath: .metadata.labels.hive\.openshift\.io/cluster-deployment-name
name: Cluster
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1
schema:
openAPIV3Schema:
description: |-
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.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: MachinePoolNameLeaseSpec is a minimal resource for obtaining
unique machine pool names of a limited length.
type: object
status:
description: MachinePoolNameLeaseStatus defines the observed state of
MachinePoolNameLease.
type: object
type: object
served: true
storage: true
subresources: {}

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,233 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
name: selectorsyncsets.hive.openshift.io
spec:
group: hive.openshift.io
names:
kind: SelectorSyncSet
listKind: SelectorSyncSetList
plural: selectorsyncsets
shortNames:
- sss
singular: selectorsyncset
scope: Cluster
versions:
- name: v1
schema:
openAPIV3Schema:
description: SelectorSyncSet is the Schema for the SelectorSyncSet API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: |-
SelectorSyncSetSpec defines the SyncSetCommonSpec resources and patches to sync along
with a ClusterDeploymentSelector indicating which clusters the SelectorSyncSet applies
to in any namespace.
properties:
applyBehavior:
description: |-
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.
enum:
- ""
- Apply
- CreateOnly
- CreateOrUpdate
type: string
clusterDeploymentSelector:
description: |-
ClusterDeploymentSelector is a LabelSelector indicating which clusters the SelectorSyncSet
applies to in any namespace.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
enablePatchTemplates:
description: |-
EnablePatchTemplates, if True, causes hive to honor golang text/templates in Patches[].Patch
strings. 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 the
patch string must be valid JSON after interpolation. This may make for odd-looking quoting
in the uninterpolated string.
type: boolean
enableResourceTemplates:
description: |-
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.
type: boolean
patches:
description: Patches is the list of patches to apply.
items:
description: SyncObjectPatch represents a patch to be applied to
a specific object
properties:
apiVersion:
description: APIVersion is the Group and Version of the object
to be patched.
type: string
kind:
description: Kind is the Kind of the object to be patched.
type: string
name:
description: Name is the name of the object to be patched.
type: string
namespace:
description: |-
Namespace is the Namespace in which the object to patch exists.
Defaults to the SyncSet's Namespace.
type: string
patch:
description: Patch is the patch to apply.
type: string
patchType:
description: PatchType indicates the PatchType as "strategic"
(default), "json", or "merge".
type: string
required:
- apiVersion
- kind
- name
- patch
type: object
type: array
resourceApplyMode:
description: |-
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.
type: string
resources:
description: Resources is the list of objects to sync from RawExtension
definitions.
items:
type: object
x-kubernetes-preserve-unknown-fields: true
x-kubernetes-embedded-resource: true
type: array
secretMappings:
description: Secrets is the list of secrets to sync along with their
respective destinations.
items:
description: SecretMapping defines a source and destination for
a secret to be synced by a SyncSet
properties:
sourceRef:
description: SourceRef specifies the name and namespace of a
secret on the management cluster
properties:
name:
description: Name is the name of the secret
type: string
namespace:
description: |-
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.
type: string
required:
- name
type: object
targetRef:
description: TargetRef specifies the target name and namespace
of the secret on the target cluster
properties:
name:
description: Name is the name of the secret
type: string
namespace:
description: |-
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.
type: string
required:
- name
type: object
required:
- sourceRef
- targetRef
type: object
type: array
type: object
status:
description: SelectorSyncSetStatus defines the observed state of a SelectorSyncSet
type: object
type: object
served: true
storage: true
subresources:
status: {}

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
name: syncsets.hive.openshift.io
spec:
group: hive.openshift.io
names:
kind: SyncSet
listKind: SyncSetList
plural: syncsets
shortNames:
- ss
singular: syncset
scope: Namespaced
versions:
- name: v1
schema:
openAPIV3Schema:
description: SyncSet is the Schema for the SyncSet API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: |-
SyncSetSpec defines the SyncSetCommonSpec resources and patches to sync along with
ClusterDeploymentRefs indicating which clusters the SyncSet applies to in the
SyncSet's namespace.
properties:
applyBehavior:
description: |-
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.
enum:
- ""
- Apply
- CreateOnly
- CreateOrUpdate
type: string
clusterDeploymentRefs:
description: |-
ClusterDeploymentRefs is the list of LocalObjectReference indicating which clusters the
SyncSet applies to in the SyncSet's namespace.
items:
description: |-
LocalObjectReference contains enough information to let you locate the
referenced object inside the same namespace.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
type: array
enablePatchTemplates:
description: |-
EnablePatchTemplates, if True, causes hive to honor golang text/templates in Patches[].Patch
strings. 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 the
patch string must be valid JSON after interpolation. This may make for odd-looking quoting
in the uninterpolated string.
type: boolean
enableResourceTemplates:
description: |-
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.
type: boolean
patches:
description: Patches is the list of patches to apply.
items:
description: SyncObjectPatch represents a patch to be applied to
a specific object
properties:
apiVersion:
description: APIVersion is the Group and Version of the object
to be patched.
type: string
kind:
description: Kind is the Kind of the object to be patched.
type: string
name:
description: Name is the name of the object to be patched.
type: string
namespace:
description: |-
Namespace is the Namespace in which the object to patch exists.
Defaults to the SyncSet's Namespace.
type: string
patch:
description: Patch is the patch to apply.
type: string
patchType:
description: PatchType indicates the PatchType as "strategic"
(default), "json", or "merge".
type: string
required:
- apiVersion
- kind
- name
- patch
type: object
type: array
resourceApplyMode:
description: |-
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.
type: string
resources:
description: Resources is the list of objects to sync from RawExtension
definitions.
items:
type: object
x-kubernetes-preserve-unknown-fields: true
x-kubernetes-embedded-resource: true
type: array
secretMappings:
description: Secrets is the list of secrets to sync along with their
respective destinations.
items:
description: SecretMapping defines a source and destination for
a secret to be synced by a SyncSet
properties:
sourceRef:
description: SourceRef specifies the name and namespace of a
secret on the management cluster
properties:
name:
description: Name is the name of the secret
type: string
namespace:
description: |-
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.
type: string
required:
- name
type: object
targetRef:
description: TargetRef specifies the target name and namespace
of the secret on the target cluster
properties:
name:
description: Name is the name of the secret
type: string
namespace:
description: |-
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.
type: string
required:
- name
type: object
required:
- sourceRef
- targetRef
type: object
type: array
required:
- clusterDeploymentRefs
type: object
status:
description: SyncSetStatus defines the observed state of a SyncSet
type: object
type: object
served: true
storage: true
subresources:
status: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
name: clustersyncleases.hiveinternal.openshift.io
spec:
group: hiveinternal.openshift.io
names:
kind: ClusterSyncLease
listKind: ClusterSyncLeaseList
plural: clustersyncleases
shortNames:
- csl
singular: clustersynclease
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: ClusterSyncLease is a record of the last time that SyncSets and
SelectorSyncSets were applied to a cluster.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: ClusterSyncLeaseSpec is the specification of a ClusterSyncLease.
properties:
renewTime:
description: RenewTime is the time when SyncSets and SelectorSyncSets
were last applied to the cluster.
format: date-time
type: string
required:
- renewTime
type: object
type: object
served: true
storage: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,251 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
name: clustersyncs.hiveinternal.openshift.io
spec:
group: hiveinternal.openshift.io
names:
kind: ClusterSync
listKind: ClusterSyncList
plural: clustersyncs
shortNames:
- csync
singular: clustersync
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.conditions[0].reason
name: Status
type: string
- jsonPath: .status.controlledByReplica
name: ControllerReplica
type: string
- jsonPath: .status.conditions[?(@.type=="Failed")].message
name: Message
priority: 1
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: ClusterSync is the status of all of the SelectorSyncSets and
SyncSets that apply to a ClusterDeployment.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: ClusterSyncSpec defines the desired state of ClusterSync
type: object
status:
description: ClusterSyncStatus defines the observed state of ClusterSync
properties:
conditions:
description: Conditions is a list of conditions associated with syncing
to the cluster.
items:
description: ClusterSyncCondition contains details for the current
condition of a ClusterSync
properties:
lastProbeTime:
description: LastProbeTime is the last time we probed the condition.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime is the last time the condition
transitioned from one status to another.
format: date-time
type: string
message:
description: Message is a human-readable message indicating
details about the last transition.
type: string
reason:
description: Reason is a unique, one-word, CamelCase reason
for the condition's last transition.
type: string
status:
description: Status is the status of the condition.
type: string
type:
description: Type is the type of the condition.
type: string
required:
- status
- type
type: object
type: array
controlledByReplica:
description: |-
ControlledByReplica indicates which replica of the hive-clustersync StatefulSet is responsible
for (the CD related to) this clustersync. Note that this value indicates the replica that most
recently handled the ClusterSync. If the hive-clustersync statefulset is scaled up or down, the
controlling replica can change, potentially causing logs to be spread across multiple pods.
format: int64
type: integer
firstSuccessTime:
description: FirstSuccessTime is the time we first successfully applied
all (selector)syncsets to a cluster.
format: date-time
type: string
selectorSyncSets:
description: SelectorSyncSets is the sync status of all of the SelectorSyncSets
for the cluster.
items:
description: SyncStatus is the status of applying a specific SyncSet
or SelectorSyncSet to the cluster.
properties:
failureMessage:
description: |-
FailureMessage is a message describing why the SyncSet or SelectorSyncSet could not be applied. This is only
set when Result is Failure.
type: string
firstSuccessTime:
description: FirstSuccessTime is the time when the SyncSet or
SelectorSyncSet was first successfully applied to the cluster.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime is the time when this status
last changed.
format: date-time
type: string
name:
description: Name is the name of the SyncSet or SelectorSyncSet.
type: string
observedGeneration:
description: ObservedGeneration is the generation of the SyncSet
or SelectorSyncSet that was last observed.
format: int64
type: integer
resourcesToDelete:
description: |-
ResourcesToDelete is the list of resources in the cluster that should be deleted when the SyncSet or SelectorSyncSet
is deleted or is no longer matched to the cluster.
items:
description: SyncResourceReference is a reference to a resource
that is synced to a cluster via a SyncSet or SelectorSyncSet.
properties:
apiVersion:
description: APIVersion is the Group and Version of the
resource.
type: string
kind:
description: Kind is the Kind of the resource.
type: string
name:
description: Name is the name of the resource.
type: string
namespace:
description: Namespace is the namespace of the resource.
type: string
required:
- apiVersion
- name
type: object
type: array
result:
description: Result is the result of the last attempt to apply
the SyncSet or SelectorSyncSet to the cluster.
enum:
- Success
- Failure
type: string
required:
- lastTransitionTime
- name
- observedGeneration
- result
type: object
type: array
syncSets:
description: SyncSets is the sync status of all of the SyncSets for
the cluster.
items:
description: SyncStatus is the status of applying a specific SyncSet
or SelectorSyncSet to the cluster.
properties:
failureMessage:
description: |-
FailureMessage is a message describing why the SyncSet or SelectorSyncSet could not be applied. This is only
set when Result is Failure.
type: string
firstSuccessTime:
description: FirstSuccessTime is the time when the SyncSet or
SelectorSyncSet was first successfully applied to the cluster.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime is the time when this status
last changed.
format: date-time
type: string
name:
description: Name is the name of the SyncSet or SelectorSyncSet.
type: string
observedGeneration:
description: ObservedGeneration is the generation of the SyncSet
or SelectorSyncSet that was last observed.
format: int64
type: integer
resourcesToDelete:
description: |-
ResourcesToDelete is the list of resources in the cluster that should be deleted when the SyncSet or SelectorSyncSet
is deleted or is no longer matched to the cluster.
items:
description: SyncResourceReference is a reference to a resource
that is synced to a cluster via a SyncSet or SelectorSyncSet.
properties:
apiVersion:
description: APIVersion is the Group and Version of the
resource.
type: string
kind:
description: Kind is the Kind of the resource.
type: string
name:
description: Name is the name of the resource.
type: string
namespace:
description: Namespace is the namespace of the resource.
type: string
required:
- apiVersion
- name
type: object
type: array
result:
description: Result is the result of the last attempt to apply
the SyncSet or SelectorSyncSet to the cluster.
enum:
- Success
- Failure
type: string
required:
- lastTransitionTime
- name
- observedGeneration
- result
type: object
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
labels:
contracts.hive.openshift.io/clusterinstall: "true"
name: fakeclusterinstalls.hiveinternal.openshift.io
spec:
group: hiveinternal.openshift.io
names:
kind: FakeClusterInstall
listKind: FakeClusterInstallList
plural: fakeclusterinstalls
singular: fakeclusterinstall
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: FakeClusterInstall represents a fake request to provision an
agent based cluster.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: FakeClusterInstallSpec defines the desired state of the FakeClusterInstall.
properties:
clusterDeploymentRef:
description: ClusterDeploymentRef is a reference to the ClusterDeployment
associated with this AgentClusterInstall.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
clusterMetadata:
description: ClusterMetadata contains metadata information about the
installed cluster. It should be populated once the cluster install
is completed. (it can be populated sooner if desired, but Hive will
not copy back to ClusterDeployment until the Installed condition
goes True.
properties:
adminKubeconfigSecretRef:
description: AdminKubeconfigSecretRef references the secret containing
the admin kubeconfig for this cluster.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
adminPasswordSecretRef:
description: AdminPasswordSecretRef references the secret containing
the admin username/password which can be used to login to this
cluster.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
clusterID:
description: ClusterID is a globally unique identifier for this
cluster generated during installation. Used for reporting metrics
among other places.
type: string
infraID:
description: InfraID is an identifier for this cluster generated
during installation and used for tagging/naming resources in
cloud providers.
type: string
platform:
description: Platform holds platform-specific cluster metadata
properties:
aws:
description: AWS holds AWS-specific cluster metadata
properties:
hostedZoneRole:
description: |-
HostedZoneRole is the role to assume when performing operations
on a hosted zone owned by another account.
type: string
type: object
azure:
description: Azure holds azure-specific cluster metadata
properties:
resourceGroupName:
description: ResourceGroupName is the name of the resource
group in which the cluster resources were created.
type: string
required:
- resourceGroupName
type: object
gcp:
description: GCP holds GCP-specific cluster metadata
properties:
networkProjectID:
description: NetworkProjectID is used for shared VPC setups
type: string
type: object
type: object
required:
- adminKubeconfigSecretRef
- clusterID
- infraID
type: object
imageSetRef:
description: |-
ImageSetRef is a reference to a ClusterImageSet. The release image specified in the ClusterImageSet will be used
to install the cluster.
properties:
name:
description: Name is the name of the ClusterImageSet that this
refers to
type: string
required:
- name
type: object
required:
- clusterDeploymentRef
- imageSetRef
type: object
status:
description: FakeClusterInstallStatus defines the observed state of the
FakeClusterInstall.
properties:
conditions:
description: Conditions includes more detailed status for the cluster
install.
items:
description: ClusterInstallCondition contains details for the current
condition of a cluster install.
properties:
lastProbeTime:
description: LastProbeTime is the last time we probed the condition.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime is the last time the condition
transitioned from one status to another.
format: date-time
type: string
message:
description: Message is a human-readable message indicating
details about last transition.
type: string
reason:
description: Reason is a unique, one-word, CamelCase reason
for the condition's last transition.
type: string
status:
description: Status is the status of the condition.
type: string
type:
description: Type is the type of the condition.
type: string
required:
- status
- type
type: object
type: array
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
annotations:
operators.operatorframework.io.bundle.channel.default.v1: alpha
operators.operatorframework.io.bundle.channels.v1: alpha
operators.operatorframework.io.bundle.manifests.v1: manifests/
operators.operatorframework.io.bundle.mediatype.v1: registry+v1
operators.operatorframework.io.bundle.metadata.v1: metadata/
operators.operatorframework.io.bundle.package.v1: hive-operator

0 comments on commit 7e11cdd

Please sign in to comment.