kube-state-metrics icon indicating copy to clipboard operation
kube-state-metrics copied to clipboard

feat(metric-gen): Implement metric-gen tool to create custom resource configuration from markers

Open chrischdi opened this issue 2 years ago • 34 comments

What this PR does / why we need it:

Implements the metric-gen tool which could get used to create custom resource configurations directly from code, similar to what controller-gen does.

~Note: this is a WIP PR and is not finished yet.~ Ready for review

Its current state is able to create a full working equivalent for Cluster API's hand-baked manual configuration file when using this Cluster API fork branch which adds the markers to the API types.

Open AI's:

  • [x] Improve/add go comments at the metric package
  • [x] Integrate into Makefile
  • [x] unit/integration tests
  • [ ] ~Documentation~
  • [x] Review/Feedback loop

How does this change affect the cardinality of KSM: (increases, decreases or does not change cardinality)

No change because it does not change kube-state-metrics itself

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged): Fixes #1899

chrischdi avatar Mar 01 '23 11:03 chrischdi

Happy to gather early feedback on this.

The work is mostly based on what metrics got defined for Cluster API's resources.

chrischdi avatar Mar 01 '23 11:03 chrischdi

Example usage:

PATH_TO_CAPI_FORK=/some/path
metric-gen \
 "${PATH_TO_CAPI_FORK}/bootstrap/kubeadm/api/v1beta1" \
 "${PATH_TO_CAPI_FORK}/controlplane/kubeadm/api/v1beta1" \
 "${PATH_TO_CAPI_FORK}/api/v1beta1" \
 "${PATH_TO_CAPI_FORK}/exp/api/v1beta1" \
 > metrics.yaml

chrischdi avatar Mar 01 '23 11:03 chrischdi

moving to draft after seeing that ci is happy for now

chrischdi avatar Mar 01 '23 12:03 chrischdi

Thanks @chrischdi for submitting this! Unfortunately it seems like every maintainer is quite busy, I hope to get a chance to review it next week and provide better feedback.

mrueg avatar Mar 27 '23 14:03 mrueg

Thanks @chrischdi for submitting this! Unfortunately it seems like every maintainer is quite busy, I hope to get a chance to review it next week and provide better feedback.

No worries :-) I also did not get into the open points yet 👍 Thanks for the heads up 🍀

chrischdi avatar Mar 28 '23 13:03 chrischdi

Also wondering if this should be implemented as kubebuilder plugin instead https://book.kubebuilder.io/plugins/plugins.html (which is pretty new)

Note: does not match the use case if I got it right

chrischdi avatar Mar 28 '23 13:03 chrischdi

Note: currently reviving this PR 🎉

Currently works for CAPI and CAPV:

  • CAPI branch with markers: https://github.com/chrischdi/cluster-api/tree/experiment-metrics-gen-flags
  • CAPV branch with markes: https://github.com/chrischdi/cluster-api-provider-vsphere/tree/pr-exp-metric-gen

Result configuration:

spec:
  resources:
  - errorLogV: 0
    groupVersionKind:
      group: bootstrap.cluster.x-k8s.io
      kind: KubeadmConfig
      version: v1beta1
    labelsFromPath:
      cluster_name:
      - metadata
      - labels
      - cluster.x-k8s.io/cluster-name
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capi_kubeadmconfig
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the kubeadmconfig is paused and any of its resources will not
        be processed by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            name:
            - metadata
            - name
          path: null
        type: Info
      help: Information about a kubeadmconfig.
      name: info
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            owner_is_controller:
            - controller
            owner_kind:
            - kind
            owner_name:
            - name
            owner_uid:
            - uid
          path:
          - metadata
          - ownerReferences
        type: Info
      help: Owner references.
      name: owner
    - each:
        stateSet:
          labelName: status
          labelsFromPath:
            type:
            - type
          list:
          - "True"
          - "False"
          - Unknown
          path:
          - status
          - conditions
          valueFrom:
          - status
        type: StateSet
      help: The condition of a kubeadmconfig.
      name: status_condition
    - each:
        gauge:
          labelFromKey: ""
          labelsFromPath:
            status:
            - status
            type:
            - type
          nilIsZero: false
          path:
          - status
          - conditions
          valueFrom:
          - lastTransitionTime
        type: Gauge
      help: The condition last transition time of a kubeadmconfig.
      name: status_condition_last_transition_time
    resourcePlural: ""
  - errorLogV: 0
    groupVersionKind:
      group: cluster.x-k8s.io
      kind: Cluster
      version: v1beta1
    labelsFromPath:
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capi_cluster
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the cluster is paused and any of its resources will not be processed
        by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            control_plane_endpoint_host:
            - spec
            - controlPlaneEndpoint
            - host
            control_plane_endpoint_port:
            - spec
            - controlPlaneEndpoint
            - port
            control_plane_reference_kind:
            - spec
            - controlPlaneRef
            - kind
            control_plane_reference_name:
            - spec
            - controlPlaneRef
            - name
            infrastructure_reference_kind:
            - spec
            - infrastructureRef
            - kind
            infrastructure_reference_name:
            - spec
            - infrastructureRef
            - name
            topology_class:
            - spec
            - topology
            - class
            topology_version:
            - spec
            - topology
            - version
          path: null
        type: Info
      help: Information about a cluster.
      name: info
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - spec
          - paused
          valueFrom: null
        type: Gauge
      help: Whether the cluster is paused and any of its resources will not be processed
        by the controllers.
      name: spec_paused
    - each:
        stateSet:
          labelName: status
          labelsFromPath:
            type:
            - type
          list:
          - "True"
          - "False"
          - Unknown
          path:
          - status
          - conditions
          valueFrom:
          - status
        type: StateSet
      help: The condition of a cluster.
      name: status_condition
    - each:
        gauge:
          labelFromKey: ""
          labelsFromPath:
            status:
            - status
            type:
            - type
          nilIsZero: false
          path:
          - status
          - conditions
          valueFrom:
          - lastTransitionTime
        type: Gauge
      help: The condition last transition time of a cluster.
      name: status_condition_last_transition_time
    - each:
        stateSet:
          labelName: phase
          list:
          - Pending
          - Provisioning
          - Provisioned
          - Deleting
          - Failed
          - Unknown
          path:
          - status
          - phase
          valueFrom: null
        type: StateSet
      help: The clusters current phase.
      name: status_phase
    resourcePlural: ""
  - errorLogV: 0
    groupVersionKind:
      group: cluster.x-k8s.io
      kind: ClusterClass
      version: v1beta1
    labelsFromPath:
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capi_clusterclass
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the clusterclass is paused and any of its resources will not be
        processed by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            name:
            - metadata
            - name
          path: null
        type: Info
      help: Information about a clusterclass.
      name: info
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            owner_is_controller:
            - controller
            owner_kind:
            - kind
            owner_name:
            - name
            owner_uid:
            - uid
          path:
          - metadata
          - ownerReferences
        type: Info
      help: Owner references.
      name: owner
    - each:
        stateSet:
          labelName: status
          labelsFromPath:
            type:
            - type
          list:
          - "True"
          - "False"
          - Unknown
          path:
          - status
          - conditions
          valueFrom:
          - status
        type: StateSet
      help: The condition of a clusterclass.
      name: status_condition
    - each:
        gauge:
          labelFromKey: ""
          labelsFromPath:
            status:
            - status
            type:
            - type
          nilIsZero: false
          path:
          - status
          - conditions
          valueFrom:
          - lastTransitionTime
        type: Gauge
      help: The condition last transition time of a clusterclass.
      name: status_condition_last_transition_time
    resourcePlural: ""
  - errorLogV: 0
    groupVersionKind:
      group: cluster.x-k8s.io
      kind: Machine
      version: v1beta1
    labelsFromPath:
      cluster_name:
      - spec
      - clusterName
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capi_machine
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            address:
            - address
            type:
            - type
          path:
          - status
          - addresses
        type: Info
      help: Address information about a machine.
      name: addresses
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the machine is paused and any of its resources will not be processed
        by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            bootstrap_reference_kind:
            - spec
            - bootstrap
            - configRef
            - kind
            bootstrap_reference_name:
            - spec
            - bootstrap
            - configRef
            - name
            container_runtime_version:
            - status
            - nodeInfo
            - containerRuntimeVersion
            control_plane_name:
            - metadata
            - labels
            - cluster.x-k8s.io/control-plane-name
            failure_domain:
            - spec
            - failureDomain
            infrastructure_reference_kind:
            - spec
            - infrastructureRef
            - kind
            infrastructure_reference_name:
            - spec
            - infrastructureRef
            - name
            kernel_version:
            - status
            - nodeInfo
            - kernelVersion
            kube_proxy_version:
            - status
            - nodeInfo
            - kubeProxyVersion
            kubelet_version:
            - status
            - nodeInfo
            - kubeletVersion
            os_image:
            - status
            - nodeInfo
            - osImage
            provider_id:
            - spec
            - providerID
            version:
            - spec
            - version
          path: null
        type: Info
      help: Information about a machine.
      name: info
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            owner_is_controller:
            - controller
            owner_kind:
            - kind
            owner_name:
            - name
            owner_uid:
            - uid
          path:
          - metadata
          - ownerReferences
        type: Info
      help: Owner references.
      name: owner
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - certificatesExpiryDate
          valueFrom: null
        type: Gauge
      help: Information about certificate expiration date of a control plane node.
      name: status_certificatesexpirydate
    - each:
        stateSet:
          labelName: status
          labelsFromPath:
            type:
            - type
          list:
          - "True"
          - "False"
          - Unknown
          path:
          - status
          - conditions
          valueFrom:
          - status
        type: StateSet
      help: The condition of a machine.
      name: status_condition
    - each:
        gauge:
          labelFromKey: ""
          labelsFromPath:
            status:
            - status
            type:
            - type
          nilIsZero: false
          path:
          - status
          - conditions
          valueFrom:
          - lastTransitionTime
        type: Gauge
      help: The condition last transition time of a machine.
      name: status_condition_last_transition_time
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            node_name:
            - name
            node_uid:
            - uid
          path:
          - status
          - nodeRef
        type: Info
      help: Information about the node reference of a machine.
      name: status_noderef
    - each:
        stateSet:
          labelName: phase
          list:
          - Pending
          - Provisioning
          - Provisioned
          - Running
          - Deleting
          - Deleted
          - Failed
          - Unknown
          path:
          - status
          - phase
          valueFrom: null
        type: StateSet
      help: The machines current phase.
      name: status_phase
    resourcePlural: ""
  - errorLogV: 0
    groupVersionKind:
      group: cluster.x-k8s.io
      kind: MachineDeployment
      version: v1beta1
    labelsFromPath:
      cluster_name:
      - spec
      - clusterName
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capi_machinedeployment
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the machinedeployment is paused and any of its resources will
        not be processed by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            bootstrap_reference_kind:
            - spec
            - template
            - spec
            - bootstrap
            - configRef
            - kind
            bootstrap_reference_name:
            - spec
            - template
            - spec
            - bootstrap
            - configRef
            - name
            infrastructure_reference_kind:
            - spec
            - template
            - spec
            - infrastructureRef
            - kind
            infrastructure_reference_name:
            - spec
            - template
            - spec
            - infrastructureRef
            - name
            version:
            - spec
            - template
            - spec
            - version
          path: null
        type: Info
      help: Information about a machinedeployment.
      name: info
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            owner_is_controller:
            - controller
            owner_kind:
            - kind
            owner_name:
            - name
            owner_uid:
            - uid
          path:
          - metadata
          - ownerReferences
        type: Info
      help: Owner references.
      name: owner
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - spec
          - paused
          valueFrom: null
        type: Gauge
      help: Whether the machinedeployment is paused and any of its resources will
        not be processed by the controllers.
      name: spec_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - spec
          - replicas
          valueFrom: null
        type: Gauge
      help: The number of desired machines for a machinedeployment.
      name: spec_replicas
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - spec
          - strategy
          - rollingUpdate
          - maxSurge
          valueFrom: null
        type: Gauge
      help: Maximum number of replicas that can be scheduled above the desired number
        of replicas during a rolling update of a machinedeployment.
      name: spec_strategy_rollingupdate_max_surge
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - spec
          - strategy
          - rollingUpdate
          - maxUnavailable
          valueFrom: null
        type: Gauge
      help: Maximum number of unavailable replicas during a rolling update of a machinedeployment.
      name: spec_strategy_rollingupdate_max_unavailable
    - each:
        stateSet:
          labelName: status
          labelsFromPath:
            type:
            - type
          list:
          - "True"
          - "False"
          - Unknown
          path:
          - status
          - conditions
          valueFrom:
          - status
        type: StateSet
      help: The condition of a machinedeployment.
      name: status_condition
    - each:
        gauge:
          labelFromKey: ""
          labelsFromPath:
            status:
            - status
            type:
            - type
          nilIsZero: false
          path:
          - status
          - conditions
          valueFrom:
          - lastTransitionTime
        type: Gauge
      help: The condition last transition time of a machinedeployment.
      name: status_condition_last_transition_time
    - each:
        stateSet:
          labelName: phase
          list:
          - ScalingUp
          - ScalingDown
          - Running
          - Failed
          - Unknown
          path:
          - status
          - phase
          valueFrom: null
        type: StateSet
      help: The machinedeployments current phase.
      name: status_phase
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - replicas
          valueFrom: null
        type: Gauge
      help: The number of replicas per machinedeployment.
      name: status_replicas
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - availableReplicas
          valueFrom: null
        type: Gauge
      help: The number of available replicas per machinedeployment.
      name: status_replicas_available
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - readyReplicas
          valueFrom: null
        type: Gauge
      help: The number of ready replicas per machinedeployment.
      name: status_replicas_ready
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - unavailableReplicas
          valueFrom: null
        type: Gauge
      help: The number of unavailable replicas per machinedeployment.
      name: status_replicas_unavailable
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - updatedReplicas
          valueFrom: null
        type: Gauge
      help: The number of updated replicas per machinedeployment.
      name: status_replicas_updated
    resourcePlural: ""
  - errorLogV: 0
    groupVersionKind:
      group: cluster.x-k8s.io
      kind: MachineHealthCheck
      version: v1beta1
    labelsFromPath:
      cluster_name:
      - spec
      - clusterName
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capi_machinehealthcheck
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the machinehealthcheck is paused and any of its resources will
        not be processed by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            maxUnhealthy:
            - spec
            - maxUnhealthy
          path: null
        type: Info
      help: Information about a machinehealthcheck.
      name: info
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            owner_is_controller:
            - controller
            owner_kind:
            - kind
            owner_name:
            - name
            owner_uid:
            - uid
          path:
          - metadata
          - ownerReferences
        type: Info
      help: Owner references.
      name: owner
    - each:
        stateSet:
          labelName: status
          labelsFromPath:
            type:
            - type
          list:
          - "True"
          - "False"
          - Unknown
          path:
          - status
          - conditions
          valueFrom:
          - status
        type: StateSet
      help: The condition of a machinehealthcheck.
      name: status_condition
    - each:
        gauge:
          labelFromKey: ""
          labelsFromPath:
            status:
            - status
            type:
            - type
          nilIsZero: false
          path:
          - status
          - conditions
          valueFrom:
          - lastTransitionTime
        type: Gauge
      help: The condition last transition time of a machinehealthcheck.
      name: status_condition_last_transition_time
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - currentHealthy
          valueFrom: null
        type: Gauge
      help: Current number of healthy machines.
      name: status_current_healthy
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - expectedMachines
          valueFrom: null
        type: Gauge
      help: Total number of machines counted by this machinehealthcheck.
      name: status_expected_machines
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - remediationsAllowed
          valueFrom: null
        type: Gauge
      help: Number of machine remediations that are currently allowed.
      name: status_remediations_allowed
    resourcePlural: ""
  - errorLogV: 0
    groupVersionKind:
      group: cluster.x-k8s.io
      kind: MachinePool
      version: v1beta1
    labelsFromPath:
      cluster_name:
      - spec
      - clusterName
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capi_machinepool
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the machinepool is paused and any of its resources will not be
        processed by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            bootstrap_configuration_reference_kind:
            - spec
            - template
            - spec
            - bootstrap
            - configRef
            - kind
            bootstrap_configuration_reference_name:
            - spec
            - template
            - spec
            - bootstrap
            - configRef
            - name
            failure_domain:
            - spec
            - template
            - spec
            - failureDomain
            infrastructure_reference_kind:
            - spec
            - template
            - spec
            - infrastructureRef
            - kind
            infrastructure_reference_name:
            - spec
            - template
            - spec
            - infrastructureRef
            - name
            version:
            - spec
            - template
            - spec
            - version
          path: null
        type: Info
      help: Information about a machinepool.
      name: info
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            owner_is_controller:
            - controller
            owner_kind:
            - kind
            owner_name:
            - name
            owner_uid:
            - uid
          path:
          - metadata
          - ownerReferences
        type: Info
      help: Owner references.
      name: owner
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - spec
          - replicas
          valueFrom: null
        type: Gauge
      help: The number of desired machines for a machinepool.
      name: spec_replicas
    - each:
        stateSet:
          labelName: status
          labelsFromPath:
            type:
            - type
          list:
          - "True"
          - "False"
          - Unknown
          path:
          - status
          - conditions
          valueFrom:
          - status
        type: StateSet
      help: The condition of a machinepool.
      name: status_condition
    - each:
        gauge:
          labelFromKey: ""
          labelsFromPath:
            status:
            - status
            type:
            - type
          nilIsZero: false
          path:
          - status
          - conditions
          valueFrom:
          - lastTransitionTime
        type: Gauge
      help: The condition last transition time of a machinepool.
      name: status_condition_last_transition_time
    - each:
        stateSet:
          labelName: phase
          list:
          - ScalingUp
          - ScalingDown
          - Running
          - Failed
          - Unknown
          path:
          - status
          - phase
          valueFrom: null
        type: StateSet
      help: The machinepools current phase.
      name: status_phase
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - replicas
          valueFrom: null
        type: Gauge
      help: The number of replicas per machinepool.
      name: status_replicas
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - availableReplicas
          valueFrom: null
        type: Gauge
      help: The number of available replicas per machinepool.
      name: status_replicas_available
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - readyReplicas
          valueFrom: null
        type: Gauge
      help: The number of ready replicas per machinepool.
      name: status_replicas_ready
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - unavailableReplicas
          valueFrom: null
        type: Gauge
      help: The number of unavailable replicas per machinepool.
      name: status_replicas_unavailable
    resourcePlural: ""
  - errorLogV: 0
    groupVersionKind:
      group: cluster.x-k8s.io
      kind: MachineSet
      version: v1beta1
    labelsFromPath:
      cluster_name:
      - spec
      - clusterName
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capi_machineset
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the machineset is paused and any of its resources will not be
        processed by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            bootstrap_reference_kind:
            - spec
            - template
            - spec
            - bootstrap
            - configRef
            - kind
            bootstrap_reference_name:
            - spec
            - template
            - spec
            - bootstrap
            - configRef
            - name
            infrastructure_reference_kind:
            - spec
            - template
            - spec
            - infrastructureRef
            - kind
            infrastructure_reference_name:
            - spec
            - template
            - spec
            - infrastructureRef
            - name
            version:
            - spec
            - template
            - spec
            - version
          path: null
        type: Info
      help: Information about a machineset.
      name: info
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            owner_is_controller:
            - controller
            owner_kind:
            - kind
            owner_name:
            - name
            owner_uid:
            - uid
          path:
          - metadata
          - ownerReferences
        type: Info
      help: Owner references.
      name: owner
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - spec
          - replicas
          valueFrom: null
        type: Gauge
      help: The number of desired machines for a machineset.
      name: spec_replicas
    - each:
        stateSet:
          labelName: status
          labelsFromPath:
            type:
            - type
          list:
          - "True"
          - "False"
          - Unknown
          path:
          - status
          - conditions
          valueFrom:
          - status
        type: StateSet
      help: The condition of a machineset.
      name: status_condition
    - each:
        gauge:
          labelFromKey: ""
          labelsFromPath:
            status:
            - status
            type:
            - type
          nilIsZero: false
          path:
          - status
          - conditions
          valueFrom:
          - lastTransitionTime
        type: Gauge
      help: The condition last transition time of a machineset.
      name: status_condition_last_transition_time
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - replicas
          valueFrom: null
        type: Gauge
      help: The number of replicas per machineset.
      name: status_replicas
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - availableReplicas
          valueFrom: null
        type: Gauge
      help: The number of available replicas per machineset.
      name: status_replicas_available
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - fullyLabeledReplicas
          valueFrom: null
        type: Gauge
      help: The number of fully labeled replicas per machineset.
      name: status_replicas_fully_labeled
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - readyReplicas
          valueFrom: null
        type: Gauge
      help: The number of ready replicas per machineset.
      name: status_replicas_ready
    resourcePlural: ""
  - errorLogV: 0
    groupVersionKind:
      group: controlplane.cluster.x-k8s.io
      kind: KubeadmControlPlane
      version: v1beta1
    labelsFromPath:
      cluster_name:
      - metadata
      - ownerReferences
      - '[kind=Cluster]'
      - name
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capi_kubeadmcontrolplane
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the kubeadmcontrolplane is paused and any of its resources will
        not be processed by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            version:
            - spec
            - version
          path: null
        type: Info
      help: Information about a kubeadmcontrolplane.
      name: info
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            owner_is_controller:
            - controller
            owner_kind:
            - kind
            owner_name:
            - name
            owner_uid:
            - uid
          path:
          - metadata
          - ownerReferences
        type: Info
      help: Owner references.
      name: owner
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - spec
          - replicas
          valueFrom: null
        type: Gauge
      help: The number of desired machines for a kubeadmcontrolplane.
      name: spec_replicas
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - spec
          - rolloutStrategy
          - rollingUpdate
          - maxSurge
          valueFrom: null
        type: Gauge
      help: Maximum number of replicas that can be scheduled above the desired number
        of replicas during a rolling update of a kubeadmcontrolplane.
      name: spec_strategy_rollingupdate_max_surge
    - each:
        stateSet:
          labelName: status
          labelsFromPath:
            type:
            - type
          list:
          - "True"
          - "False"
          - Unknown
          path:
          - status
          - conditions
          valueFrom:
          - status
        type: StateSet
      help: The condition of a kubeadmcontrolplane.
      name: status_condition
    - each:
        gauge:
          labelFromKey: ""
          labelsFromPath:
            status:
            - status
            type:
            - type
          nilIsZero: false
          path:
          - status
          - conditions
          valueFrom:
          - lastTransitionTime
        type: Gauge
      help: The condition last transition time of a kubeadmcontrolplane.
      name: status_condition_last_transition_time
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - replicas
          valueFrom: null
        type: Gauge
      help: The number of replicas per kubeadmcontrolplane.
      name: status_replicas
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - readyReplicas
          valueFrom: null
        type: Gauge
      help: The number of ready replicas per kubeadmcontrolplane.
      name: status_replicas_ready
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - unavailableReplicas
          valueFrom: null
        type: Gauge
      help: The number of unavailable replicas per kubeadmcontrolplane.
      name: status_replicas_unavailable
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: true
          path:
          - status
          - updatedReplicas
          valueFrom: null
        type: Gauge
      help: The number of updated replicas per kubeadmcontrolplane.
      name: status_replicas_updated
    resourcePlural: ""
  - errorLogV: 0
    groupVersionKind:
      group: infrastructure.cluster.x-k8s.io
      kind: VSphereCluster
      version: v1beta1
    labelsFromPath:
      cluster_name:
      - metadata
      - labels
      - cluster.x-k8s.io/cluster-name
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capv_vspherecluster
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the vspherecluster is paused and any of its resources will not
        be processed by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            spec_server:
            - spec
            - server
            status_vsphere_version:
            - status
            - vCenterVersion
          path: null
        type: Info
      help: Information about a vspherecluster.
      name: info
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            owner_is_controller:
            - controller
            owner_kind:
            - kind
            owner_name:
            - name
            owner_uid:
            - uid
          path:
          - metadata
          - ownerReferences
        type: Info
      help: Owner references.
      name: owner
    - each:
        stateSet:
          labelName: status
          labelsFromPath:
            type:
            - type
          list:
          - "True"
          - "False"
          - Unknown
          path:
          - status
          - conditions
          valueFrom:
          - status
        type: StateSet
      help: The condition of a vspherecluster.
      name: status_condition
    - each:
        gauge:
          labelFromKey: ""
          labelsFromPath:
            status:
            - status
            type:
            - type
          nilIsZero: false
          path:
          - status
          - conditions
          valueFrom:
          - lastTransitionTime
        type: Gauge
      help: The condition last transition time of a vspherecluster.
      name: status_condition_last_transition_time
    resourcePlural: ""
  - errorLogV: 0
    groupVersionKind:
      group: infrastructure.cluster.x-k8s.io
      kind: VSphereClusterIdentity
      version: v1beta1
    labelsFromPath:
      cluster_name:
      - metadata
      - labels
      - cluster.x-k8s.io/cluster-name
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capv_vsphereclusteridentity
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the vsphereclusteridentity is paused and any of its resources
        will not be processed by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            name:
            - metadata
            - name
          path: null
        type: Info
      help: Information about a vsphereclusteridentity.
      name: info
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            owner_is_controller:
            - controller
            owner_kind:
            - kind
            owner_name:
            - name
            owner_uid:
            - uid
          path:
          - metadata
          - ownerReferences
        type: Info
      help: Owner references.
      name: owner
    - each:
        stateSet:
          labelName: status
          labelsFromPath:
            type:
            - type
          list:
          - "True"
          - "False"
          - Unknown
          path:
          - status
          - conditions
          valueFrom:
          - status
        type: StateSet
      help: The condition of a vsphereclusteridentity.
      name: status_condition
    - each:
        gauge:
          labelFromKey: ""
          labelsFromPath:
            status:
            - status
            type:
            - type
          nilIsZero: false
          path:
          - status
          - conditions
          valueFrom:
          - lastTransitionTime
        type: Gauge
      help: The condition last transition time of a vsphereclusteridentity.
      name: status_condition_last_transition_time
    resourcePlural: ""
  - errorLogV: 0
    groupVersionKind:
      group: infrastructure.cluster.x-k8s.io
      kind: VSphereDeploymentZone
      version: v1beta1
    labelsFromPath:
      cluster_name:
      - metadata
      - labels
      - cluster.x-k8s.io/cluster-name
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capv_vspheredeploymentzone
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the vspheredeploymentzone is paused and any of its resources will
        not be processed by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            name:
            - metadata
            - name
          path: null
        type: Info
      help: Information about a vspheredeploymentzone.
      name: info
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            owner_is_controller:
            - controller
            owner_kind:
            - kind
            owner_name:
            - name
            owner_uid:
            - uid
          path:
          - metadata
          - ownerReferences
        type: Info
      help: Owner references.
      name: owner
    - each:
        stateSet:
          labelName: status
          labelsFromPath:
            type:
            - type
          list:
          - "True"
          - "False"
          - Unknown
          path:
          - status
          - conditions
          valueFrom:
          - status
        type: StateSet
      help: The condition of a vspheredeploymentzone.
      name: status_condition
    - each:
        gauge:
          labelFromKey: ""
          labelsFromPath:
            status:
            - status
            type:
            - type
          nilIsZero: false
          path:
          - status
          - conditions
          valueFrom:
          - lastTransitionTime
        type: Gauge
      help: The condition last transition time of a vspheredeploymentzone.
      name: status_condition_last_transition_time
    resourcePlural: ""
  - errorLogV: 0
    groupVersionKind:
      group: infrastructure.cluster.x-k8s.io
      kind: VSphereFailureDomain
      version: v1beta1
    labelsFromPath:
      cluster_name:
      - metadata
      - labels
      - cluster.x-k8s.io/cluster-name
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capv_vspherefailuredomain
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the vspherefailuredomain is paused and any of its resources will
        not be processed by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            name:
            - metadata
            - name
          path: null
        type: Info
      help: Information about a vspherefailuredomain.
      name: info
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            owner_is_controller:
            - controller
            owner_kind:
            - kind
            owner_name:
            - name
            owner_uid:
            - uid
          path:
          - metadata
          - ownerReferences
        type: Info
      help: Owner references.
      name: owner
    resourcePlural: ""
  - errorLogV: 0
    groupVersionKind:
      group: infrastructure.cluster.x-k8s.io
      kind: VSphereMachine
      version: v1beta1
    labelsFromPath:
      cluster_name:
      - metadata
      - labels
      - cluster.x-k8s.io/cluster-name
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capv_vspheremachine
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            address:
            - address
            type:
            - type
          path:
          - status
          - addresses
        type: Info
      help: Address information about a vspheremachine.
      name: addresses
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the vspheremachine is paused and any of its resources will not
        be processed by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            provider_id:
            - spec
            - providerID
          path: null
        type: Info
      help: Information about a vspheremachine.
      name: info
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            owner_is_controller:
            - controller
            owner_kind:
            - kind
            owner_name:
            - name
            owner_uid:
            - uid
          path:
          - metadata
          - ownerReferences
        type: Info
      help: Owner references.
      name: owner
    - each:
        stateSet:
          labelName: status
          labelsFromPath:
            type:
            - type
          list:
          - "True"
          - "False"
          - Unknown
          path:
          - status
          - conditions
          valueFrom:
          - status
        type: StateSet
      help: The condition of a vspheremachine.
      name: status_condition
    - each:
        gauge:
          labelFromKey: ""
          labelsFromPath:
            status:
            - status
            type:
            - type
          nilIsZero: false
          path:
          - status
          - conditions
          valueFrom:
          - lastTransitionTime
        type: Gauge
      help: The condition last transition time of a vspheremachine.
      name: status_condition_last_transition_time
    resourcePlural: ""
  - errorLogV: 0
    groupVersionKind:
      group: infrastructure.cluster.x-k8s.io
      kind: VSphereVM
      version: v1beta1
    labelsFromPath:
      cluster_name:
      - metadata
      - labels
      - cluster.x-k8s.io/cluster-name
      name:
      - metadata
      - name
      namespace:
      - metadata
      - namespace
      uid:
      - metadata
      - uid
    metricNamePrefix: capv_vspherevm
    metrics:
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            address: []
          path:
          - status
          - addresses
        type: Info
      help: Address information about a vspherevm.
      name: addresses
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            paused_value: []
          path:
          - metadata
          - annotations
          - cluster.x-k8s.io/paused
        type: Info
      help: Whether the vspherevm is paused and any of its resources will not be processed
        by the controllers.
      name: annotation_paused
    - each:
        gauge:
          labelFromKey: ""
          nilIsZero: false
          path:
          - metadata
          - creationTimestamp
          valueFrom: null
        type: Gauge
      help: Unix creation timestamp.
      name: created
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            status_clonemode:
            - status
            - cloneMode
          path: null
        type: Info
      help: Information about a vspherevm.
      name: info
    - each:
        info:
          labelFromKey: ""
          labelsFromPath:
            owner_is_controller:
            - controller
            owner_kind:
            - kind
            owner_name:
            - name
            owner_uid:
            - uid
          path:
          - metadata
          - ownerReferences
        type: Info
      help: Owner references.
      name: owner
    - each:
        stateSet:
          labelName: status
          labelsFromPath:
            type:
            - type
          list:
          - "True"
          - "False"
          - Unknown
          path:
          - status
          - conditions
          valueFrom:
          - status
        type: StateSet
      help: The condition of a vspherevm.
      name: status_condition
    - each:
        gauge:
          labelFromKey: ""
          labelsFromPath:
            status:
            - status
            type:
            - type
          nilIsZero: false
          path:
          - status
          - conditions
          valueFrom:
          - lastTransitionTime
        type: Gauge
      help: The condition last transition time of a vspherevm.
      name: status_condition_last_transition_time
    resourcePlural: ""

Result metrics sample:

# HELP capi_kubeadmconfig_annotation_paused Whether the kubeadmconfig is paused and any of its resources will not be processed by the controllers.
# TYPE capi_kubeadmconfig_annotation_paused info
# HELP capi_kubeadmconfig_created Unix creation timestamp.
# TYPE capi_kubeadmconfig_created gauge
capi_kubeadmconfig_created{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 1.692973972e+09
capi_kubeadmconfig_created{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 1.692974065e+09
# HELP capi_kubeadmconfig_info Information about a kubeadmconfig.
# TYPE capi_kubeadmconfig_info info
capi_kubeadmconfig_info{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 1
capi_kubeadmconfig_info{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 1
# HELP capi_kubeadmconfig_owner Owner references.
# TYPE capi_kubeadmconfig_owner info
capi_kubeadmconfig_owner{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",owner_is_controller="true",owner_kind="Machine",owner_name="capi-test-dq88p",owner_uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 1
capi_kubeadmconfig_owner{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",owner_is_controller="true",owner_kind="Machine",owner_name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",owner_uid="72c2270a-a399-406c-aa32-bb8698dd341f",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 1
# HELP capi_kubeadmconfig_status_condition The condition of a kubeadmconfig.
# TYPE capi_kubeadmconfig_status_condition stateset
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",status="False",type="CertificatesAvailable",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 0
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",status="False",type="DataSecretAvailable",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 0
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",status="False",type="Ready",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 0
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",status="True",type="CertificatesAvailable",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 1
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",status="True",type="DataSecretAvailable",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 1
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",status="True",type="Ready",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 1
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",status="Unknown",type="CertificatesAvailable",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 0
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",status="Unknown",type="DataSecretAvailable",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 0
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",status="Unknown",type="Ready",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 0
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",status="False",type="CertificatesAvailable",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 0
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",status="False",type="DataSecretAvailable",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 0
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",status="False",type="Ready",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 0
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",status="True",type="CertificatesAvailable",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 1
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",status="True",type="DataSecretAvailable",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 1
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",status="True",type="Ready",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 1
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",status="Unknown",type="CertificatesAvailable",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 0
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",status="Unknown",type="DataSecretAvailable",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 0
capi_kubeadmconfig_status_condition{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",status="Unknown",type="Ready",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 0
# HELP capi_kubeadmconfig_status_condition_last_transition_time The condition last transition time of a kubeadmconfig.
# TYPE capi_kubeadmconfig_status_condition_last_transition_time gauge
capi_kubeadmconfig_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",status="True",type="CertificatesAvailable",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 1.692973973e+09
capi_kubeadmconfig_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",status="True",type="DataSecretAvailable",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 1.692973973e+09
capi_kubeadmconfig_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-gbg6g",namespace="default",status="True",type="Ready",uid="42566005-2cea-4de8-80d4-10d1931fd858"} 1.692973973e+09
capi_kubeadmconfig_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",status="True",type="CertificatesAvailable",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 1.692974065e+09
capi_kubeadmconfig_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",status="True",type="DataSecretAvailable",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 1.692974066e+09
capi_kubeadmconfig_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="bootstrap.cluster.x-k8s.io",customresource_kind="KubeadmConfig",customresource_version="v1beta1",name="capi-test-md-0-sfn9r",namespace="default",status="True",type="Ready",uid="17ce285b-8cec-429f-8cd1-7953b90f3b76"} 1.692974066e+09
# HELP capi_cluster_annotation_paused Whether the cluster is paused and any of its resources will not be processed by the controllers.
# TYPE capi_cluster_annotation_paused info
# HELP capi_cluster_created Unix creation timestamp.
# TYPE capi_cluster_created gauge
capi_cluster_created{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 1.692973837e+09
# HELP capi_cluster_info Information about a cluster.
# TYPE capi_cluster_info info
capi_cluster_info{control_plane_endpoint_host="10.180.202.245",control_plane_endpoint_port="6443",control_plane_reference_kind="KubeadmControlPlane",control_plane_reference_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",infrastructure_reference_kind="VSphereCluster",infrastructure_reference_name="capi-test",name="capi-test",namespace="default",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 1
# HELP capi_cluster_spec_paused Whether the cluster is paused and any of its resources will not be processed by the controllers.
# TYPE capi_cluster_spec_paused gauge
capi_cluster_spec_paused{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 0
# HELP capi_cluster_status_condition The condition of a cluster.
# TYPE capi_cluster_status_condition stateset
capi_cluster_status_condition{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="ControlPlaneInitialized",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 0
capi_cluster_status_condition{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="ControlPlaneReady",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 0
capi_cluster_status_condition{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="InfrastructureReady",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 0
capi_cluster_status_condition{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="Ready",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 0
capi_cluster_status_condition{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="ControlPlaneInitialized",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 1
capi_cluster_status_condition{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="ControlPlaneReady",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 1
capi_cluster_status_condition{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="InfrastructureReady",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 1
capi_cluster_status_condition{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="Ready",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 1
capi_cluster_status_condition{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="ControlPlaneInitialized",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 0
capi_cluster_status_condition{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="ControlPlaneReady",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 0
capi_cluster_status_condition{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="InfrastructureReady",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 0
capi_cluster_status_condition{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="Ready",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 0
# HELP capi_cluster_status_condition_last_transition_time The condition last transition time of a cluster.
# TYPE capi_cluster_status_condition_last_transition_time gauge
capi_cluster_status_condition_last_transition_time{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="ControlPlaneInitialized",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 1.692974034e+09
capi_cluster_status_condition_last_transition_time{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="ControlPlaneReady",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 1.692974047e+09
capi_cluster_status_condition_last_transition_time{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="InfrastructureReady",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 1.692973897e+09
capi_cluster_status_condition_last_transition_time{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="Ready",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 1.692974047e+09
# HELP capi_cluster_status_phase The clusters current phase.
# TYPE capi_cluster_status_phase stateset
capi_cluster_status_phase{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",phase="Deleting",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 0
capi_cluster_status_phase{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",phase="Failed",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 0
capi_cluster_status_phase{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",phase="Pending",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 0
capi_cluster_status_phase{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",phase="Provisioned",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 1
capi_cluster_status_phase{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",phase="Provisioning",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 0
capi_cluster_status_phase{customresource_group="cluster.x-k8s.io",customresource_kind="Cluster",customresource_version="v1beta1",name="capi-test",namespace="default",phase="Unknown",uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b"} 0
# HELP capi_machinedeployment_annotation_paused Whether the machinedeployment is paused and any of its resources will not be processed by the controllers.
# TYPE capi_machinedeployment_annotation_paused info
# HELP capi_machinedeployment_created Unix creation timestamp.
# TYPE capi_machinedeployment_created gauge
capi_machinedeployment_created{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 1.692973837e+09
# HELP capi_machinedeployment_info Information about a machinedeployment.
# TYPE capi_machinedeployment_info info
capi_machinedeployment_info{bootstrap_reference_kind="KubeadmConfigTemplate",bootstrap_reference_name="capi-test-md-0",cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",infrastructure_reference_kind="VSphereMachineTemplate",infrastructure_reference_name="capi-test-worker",name="capi-test-md-0",namespace="default",uid="75237ca8-f643-4121-9963-83d1d1a1a555",version="v1.27.3"} 1
# HELP capi_machinedeployment_owner Owner references.
# TYPE capi_machinedeployment_owner info
capi_machinedeployment_owner{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",owner_kind="Cluster",owner_name="capi-test",owner_uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 1
# HELP capi_machinedeployment_spec_paused Whether the machinedeployment is paused and any of its resources will not be processed by the controllers.
# TYPE capi_machinedeployment_spec_paused gauge
capi_machinedeployment_spec_paused{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 0
# HELP capi_machinedeployment_spec_replicas The number of desired machines for a machinedeployment.
# TYPE capi_machinedeployment_spec_replicas gauge
capi_machinedeployment_spec_replicas{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 1
# HELP capi_machinedeployment_spec_strategy_rollingupdate_max_surge Maximum number of replicas that can be scheduled above the desired number of replicas during a rolling update of a machinedeployment.
# TYPE capi_machinedeployment_spec_strategy_rollingupdate_max_surge gauge
capi_machinedeployment_spec_strategy_rollingupdate_max_surge{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 1
# HELP capi_machinedeployment_spec_strategy_rollingupdate_max_unavailable Maximum number of unavailable replicas during a rolling update of a machinedeployment.
# TYPE capi_machinedeployment_spec_strategy_rollingupdate_max_unavailable gauge
capi_machinedeployment_spec_strategy_rollingupdate_max_unavailable{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 0
# HELP capi_machinedeployment_status_condition The condition of a machinedeployment.
# TYPE capi_machinedeployment_status_condition stateset
capi_machinedeployment_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",status="False",type="Available",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 1
capi_machinedeployment_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",status="False",type="Ready",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 1
capi_machinedeployment_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",status="True",type="Available",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 0
capi_machinedeployment_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",status="True",type="Ready",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 0
capi_machinedeployment_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",status="Unknown",type="Available",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 0
capi_machinedeployment_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",status="Unknown",type="Ready",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 0
# HELP capi_machinedeployment_status_condition_last_transition_time The condition last transition time of a machinedeployment.
# TYPE capi_machinedeployment_status_condition_last_transition_time gauge
capi_machinedeployment_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",status="False",type="Available",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 1.69297396e+09
capi_machinedeployment_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",status="False",type="Ready",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 1.69297396e+09
# HELP capi_machinedeployment_status_phase The machinedeployments current phase.
# TYPE capi_machinedeployment_status_phase stateset
capi_machinedeployment_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",phase="Failed",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 0
capi_machinedeployment_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",phase="Running",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 0
capi_machinedeployment_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",phase="ScalingDown",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 0
capi_machinedeployment_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",phase="ScalingUp",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 1
capi_machinedeployment_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",phase="Unknown",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 0
# HELP capi_machinedeployment_status_replicas The number of replicas per machinedeployment.
# TYPE capi_machinedeployment_status_replicas gauge
capi_machinedeployment_status_replicas{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 1
# HELP capi_machinedeployment_status_replicas_available The number of available replicas per machinedeployment.
# TYPE capi_machinedeployment_status_replicas_available gauge
capi_machinedeployment_status_replicas_available{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 0
# HELP capi_machinedeployment_status_replicas_ready The number of ready replicas per machinedeployment.
# TYPE capi_machinedeployment_status_replicas_ready gauge
capi_machinedeployment_status_replicas_ready{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 0
# HELP capi_machinedeployment_status_replicas_unavailable The number of unavailable replicas per machinedeployment.
# TYPE capi_machinedeployment_status_replicas_unavailable gauge
capi_machinedeployment_status_replicas_unavailable{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 1
# HELP capi_machinedeployment_status_replicas_updated The number of updated replicas per machinedeployment.
# TYPE capi_machinedeployment_status_replicas_updated gauge
capi_machinedeployment_status_replicas_updated{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineDeployment",customresource_version="v1beta1",name="capi-test-md-0",namespace="default",uid="75237ca8-f643-4121-9963-83d1d1a1a555"} 1
# HELP capi_machine_addresses Address information about a machine.
# TYPE capi_machine_addresses info
capi_machine_addresses{address="10.180.192.196",cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",type="ExternalIP",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_addresses{address="10.180.202.245",cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",type="ExternalIP",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_addresses{address="fd01:3:8:208:250:56ff:febc:b4e1",cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",type="ExternalIP",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_addresses{address="10.180.201.232",cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",type="ExternalIP",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 1
capi_machine_addresses{address="fd01:3:8:208:250:56ff:febc:63f7",cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",type="ExternalIP",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 1
# HELP capi_machine_annotation_paused Whether the machine is paused and any of its resources will not be processed by the controllers.
# TYPE capi_machine_annotation_paused info
# HELP capi_machine_created Unix creation timestamp.
# TYPE capi_machine_created gauge
capi_machine_created{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1.692973972e+09
capi_machine_created{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 1.692974065e+09
# HELP capi_machine_info Information about a machine.
# TYPE capi_machine_info info
capi_machine_info{bootstrap_reference_kind="KubeadmConfig",bootstrap_reference_name="capi-test-gbg6g",cluster_name="capi-test",container_runtime_version="containerd://1.6.4",control_plane_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",infrastructure_reference_kind="VSphereMachine",infrastructure_reference_name="capi-test-svxfh",kernel_version="5.4.0-153-generic",kube_proxy_version="v1.27.3",kubelet_version="v1.27.3",name="capi-test-dq88p",namespace="default",os_image="Ubuntu 20.04.6 LTS",provider_id="vsphere://423ce63e-a013-c3e6-6f2b-1d3db6796d66",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0",version="v1.27.3"} 1
capi_machine_info{bootstrap_reference_kind="KubeadmConfig",bootstrap_reference_name="capi-test-md-0-sfn9r",cluster_name="capi-test",container_runtime_version="containerd://1.6.4",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",infrastructure_reference_kind="VSphereMachine",infrastructure_reference_name="capi-test-worker-jsvqr",kernel_version="5.4.0-153-generic",kube_proxy_version="v1.27.3",kubelet_version="v1.27.3",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",os_image="Ubuntu 20.04.6 LTS",provider_id="vsphere://423cc094-413c-4de0-c476-d8929b46c93f",uid="72c2270a-a399-406c-aa32-bb8698dd341f",version="v1.27.3"} 1
# HELP capi_machine_owner Owner references.
# TYPE capi_machine_owner info
capi_machine_owner{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",owner_is_controller="true",owner_kind="KubeadmControlPlane",owner_name="capi-test",owner_uid="a3f79737-9c15-496d-ab04-f59a9973a5a4",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_owner{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",owner_is_controller="true",owner_kind="MachineSet",owner_name="capi-test-md-0-67dfc798c7x8gpqb",owner_uid="0e9a3878-de2d-4e1a-ad74-cd894219da16",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 1
# HELP capi_machine_status_certificatesexpirydate Information about certificate expiration date of a control plane node.
# TYPE capi_machine_status_certificatesexpirydate gauge
capi_machine_status_certificatesexpirydate{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1.724510017e+09
capi_machine_status_certificatesexpirydate{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
# HELP capi_machine_status_condition The condition of a machine.
# TYPE capi_machine_status_condition stateset
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="False",type="APIServerPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="False",type="BootstrapReady",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="False",type="ControllerManagerPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="False",type="EtcdMemberHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="False",type="EtcdPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="False",type="InfrastructureReady",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="False",type="NodeHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="False",type="Ready",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="False",type="SchedulerPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="APIServerPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="BootstrapReady",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="ControllerManagerPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="EtcdMemberHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="EtcdPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="InfrastructureReady",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="NodeHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="Ready",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="SchedulerPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="Unknown",type="APIServerPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="Unknown",type="BootstrapReady",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="Unknown",type="ControllerManagerPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="Unknown",type="EtcdMemberHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="Unknown",type="EtcdPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="Unknown",type="InfrastructureReady",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="Unknown",type="NodeHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="Unknown",type="Ready",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="Unknown",type="SchedulerPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="False",type="BootstrapReady",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="False",type="InfrastructureReady",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="False",type="NodeHealthy",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 1
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="False",type="Ready",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="True",type="BootstrapReady",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 1
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="True",type="InfrastructureReady",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 1
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="True",type="NodeHealthy",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="True",type="Ready",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 1
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="Unknown",type="BootstrapReady",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="Unknown",type="InfrastructureReady",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="Unknown",type="NodeHealthy",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
capi_machine_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="Unknown",type="Ready",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
# HELP capi_machine_status_condition_last_transition_time The condition last transition time of a machine.
# TYPE capi_machine_status_condition_last_transition_time gauge
capi_machine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="False",type="NodeHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1.692974054e+09
capi_machine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="APIServerPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1.692974055e+09
capi_machine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="BootstrapReady",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1.692973973e+09
capi_machine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="ControllerManagerPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1.692974055e+09
capi_machine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="EtcdMemberHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1.69297406e+09
capi_machine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="EtcdPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1.692974055e+09
capi_machine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="InfrastructureReady",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1.692974046e+09
capi_machine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="Ready",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1.692974046e+09
capi_machine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="SchedulerPodHealthy",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1.692974055e+09
capi_machine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="False",type="NodeHealthy",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 1.692974135e+09
capi_machine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="True",type="BootstrapReady",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 1.692974066e+09
capi_machine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="True",type="InfrastructureReady",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 1.692974135e+09
capi_machine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="True",type="Ready",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 1.692974135e+09
# HELP capi_machine_status_noderef Information about the node reference of a machine.
# TYPE capi_machine_status_noderef info
capi_machine_status_noderef{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",node_name="capi-test-dq88p",node_uid="cad6ae5f-d8ea-478a-a70a-5e4114e42fa1",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_status_noderef{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",node_name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",node_uid="9dec6abc-deb5-4bfa-92e8-0868bfbb30a8",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 1
# HELP capi_machine_status_phase The machines current phase.
# TYPE capi_machine_status_phase stateset
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",phase="Deleted",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",phase="Deleting",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",phase="Failed",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",phase="Pending",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",phase="Provisioned",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",phase="Provisioning",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",phase="Running",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 1
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",phase="Unknown",uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0"} 0
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",phase="Deleted",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",phase="Deleting",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",phase="Failed",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",phase="Pending",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",phase="Provisioned",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",phase="Provisioning",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",phase="Running",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 1
capi_machine_status_phase{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="Machine",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",phase="Unknown",uid="72c2270a-a399-406c-aa32-bb8698dd341f"} 0
# HELP capi_machineset_annotation_paused Whether the machineset is paused and any of its resources will not be processed by the controllers.
# TYPE capi_machineset_annotation_paused info
# HELP capi_machineset_created Unix creation timestamp.
# TYPE capi_machineset_created gauge
capi_machineset_created{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 1.69297396e+09
# HELP capi_machineset_info Information about a machineset.
# TYPE capi_machineset_info info
capi_machineset_info{bootstrap_reference_kind="KubeadmConfigTemplate",bootstrap_reference_name="capi-test-md-0",cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",infrastructure_reference_kind="VSphereMachineTemplate",infrastructure_reference_name="capi-test-worker",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16",version="v1.27.3"} 1
# HELP capi_machineset_owner Owner references.
# TYPE capi_machineset_owner info
capi_machineset_owner{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",owner_is_controller="true",owner_kind="MachineDeployment",owner_name="capi-test-md-0",owner_uid="75237ca8-f643-4121-9963-83d1d1a1a555",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 1
# HELP capi_machineset_spec_replicas The number of desired machines for a machineset.
# TYPE capi_machineset_spec_replicas gauge
capi_machineset_spec_replicas{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 1
# HELP capi_machineset_status_condition The condition of a machineset.
# TYPE capi_machineset_status_condition stateset
capi_machineset_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="False",type="MachinesCreated",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 0
capi_machineset_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="False",type="MachinesReady",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 0
capi_machineset_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="False",type="Ready",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 1
capi_machineset_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="False",type="Resized",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 1
capi_machineset_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="True",type="MachinesCreated",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 1
capi_machineset_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="True",type="MachinesReady",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 1
capi_machineset_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="True",type="Ready",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 0
capi_machineset_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="True",type="Resized",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 0
capi_machineset_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="Unknown",type="MachinesCreated",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 0
capi_machineset_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="Unknown",type="MachinesReady",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 0
capi_machineset_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="Unknown",type="Ready",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 0
capi_machineset_status_condition{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="Unknown",type="Resized",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 0
# HELP capi_machineset_status_condition_last_transition_time The condition last transition time of a machineset.
# TYPE capi_machineset_status_condition_last_transition_time gauge
capi_machineset_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="False",type="Ready",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 1.692974065e+09
capi_machineset_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="False",type="Resized",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 1.69297396e+09
capi_machineset_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="True",type="MachinesCreated",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 1.692974065e+09
capi_machineset_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",status="True",type="MachinesReady",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 1.692974135e+09
# HELP capi_machineset_status_replicas The number of replicas per machineset.
# TYPE capi_machineset_status_replicas gauge
capi_machineset_status_replicas{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 1
# HELP capi_machineset_status_replicas_available The number of available replicas per machineset.
# TYPE capi_machineset_status_replicas_available gauge
capi_machineset_status_replicas_available{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 0
# HELP capi_machineset_status_replicas_fully_labeled The number of fully labeled replicas per machineset.
# TYPE capi_machineset_status_replicas_fully_labeled gauge
capi_machineset_status_replicas_fully_labeled{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 1
# HELP capi_machineset_status_replicas_ready The number of ready replicas per machineset.
# TYPE capi_machineset_status_replicas_ready gauge
capi_machineset_status_replicas_ready{cluster_name="capi-test",customresource_group="cluster.x-k8s.io",customresource_kind="MachineSet",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb",namespace="default",uid="0e9a3878-de2d-4e1a-ad74-cd894219da16"} 0
# HELP capi_kubeadmcontrolplane_annotation_paused Whether the kubeadmcontrolplane is paused and any of its resources will not be processed by the controllers.
# TYPE capi_kubeadmcontrolplane_annotation_paused info
# HELP capi_kubeadmcontrolplane_created Unix creation timestamp.
# TYPE capi_kubeadmcontrolplane_created gauge
capi_kubeadmcontrolplane_created{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1.692973837e+09
# HELP capi_kubeadmcontrolplane_info Information about a kubeadmcontrolplane.
# TYPE capi_kubeadmcontrolplane_info info
capi_kubeadmcontrolplane_info{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4",version="v1.27.3"} 1
# HELP capi_kubeadmcontrolplane_owner Owner references.
# TYPE capi_kubeadmcontrolplane_owner info
capi_kubeadmcontrolplane_owner{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",owner_is_controller="true",owner_kind="Cluster",owner_name="capi-test",owner_uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1
# HELP capi_kubeadmcontrolplane_spec_replicas The number of desired machines for a kubeadmcontrolplane.
# TYPE capi_kubeadmcontrolplane_spec_replicas gauge
capi_kubeadmcontrolplane_spec_replicas{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1
# HELP capi_kubeadmcontrolplane_spec_strategy_rollingupdate_max_surge Maximum number of replicas that can be scheduled above the desired number of replicas during a rolling update of a kubeadmcontrolplane.
# TYPE capi_kubeadmcontrolplane_spec_strategy_rollingupdate_max_surge gauge
capi_kubeadmcontrolplane_spec_strategy_rollingupdate_max_surge{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1
# HELP capi_kubeadmcontrolplane_status_condition The condition of a kubeadmcontrolplane.
# TYPE capi_kubeadmcontrolplane_status_condition stateset
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="Available",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="CertificatesAvailable",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="ControlPlaneComponentsHealthy",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="EtcdClusterHealthy",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="MachinesCreated",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="MachinesReady",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="Ready",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="Resized",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="Available",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="CertificatesAvailable",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="ControlPlaneComponentsHealthy",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="EtcdClusterHealthy",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="MachinesCreated",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="MachinesReady",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="Ready",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="Resized",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="Available",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="CertificatesAvailable",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="ControlPlaneComponentsHealthy",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="EtcdClusterHealthy",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="MachinesCreated",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="MachinesReady",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="Ready",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
capi_kubeadmcontrolplane_status_condition{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="Resized",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
# HELP capi_kubeadmcontrolplane_status_condition_last_transition_time The condition last transition time of a kubeadmcontrolplane.
# TYPE capi_kubeadmcontrolplane_status_condition_last_transition_time gauge
capi_kubeadmcontrolplane_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="Available",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1.692974034e+09
capi_kubeadmcontrolplane_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="CertificatesAvailable",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1.692973972e+09
capi_kubeadmcontrolplane_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="ControlPlaneComponentsHealthy",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1.692974055e+09
capi_kubeadmcontrolplane_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="EtcdClusterHealthy",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1.69297406e+09
capi_kubeadmcontrolplane_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="MachinesCreated",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1.692973993e+09
capi_kubeadmcontrolplane_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="MachinesReady",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1.692974047e+09
capi_kubeadmcontrolplane_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="Ready",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1.692974047e+09
capi_kubeadmcontrolplane_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="Resized",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1.692974003e+09
# HELP capi_kubeadmcontrolplane_status_replicas The number of replicas per kubeadmcontrolplane.
# TYPE capi_kubeadmcontrolplane_status_replicas gauge
capi_kubeadmcontrolplane_status_replicas{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1
# HELP capi_kubeadmcontrolplane_status_replicas_ready The number of ready replicas per kubeadmcontrolplane.
# TYPE capi_kubeadmcontrolplane_status_replicas_ready gauge
capi_kubeadmcontrolplane_status_replicas_ready{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 0
# HELP capi_kubeadmcontrolplane_status_replicas_unavailable The number of unavailable replicas per kubeadmcontrolplane.
# TYPE capi_kubeadmcontrolplane_status_replicas_unavailable gauge
capi_kubeadmcontrolplane_status_replicas_unavailable{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1
# HELP capi_kubeadmcontrolplane_status_replicas_updated The number of updated replicas per kubeadmcontrolplane.
# TYPE capi_kubeadmcontrolplane_status_replicas_updated gauge
capi_kubeadmcontrolplane_status_replicas_updated{cluster_name="capi-test",customresource_group="controlplane.cluster.x-k8s.io",customresource_kind="KubeadmControlPlane",customresource_version="v1beta1",name="capi-test",namespace="default",uid="a3f79737-9c15-496d-ab04-f59a9973a5a4"} 1
# HELP capv_vspherecluster_annotation_paused Whether the vspherecluster is paused and any of its resources will not be processed by the controllers.
# TYPE capv_vspherecluster_annotation_paused info
# HELP capv_vspherecluster_created Unix creation timestamp.
# TYPE capv_vspherecluster_created gauge
capv_vspherecluster_created{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 1.692973837e+09
# HELP capv_vspherecluster_info Information about a vspherecluster.
# TYPE capv_vspherecluster_info info
capv_vspherecluster_info{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",spec_server="wdc-10-180-202-184.nimbus.eng.vmware.com",status_vsphere_version="7.0.0",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 1
# HELP capv_vspherecluster_owner Owner references.
# TYPE capv_vspherecluster_owner info
capv_vspherecluster_owner{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",owner_is_controller="true",owner_kind="Cluster",owner_name="capi-test",owner_uid="4cb39f3a-2d99-40e1-9b2c-8aeb41837c0b",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 1
# HELP capv_vspherecluster_status_condition The condition of a vspherecluster.
# TYPE capv_vspherecluster_status_condition stateset
capv_vspherecluster_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="ClusterModulesAvailable",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 0
capv_vspherecluster_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="Ready",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 0
capv_vspherecluster_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="False",type="VCenterAvailable",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 0
capv_vspherecluster_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="ClusterModulesAvailable",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 1
capv_vspherecluster_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="Ready",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 1
capv_vspherecluster_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="VCenterAvailable",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 1
capv_vspherecluster_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="ClusterModulesAvailable",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 0
capv_vspherecluster_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="Ready",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 0
capv_vspherecluster_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="Unknown",type="VCenterAvailable",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 0
# HELP capv_vspherecluster_status_condition_last_transition_time The condition last transition time of a vspherecluster.
# TYPE capv_vspherecluster_status_condition_last_transition_time gauge
capv_vspherecluster_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="ClusterModulesAvailable",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 1.692973971e+09
capv_vspherecluster_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="Ready",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 1.692973897e+09
capv_vspherecluster_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereCluster",customresource_version="v1beta1",name="capi-test",namespace="default",status="True",type="VCenterAvailable",uid="d15de8d7-1e89-455e-81a7-d353b8a88041"} 1.692973897e+09
# HELP capv_vspheremachine_addresses Address information about a vspheremachine.
# TYPE capv_vspheremachine_addresses info
capv_vspheremachine_addresses{address="10.180.192.196",cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",type="ExternalIP",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 1
capv_vspheremachine_addresses{address="10.180.202.245",cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",type="ExternalIP",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 1
capv_vspheremachine_addresses{address="fd01:3:8:208:250:56ff:febc:b4e1",cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",type="ExternalIP",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 1
capv_vspheremachine_addresses{address="10.180.201.232",cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-worker-jsvqr",namespace="default",type="ExternalIP",uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5"} 1
capv_vspheremachine_addresses{address="fd01:3:8:208:250:56ff:febc:63f7",cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-worker-jsvqr",namespace="default",type="ExternalIP",uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5"} 1
# HELP capv_vspheremachine_annotation_paused Whether the vspheremachine is paused and any of its resources will not be processed by the controllers.
# TYPE capv_vspheremachine_annotation_paused info
# HELP capv_vspheremachine_created Unix creation timestamp.
# TYPE capv_vspheremachine_created gauge
capv_vspheremachine_created{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 1.692973972e+09
capv_vspheremachine_created{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-worker-jsvqr",namespace="default",uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5"} 1.692974065e+09
# HELP capv_vspheremachine_info Information about a vspheremachine.
# TYPE capv_vspheremachine_info info
capv_vspheremachine_info{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",provider_id="vsphere://423ce63e-a013-c3e6-6f2b-1d3db6796d66",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 1
capv_vspheremachine_info{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-worker-jsvqr",namespace="default",provider_id="vsphere://423cc094-413c-4de0-c476-d8929b46c93f",uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5"} 1
# HELP capv_vspheremachine_owner Owner references.
# TYPE capv_vspheremachine_owner info
capv_vspheremachine_owner{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",owner_is_controller="true",owner_kind="Machine",owner_name="capi-test-dq88p",owner_uid="fceb8fbe-82f4-4462-aeaa-88421e2509e0",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 1
capv_vspheremachine_owner{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",owner_kind="VSphereCluster",owner_name="capi-test",owner_uid="d15de8d7-1e89-455e-81a7-d353b8a88041",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 1
capv_vspheremachine_owner{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-worker-jsvqr",namespace="default",owner_is_controller="true",owner_kind="Machine",owner_name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",owner_uid="72c2270a-a399-406c-aa32-bb8698dd341f",uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5"} 1
capv_vspheremachine_owner{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-worker-jsvqr",namespace="default",owner_kind="VSphereCluster",owner_name="capi-test",owner_uid="d15de8d7-1e89-455e-81a7-d353b8a88041",uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5"} 1
# HELP capv_vspheremachine_status_condition The condition of a vspheremachine.
# TYPE capv_vspheremachine_status_condition stateset
capv_vspheremachine_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",status="False",type="Ready",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 0
capv_vspheremachine_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",status="False",type="VMProvisioned",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 0
capv_vspheremachine_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",status="True",type="Ready",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 1
capv_vspheremachine_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",status="True",type="VMProvisioned",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 1
capv_vspheremachine_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",status="Unknown",type="Ready",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 0
capv_vspheremachine_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",status="Unknown",type="VMProvisioned",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 0
capv_vspheremachine_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-worker-jsvqr",namespace="default",status="False",type="Ready",uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5"} 0
capv_vspheremachine_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-worker-jsvqr",namespace="default",status="False",type="VMProvisioned",uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5"} 0
capv_vspheremachine_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-worker-jsvqr",namespace="default",status="True",type="Ready",uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5"} 1
capv_vspheremachine_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-worker-jsvqr",namespace="default",status="True",type="VMProvisioned",uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5"} 1
capv_vspheremachine_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-worker-jsvqr",namespace="default",status="Unknown",type="Ready",uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5"} 0
capv_vspheremachine_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-worker-jsvqr",namespace="default",status="Unknown",type="VMProvisioned",uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5"} 0
# HELP capv_vspheremachine_status_condition_last_transition_time The condition last transition time of a vspheremachine.
# TYPE capv_vspheremachine_status_condition_last_transition_time gauge
capv_vspheremachine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",status="True",type="Ready",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 1.692974046e+09
capv_vspheremachine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-svxfh",namespace="default",status="True",type="VMProvisioned",uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585"} 1.692974046e+09
capv_vspheremachine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-worker-jsvqr",namespace="default",status="True",type="Ready",uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5"} 1.692974135e+09
capv_vspheremachine_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereMachine",customresource_version="v1beta1",name="capi-test-worker-jsvqr",namespace="default",status="True",type="VMProvisioned",uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5"} 1.692974135e+09
# HELP capv_vspherevm_addresses Address information about a vspherevm.
# TYPE capv_vspherevm_addresses info
capv_vspherevm_addresses{address="10.180.192.196",cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 1
capv_vspherevm_addresses{address="10.180.202.245",cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 1
capv_vspherevm_addresses{address="fd01:3:8:208:250:56ff:febc:b4e1",cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 1
capv_vspherevm_addresses{address="10.180.201.232",cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 1
capv_vspherevm_addresses{address="fd01:3:8:208:250:56ff:febc:63f7",cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 1
# HELP capv_vspherevm_annotation_paused Whether the vspherevm is paused and any of its resources will not be processed by the controllers.
# TYPE capv_vspherevm_annotation_paused info
# HELP capv_vspherevm_created Unix creation timestamp.
# TYPE capv_vspherevm_created gauge
capv_vspherevm_created{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 1.692974066e+09
capv_vspherevm_created{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 1.692973973e+09
# HELP capv_vspherevm_info Information about a vspherevm.
# TYPE capv_vspherevm_info info
capv_vspherevm_info{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status_clonemode="linkedClone",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 1
capv_vspherevm_info{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status_clonemode="linkedClone",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 1
# HELP capv_vspherevm_owner Owner references.
# TYPE capv_vspherevm_owner info
capv_vspherevm_owner{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",owner_kind="VSphereMachine",owner_name="capi-test-svxfh",owner_uid="b4b2c008-8b0f-4501-8adb-7ee6bb12c585",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 1
capv_vspherevm_owner{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",owner_kind="VSphereMachine",owner_name="capi-test-worker-jsvqr",owner_uid="2626b9e8-e87e-4e67-8b03-b75f6ebfa1a5",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 1
# HELP capv_vspherevm_status_condition The condition of a vspherevm.
# TYPE capv_vspherevm_status_condition stateset
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="False",type="Ready",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 0
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="False",type="VCenterAvailable",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 0
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="False",type="VMProvisioned",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 0
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="Ready",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 1
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="VCenterAvailable",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 1
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="VMProvisioned",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 1
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="Unknown",type="Ready",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 0
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="Unknown",type="VCenterAvailable",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 0
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="Unknown",type="VMProvisioned",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 0
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="False",type="Ready",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 0
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="False",type="VCenterAvailable",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 0
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="False",type="VMProvisioned",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 0
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="True",type="Ready",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 1
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="True",type="VCenterAvailable",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 1
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="True",type="VMProvisioned",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 1
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="Unknown",type="Ready",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 0
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="Unknown",type="VCenterAvailable",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 0
capv_vspherevm_status_condition{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="Unknown",type="VMProvisioned",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 0
# HELP capv_vspherevm_status_condition_last_transition_time The condition last transition time of a vspherevm.
# TYPE capv_vspherevm_status_condition_last_transition_time gauge
capv_vspherevm_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="Ready",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 1.692974046e+09
capv_vspherevm_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="VCenterAvailable",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 1.692973973e+09
capv_vspherevm_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-dq88p",namespace="default",status="True",type="VMProvisioned",uid="fcc3c9c2-7c8c-499b-af52-2e7fb1c0b932"} 1.692974046e+09
capv_vspherevm_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="True",type="Ready",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 1.692974135e+09
capv_vspherevm_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="True",type="VCenterAvailable",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 1.692974067e+09
capv_vspherevm_status_condition_last_transition_time{cluster_name="capi-test",customresource_group="infrastructure.cluster.x-k8s.io",customresource_kind="VSphereVM",customresource_version="v1beta1",name="capi-test-md-0-67dfc798c7x8gpqb-jc84p",namespace="default",status="True",type="VMProvisioned",uid="7200d9aa-f541-4b30-a1f0-92ae7b1162f0"} 1.692974135e+09

chrischdi avatar Aug 25 '23 14:08 chrischdi

This likely requires feedback from other maintainers: I wonder if it would simplify the release process by a lot if we were able to incorporate it in the kube-state-metrics binary itself. Something like an additional command:

kube-state-metrics generate myfile.go

mrueg avatar Aug 28 '23 13:08 mrueg

This likely requires feedback from other maintainers: I wonder if it would simplify the release process by a lot if we were able to incorporate it in the kube-state-metrics binary itself. Something like an additional command:

kube-state-metrics generate myfile.go

That's great feedback 👍

If we like to do that, the caveat is that we will depend on controller-tools. E.g. the go.mod changes if we would do that would be the following:

Edit: see PR diff for up-to-date diff on go.mod

diff --git a/go.mod b/go.mod
index 30db0c47..76edc081 100644
--- a/go.mod
+++ b/go.mod
@@ -24,6 +24,8 @@ require (
        k8s.io/klog/v2 v2.100.1
        k8s.io/sample-controller v0.27.4
        k8s.io/utils v0.0.0-20230711102312-30195339c3c7
+       sigs.k8s.io/controller-tools v0.12.0
+       sigs.k8s.io/yaml v1.3.0
 )

 require (
@@ -34,6 +36,7 @@ require (
        github.com/davecgh/go-spew v1.1.1 // indirect
        github.com/emicklei/go-restful/v3 v3.9.0 // indirect
        github.com/evanphx/json-patch v4.12.0+incompatible // indirect
+       github.com/fatih/color v1.15.0 // indirect
        github.com/go-kit/log v0.2.1 // indirect
        github.com/go-logfmt/logfmt v0.5.1 // indirect
        github.com/go-logr/logr v1.2.3 // indirect
@@ -53,6 +56,8 @@ require (
        github.com/json-iterator/go v1.1.12 // indirect
        github.com/magiconair/properties v1.8.7 // indirect
        github.com/mailru/easyjson v0.7.7 // indirect
+       github.com/mattn/go-colorable v0.1.13 // indirect
+       github.com/mattn/go-isatty v0.0.17 // indirect
        github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
        github.com/mitchellh/mapstructure v1.5.0 // indirect
        github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
@@ -69,6 +74,7 @@ require (
        github.com/spf13/pflag v1.0.5 // indirect
        github.com/subosito/gotenv v1.4.2 // indirect
        golang.org/x/crypto v0.9.0 // indirect
+       golang.org/x/mod v0.10.0 // indirect
        golang.org/x/net v0.10.0 // indirect
        golang.org/x/oauth2 v0.8.0 // indirect
        golang.org/x/sync v0.2.0 // indirect
@@ -76,13 +82,14 @@ require (
        golang.org/x/term v0.8.0 // indirect
        golang.org/x/text v0.9.0 // indirect
        golang.org/x/time v0.1.0 // indirect
+       golang.org/x/tools v0.8.0 // indirect
        google.golang.org/appengine v1.6.7 // indirect
        google.golang.org/protobuf v1.30.0 // indirect
        gopkg.in/inf.v0 v0.9.1 // indirect
        gopkg.in/ini.v1 v1.67.0 // indirect
        gopkg.in/yaml.v2 v2.4.0 // indirect
+       k8s.io/apiextensions-apiserver v0.27.1 // indirect
        k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect
        sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
        sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
-       sigs.k8s.io/yaml v1.3.0 // indirect
 )

chrischdi avatar Aug 28 '23 13:08 chrischdi

Opening up for review. I suggest to postpone documentation to a second PR after merging this.

Also added an integration test. I think this could greatly get built out to a example for later on documentation.

chrischdi avatar Sep 22 '23 07:09 chrischdi

I know this PR is huge and will take time for review. I tried to get to a good code coverage via unit / integration testing.

Kindly asking @mrueg @fpetkovski and @CatherineF-dev as you already showed interest in this PR 😃

chrischdi avatar Sep 22 '23 07:09 chrischdi

Note: if there are questions regarding ownership/maintenance of the code: I'd be happy to help on reviews for changes on this new codebase.

chrischdi avatar Sep 22 '23 07:09 chrischdi

cc @rexagod @dgrisonnet /triage accepted

dashpole avatar Oct 05 '23 16:10 dashpole

LGTM in general, since most codes are isolated inside generate repo.

Don't forget about add an example on how to use this awesome feature later.

CatherineF-dev avatar Oct 11 '23 01:10 CatherineF-dev

/lgtm

CatherineF-dev avatar Oct 11 '23 01:10 CatherineF-dev

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: CatherineF-dev, chrischdi Once this PR has been reviewed and has the lgtm label, please assign mrueg for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment

k8s-ci-robot avatar Oct 11 '23 01:10 k8s-ci-robot

cc @rexagod @dgrisonnet to have another review (approval).

CatherineF-dev avatar Oct 11 '23 01:10 CatherineF-dev

New changes are detected. LGTM label has been removed.

k8s-ci-robot avatar Oct 12 '23 08:10 k8s-ci-robot

@CatherineF-dev: Closed this PR.

In response to this:

/close

(Haven't found the resolve button)

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

k8s-ci-robot avatar Oct 12 '23 14:10 k8s-ci-robot

/reopen

Sry, I wanted to resolve one comment, instead of closing this PR.

I typed /close in one comment, and didn't know it would close the PR.

CatherineF-dev avatar Oct 12 '23 14:10 CatherineF-dev

@CatherineF-dev: Reopened this PR.

In response to this:

/reopen

Sry, I wanted to resolve one comment, instead of closing this issue.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

k8s-ci-robot avatar Oct 12 '23 14:10 k8s-ci-robot

@CatherineF-dev , kindly asking for another round of review :-) I think this last push should address the open comments if I'm right.

chrischdi avatar Oct 17 '23 12:10 chrischdi

@CatherineF-dev , kindly asking for another round of review :-) I think this last push should address the open comments if I'm right.

@CatherineF-dev , friendly ping :-) Happy to chat about it!

chrischdi avatar Nov 20 '23 08:11 chrischdi

I'll try to have a look at this once I get some time.

dgrisonnet avatar Dec 06 '23 08:12 dgrisonnet

Thanks @mrueg for the review, also thanks @dgrisonnet for letting me know.

Also sorry for the long time I required to get this back on track and rebased. I also just came back to this after PTO, organisational changes etc. 👍 but happy to finish this work in the way its best for the community :-)

chrischdi avatar Dec 06 '23 09:12 chrischdi

Hey folks, happy to drive this further or shutdown the PR if its not reasonable to get added.

chrischdi avatar Jan 15 '24 09:01 chrischdi

Great to see this moving forward, IMO this will be a great addition and help move metrics for CRD to the next level (talking from a Cluster API perspective, but many other projects can benefit from this as well)

fabriziopandini avatar Jan 24 '24 10:01 fabriziopandini

PR needs rebase.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

k8s-ci-robot avatar Mar 26 '24 23:03 k8s-ci-robot

The Kubernetes project currently lacks enough contributors to adequately respond to all PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Mark this PR as fresh with /remove-lifecycle stale
  • Close this PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot avatar Jun 25 '24 00:06 k8s-triage-robot

The Kubernetes project currently lacks enough active contributors to adequately respond to all PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Mark this PR as fresh with /remove-lifecycle rotten
  • Close this PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

k8s-triage-robot avatar Jul 25 '24 00:07 k8s-triage-robot