config/crd/bases/networking.fleet.azure.com_trafficmanagerbackends.yaml (441 lines of code) (raw):
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.0
name: trafficmanagerbackends.networking.fleet.azure.com
spec:
group: networking.fleet.azure.com
names:
categories:
- fleet-networking
kind: TrafficManagerBackend
listKind: TrafficManagerBackendList
plural: trafficmanagerbackends
shortNames:
- tmb
singular: trafficmanagerbackend
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.profile.name
name: Profile
type: string
- jsonPath: .spec.backend.name
name: Backend
type: string
- jsonPath: .status.conditions[?(@.type=='Accepted')].status
name: Is-Accepted
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: |-
TrafficManagerBackend is used to manage the Azure Traffic Manager Endpoints using cloud native way.
A backend contains one or more endpoints. Therefore, the controller may create multiple endpoints under the Traffic
Manager Profile.
https://learn.microsoft.com/en-us/azure/traffic-manager/traffic-manager-endpoint-types
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: The desired state of TrafficManagerBackend.
properties:
backend:
description: The reference to a backend.
properties:
name:
description: Name is the reference to the ServiceImport in the
same namespace as the TrafficManagerBackend object.
type: string
required:
- name
type: object
x-kubernetes-validations:
- message: spec.backend is immutable
rule: self == oldSelf
profile:
description: Which TrafficManagerProfile the backend should be attached
to.
properties:
name:
description: Name is the name of the referenced trafficManagerProfile.
type: string
required:
- name
type: object
x-kubernetes-validations:
- message: spec.profile is immutable
rule: self == oldSelf
weight:
default: 1
description: |-
The total weight of endpoints behind the serviceImport when using the 'Weighted' traffic routing method.
Possible values are from 0 to 1000.
By default, the routing method is 'Weighted'.
If weight is set to 0, all the endpoints behind the serviceImport will be removed from the profile.
The actual weight of each endpoint is the ceiling value of a number computed as weight/(sum of all weights behind the serviceImport)
* weight of serviceExport.
For example, if the weight is 500 and there are two serviceExports from cluster-1 (weight: 100) and cluster-2 (weight: 200)
behind serviceImport.
As a result, two endpoints will be created.
The weight of endpoint from cluster-1 is 100/(100+200)*500 = 167, and the weight of cluster-2 is 200/(100+200)*500 = 334.
There may be slight deviations from the exact proportions defined in the serviceExports due to ceiling calculations.
format: int64
maximum: 1000
minimum: 0
type: integer
required:
- backend
- profile
type: object
status:
description: The observed status of TrafficManagerBackend.
properties:
conditions:
description: Current backend status.
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
x-kubernetes-list-map-keys:
- type
x-kubernetes-list-type: map
endpoints:
description: Endpoints contains a list of accepted Azure endpoints
which are created or updated under the traffic manager Profile.
items:
description: |-
TrafficManagerEndpointStatus is the status of Azure Traffic Manager endpoint which is successfully accepted under the traffic
manager Profile.
properties:
from:
description: From is where the endpoint is exported from.
properties:
cluster:
description: cluster is the name of the exporting cluster.
Must be a valid RFC-1123 DNS label.
type: string
weight:
description: |-
Weight defines the weight configured in the serviceExport from the source cluster.
Possible values are from 0 to 1000.
format: int64
type: integer
required:
- cluster
type: object
name:
description: Name of the endpoint.
type: string
resourceID:
description: |-
ResourceID is the fully qualified Azure resource Id for the resource.
Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}/azureEndpoints/{name}
type: string
target:
description: The fully-qualified DNS name or IP address of the
endpoint.
type: string
weight:
description: |-
The weight of this endpoint when using the 'Weighted' traffic routing method.
Possible values are from 0 to 1000.
format: int64
type: integer
required:
- name
type: object
type: array
type: object
required:
- spec
type: object
x-kubernetes-validations:
- message: metadata.name max length is 63
rule: size(self.metadata.name) < 64
served: true
storage: false
subresources:
status: {}
- additionalPrinterColumns:
- jsonPath: .spec.profile.name
name: Profile
type: string
- jsonPath: .spec.backend.name
name: Backend
type: string
- jsonPath: .status.conditions[?(@.type=='Accepted')].status
name: Is-Accepted
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1beta1
schema:
openAPIV3Schema:
description: |-
TrafficManagerBackend is used to manage the Azure Traffic Manager Endpoints using cloud native way.
A backend contains one or more endpoints. Therefore, the controller may create multiple endpoints under the Traffic
Manager Profile.
https://learn.microsoft.com/en-us/azure/traffic-manager/traffic-manager-endpoint-types
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: The desired state of TrafficManagerBackend.
properties:
backend:
description: The reference to a backend.
properties:
name:
description: Name is the reference to the ServiceImport in the
same namespace as the TrafficManagerBackend object.
type: string
required:
- name
type: object
x-kubernetes-validations:
- message: spec.backend is immutable
rule: self == oldSelf
profile:
description: Which TrafficManagerProfile the backend should be attached
to.
properties:
name:
description: Name is the name of the referenced trafficManagerProfile.
type: string
required:
- name
type: object
x-kubernetes-validations:
- message: spec.profile is immutable
rule: self == oldSelf
weight:
default: 1
description: |-
The total weight of endpoints behind the serviceImport when using the 'Weighted' traffic routing method.
Possible values are from 0 to 1000.
By default, the routing method is 'Weighted'.
If weight is set to 0, all the endpoints behind the serviceImport will be removed from the profile.
The actual weight of each endpoint is the ceiling value of a number computed as weight/(sum of all weights behind the serviceImport)
* weight of serviceExport.
For example, if the weight is 500 and there are two serviceExports from cluster-1 (weight: 100) and cluster-2 (weight: 200)
behind serviceImport.
As a result, two endpoints will be created.
The weight of endpoint from cluster-1 is 100/(100+200)*500 = 167, and the weight of cluster-2 is 200/(100+200)*500 = 334.
There may be slight deviations from the exact proportions defined in the serviceExports due to ceiling calculations.
format: int64
maximum: 1000
minimum: 0
type: integer
required:
- backend
- profile
type: object
status:
description: The observed status of TrafficManagerBackend.
properties:
conditions:
description: Current backend status.
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
x-kubernetes-list-map-keys:
- type
x-kubernetes-list-type: map
endpoints:
description: Endpoints contains a list of accepted Azure endpoints
which are created or updated under the traffic manager Profile.
items:
description: |-
TrafficManagerEndpointStatus is the status of Azure Traffic Manager endpoint which is successfully accepted under the traffic
manager Profile.
properties:
from:
description: From is where the endpoint is exported from.
properties:
cluster:
description: |-
cluster is the name of the exporting cluster. Must be a valid RFC-1123 DNS
label.
type: string
weight:
description: |-
Weight defines the weight configured in the serviceExport from the source cluster.
Possible values are from 0 to 1000.
format: int64
type: integer
required:
- cluster
type: object
name:
description: Name of the endpoint.
type: string
resourceID:
description: |-
ResourceID is the fully qualified Azure resource Id for the resource.
Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}/azureEndpoints/{name}
type: string
target:
description: The fully-qualified DNS name or IP address of the
endpoint.
type: string
weight:
description: |-
The weight of this endpoint when using the 'Weighted' traffic routing method.
Possible values are from 0 to 1000.
format: int64
type: integer
required:
- name
type: object
type: array
type: object
required:
- spec
type: object
x-kubernetes-validations:
- message: metadata.name max length is 63
rule: size(self.metadata.name) < 64
served: true
storage: true
subresources:
status: {}