---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.14.0
  name: hostpreflights.troubleshoot.sh
spec:
  group: troubleshoot.sh
  names:
    kind: HostPreflight
    listKind: HostPreflightList
    plural: hostpreflights
    singular: hostpreflight
  scope: Namespaced
  versions:
  - name: v1beta2
    schema:
      openAPIV3Schema:
        description: HostPreflight is the Schema for the hostpreflights 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: HostPreflightSpec defines the desired state of HostPreflight
            properties:
              analyzers:
                items:
                  properties:
                    blockDevices:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        includeUnmountedPartitions:
                          type: boolean
                        minimumAcceptableSize:
                          format: int64
                          type: integer
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - includeUnmountedPartitions
                      - minimumAcceptableSize
                      - outcomes
                      type: object
                    certificate:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    certificatesCollection:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    cpu:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    diskUsage:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    filesystemPerformance:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    hostOS:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    hostServices:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    http:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    httpLoadBalancer:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    ipv4Interfaces:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    jsonCompare:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        fileName:
                          type: string
                        jsonPath:
                          type: string
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        path:
                          type: string
                        strict:
                          type: BoolString
                        value:
                          type: string
                      required:
                      - outcomes
                      type: object
                    kernelConfigs:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        selectedConfigs:
                          items:
                            type: string
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      - selectedConfigs
                      type: object
                    kernelModules:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    memory:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    subnetAvailable:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    systemPackages:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    tcpConnect:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    tcpLoadBalancer:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    tcpPortStatus:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    textAnalyze:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        excludeFiles:
                          items:
                            type: string
                          type: array
                        fileName:
                          type: string
                        ignoreIfNoFiles:
                          type: boolean
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        regex:
                          type: string
                        regexGroups:
                          type: string
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    time:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                    udpPortStatus:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        checkName:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        outcomes:
                          items:
                            properties:
                              fail:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              pass:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                              warn:
                                properties:
                                  message:
                                    type: string
                                  uri:
                                    type: string
                                  when:
                                    type: string
                                type: object
                            type: object
                          type: array
                        strict:
                          type: BoolString
                      required:
                      - outcomes
                      type: object
                  type: object
                type: array
              collectors:
                items:
                  properties:
                    blockDevices:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    certificate:
                      properties:
                        certificatePath:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        keyPath:
                          type: string
                      required:
                      - certificatePath
                      - keyPath
                      type: object
                    certificatesCollection:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        paths:
                          items:
                            type: string
                          type: array
                      required:
                      - paths
                      type: object
                    cgroups:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        mountPoint:
                          type: string
                      type: object
                    copy:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        path:
                          type: string
                      required:
                      - path
                      type: object
                    cpu:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    diskUsage:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        path:
                          type: string
                      required:
                      - path
                      type: object
                    filesystemPerformance:
                      description: |-
                        FilesystemPerformance benchmarks sequential write latency on a single file.
                        The optional background IOPS feature attempts to mimic real-world conditions by running read and
                        write workloads prior to and during benchmark execution.
                      properties:
                        backgroundIOPSWarmupSeconds:
                          description: How long to run the background IOPS read and
                            write workloads prior to starting the benchmarks.
                          type: integer
                        backgroundReadIOPS:
                          description: |-
                            The target read IOPS to run while benchmarking. This is a limit and there is no guarantee
                            it will be reached. This is the total IOPS for all background read jobs.
                          type: integer
                        backgroundReadIOPSJobs:
                          description: |-
                            Number of threads to use for background read IOPS. This should be set high enough to reach
                            the target specified in BackgrounReadIOPS.
                          type: integer
                        backgroundWriteIOPS:
                          description: |-
                            The target write IOPS to run while benchmarking. This is a limit and there is no guarantee
                            it will be reached. This is the total IOPS for all background write jobs.
                          type: integer
                        backgroundWriteIOPSJobs:
                          description: |-
                            Number of threads to use for background write IOPS. This should be set high enough to reach
                            the target specified in BackgroundWriteIOPS.
                            Example: If BackgroundWriteIOPS is 100 and write latency is 10ms then a single job would
                            barely be able to reach 100 IOPS so this should be at least 2.
                          type: integer
                        collectorName:
                          type: string
                        datasync:
                          description: |-
                            Whether to call datasync on the file after each write. Skipped if Sync is also true. Does not
                            apply to background IOPS task.
                          type: boolean
                        directory:
                          description: The directory where the benchmark will create
                            files.
                          type: string
                        enableBackgroundIOPS:
                          description: Enable the background IOPS feature.
                          type: boolean
                        exclude:
                          type: BoolString
                        fileSize:
                          description: |-
                            The size of the file used in the benchmark. The number of IO operations for the benchmark
                            will be FileSize / OperationSizeBytes. Accepts valid Kubernetes resource units such as Mi.
                          type: string
                        operationSize:
                          description: |-
                            The size of each write operation performed while benchmarking. This does not apply to the
                            background IOPS feature if enabled, since those must be fixed at 4096.
                          format: int64
                          type: integer
                        sync:
                          description: Whether to call sync on the file after each
                            write. Does not apply to background IOPS task.
                          type: boolean
                        timeout:
                          description: Total timeout, including background IOPS setup
                            and warmup if enabled.
                          type: string
                      required:
                      - backgroundIOPSWarmupSeconds
                      - backgroundReadIOPS
                      - backgroundReadIOPSJobs
                      - backgroundWriteIOPS
                      - backgroundWriteIOPSJobs
                      - enableBackgroundIOPS
                      type: object
                    hostOS:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    hostServices:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    http:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        get:
                          properties:
                            headers:
                              additionalProperties:
                                type: string
                              type: object
                            insecureSkipVerify:
                              type: boolean
                            timeout:
                              description: |-
                                Timeout is the time to wait for a server's response. Its a duration e.g 15s, 2h30m.
                                Missing value or empty string or means no timeout.
                              type: string
                            url:
                              type: string
                          required:
                          - url
                          type: object
                        post:
                          properties:
                            body:
                              type: string
                            headers:
                              additionalProperties:
                                type: string
                              type: object
                            insecureSkipVerify:
                              type: boolean
                            timeout:
                              description: |-
                                Timeout is the time to wait for a server's response. Its a duration e.g 15s, 2h30m.
                                Missing value or empty string or means no timeout.
                              type: string
                            url:
                              type: string
                          required:
                          - url
                          type: object
                        put:
                          properties:
                            body:
                              type: string
                            headers:
                              additionalProperties:
                                type: string
                              type: object
                            insecureSkipVerify:
                              type: boolean
                            timeout:
                              description: |-
                                Timeout is the time to wait for a server's response. Its a duration e.g 15s, 2h30m.
                                Missing value or empty string or means no timeout.
                              type: string
                            url:
                              type: string
                          required:
                          - url
                          type: object
                      type: object
                    httpLoadBalancer:
                      properties:
                        address:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        path:
                          type: string
                        port:
                          type: integer
                        timeout:
                          type: string
                      required:
                      - address
                      - path
                      - port
                      type: object
                    ipv4Interfaces:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    kernelConfigs:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    kernelModules:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    kubernetes:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    memory:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    run:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                        collectorName:
                          type: string
                        command:
                          type: string
                        env:
                          items:
                            type: string
                          type: array
                        exclude:
                          type: BoolString
                        ignoreParentEnvs:
                          type: boolean
                        inheritEnvs:
                          items:
                            type: string
                          type: array
                        input:
                          additionalProperties:
                            type: string
                          type: object
                        outputDir:
                          type: string
                        timeout:
                          type: string
                      required:
                      - args
                      - command
                      type: object
                    subnetAvailable:
                      properties:
                        CIDRRangeAlloc:
                          type: string
                        collectorName:
                          type: string
                        desiredCIDR:
                          type: integer
                        exclude:
                          type: BoolString
                      required:
                      - CIDRRangeAlloc
                      - desiredCIDR
                      type: object
                    systemPackages:
                      properties:
                        amzn:
                          items:
                            type: string
                          type: array
                        amzn2:
                          items:
                            type: string
                          type: array
                        centos:
                          items:
                            type: string
                          type: array
                        centos7:
                          items:
                            type: string
                          type: array
                        centos8:
                          items:
                            type: string
                          type: array
                        centos9:
                          items:
                            type: string
                          type: array
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        ol:
                          items:
                            type: string
                          type: array
                        ol7:
                          items:
                            type: string
                          type: array
                        ol8:
                          items:
                            type: string
                          type: array
                        ol9:
                          items:
                            type: string
                          type: array
                        rhel:
                          items:
                            type: string
                          type: array
                        rhel7:
                          items:
                            type: string
                          type: array
                        rhel8:
                          items:
                            type: string
                          type: array
                        rhel9:
                          items:
                            type: string
                          type: array
                        rocky:
                          items:
                            type: string
                          type: array
                        rocky8:
                          items:
                            type: string
                          type: array
                        rocky9:
                          items:
                            type: string
                          type: array
                        ubuntu:
                          items:
                            type: string
                          type: array
                        ubuntu16:
                          items:
                            type: string
                          type: array
                        ubuntu18:
                          items:
                            type: string
                          type: array
                        ubuntu20:
                          items:
                            type: string
                          type: array
                      type: object
                    tcpConnect:
                      properties:
                        address:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        timeout:
                          type: string
                      required:
                      - address
                      type: object
                    tcpLoadBalancer:
                      properties:
                        address:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        port:
                          type: integer
                        timeout:
                          type: string
                      required:
                      - address
                      - port
                      type: object
                    tcpPortStatus:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        interface:
                          type: string
                        port:
                          type: integer
                      required:
                      - port
                      type: object
                    time:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    udpPortStatus:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        interface:
                          type: string
                        port:
                          type: integer
                      required:
                      - port
                      type: object
                  type: object
                type: array
              remoteCollectors:
                items:
                  properties:
                    blockDevices:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    certificate:
                      properties:
                        certificatePath:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        keyPath:
                          type: string
                      required:
                      - certificatePath
                      - keyPath
                      type: object
                    cpu:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    diskUsage:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        path:
                          type: string
                      required:
                      - path
                      type: object
                    filesystemPerformance:
                      description: |-
                        RemoteFilesystemPerformance benchmarks sequential write latency on a single file.
                        The optional background IOPS feature attempts to mimic real-world conditions by running read and
                        write workloads prior to and during benchmark execution.
                      properties:
                        backgroundIOPSWarmupSeconds:
                          description: How long to run the background IOPS read and
                            write workloads prior to starting the benchmarks.
                          type: integer
                        backgroundReadIOPS:
                          description: |-
                            The target read IOPS to run while benchmarking. This is a limit and there is no guarantee
                            it will be reached. This is the total IOPS for all background read jobs.
                          type: integer
                        backgroundReadIOPSJobs:
                          description: |-
                            Number of threads to use for background read IOPS. This should be set high enough to reach
                            the target specified in BackgrounReadIOPS.
                          type: integer
                        backgroundWriteIOPS:
                          description: |-
                            The target write IOPS to run while benchmarking. This is a limit and there is no guarantee
                            it will be reached. This is the total IOPS for all background write jobs.
                          type: integer
                        backgroundWriteIOPSJobs:
                          description: |-
                            Number of threads to use for background write IOPS. This should be set high enough to reach
                            the target specified in BackgroundWriteIOPS.
                            Example: If BackgroundWriteIOPS is 100 and write latency is 10ms then a single job would
                            barely be able to reach 100 IOPS so this should be at least 2.
                          type: integer
                        collectorName:
                          type: string
                        datasync:
                          description: |-
                            Whether to call datasync on the file after each write. Skipped if Sync is also true. Does not
                            apply to background IOPS task.
                          type: boolean
                        directory:
                          description: The directory where the benchmark will create
                            files.
                          type: string
                        enableBackgroundIOPS:
                          description: Enable the background IOPS feature.
                          type: boolean
                        exclude:
                          type: BoolString
                        fileSize:
                          description: |-
                            The size of the file used in the benchmark. The number of IO operations for the benchmark
                            will be FileSize / OperationSizeBytes. Accepts valid Kubernetes resource units such as Mi.
                          type: string
                        operationSize:
                          description: |-
                            The size of each write operation performed while benchmarking. This does not apply to the
                            background IOPS feature if enabled, since those must be fixed at 4096.
                          format: int64
                          type: integer
                        sync:
                          description: Whether to call sync on the file after each
                            write. Does not apply to background IOPS task.
                          type: boolean
                        timeout:
                          description: Total timeout, including background IOPS setup
                            and warmup if enabled.
                          type: string
                      required:
                      - backgroundIOPSWarmupSeconds
                      - backgroundReadIOPS
                      - backgroundReadIOPSJobs
                      - backgroundWriteIOPS
                      - backgroundWriteIOPSJobs
                      - enableBackgroundIOPS
                      type: object
                    hostServices:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    http:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        get:
                          properties:
                            headers:
                              additionalProperties:
                                type: string
                              type: object
                            insecureSkipVerify:
                              type: boolean
                            timeout:
                              description: |-
                                Timeout is the time to wait for a server's response. Its a duration e.g 15s, 2h30m.
                                Missing value or empty string or means no timeout.
                              type: string
                            url:
                              type: string
                          required:
                          - url
                          type: object
                        post:
                          properties:
                            body:
                              type: string
                            headers:
                              additionalProperties:
                                type: string
                              type: object
                            insecureSkipVerify:
                              type: boolean
                            timeout:
                              description: |-
                                Timeout is the time to wait for a server's response. Its a duration e.g 15s, 2h30m.
                                Missing value or empty string or means no timeout.
                              type: string
                            url:
                              type: string
                          required:
                          - url
                          type: object
                        put:
                          properties:
                            body:
                              type: string
                            headers:
                              additionalProperties:
                                type: string
                              type: object
                            insecureSkipVerify:
                              type: boolean
                            timeout:
                              description: |-
                                Timeout is the time to wait for a server's response. Its a duration e.g 15s, 2h30m.
                                Missing value or empty string or means no timeout.
                              type: string
                            url:
                              type: string
                          required:
                          - url
                          type: object
                      type: object
                    httpLoadBalancer:
                      properties:
                        address:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        path:
                          type: string
                        port:
                          type: integer
                        timeout:
                          type: string
                      required:
                      - address
                      - path
                      - port
                      type: object
                    ipv4Interfaces:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    kernelModules:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    memory:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    subnetAvailable:
                      properties:
                        CIDRRangeAlloc:
                          type: string
                        collectorName:
                          type: string
                        desiredCIDR:
                          type: integer
                        exclude:
                          type: BoolString
                      required:
                      - CIDRRangeAlloc
                      - desiredCIDR
                      type: object
                    systemPackages:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    tcpConnect:
                      properties:
                        address:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        timeout:
                          type: string
                      required:
                      - address
                      type: object
                    tcpLoadBalancer:
                      properties:
                        address:
                          type: string
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        port:
                          type: integer
                        timeout:
                          type: string
                      required:
                      - address
                      - port
                      type: object
                    tcpPortStatus:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        interface:
                          type: string
                        port:
                          type: integer
                      required:
                      - port
                      type: object
                    time:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                      type: object
                    udpPortStatus:
                      properties:
                        collectorName:
                          type: string
                        exclude:
                          type: BoolString
                        interface:
                          type: string
                        port:
                          type: integer
                      required:
                      - port
                      type: object
                  type: object
                type: array
              uri:
                type: string
            type: object
          status:
            description: HostPreflightStatus defines the observed state of HostPreflight
            type: object
        type: object
    served: true
    storage: true
