---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.20.0
  name: fluxreports.fluxcd.controlplane.io
spec:
  group: fluxcd.controlplane.io
  names:
    kind: FluxReport
    listKind: FluxReportList
    plural: fluxreports
    singular: fluxreport
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.distribution.entitlement
      name: Entitlement
      priority: 10
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].message
      name: Status
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].lastTransitionTime
      name: LastUpdated
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: FluxReport is the Schema for the fluxreports 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: FluxReportSpec defines the observed state of a Flux installation.
            properties:
              cluster:
                description: Cluster is the version information of the Kubernetes
                  cluster.
                properties:
                  nodes:
                    description: Nodes is the number of nodes in the Kubernetes cluster.
                    type: integer
                  platform:
                    description: Platform is the os/arch of the Kubernetes control
                      plane.
                    type: string
                  serverVersion:
                    description: ServerVersion is the version of the Kubernetes API
                      server.
                    type: string
                required:
                - platform
                - serverVersion
                type: object
              components:
                description: ComponentsStatus is the status of the Flux controller
                  deployments.
                items:
                  description: FluxComponentStatus defines the observed state of a
                    Flux component.
                  properties:
                    image:
                      description: Image is the container image of the Flux component.
                      type: string
                    name:
                      description: Name is the name of the Flux component.
                      type: string
                    ready:
                      description: Ready is the readiness status of the Flux component.
                      type: boolean
                    status:
                      description: |-
                        Status is a human-readable message indicating details
                        about the Flux component observed state.
                      type: string
                  required:
                  - image
                  - name
                  - ready
                  - status
                  type: object
                type: array
              distribution:
                description: Distribution is the version information of the Flux installation.
                properties:
                  entitlement:
                    description: Entitlement is the entitlement verification status.
                    type: string
                  managedBy:
                    description: ManagedBy is the name of the operator managing the
                      Flux instance.
                    type: string
                  status:
                    description: |-
                      Status is a human-readable message indicating details
                      about the distribution observed state.
                    type: string
                  version:
                    description: Version is the version of the Flux instance.
                    type: string
                required:
                - entitlement
                - status
                type: object
              operator:
                description: Operator is the version information of the Flux Operator.
                properties:
                  apiVersion:
                    description: APIVersion is the API version of the Flux Operator.
                    type: string
                  platform:
                    description: Platform is the os/arch of Flux Operator.
                    type: string
                  version:
                    description: Version is the version number of Flux Operator.
                    type: string
                required:
                - apiVersion
                - platform
                - version
                type: object
              reconcilers:
                description: |-
                  ReconcilersStatus is the list of Flux reconcilers and
                  their statistics grouped by API kind.
                items:
                  description: FluxReconcilerStatus defines the observed state of
                    a Flux reconciler.
                  properties:
                    apiVersion:
                      description: APIVersion is the API version of the Flux resource.
                      type: string
                    kind:
                      description: Kind is the kind of the Flux resource.
                      type: string
                    stats:
                      description: Stats is the reconcile statics of the Flux resource
                        kind.
                      properties:
                        failing:
                          description: |-
                            Failing is the number of reconciled
                            resources in the Failing state and not Suspended.
                          type: integer
                        running:
                          description: |-
                            Running is the number of reconciled
                            resources in the Running state.
                          type: integer
                        suspended:
                          description: |-
                            Suspended is the number of reconciled
                            resources in the Suspended state.
                          type: integer
                        totalSize:
                          description: TotalSize is the total size of the artifacts
                            in storage.
                          type: string
                      required:
                      - failing
                      - running
                      - suspended
                      type: object
                  required:
                  - apiVersion
                  - kind
                  type: object
                type: array
              sync:
                description: |-
                  SyncStatus is the status of the cluster sync
                  Source and Kustomization resources.
                properties:
                  id:
                    description: ID is the identifier of the sync.
                    type: string
                  path:
                    description: Path is the kustomize path of the sync.
                    type: string
                  ready:
                    description: Ready is the readiness status of the sync.
                    type: boolean
                  source:
                    description: Source is the URL of the source repository.
                    type: string
                  status:
                    description: |-
                      Status is a human-readable message indicating details
                      about the sync observed state.
                    type: string
                required:
                - id
                - ready
                - status
                type: object
            required:
            - distribution
            type: object
          status:
            description: FluxReportStatus defines the readiness of a FluxReport.
            properties:
              conditions:
                description: Conditions contains the readiness conditions of the object.
                items:
                  description: Condition contains details for one aspect of the current
                    state of this API Resource.
                  properties:
                    lastTransitionTime:
                      description: |-
                        lastTransitionTime is the last time the condition transitioned from one status to another.
                        This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: |-
                        message is a human readable message indicating details about the transition.
                        This may be an empty string.
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      description: |-
                        observedGeneration represents the .metadata.generation that the condition was set based upon.
                        For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
                        with respect to the current state of the instance.
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      description: |-
                        reason contains a programmatic identifier indicating the reason for the condition's last transition.
                        Producers of specific condition types may define expected values and meanings for this field,
                        and whether the values are considered a guaranteed API.
                        The value should be a CamelCase string.
                        This field may not be empty.
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      description: status of the condition, one of True, False, Unknown.
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
                      maxLength: 316
                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                      type: string
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
              lastHandledReconcileAt:
                description: |-
                  LastHandledReconcileAt holds the value of the most recent
                  reconcile request value, so a change of the annotation value
                  can be detected.
                type: string
            type: object
        type: object
        x-kubernetes-validations:
        - message: the only accepted name for a FluxReport is 'flux'
          rule: self.metadata.name == 'flux'
    served: true
    storage: true
    subresources:
      status: {}
