From e60ec8c907885791a2681cba896489a645da1e04 Mon Sep 17 00:00:00 2001 From: John Howard Date: Mon, 9 Sep 2024 14:58:28 -0700 Subject: [PATCH] Codify labels and annotations that have been added directly to istio/istio Fixes https://github.com/istio/istio/issues/43437 --- annotation/annotations.gen.go | 85 ++++++++++++++- annotation/annotations.pb.html | 23 ++++ annotation/annotations.yaml | 52 ++++++++- label/labels.gen.go | 160 ++++++++++++++++++++++++++- label/labels.pb.html | 190 +++++++++++++++++++++++++++++++++ label/labels.yaml | 95 +++++++++++++++++ 6 files changed, 597 insertions(+), 8 deletions(-) diff --git a/annotation/annotations.gen.go b/annotation/annotations.gen.go index 3d3b4f895a..bd42fb19ef 100644 --- a/annotation/annotations.gen.go +++ b/annotation/annotations.gen.go @@ -29,6 +29,8 @@ const ( Unknown ResourceTypes = iota Any AuthorizationPolicy + Gateway + GatewayClass Ingress Namespace Pod @@ -43,14 +45,18 @@ func (r ResourceTypes) String() string { case 2: return "AuthorizationPolicy" case 3: - return "Ingress" + return "Gateway" case 4: - return "Namespace" + return "GatewayClass" case 5: - return "Pod" + return "Ingress" case 6: - return "Service" + return "Namespace" case 7: + return "Pod" + case 8: + return "Service" + case 9: return "WorkloadEntry" } return "Unknown" @@ -114,6 +120,34 @@ var ( }, } + AmbientRedirection = Instance { + Name: "ambient.istio.io/redirection", + Description: `Automatically configured by Istio to indicate a Pod was successfully enrolled in ambient mode. +This shows the actual state; to specify intent that a workload should be in ambient mode, see "istio.io/dataplane-mode".`, + FeatureStatus: Beta, + Hidden: false, + Deprecated: false, + Resources: []ResourceTypes{ + Pod, + }, + } + + AmbientWaypointInboundBinding = Instance { + Name: "ambient.istio.io/waypoint-inbound-binding", + Description: `When set on a waypoint (either by its specific "Gateway", or for the entire collection on the "GatewayClass"), +indicates how traffic should be sent to the waypoint. If unset, traffic will be sent to the waypoint as HBONE directly. + +This takes the format: "" or "/". +`, + FeatureStatus: Alpha, + Hidden: true, + Deprecated: false, + Resources: []ResourceTypes{ + GatewayClass, + Gateway, + }, + } + GalleyAnalyzeSuppress = Instance { Name: "galley.istio.io/analyze-suppress", Description: "A comma separated list of configuration analysis message "+ @@ -144,6 +178,30 @@ var ( }, } + GatewayNameOverride = Instance { + Name: "gateway.istio.io/name-override", + Description: `Overrides the name of the generated "Deployment" and "Service" resource when using [Gateway auto-deployment](/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment) +`, + FeatureStatus: Alpha, + Hidden: true, + Deprecated: false, + Resources: []ResourceTypes{ + Gateway, + }, + } + + GatewayServiceAccount = Instance { + Name: "gateway.istio.io/service-account", + Description: `Overrides the name of the generated "ServiceAccount" resource when using [Gateway auto-deployment](/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment) +`, + FeatureStatus: Alpha, + Hidden: true, + Deprecated: false, + Resources: []ResourceTypes{ + Gateway, + }, + } + InjectTemplates = Instance { Name: "inject.istio.io/templates", Description: "The name of the inject template(s) to use, as a comma "+ @@ -296,6 +354,18 @@ var ( }, } + NetworkingServiceType = Instance { + Name: "networking.istio.io/service-type", + Description: `Overrides the type of the generated "Service" resource when using [Gateway auto-deployment](/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment) +`, + FeatureStatus: Alpha, + Hidden: true, + Deprecated: false, + Resources: []ResourceTypes{ + Gateway, + }, + } + PrometheusMergeMetrics = Instance { Name: "prometheus.istio.io/merge-metrics", Description: "Specifies if application Prometheus metric will be merged "+ @@ -829,8 +899,12 @@ func AllResourceAnnotations() []*Instance { &AlphaCanonicalServiceAccounts, &AlphaIdentity, &AlphaKubernetesServiceAccounts, + &AmbientRedirection, + &AmbientWaypointInboundBinding, &GalleyAnalyzeSuppress, &GatewayControllerVersion, + &GatewayNameOverride, + &GatewayServiceAccount, &InjectTemplates, &OperatorInstallChartOwner, &OperatorInstallOwnerGeneration, @@ -843,6 +917,7 @@ func AllResourceAnnotations() []*Instance { &IoIstioWorkloadController, &IoKubernetesIngressClass, &NetworkingExportTo, + &NetworkingServiceType, &PrometheusMergeMetrics, &ProxyConfig, &ProxyOverrides, @@ -892,6 +967,8 @@ func AllResourceTypes() []string { return []string { "Any", "AuthorizationPolicy", + "Gateway", + "GatewayClass", "Ingress", "Namespace", "Pod", diff --git a/annotation/annotations.pb.html b/annotation/annotations.pb.html index 7b1fedf218..f97053a598 100644 --- a/annotation/annotations.pb.html +++ b/annotation/annotations.pb.html @@ -9,6 +9,29 @@ This page presents the various resource annotations that Istio supports to control its behavior.

+

ambient.istio.io/redirection

+ + + + + + + + + + + + + + + + + + + +
Nameambient.istio.io/redirection
Feature StatusBeta
Resource Types[Pod]
Description

Automatically configured by Istio to indicate a Pod was successfully enrolled in ambient mode. +This shows the actual state; to specify intent that a workload should be in ambient mode, see istio.io/dataplane-mode.

+

galley.istio.io/analyze-suppress

diff --git a/annotation/annotations.yaml b/annotation/annotations.yaml index a2de944b44..8304014c9a 100644 --- a/annotation/annotations.yaml +++ b/annotation/annotations.yaml @@ -529,4 +529,54 @@ annotations: deprecated: false hidden: true resources: - - Any \ No newline at end of file + - Any + + - name: ambient.istio.io/redirection + featureStatus: Beta + description: |- + Automatically configured by Istio to indicate a Pod was successfully enrolled in ambient mode. + This shows the actual state; to specify intent that a workload should be in ambient mode, see `istio.io/dataplane-mode`. + deprecated: false + hidden: false + resources: + - Pod + + - name: ambient.istio.io/waypoint-inbound-binding + featureStatus: Alpha + description: | + When set on a waypoint (either by its specific `Gateway`, or for the entire collection on the `GatewayClass`), + indicates how traffic should be sent to the waypoint. If unset, traffic will be sent to the waypoint as HBONE directly. + + This takes the format: `` or `/`. + deprecated: false + hidden: true + resources: + - GatewayClass + - Gateway + + - name: gateway.istio.io/service-account + featureStatus: Alpha + description: | + Overrides the name of the generated `ServiceAccount` resource when using [Gateway auto-deployment](/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment) + deprecated: false + hidden: true + resources: + - Gateway + + - name: gateway.istio.io/name-override + featureStatus: Alpha + description: | + Overrides the name of the generated `Deployment` and `Service` resource when using [Gateway auto-deployment](/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment) + deprecated: false + hidden: true + resources: + - Gateway + + - name: networking.istio.io/service-type + featureStatus: Alpha + description: | + Overrides the type of the generated `Service` resource when using [Gateway auto-deployment](/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment) + deprecated: false + hidden: true + resources: + - Gateway diff --git a/label/labels.gen.go b/label/labels.gen.go index eec8952303..48b3223e2a 100644 --- a/label/labels.gen.go +++ b/label/labels.gen.go @@ -28,10 +28,15 @@ type ResourceTypes int const ( Unknown ResourceTypes = iota Any + Deployment + Gateway + GatewayClass Namespace Node Pod Service + ServiceAccount + ServiceEntry ) func (r ResourceTypes) String() string { @@ -39,13 +44,23 @@ func (r ResourceTypes) String() string { case 1: return "Any" case 2: - return "Namespace" + return "Deployment" case 3: - return "Node" + return "Gateway" case 4: - return "Pod" + return "GatewayClass" case 5: + return "Namespace" + case 6: + return "Node" + case 7: + return "Pod" + case 8: return "Service" + case 9: + return "ServiceAccount" + case 10: + return "ServiceEntry" } return "Unknown" } @@ -73,6 +88,55 @@ type Instance struct { var ( + GatewayManaged = Instance { + Name: "gateway.istio.io/managed", + Description: "Automatically added to all resources [automatically "+ + "created](/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment) "+ + "by Istio Gateway controller, to indicate which controller "+ + "created the resource. Users should not set this label "+ + "themselves.", + FeatureStatus: Stable, + Hidden: false, + Deprecated: false, + Resources: []ResourceTypes{ + ServiceAccount, + Deployment, + Service, + }, + } + + IoK8sNetworkingGatewayGatewayName = Instance { + Name: "gateway.networking.k8s.io/gateway-name", + Description: "Automatically added to all resources [automatically "+ + "created](/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment) "+ + "by Istio Gateway controller to indicate which `Gateway` "+ + "resulted in the object creation. Users should not set "+ + "this label themselves.", + FeatureStatus: Stable, + Hidden: false, + Deprecated: false, + Resources: []ResourceTypes{ + ServiceAccount, + Deployment, + Service, + }, + } + + IoIstioDataplaneMode = Instance { + Name: "istio.io/dataplane-mode", + Description: `When set on a resource, indicates the [data plane mode](/docs/overview/dataplane-modes/) to use. +Possible values: "ambient", "none". +Note: users wishing to use sidecar mode should see the "istio-injection" label; there is no value on this label to configure sidecars. +`, + FeatureStatus: Beta, + Hidden: false, + Deprecated: false, + Resources: []ResourceTypes{ + Pod, + Namespace, + }, + } + IoIstioRev = Instance { Name: "istio.io/rev", Description: "Istio control plane revision associated with the "+ @@ -85,6 +149,83 @@ var ( }, } + IoIstioTag = Instance { + Name: "istio.io/tag", + Description: "Istio control plane tag name associated with the "+ + "resource; e.g. `canary`", + FeatureStatus: Alpha, + Hidden: false, + Deprecated: false, + Resources: []ResourceTypes{ + Namespace, + }, + } + + IoIstioUseWaypoint = Instance { + Name: "istio.io/use-waypoint", + Description: `When set on a resource, indicates the resource has an associated waypoint with the given name. +The waypoint is assumed to be in the same namespace; for cross-namespace, see "istio.io/use-waypoint-namespace". + +When set or a "Pod" or a "Service", this binds that specific resource to the waypoint. +When set on a "Namespace", this applies to all "Pod"/"Service" in the namespace. + +Note: the waypoint must allow the type, see "stio.io/waypoint-for". +`, + FeatureStatus: Beta, + Hidden: false, + Deprecated: false, + Resources: []ResourceTypes{ + Pod, + Service, + Namespace, + }, + } + + IoIstioUseWaypointNamespace = Instance { + Name: "istio.io/use-waypoint-namespace", + Description: `When set on a resource, indicates the resource has an associated waypoint in the provided namespace. +This must be set in addition to "istio.io/use-waypoint", when a cross-namespace reference is desired. +`, + FeatureStatus: Beta, + Hidden: false, + Deprecated: false, + Resources: []ResourceTypes{ + Pod, + Service, + Namespace, + }, + } + + IoIstioWaypointFor = Instance { + Name: "istio.io/waypoint-for", + Description: `When set on a waypoint (either by its specific "Gateway", or for the entire collection on the "GatewayClass"), +indicates the type of traffic this waypoint can handle. + +Valid options: "service", "workload", "all", and "none". +`, + FeatureStatus: Beta, + Hidden: false, + Deprecated: false, + Resources: []ResourceTypes{ + GatewayClass, + Gateway, + }, + } + + NetworkingEnableAutoallocateIp = Instance { + Name: "networking.istio.io/enable-autoallocate-ip", + Description: `Configures whether a "ServiceEntry" without any "spec.addresses" set should get an IP address automatically allocated for it. + +Valid options: "true", "false" +`, + FeatureStatus: Beta, + Hidden: false, + Deprecated: false, + Resources: []ResourceTypes{ + ServiceEntry, + }, + } + NetworkingGatewayPort = Instance { Name: "networking.istio.io/gatewayPort", Description: "IstioGatewayPortLabel overrides the default 15443 value "+ @@ -269,7 +410,15 @@ resources to help automate Istio's multi-network configuration. func AllResourceLabels() []*Instance { return []*Instance { + &GatewayManaged, + &IoK8sNetworkingGatewayGatewayName, + &IoIstioDataplaneMode, &IoIstioRev, + &IoIstioTag, + &IoIstioUseWaypoint, + &IoIstioUseWaypointNamespace, + &IoIstioWaypointFor, + &NetworkingEnableAutoallocateIp, &NetworkingGatewayPort, &OperatorComponent, &OperatorManaged, @@ -287,9 +436,14 @@ func AllResourceLabels() []*Instance { func AllResourceTypes() []string { return []string { "Any", + "Deployment", + "Gateway", + "GatewayClass", "Namespace", "Node", "Pod", "Service", + "ServiceAccount", + "ServiceEntry", } } diff --git a/label/labels.pb.html b/label/labels.pb.html index e425a293de..1f095b86ca 100644 --- a/label/labels.pb.html +++ b/label/labels.pb.html @@ -9,6 +9,74 @@ This page presents the various resource labels that Istio supports to control its behavior.

+

gateway.istio.io/managed

+
+ + + + + + + + + + + + + + + + + + +
Namegateway.istio.io/managed
Feature StatusStable
Resource Types[ServiceAccount Deployment Service]
Description

Automatically added to all resources automatically created by Istio Gateway controller, to indicate which controller created the resource. Users should not set this label themselves.

+
+

gateway.networking.k8s.io/gateway-name

+ + + + + + + + + + + + + + + + + + + +
Namegateway.networking.k8s.io/gateway-name
Feature StatusStable
Resource Types[ServiceAccount Deployment Service]
Description

Automatically added to all resources automatically created by Istio Gateway controller to indicate which Gateway resulted in the object creation. Users should not set this label themselves.

+
+

istio.io/dataplane-mode

+ + + + + + + + + + + + + + + + + + + +
Nameistio.io/dataplane-mode
Feature StatusBeta
Resource Types[Pod Namespace]
Description

When set on a resource, indicates the data plane mode to use. +Possible values: ambient, none. +Note: users wishing to use sidecar mode should see the istio-injection label; there is no value on this label to configure sidecars.

+

istio.io/rev

@@ -31,6 +99,128 @@

istio.io/rev

+

istio.io/tag

+ + + + + + + + + + + + + + + + + + + +
Nameistio.io/tag
Feature StatusAlpha
Resource Types[Namespace]
Description

Istio control plane tag name associated with the resource; e.g. canary

+
+

istio.io/use-waypoint

+ + + + + + + + + + + + + + + + + + + +
Nameistio.io/use-waypoint
Feature StatusBeta
Resource Types[Pod Service Namespace]
Description

When set on a resource, indicates the resource has an associated waypoint with the given name. +The waypoint is assumed to be in the same namespace; for cross-namespace, see istio.io/use-waypoint-namespace.

+ +

When set or a Pod or a Service, this binds that specific resource to the waypoint. +When set on a Namespace, this applies to all Pod/Service in the namespace.

+ +

Note: the waypoint must allow the type, see stio.io/waypoint-for.

+
+

istio.io/use-waypoint-namespace

+ + + + + + + + + + + + + + + + + + + +
Nameistio.io/use-waypoint-namespace
Feature StatusBeta
Resource Types[Pod Service Namespace]
Description

When set on a resource, indicates the resource has an associated waypoint in the provided namespace. +This must be set in addition to istio.io/use-waypoint, when a cross-namespace reference is desired.

+
+

istio.io/waypoint-for

+ + + + + + + + + + + + + + + + + + + +
Nameistio.io/waypoint-for
Feature StatusBeta
Resource Types[GatewayClass Gateway]
Description

When set on a waypoint (either by its specific Gateway, or for the entire collection on the GatewayClass), +indicates the type of traffic this waypoint can handle.

+ +

Valid options: service, workload, all, and none.

+
+

networking.istio.io/enable-autoallocate-ip

+ + + + + + + + + + + + + + + + + + + +
Namenetworking.istio.io/enable-autoallocate-ip
Feature StatusBeta
Resource Types[ServiceEntry]
Description

Configures whether a ServiceEntry without any spec.addresses set should get an IP address automatically allocated for it.

+ +

Valid options: true, false

+

networking.istio.io/gatewayPort

diff --git a/label/labels.yaml b/label/labels.yaml index e2b19c207d..6e225ee106 100644 --- a/label/labels.yaml +++ b/label/labels.yaml @@ -57,6 +57,14 @@ labels: resources: - Namespace + - name: istio.io/tag + featureStatus: Alpha + description: Istio control plane tag name associated with the resource; e.g. `canary` + hidden: false + deprecated: false + resources: + - Namespace + - name: operator.istio.io/component featureStatus: Alpha description: Istio operator component name of the resource, e.g. `Pilot` @@ -151,3 +159,90 @@ labels: hidden: false resources: - Pod + + - name: gateway.istio.io/managed + featureStatus: Stable + description: Automatically added to all resources [automatically created](/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment) + by Istio Gateway controller, to indicate which controller created the resource. Users should not set this label themselves. + deprecated: false + hidden: false + resources: + - ServiceAccount + - Deployment + - Service + + - name: gateway.networking.k8s.io/gateway-name + featureStatus: Stable + description: Automatically added to all resources [automatically created](/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment) + by Istio Gateway controller to indicate which `Gateway` resulted in the object creation. Users should not set this label themselves. + deprecated: false + hidden: false + resources: + - ServiceAccount + - Deployment + - Service + + - name: istio.io/dataplane-mode + featureStatus: Beta + description: | + When set on a resource, indicates the [data plane mode](/docs/overview/dataplane-modes/) to use. + Possible values: `ambient`, `none`. + Note: users wishing to use sidecar mode should see the `istio-injection` label; there is no value on this label to configure sidecars. + deprecated: false + hidden: false + resources: + - Pod + - Namespace + + - name: istio.io/use-waypoint + featureStatus: Beta + description: | + When set on a resource, indicates the resource has an associated waypoint with the given name. + The waypoint is assumed to be in the same namespace; for cross-namespace, see `istio.io/use-waypoint-namespace`. + + When set or a `Pod` or a `Service`, this binds that specific resource to the waypoint. + When set on a `Namespace`, this applies to all `Pod`/`Service` in the namespace. + + Note: the waypoint must allow the type, see `stio.io/waypoint-for`. + deprecated: false + hidden: false + resources: + - Pod + - Service + - Namespace + + - name: istio.io/use-waypoint-namespace + featureStatus: Beta + description: | + When set on a resource, indicates the resource has an associated waypoint in the provided namespace. + This must be set in addition to `istio.io/use-waypoint`, when a cross-namespace reference is desired. + deprecated: false + hidden: false + resources: + - Pod + - Service + - Namespace + + - name: istio.io/waypoint-for + featureStatus: Beta + description: | + When set on a waypoint (either by its specific `Gateway`, or for the entire collection on the `GatewayClass`), + indicates the type of traffic this waypoint can handle. + + Valid options: `service`, `workload`, `all`, and `none`. + deprecated: false + hidden: false + resources: + - GatewayClass + - Gateway + + - name: networking.istio.io/enable-autoallocate-ip + featureStatus: Beta + description: | + Configures whether a `ServiceEntry` without any `spec.addresses` set should get an IP address automatically allocated for it. + + Valid options: `true`, `false` + deprecated: false + hidden: false + resources: + - ServiceEntry