...

Text file src/github.com/linkerd/linkerd2/charts/linkerd-crds/templates/workload/external-workload.yaml

Documentation: github.com/linkerd/linkerd2/charts/linkerd-crds/templates/workload

     1---
     2apiVersion: apiextensions.k8s.io/v1
     3kind: CustomResourceDefinition
     4metadata:
     5  name: externalworkloads.workload.linkerd.io
     6  annotations:
     7    {{ include "partials.annotations.created-by" . }}
     8  labels:
     9    helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    10    linkerd.io/control-plane-ns: {{.Release.Namespace}}
    11spec:
    12  group: workload.linkerd.io
    13  names:
    14    categories:
    15    - external
    16    kind: ExternalWorkload
    17    listKind: ExternalWorkloadList
    18    plural: externalworkloads
    19    singular: externalworkload
    20    shortNames: []
    21  scope: Namespaced
    22  versions:
    23  - name: v1alpha1
    24    served: true
    25    storage: false
    26    schema:
    27      openAPIV3Schema:
    28        description: >-
    29          An ExternalWorkload describes a single workload (i.e. a deployable unit) external
    30          to the cluster that should be enrolled in the mesh.
    31        type: object
    32        required: [spec]
    33        properties:
    34          apiVerson:
    35            type: string
    36          kind:
    37            type: string
    38          metadata:
    39            type: object
    40          spec:
    41            properties:
    42              meshTls:
    43                description: meshTls describes TLS settings associated with an
    44                  external workload.
    45                properties:
    46                  identity:
    47                    type: string
    48                    description: identity of the workload. Corresponds to the
    49                      identity used in the workload's certificate. It is used
    50                      by peers to perform verification in the mTLS handshake.
    51                    minLength: 1
    52                    maxLength: 253
    53                  serverName:
    54                    type: string
    55                    description: serverName is the name of the workload in DNS
    56                      format. It is used by the workload to terminate TLS using
    57                      SNI.
    58                    minLength: 1
    59                    maxLength: 253
    60                type: object
    61                required:
    62                - identity
    63                - serverName
    64              ports:
    65                type: array
    66                description: ports describes a list of ports exposed by the
    67                  workload
    68                items:
    69                  properties:
    70                    name:
    71                      type: string
    72                      description: name must be an IANA_SVC_NAME and unique
    73                        within the ports set. Each named port can be referred
    74                        to by services.
    75                    port:
    76                      format: int32
    77                      maximum: 65535
    78                      minimum: 1
    79                      type: integer
    80                    protocol:
    81                      description: protocol exposed by the port. Must be UDP or
    82                        TCP. Defaults to TCP.
    83                      type: string
    84                      default: "TCP"
    85                  type: object
    86                  required:
    87                  - port
    88              workloadIPs:
    89                type: array
    90                description: workloadIPs contains a list of IP addresses that
    91                  can be used to send traffic to the workload.
    92                items:
    93                  type: object
    94                  properties:
    95                    ip:
    96                      type: string
    97                # TODO: relax this in the future when ipv6 is supported
    98                # an external workload (like a pod) should only
    99                # support 2 interfaces
   100                maxItems: 1
   101            type: object
   102            required:
   103            - meshTls
   104          status:
   105            type: object
   106            properties:
   107              conditions:
   108                type: array
   109                items:
   110                  type: object
   111                  properties:
   112                    lastProbeTime:
   113                      description: lastProbeTime is the last time the
   114                        healthcheck endpoint was probed.
   115                      format: date-time
   116                      type: string
   117                    lastTransitionTime:
   118                      description: lastTransitionTime is the last time the
   119                        condition transitioned from one status to another.
   120                      format: date-time
   121                      type: string
   122                    status:
   123                      description: status of the condition (one of True, False, Unknown)
   124                      enum:
   125                      - "True"
   126                      - "False"
   127                      - Unknown
   128                      type: string
   129                    type:
   130                      description: type of the condition in CamelCase or in
   131                        foo.example.com/CamelCase.
   132                      maxLength: 316
   133                      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])$
   134                      type: string
   135                    reason:
   136                      description: reason contains a programmatic identifier
   137                        indicating the reason for the condition's last
   138                        transition. Producers of specific condition types may
   139                        define expected values and meanings for this field, and
   140                        whether the values are considered a guaranteed API. The
   141                        value should be a CamelCase string. This field may not
   142                        be empty.
   143                      maxLength: 1024
   144                      minLength: 1
   145                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
   146                      type: string
   147                    message:
   148                      description: message is a human readable message
   149                        indicating details about the transition. This may be an
   150                        empty string.
   151                      maxLength: 32768
   152                      type: string
   153                required:
   154                - status
   155                - type
   156    additionalPrinterColumns:
   157    - jsonPath: .spec.meshTls.identity
   158      name: Identity
   159      type: string
   160    - jsonPath: .metadata.creationTimestamp
   161      name: Age
   162      type: date
   163  - name: v1beta1
   164    served: true
   165    storage: true
   166    subresources:
   167      status: {}
   168    schema:
   169      openAPIV3Schema:
   170        description: >-
   171          An ExternalWorkload describes a single workload (i.e. a deployable unit) external
   172          to the cluster that should be enrolled in the mesh.
   173        type: object
   174        required: [spec]
   175        properties:
   176          apiVerson:
   177            type: string
   178          kind:
   179            type: string
   180          metadata:
   181            type: object
   182          spec:
   183            properties:
   184              meshTLS:
   185                description: meshTLS describes TLS settings associated with an
   186                  external workload.
   187                properties:
   188                  identity:
   189                    type: string
   190                    description: identity of the workload. Corresponds to the
   191                      identity used in the workload's certificate. It is used
   192                      by peers to perform verification in the mTLS handshake.
   193                    minLength: 1
   194                    maxLength: 253
   195                  serverName:
   196                    type: string
   197                    description: serverName is the name of the workload in DNS
   198                      format. It is used by the workload to terminate TLS using
   199                      SNI.
   200                    minLength: 1
   201                    maxLength: 253
   202                type: object
   203                required:
   204                - identity
   205                - serverName
   206              ports:
   207                type: array
   208                description: ports describes a list of ports exposed by the
   209                  workload
   210                items:
   211                  properties:
   212                    name:
   213                      type: string
   214                      description: name must be an IANA_SVC_NAME and unique
   215                        within the ports set. Each named port can be referred
   216                        to by services.
   217                    port:
   218                      format: int32
   219                      maximum: 65535
   220                      minimum: 1
   221                      type: integer
   222                    protocol:
   223                      description: protocol exposed by the port. Must be UDP or
   224                        TCP. Defaults to TCP.
   225                      type: string
   226                      default: "TCP"
   227                  type: object
   228                  required:
   229                  - port
   230              workloadIPs:
   231                type: array
   232                description: workloadIPs contains a list of IP addresses that
   233                  can be used to send traffic to the workload.
   234                items:
   235                  type: object
   236                  properties:
   237                    ip:
   238                      type: string
   239                # TODO: relax this in the future when ipv6 is supported
   240                # an external workload (like a pod) should only
   241                # support 2 interfaces
   242                maxItems: 1
   243            type: object
   244            required:
   245            - meshTLS
   246          status:
   247            type: object
   248            properties:
   249              conditions:
   250                type: array
   251                items:
   252                  type: object
   253                  properties:
   254                    lastProbeTime:
   255                      description: lastProbeTime is the last time the
   256                        healthcheck endpoint was probed.
   257                      format: date-time
   258                      type: string
   259                    lastTransitionTime:
   260                      description: lastTransitionTime is the last time the
   261                        condition transitioned from one status to another.
   262                      format: date-time
   263                      type: string
   264                    status:
   265                      description: status of the condition (one of True, False, Unknown)
   266                      enum:
   267                      - "True"
   268                      - "False"
   269                      - Unknown
   270                      type: string
   271                    type:
   272                      description: type of the condition in CamelCase or in
   273                        foo.example.com/CamelCase.
   274                      maxLength: 316
   275                      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])$
   276                      type: string
   277                    reason:
   278                      description: reason contains a programmatic identifier
   279                        indicating the reason for the condition's last
   280                        transition. Producers of specific condition types may
   281                        define expected values and meanings for this field, and
   282                        whether the values are considered a guaranteed API. The
   283                        value should be a CamelCase string. This field may not
   284                        be empty.
   285                      maxLength: 1024
   286                      minLength: 1
   287                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
   288                      type: string
   289                    message:
   290                      description: message is a human readable message
   291                        indicating details about the transition. This may be an
   292                        empty string.
   293                      maxLength: 32768
   294                      type: string
   295                required:
   296                - status
   297                - type
   298    additionalPrinterColumns:
   299    - jsonPath: .spec.meshTLS.identity
   300      name: Identity
   301      type: string
   302    - jsonPath: .metadata.creationTimestamp
   303      name: Age
   304      type: date

View as plain text