Reports

Note

The Report resource is in developer preview and a number of breaking changes to the resource API schema may happen in subsequent releases.

Report

A Report API resource captures information about the state of the system at the time the report was generated as well as select metrics collected from the Veeam Kasten Prometheus service. A Report is produced by a ReportAction when Veeam Kasten Reports are enabled.

Enabling and viewing Reports in the Veeam Kasten dashboard or with the API are discussed more fully in Reporting.

Report API Type

The following is a complete specification of the Report resource.

# Standard Kubernetes API Version declaration. Required.
apiVersion: reporting.kio.kasten.io/v1alpha1
# Standard Kubernetes Kind declaration. Required.
kind: Report
# Standard Kubernetes metadata. Required.
metadata:
  # Name of the Report. Required.
  name: scheduled-45cfn-qwmcw
  # Namespace of the Report. Required.
  namespace: kasten-io
# Report parameters from ReportAction
spec:
  # Time of Report generation
  reportTimestamp: '2021-10-20T00:00:00Z'
  # Query Interval for Prometheus metrics in Report
  statsIntervalDays: 1
  statsIntervalHours: 0
  statsIntervalStartTimestamp: '2021-10-19T00:00:00Z'
  statsIntervalEndTimestamp: '2021-10-20T00:00:00Z'
# Results contains captured system information.
results:
  # General system information
  general:
    # Veeam Kasten version
    k10Version: '4.5'
    # Veeam Kasten namespace. Optional.
    k10Namespace: kasten-io
    # Kubenetes version
    k8sVersion: '1.21'
    # Cluster identifier. Optional.
    clusterId: sample-cluster-ID
    # Cluster region. Optional.
    clusterRegion: sample-cluster-region
    # Cluster name when multi-cluster was configured. Optional.
    clusterName: sample-cluster
    # Infrastructure type
    infraType:
      # Cloud provider. Possible values: azure, aws, gcp, unknown. Optional.
      provider: aws
      # Whether the cluster is built with the use of Red Hat® OpenShift®
      isOpenShift: false
    # Indicates the type of authentication. Possible values: basic, oidc, token, none. Optional.
    authType: oidc
    # AWS information. For AWS clusters only. Optional.
    aws:
      # AWS IAM role. Optional.
      role: 'arn:aws:iam::123456789012:role/adminrole'

  # Licensing information
  licensing:
    # License type
    type: Enterprise
    # License expiry
    expiry: '0000-00-00T00:00:00Z'
    # Nodes in use
    nodeCount: 199
    # Maximum licensed nodes
    nodeLimit: 220
    # License status
    status: Valid
  # Veeam Kasten Action metrics from Prometheus. Optional.
  actions:
    # Action count stats from Prometheus
    countStats:
      backup:
        completed:
        failed:
        cancelled:
        skipped:
      backupCluster:
        ...
      export:
        ...
      import:
        ...
      report:
        ...
      restore:
        ...
      restoreCluster:
        ...
      run:
        ...
  # Policy information
  polices:
    # Veeam Kasten Disaster Recovery policy information
    k10DR:
      status: Enabled
      backupFrequency: '@hourly'
      immutability:
        protection: Enabled
        protectionDays: 30
      profile: my-k10-dr-profile
    # Policy summary information
    summaries:
      - name: policy1
        namespace: kasten-io
        actions:
          - backup
        frequency: '@hourly'
        profileNames:
        paused: true
        validation: Success
      - name: policy2
        namespace: basic-user-app
        actions:
          - backup
            export
        frequency: '@daily'
        profileNames: basic-user-profile
        validation: Success
  # Profile information
  profiles:
    # Profile summary information
    summaries:
      - name: my-k10-dr-profile
        type: Location
        validation: Success
        # SSL verification status, if applicable.
        sslVerification: Verify | SkipVerification
        # Profile setting forces infraportable data export, if applicable.
        dataPortability: Enabled | omitted
        # Immutability
        immutability:
          protection: Enabled
          protectionDays: 30
        # Object store type, if applicable.
        objectStoreType: S3
        region: sample-region
        bucket: sample-bucket
        # Endpoint, if not default.
        endpoint:
        # NFS location profile details
        claimName:
        path:
        # VBR server profile details
        vbrServer:
        vbrPort:
        vbrRepoName:
      - name: basic-user-profile
        type: Location
        validation: Success
        sslVerification: Verify
        immutability:
          protection: Disabled
          protectionDays: 0
        # Object store type, if applicable.
        objectStoreType: S3
        region: sample-region
        bucket: basic-user-bucket
  # Compliance information
  compliance:
    # Loading indicates compliance data not available. Omitted if false.
    loading:
    # Count of total applications on system
    applicationCount: 25
    # Count of compliant applications on system
    compliantCount: 11
    # Count of non-compliant applications on system
    nonCompliantCount: 2
    # Count of unmanaged applications on system
    unmanagedCount: 12
    # Names of up to 10 non-compliant applications. Optional.
    someNonCompliantApps:
      - name: non-compliant-app-1
      - name: non-compliant-app-2
  # Storage information
  storage:
    # Snapshot information
    snapshotStorage:
      count: 243
      logicalBytes: 275951648768
      physicalBytes: 63568035264
      freedBytes: # Optional
    # Objectstore backup information
    objectStorage:
      count: 805
      logicalBytes: 392624800
      physicalBytes: 378777373
      freedBytes: # Optional
    pvcStats:
      pvcCount: 5
      pvcBytes: 35433480192
  # Veeam Kasten services information from Prometheus. Optional.
  k10Services:
  - diskUsage:
      freeBytes: 13789057024
      freePercentage: 65
      usedBytes: 7214526464
    name: logging
  - diskUsage:
      freeBytes: 20267335680
      freePercentage: 96
      usedBytes: 736247808
    name: catalog
  - diskUsage:
      freeBytes: 20228878336
      freePercentage: 96
      usedBytes: 774705152
    name: jobs

Retiring Reports

By default the reports are not retired. To set up a retention count, update the policy spec to include the desired value:

kind: Policy
apiVersion: config.kio.kasten.io/v1alpha1
metadata:
# ... metadata fields ...
spec:
  # Optional retention section can only have one child field: hourly, daily, weekly, monthly or yearly.
  # It also must correspond to the policy frequency (i.e. "@hourly" frequency must use hourly
  # retention field).
  retention:
    # Number of the reports to keep (the oldest ones will be deleted).
    # Note: only automated reports will be deleted. Any report that was created
    # by a manual policy run or that was injected manually will be preserved.
    daily: 2
  # ... other spec fields ...