config/crd/bases/cluster.kubernetes-fleet.io_memberclusters.yaml (725 lines of code) (raw):
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.0
name: memberclusters.cluster.kubernetes-fleet.io
spec:
group: cluster.kubernetes-fleet.io
names:
categories:
- fleet
- fleet-cluster
kind: MemberCluster
listKind: MemberClusterList
plural: memberclusters
shortNames:
- cluster
singular: membercluster
scope: Cluster
versions:
- additionalPrinterColumns:
- jsonPath: .status.conditions[?(@.type=="Joined")].status
name: Joined
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
- jsonPath: .status.agentStatus[?(@.type=="MemberAgent")].lastReceivedHeartbeat
name: Member-Agent-Last-Seen
type: date
- jsonPath: .status.properties.kubernetes-fleet\.io/node-count.value
name: Node-Count
type: string
- jsonPath: .status.resourceUsage.available.cpu
name: Available-CPU
type: string
- jsonPath: .status.resourceUsage.available.memory
name: Available-Memory
type: string
- jsonPath: .status.resourceUsage.allocatable.cpu
name: Allocatable-CPU
priority: 1
type: string
- jsonPath: .status.resourceUsage.allocatable.memory
name: Allocatable-Memory
priority: 1
type: string
name: v1
schema:
openAPIV3Schema:
description: MemberCluster is a resource created in the hub cluster to represent
a member cluster within a fleet.
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: The desired state of MemberCluster.
properties:
heartbeatPeriodSeconds:
default: 60
description: 'How often (in seconds) for the member cluster to send
a heartbeat to the hub cluster. Default: 60 seconds. Min: 1 second.
Max: 10 minutes.'
format: int32
maximum: 600
minimum: 1
type: integer
identity:
description: |-
The identity used by the member cluster to access the hub cluster.
The hub agents deployed on the hub cluster will automatically grant the minimal required permissions to this identity for the member agents deployed on the member cluster to access the hub cluster.
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
taints:
description: |-
If specified, the MemberCluster's taints.
This field is beta-level and is for the taints and tolerations feature.
items:
description: |-
Taint attached to MemberCluster has the "effect" on
any ClusterResourcePlacement that does not tolerate the Taint.
properties:
effect:
description: |-
The effect of the taint on ClusterResourcePlacements that do not tolerate the taint.
Only NoSchedule is supported.
enum:
- NoSchedule
type: string
key:
description: The taint key to be applied to a MemberCluster.
type: string
value:
description: The taint value corresponding to the taint key.
type: string
required:
- effect
- key
type: object
maxItems: 100
type: array
required:
- identity
type: object
status:
description: The observed status of MemberCluster.
properties:
agentStatus:
description: AgentStatus is an array of current observed status, each
corresponding to one member agent running in the member cluster.
items:
description: AgentStatus defines the observed status of the member
agent of the given type.
properties:
conditions:
description: Conditions is an array of current observed conditions
for the member agent.
items:
description: Condition contains details for one aspect of
the current state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False,
Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
x-kubernetes-list-map-keys:
- type
x-kubernetes-list-type: map
lastReceivedHeartbeat:
description: Last time we received a heartbeat from the member
agent.
format: date-time
type: string
type:
description: Type of the member agent.
type: string
required:
- type
type: object
type: array
conditions:
description: Conditions is an array of current observed conditions
for the member cluster.
items:
description: Condition contains details for one aspect of the current
state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
x-kubernetes-list-map-keys:
- type
x-kubernetes-list-type: map
properties:
additionalProperties:
description: PropertyValue is the value of a cluster property.
properties:
observationTime:
description: ObservationTime is when the cluster property is
observed.
format: date-time
type: string
value:
description: |-
Value is the value of the cluster property.
Currently, it should be a valid Kubernetes quantity.
For more information, see
https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity.
type: string
required:
- observationTime
- value
type: object
description: |-
Properties is an array of properties observed for the member cluster.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment.
type: object
resourceUsage:
description: The current observed resource usage of the member cluster.
It is copied from the corresponding InternalMemberCluster object.
properties:
allocatable:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Allocatable represents the total allocatable resources of all the nodes on a member cluster.
A node's allocatable capacity is the amount of resource that can actually be used
for user workloads, i.e.,
allocatable capacity = total capacity - capacities reserved for the OS, kubelet, etc.
For more information, see
https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/.
type: object
available:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Available represents the total available resources of all the nodes on a member cluster.
A node's available capacity is the amount of resource that has not been used yet, i.e.,
available capacity = allocatable capacity - capacity that has been requested by workloads.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment.
type: object
capacity:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Capacity represents the total resource capacity of all the nodes on a member cluster.
A node's total capacity is the amount of resource installed on the node.
type: object
observationTime:
description: When the resource usage is observed.
format: date-time
type: string
type: object
type: object
required:
- spec
type: object
x-kubernetes-validations:
- message: metadata.name max length is 63
rule: size(self.metadata.name) < 64
served: true
storage: false
subresources:
status: {}
- additionalPrinterColumns:
- jsonPath: .status.conditions[?(@.type=="Joined")].status
name: Joined
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
- jsonPath: .status.agentStatus[?(@.type=="MemberAgent")].lastReceivedHeartbeat
name: Member-Agent-Last-Seen
type: date
- jsonPath: .status.properties.kubernetes-fleet\.io/node-count.value
name: Node-Count
type: string
- jsonPath: .status.resourceUsage.available.cpu
name: Available-CPU
type: string
- jsonPath: .status.resourceUsage.available.memory
name: Available-Memory
type: string
- jsonPath: .status.resourceUsage.allocatable.cpu
name: Allocatable-CPU
priority: 1
type: string
- jsonPath: .status.resourceUsage.allocatable.memory
name: Allocatable-Memory
priority: 1
type: string
name: v1beta1
schema:
openAPIV3Schema:
description: MemberCluster is a resource created in the hub cluster to represent
a member cluster within a fleet.
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: The desired state of MemberCluster.
properties:
heartbeatPeriodSeconds:
default: 60
description: 'How often (in seconds) for the member cluster to send
a heartbeat to the hub cluster. Default: 60 seconds. Min: 1 second.
Max: 10 minutes.'
format: int32
maximum: 600
minimum: 1
type: integer
identity:
description: |-
The identity used by the member cluster to access the hub cluster.
The hub agents deployed on the hub cluster will automatically grant the minimal required permissions to this identity for the member agents deployed on the member cluster to access the hub cluster.
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
taints:
description: |-
If specified, the MemberCluster's taints.
This field is beta-level and is for the taints and tolerations feature.
items:
description: |-
Taint attached to MemberCluster has the "effect" on
any ClusterResourcePlacement that does not tolerate the Taint.
properties:
effect:
description: |-
The effect of the taint on ClusterResourcePlacements that do not tolerate the taint.
Only NoSchedule is supported.
enum:
- NoSchedule
type: string
key:
description: The taint key to be applied to a MemberCluster.
type: string
value:
description: The taint value corresponding to the taint key.
type: string
required:
- effect
- key
type: object
maxItems: 100
type: array
required:
- identity
type: object
status:
description: The observed status of MemberCluster.
properties:
agentStatus:
description: AgentStatus is an array of current observed status, each
corresponding to one member agent running in the member cluster.
items:
description: AgentStatus defines the observed status of the member
agent of the given type.
properties:
conditions:
description: Conditions is an array of current observed conditions
for the member agent.
items:
description: Condition contains details for one aspect of
the current state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False,
Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
x-kubernetes-list-map-keys:
- type
x-kubernetes-list-type: map
lastReceivedHeartbeat:
description: Last time we received a heartbeat from the member
agent.
format: date-time
type: string
type:
description: Type of the member agent.
type: string
required:
- type
type: object
type: array
conditions:
description: Conditions is an array of current observed conditions
for the member cluster.
items:
description: Condition contains details for one aspect of the current
state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
x-kubernetes-list-map-keys:
- type
x-kubernetes-list-type: map
properties:
additionalProperties:
description: PropertyValue is the value of a cluster property.
properties:
observationTime:
description: ObservationTime is when the cluster property is
observed.
format: date-time
type: string
value:
description: |-
Value is the value of the cluster property.
Currently, it should be a valid Kubernetes quantity.
For more information, see
https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity.
type: string
required:
- observationTime
- value
type: object
description: |-
Properties is an array of properties observed for the member cluster.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment.
type: object
resourceUsage:
description: The current observed resource usage of the member cluster.
It is copied from the corresponding InternalMemberCluster object.
properties:
allocatable:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Allocatable represents the total allocatable resources of all the nodes on a member cluster.
A node's allocatable capacity is the amount of resource that can actually be used
for user workloads, i.e.,
allocatable capacity = total capacity - capacities reserved for the OS, kubelet, etc.
For more information, see
https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/.
type: object
available:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Available represents the total available resources of all the nodes on a member cluster.
A node's available capacity is the amount of resource that has not been used yet, i.e.,
available capacity = allocatable capacity - capacity that has been requested by workloads.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment.
type: object
capacity:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Capacity represents the total resource capacity of all the nodes on a member cluster.
A node's total capacity is the amount of resource installed on the node.
type: object
observationTime:
description: When the resource usage is observed.
format: date-time
type: string
type: object
type: object
required:
- spec
type: object
x-kubernetes-validations:
- message: metadata.name max length is 63
rule: size(self.metadata.name) < 64
served: true
storage: true
subresources:
status: {}