Delete stops and destroys a VM of ours under the per-name lock, then deletes its seed on the VM's node, or on every node when no VM of ours was left. A hibernated VM of ours is Permanent, as in Create. The Checker verifies each node concurrently (version, node status, ISO storage, templates) and adds CertificateInvalid, CredentialsUnavailable, StorageNotFound and TemplateNotFound to the shared reasons. The ProviderHealth type comment gains proxmox. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
194 lines
8.2 KiB
YAML
194 lines
8.2 KiB
YAML
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.21.0
|
|
name: providerhealths.crawl.example.com
|
|
spec:
|
|
group: crawl.example.com
|
|
names:
|
|
kind: ProviderHealth
|
|
listKind: ProviderHealthList
|
|
plural: providerhealths
|
|
shortNames:
|
|
- ph
|
|
singular: providerhealth
|
|
scope: Cluster
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .status.type
|
|
name: Type
|
|
type: string
|
|
- jsonPath: .status.conditions[?(@.type=="Ready")].status
|
|
name: Ready
|
|
type: string
|
|
- jsonPath: .status.targetsReady
|
|
name: Targets
|
|
type: string
|
|
- jsonPath: .status.lastCheckTime
|
|
name: Last Check
|
|
type: date
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
ProviderHealth reports the periodic health check of one configured
|
|
provider. It is named after the provider, and the operator creates,
|
|
updates and deletes it itself; there is no spec to edit.
|
|
properties:
|
|
apiVersion:
|
|
description: |-
|
|
APIVersion defines the versioned schema of this representation of an object.
|
|
Servers should convert recognized schemas to the latest internal value, and
|
|
may reject unrecognized values.
|
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
|
type: string
|
|
kind:
|
|
description: |-
|
|
Kind is a string value representing the REST resource this object represents.
|
|
Servers may infer this from the endpoint the client submits requests to.
|
|
Cannot be updated.
|
|
In CamelCase.
|
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
status:
|
|
description: status is the result of the latest check
|
|
properties:
|
|
conditions:
|
|
description: conditions hold Ready, which summarizes the targets.
|
|
items:
|
|
description: Condition contains details for one aspect of the current
|
|
state of this API Resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: |-
|
|
lastTransitionTime is the last time the condition transitioned from one status to another.
|
|
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: |-
|
|
message is a human readable message indicating details about the transition.
|
|
This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: |-
|
|
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
|
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
|
with respect to the current state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: |-
|
|
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
|
Producers of specific condition types may define expected values and meanings for this field,
|
|
and whether the values are considered a guaranteed API.
|
|
The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- type
|
|
x-kubernetes-list-type: map
|
|
lastCheckTime:
|
|
description: lastCheckTime is when the latest check finished.
|
|
format: date-time
|
|
type: string
|
|
targets:
|
|
description: targets hold one verdict per checked target.
|
|
items:
|
|
description: |-
|
|
ProviderTarget is the latest check verdict for one thing a provider
|
|
depends on: a KVM hypervisor, the Kubernetes API server, a GCP project.
|
|
properties:
|
|
address:
|
|
description: address is where the check connected to.
|
|
type: string
|
|
details:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
details are provider-specific facts from the last check, e.g. the
|
|
libvirt version and free storage-pool space of a KVM host.
|
|
type: object
|
|
lastTransitionTime:
|
|
description: lastTransitionTime is when ready last changed.
|
|
format: date-time
|
|
type: string
|
|
latencyMillis:
|
|
description: latencyMillis is how long the last check took.
|
|
format: int64
|
|
type: integer
|
|
message:
|
|
description: message is human-readable detail, usually the error
|
|
of a failed check.
|
|
maxLength: 1024
|
|
type: string
|
|
name:
|
|
description: |-
|
|
name identifies the target within its provider: the KVM host name,
|
|
"apiserver", or the GCP project.
|
|
minLength: 1
|
|
type: string
|
|
ready:
|
|
description: ready is true when the last check succeeded.
|
|
type: boolean
|
|
reason:
|
|
description: |-
|
|
reason is a CamelCase verdict such as Reachable, Unreachable,
|
|
Forbidden, SSHHandshakeFailed or PoolNotActive.
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- name
|
|
- ready
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
targetsReady:
|
|
description: targetsReady counts the ready targets as "ready/total".
|
|
type: string
|
|
type:
|
|
description: |-
|
|
type is the provider's type from the providers config: kubernetes,
|
|
gcp, kvm, kvm2 or proxmox.
|
|
type: string
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|