---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.0
  creationTimestamp: null
  name: pendingnodes.update.edgeless.systems
spec:
  group: update.edgeless.systems
  names:
    kind: PendingNode
    listKind: PendingNodeList
    plural: pendingnodes
    singular: pendingnode
  scope: Cluster
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: PendingNode is the Schema for the pendingnodes API.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: PendingNodeSpec defines the desired state of PendingNode.
            properties:
              deadline:
                description: Deadline is the deadline for reaching the goal state.
                  Joining nodes will be terminated if the deadline is exceeded. Leaving
                  nodes will remain as unschedulable to prevent data loss. If not
                  specified, the node may remain in the pending state indefinitely.
                format: date-time
                type: string
              goal:
                description: Goal is the goal of the pending state.
                enum:
                - Join
                - Leave
                type: string
              groupID:
                description: ScalingGroupID is the ID of the group that this node
                  shall be part of.
                type: string
              nodeName:
                description: NodeName is the kubernetes internal name of the node.
                type: string
              providerID:
                description: ProviderID is the provider ID of the node.
                type: string
            type: object
          status:
            description: PendingNodeStatus defines the observed state of PendingNode.
            properties:
              cspState:
                description: CSPNodeState is the state of the node in the cloud.
                enum:
                - Unknown
                - Creating
                - Ready
                - Stopped
                - Terminating
                - Terminated
                - Failed
                type: string
              reachedGoal:
                description: ReachedGoal is true if the node has reached the goal
                  state.
                type: boolean
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
