
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: agents.agent-install.openshift.io
spec:
  group: agent-install.openshift.io
  names:
    kind: Agent
    listKind: AgentList
    plural: agents
    singular: agent
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: The name of the cluster the Agent registered to.
      jsonPath: .spec.clusterDeploymentName.name
      name: Cluster
      type: string
    - description: The `Approve` state of the Agent.
      jsonPath: .spec.approved
      name: Approved
      type: boolean
    - description: The role (master/worker) of the Agent.
      jsonPath: .status.role
      name: Role
      type: string
    - description: The HostStage of the Agent.
      jsonPath: .status.progress.currentStage
      name: Stage
      type: string
    - description: The hostname of the Agent.
      jsonPath: .status.inventory.hostname
      name: Hostname
      priority: 1
      type: string
    - description: The requested hostname for the Agent.
      jsonPath: .spec.hostname
      name: Requested Hostname
      priority: 1
      type: string
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: Agent is the Schema for the hosts 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: AgentSpec defines the desired state of Agent
            properties:
              approved:
                type: boolean
              clusterDeploymentName:
                description: ClusterReference represents a Cluster Reference. It has
                  enough information to retrieve cluster in any namespace
                properties:
                  name:
                    description: Name is unique within a namespace to reference a
                      cluster resource.
                    type: string
                  namespace:
                    description: Namespace defines the space within which the cluster
                      name must be unique.
                    type: string
                type: object
              hostname:
                type: string
              ignitionConfigOverrides:
                description: Json formatted string containing the user overrides for
                  the host's ignition config
                type: string
              ignitionEndpointTokenReference:
                description: IgnitionEndpointTokenReference references a secret containing
                  an Authorization Bearer token to fetch the ignition from ignition_endpoint_url.
                properties:
                  name:
                    description: Name is the name of the secret containing the ignition
                      endpoint token.
                    type: string
                  namespace:
                    description: Namespace is the namespace of the secret containing
                      the ignition endpoint token.
                    type: string
                required:
                - name
                - namespace
                type: object
              installation_disk_id:
                description: InstallationDiskID defines the installation destination
                  disk (must be equal to the inventory disk id).
                type: string
              installerArgs:
                description: Json formatted string containing the user overrides for
                  the host's coreos installer args
                type: string
              machineConfigPool:
                type: string
              role:
                description: "HostRole host role \n swagger:model host-role"
                type: string
            required:
            - approved
            - role
            type: object
          status:
            description: AgentStatus defines the observed state of Agent
            properties:
              bootstrap:
                type: boolean
              conditions:
                items:
                  description: Condition represents the state of the operator's reconciliation
                    functionality.
                  properties:
                    lastHeartbeatTime:
                      format: date-time
                      type: string
                    lastTransitionTime:
                      format: date-time
                      type: string
                    message:
                      type: string
                    reason:
                      type: string
                    status:
                      type: string
                    type:
                      description: ConditionType is the state of the operator's reconciliation
                        functionality.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              debugInfo:
                description: DebugInfo includes information for debugging the installation
                  process.
                properties:
                  eventsURL:
                    description: EventsURL specifies an HTTP/S URL that contains events
                      which occured during the cluster installation process
                    type: string
                  logsURL:
                    description: LogsURL specifies a url for download controller logs
                      tar file.
                    type: string
                  state:
                    description: Current state of the Agent
                    type: string
                  stateInfo:
                    description: Additional information pertaining to the status of
                      the Agent
                    type: string
                type: object
              inventory:
                properties:
                  bmcAddress:
                    type: string
                  bmcV6Address:
                    type: string
                  boot:
                    properties:
                      currentBootMode:
                        type: string
                      pxeInterface:
                        type: string
                    type: object
                  cpu:
                    properties:
                      architecture:
                        type: string
                      clockMegahertz:
                        description: 'Name in REST API: frequency'
                        format: int64
                        type: integer
                      count:
                        format: int64
                        type: integer
                      flags:
                        items:
                          type: string
                        type: array
                      modelName:
                        type: string
                    type: object
                  disks:
                    items:
                      properties:
                        bootable:
                          type: boolean
                        byID:
                          type: string
                        byPath:
                          type: string
                        driveType:
                          type: string
                        hctl:
                          type: string
                        id:
                          type: string
                        installationEligibility:
                          properties:
                            eligible:
                              type: boolean
                            notEligibleReasons:
                              items:
                                type: string
                              type: array
                          required:
                          - notEligibleReasons
                          type: object
                        ioPerf:
                          properties:
                            syncDurationMilliseconds:
                              description: 99th percentile of fsync duration in milliseconds
                              format: int64
                              type: integer
                          type: object
                        model:
                          type: string
                        name:
                          type: string
                        path:
                          type: string
                        serial:
                          type: string
                        sizeBytes:
                          format: int64
                          type: integer
                        smart:
                          type: string
                        vendor:
                          type: string
                        wwn:
                          type: string
                      required:
                      - id
                      type: object
                    type: array
                  hostname:
                    type: string
                  interfaces:
                    items:
                      properties:
                        biosDevName:
                          type: string
                        clientID:
                          type: string
                        flags:
                          items:
                            type: string
                          type: array
                        hasCarrier:
                          type: boolean
                        ipV4Addresses:
                          items:
                            type: string
                          type: array
                        ipV6Addresses:
                          items:
                            type: string
                          type: array
                        macAddress:
                          type: string
                        mtu:
                          format: int64
                          type: integer
                        name:
                          type: string
                        product:
                          type: string
                        speedMbps:
                          format: int64
                          type: integer
                        vendor:
                          type: string
                      required:
                      - flags
                      - ipV4Addresses
                      - ipV6Addresses
                      type: object
                    type: array
                  memory:
                    properties:
                      physicalBytes:
                        format: int64
                        type: integer
                      usableBytes:
                        format: int64
                        type: integer
                    type: object
                  reportTime:
                    description: 'Name in REST API: timestamp'
                    format: date-time
                    type: string
                  systemVendor:
                    properties:
                      manufacturer:
                        type: string
                      productName:
                        type: string
                      serialNumber:
                        type: string
                      virtual:
                        type: boolean
                    type: object
                type: object
              ntpSources:
                items:
                  properties:
                    sourceName:
                      type: string
                    sourceState:
                      description: "SourceState source state \n swagger:model source_state"
                      type: string
                  type: object
                type: array
              progress:
                properties:
                  currentStage:
                    description: current installation stage
                    type: string
                  installationPercentage:
                    description: Estimate progress (percentage)
                    format: int64
                    type: integer
                  progressInfo:
                    description: Additional information for the current installation
                      stage
                    type: string
                  progressStages:
                    description: All stages (ordered by their appearance) for this
                      agent
                    items:
                      description: "HostStage host stage \n swagger:model host-stage"
                      type: string
                    type: array
                  stageStartTime:
                    description: 'host field: progress: stage_started_at'
                    format: date-time
                    type: string
                  stageUpdateTime:
                    description: 'host field: progress: stage_updated_at'
                    format: date-time
                    type: string
                type: object
              role:
                description: "HostRole host role \n swagger:model host-role"
                type: string
              validationsInfo:
                additionalProperties:
                  items:
                    properties:
                      id:
                        type: string
                      message:
                        type: string
                      status:
                        type: string
                    required:
                    - id
                    - message
                    - status
                    type: object
                  type: array
                description: ValidationsInfo is a JSON-formatted string containing
                  the validation results for each validation id grouped by category
                  (network, hosts-data, etc.)
                type: object
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
