apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    api-approved.openshift.io: https://github.com/openshift/api/pull/481
    description: ConsoleExternalLogLink is an extension for customizing OpenShift
      web console log links.
    displayName: ConsoleExternalLogLinks
    include.release.openshift.io/ibm-cloud-managed: "true"
    include.release.openshift.io/self-managed-high-availability: "true"
    include.release.openshift.io/single-node-developer: "true"
  name: consoleexternalloglinks.console.openshift.io
spec:
  group: console.openshift.io
  names:
    kind: ConsoleExternalLogLink
    listKind: ConsoleExternalLogLinkList
    plural: consoleexternalloglinks
    singular: consoleexternalloglink
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.text
      name: Text
      type: string
    - jsonPath: .spec.hrefTemplate
      name: HrefTemplate
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: ConsoleExternalLogLink is an extension for customizing OpenShift
          web console log links.
        type: object
        required:
        - spec
        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: ConsoleExternalLogLinkSpec is the desired log link configuration.
              The log link will appear on the logs tab of the pod details page.
            type: object
            required:
            - hrefTemplate
            - text
            properties:
              hrefTemplate:
                description: "hrefTemplate is an absolute secure URL (must use https)
                  for the log link including variables to be replaced. Variables are
                  specified in the URL with the format ${variableName}, for instance,
                  ${containerName} and will be replaced with the corresponding values
                  from the resource. Resource is a pod. Supported variables are: -
                  ${resourceName} - name of the resource which containes the logs
                  - ${resourceUID} - UID of the resource which contains the logs               -
                  e.g. `11111111-2222-3333-4444-555555555555` - ${containerName} -
                  name of the resource's container that contains the logs - ${resourceNamespace}
                  - namespace of the resource that contains the logs - ${resourceNamespaceUID}
                  - namespace UID of the resource that contains the logs - ${podLabels}
                  - JSON representation of labels matching the pod with the logs             -
                  e.g. `{\"key1\":\"value1\",\"key2\":\"value2\"}` \n e.g., https://example.com/logs?resourceName=${resourceName}&containerName=${containerName}&resourceNamespace=${resourceNamespace}&podLabels=${podLabels}"
                type: string
                pattern: ^https://
              namespaceFilter:
                description: namespaceFilter is a regular expression used to restrict
                  a log link to a matching set of namespaces (e.g., `^openshift-`).
                  The string is converted into a regular expression using the JavaScript
                  RegExp constructor. If not specified, links will be displayed for
                  all the namespaces.
                type: string
              text:
                description: text is the display text for the link
                type: string
    served: true
    storage: true
    subresources:
      status: {}
