From 1d01b4f86c21c311fa50c64b8ef764bcf3b8b4ce Mon Sep 17 00:00:00 2001 From: Morven Cao Date: Wed, 28 Aug 2019 00:46:55 +0800 Subject: [PATCH] add deployment strategy to IstioControlPlane k8s settings. (#234) * add deployment strategy to k8s settings. * support reverse translate dployment strategy. --- .../output/pilot_k8s_settings.yaml | 2 - .../manifest-migrate/input/values.yaml | 2 - .../manifest-migrate/output/values.yaml | 50 +- .../testdata/profile-dump/output/all_off.yaml | 54 +- .../output/demo-auth_certmanager_on.yaml | 52 +- .../profile-dump/output/sds_policy_off.yaml | 54 +- data/profiles/default.yaml | 51 +- .../istio/v1alpha2/fixup_go_structs.patch | 27 +- .../v1alpha2/istiocontrolplane_types.pb.go | 397 ++++++++------ .../v1alpha2/istiocontrolplane_types.proto | 12 +- pkg/apis/istio/v1alpha2/v1alpha2.pb.html | 76 ++- pkg/translate/translate.go | 4 + pkg/translate/translate_value.go | 47 +- pkg/translate/translate_value_test.go | 14 +- pkg/vfs/assets.gen.go | 494 ++---------------- .../v1alpha2/istiocontrolplane_types_pb2.py | 169 ++++-- 16 files changed, 692 insertions(+), 813 deletions(-) diff --git a/cmd/mesh/testdata/manifest-generate/output/pilot_k8s_settings.yaml b/cmd/mesh/testdata/manifest-generate/output/pilot_k8s_settings.yaml index c755fca97..c67db226e 100644 --- a/cmd/mesh/testdata/manifest-generate/output/pilot_k8s_settings.yaml +++ b/cmd/mesh/testdata/manifest-generate/output/pilot_k8s_settings.yaml @@ -259,8 +259,6 @@ data: requests: cpu: 500m memory: 2048Mi - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% telemetry: enabled: true tolerations: [] diff --git a/cmd/mesh/testdata/manifest-migrate/input/values.yaml b/cmd/mesh/testdata/manifest-migrate/input/values.yaml index 2e4ac2580..294f2f517 100644 --- a/cmd/mesh/testdata/manifest-migrate/input/values.yaml +++ b/cmd/mesh/testdata/manifest-migrate/input/values.yaml @@ -493,8 +493,6 @@ istio_cni: istiocoredns: enabled: false replicaCount: 1 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% coreDNSImage: coredns/coredns:1.1.2 coreDNSPluginImage: istio/coredns-plugin:0.2-istio-1.1 nodeSelector: {} diff --git a/cmd/mesh/testdata/manifest-migrate/output/values.yaml b/cmd/mesh/testdata/manifest-migrate/output/values.yaml index 478004224..2134708b8 100644 --- a/cmd/mesh/testdata/manifest-migrate/output/values.yaml +++ b/cmd/mesh/testdata/manifest-migrate/output/values.yaml @@ -9,6 +9,10 @@ autoInjection: requiredDuringSchedulingIgnoredDuringExecution: [] nodeSelector: {} replicaCount: 1 + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true configManagement: components: @@ -24,6 +28,10 @@ configManagement: resources: requests: cpu: 100m + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true gateways: components: @@ -58,6 +66,10 @@ gateways: requests: cpu: 100m memory: 128Mi + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% ingressGateway: enabled: true k8s: @@ -89,6 +101,10 @@ gateways: requests: cpu: 100m memory: 128Mi + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true hub: gcr.io/istio-release policy: @@ -118,6 +134,10 @@ policy: nodeSelector: {} podAnnotations: {} replicaCount: 1 + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true security: components: @@ -132,6 +152,10 @@ security: requiredDuringSchedulingIgnoredDuringExecution: [] nodeSelector: {} replicaCount: 1 + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% nodeAgent: enabled: false enabled: true @@ -166,6 +190,10 @@ telemetry: requests: cpu: 1000m memory: 1G + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true trafficManagement: components: @@ -197,6 +225,10 @@ trafficManagement: requests: cpu: 500m memory: 2048Mi + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true values: certmanager: @@ -206,8 +238,6 @@ values: tag: v0.6.2 galley: image: galley - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% gateways: istio-egressgateway: connectTimeout: 10s @@ -216,8 +246,6 @@ values: name: tls port: 15443 targetPort: 15443 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% secretVolumes: mountPath: /etc/istio/egressgateway-ca-certs name: egressgateway-ca-certs @@ -238,8 +266,6 @@ values: name: tls port: 15443 targetPort: 15443 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% sds: image: node-agent-k8s resources: @@ -395,8 +421,6 @@ values: coreDNSPluginImage: istio/coredns-plugin:0.2-istio-1.1 enabled: false replicaCount: 1 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% kiali: contextPath: /kiali createDemoSecret: false @@ -422,8 +446,6 @@ values: mixer: policy: image: mixer - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% telemetry: image: mixer loadshedding: @@ -431,8 +453,6 @@ values: mode: enforce reportBatchMaxEntries: 100 reportBatchMaxTime: 1s - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% sessionAffinityEnabled: false useMCP: true nodeagent: @@ -452,8 +472,6 @@ values: keepaliveMaxServerConnectionAge: 30m policy: enabled: false - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% telemetry: enabled: true traceSampling: 1 @@ -560,8 +578,6 @@ values: istio-remote: istio-sidecar-injector.istio-remote.svc enableNamespacesByDefault: true image: citadel - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% selfSigned: true trustDomain: cluster.local workloadCertTtl: 2160h @@ -570,8 +586,6 @@ values: image: sidecar_injector injectLabel: istio-injection rewriteAppHTTPProbe: false - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% selfSigned: false tracing: enabled: false diff --git a/cmd/mesh/testdata/profile-dump/output/all_off.yaml b/cmd/mesh/testdata/profile-dump/output/all_off.yaml index afeae8e95..44b2be86c 100644 --- a/cmd/mesh/testdata/profile-dump/output/all_off.yaml +++ b/cmd/mesh/testdata/profile-dump/output/all_off.yaml @@ -4,6 +4,10 @@ autoInjection: enabled: true k8s: replicaCount: 1 + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: false configManagement: components: @@ -14,6 +18,10 @@ configManagement: resources: requests: cpu: 100m + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: false defaultNamespace: istio-system gateways: @@ -40,6 +48,10 @@ gateways: requests: cpu: 100m memory: 128Mi + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% ingressGateway: enabled: true k8s: @@ -62,6 +74,10 @@ gateways: requests: cpu: 100m memory: 128Mi + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: false hub: gcr.io/istio-release policy: @@ -85,12 +101,23 @@ policy: kind: Deployment name: istio-policy replicaCount: 1 + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: false profile: default security: components: certManager: enabled: false + citadel: + enabled: true + k8s: + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% nodeAgent: enabled: false enabled: false @@ -125,6 +152,10 @@ telemetry: requests: cpu: 1000m memory: 1G + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: false trafficManagement: components: @@ -171,6 +202,10 @@ trafficManagement: requests: cpu: 500m memory: 2048Mi + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: false values: certmanager: @@ -182,14 +217,10 @@ values: istio-pilot-service-account.istio-system: istio-pilot.istio-system enableNamespacesByDefault: true image: citadel - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% selfSigned: true trustDomain: cluster.local clusterResources: true - galley: - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% + galley: null gateways: istio-egressgateway: autoscaleEnabled: true @@ -205,8 +236,6 @@ values: - name: tls port: 15443 targetPort: 15443 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% secretVolumes: - mountPath: /etc/istio/egressgateway-certs name: egressgateway-certs @@ -258,8 +287,6 @@ values: - name: tls port: 15443 targetPort: 15443 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% secretVolumes: - mountPath: /etc/istio/ingressgateway-certs name: ingressgateway-certs @@ -505,8 +532,6 @@ values: kubernetesenv: enabled: true image: mixer - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% telemetry: autoscaleEnabled: true image: mixer @@ -519,8 +544,6 @@ values: replicaCount: 1 reportBatchMaxEntries: 100 reportBatchMaxTime: 1s - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% sessionAffinityEnabled: false tolerations: [] useMCP: true @@ -552,8 +575,6 @@ values: policy: enabled: false replicaCount: 1 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% telemetry: enabled: true tolerations: [] @@ -584,8 +605,6 @@ values: image: sidecar_injector injectLabel: istio-injection rewriteAppHTTPProbe: false - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% selfSigned: false tracing: enabled: false @@ -642,3 +661,4 @@ values: memory: 900Mi tag: 2.14.2 version: "" + diff --git a/cmd/mesh/testdata/profile-dump/output/demo-auth_certmanager_on.yaml b/cmd/mesh/testdata/profile-dump/output/demo-auth_certmanager_on.yaml index 400e8645a..b528ae4be 100644 --- a/cmd/mesh/testdata/profile-dump/output/demo-auth_certmanager_on.yaml +++ b/cmd/mesh/testdata/profile-dump/output/demo-auth_certmanager_on.yaml @@ -4,6 +4,10 @@ autoInjection: enabled: true k8s: replicaCount: 1 + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true configManagement: components: @@ -14,6 +18,10 @@ configManagement: resources: requests: cpu: 100m + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true defaultNamespace: istio-system gateways: @@ -40,6 +48,10 @@ gateways: requests: cpu: 10m memory: 40Mi + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% ingressGateway: enabled: true k8s: @@ -62,6 +74,10 @@ gateways: requests: cpu: 10m memory: 40Mi + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true hub: gcr.io/istio-release policy: @@ -89,6 +105,10 @@ policy: requests: cpu: 10m memory: 100Mi + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true profile: demo-auth security: @@ -97,6 +117,11 @@ security: enabled: true citadel: enabled: false + k8s: + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% nodeAgent: enabled: false enabled: true @@ -131,6 +156,10 @@ telemetry: requests: cpu: 50m memory: 100Mi + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true trafficManagement: components: @@ -177,6 +206,10 @@ trafficManagement: requests: cpu: 10m memory: 100Mi + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true values: certmanager: @@ -188,14 +221,10 @@ values: istio-pilot-service-account.istio-system: istio-pilot.istio-system enableNamespacesByDefault: true image: citadel - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% selfSigned: true trustDomain: cluster.local clusterResources: true - galley: - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% + galley: null gateways: istio-egressgateway: autoscaleEnabled: false @@ -211,8 +240,6 @@ values: - name: tls port: 15443 targetPort: 15443 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% secretVolumes: - mountPath: /etc/istio/egressgateway-certs name: egressgateway-certs @@ -264,8 +291,6 @@ values: - name: tls port: 15443 targetPort: 15443 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% secretVolumes: - mountPath: /etc/istio/ingressgateway-certs name: ingressgateway-certs @@ -512,8 +537,6 @@ values: enabled: true autoscaleEnabled: false image: mixer - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% telemetry: autoscaleEnabled: false image: mixer @@ -526,8 +549,6 @@ values: replicaCount: 1 reportBatchMaxEntries: 100 reportBatchMaxTime: 1s - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% sessionAffinityEnabled: false tolerations: [] useMCP: true @@ -559,8 +580,6 @@ values: policy: enabled: false replicaCount: 1 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% telemetry: enabled: true tolerations: [] @@ -591,8 +610,6 @@ values: image: sidecar_injector injectLabel: istio-injection rewriteAppHTTPProbe: false - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% selfSigned: false tracing: enabled: true @@ -649,3 +666,4 @@ values: memory: 900Mi tag: 2.14.2 version: "" + diff --git a/cmd/mesh/testdata/profile-dump/output/sds_policy_off.yaml b/cmd/mesh/testdata/profile-dump/output/sds_policy_off.yaml index 7f0aa6a8c..6f2a76ec8 100644 --- a/cmd/mesh/testdata/profile-dump/output/sds_policy_off.yaml +++ b/cmd/mesh/testdata/profile-dump/output/sds_policy_off.yaml @@ -4,6 +4,10 @@ autoInjection: enabled: true k8s: replicaCount: 1 + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true configManagement: components: @@ -14,6 +18,10 @@ configManagement: resources: requests: cpu: 100m + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true defaultNamespace: istio-system gateways: @@ -40,6 +48,10 @@ gateways: requests: cpu: 100m memory: 128Mi + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% ingressGateway: enabled: true k8s: @@ -62,6 +74,10 @@ gateways: requests: cpu: 100m memory: 128Mi + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true hub: gcr.io/istio-release policy: @@ -85,12 +101,23 @@ policy: kind: Deployment name: istio-policy replicaCount: 1 + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: false profile: sds security: components: certManager: enabled: false + citadel: + enabled: true + k8s: + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% nodeAgent: enabled: true enabled: true @@ -125,6 +152,10 @@ telemetry: requests: cpu: 1000m memory: 1G + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true trafficManagement: components: @@ -171,6 +202,10 @@ trafficManagement: requests: cpu: 500m memory: 2048Mi + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true values: certmanager: @@ -182,14 +217,10 @@ values: istio-pilot-service-account.istio-system: istio-pilot.istio-system enableNamespacesByDefault: true image: citadel - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% selfSigned: true trustDomain: cluster.local clusterResources: true - galley: - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% + galley: null gateways: istio-egressgateway: autoscaleEnabled: true @@ -205,8 +236,6 @@ values: - name: tls port: 15443 targetPort: 15443 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% secretVolumes: - mountPath: /etc/istio/egressgateway-certs name: egressgateway-certs @@ -258,8 +287,6 @@ values: - name: tls port: 15443 targetPort: 15443 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% secretVolumes: - mountPath: /etc/istio/ingressgateway-certs name: ingressgateway-certs @@ -507,8 +534,6 @@ values: kubernetesenv: enabled: true image: mixer - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% telemetry: autoscaleEnabled: true image: mixer @@ -521,8 +546,6 @@ values: replicaCount: 1 reportBatchMaxEntries: 100 reportBatchMaxTime: 1s - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% sessionAffinityEnabled: false tolerations: [] useMCP: true @@ -558,8 +581,6 @@ values: policy: enabled: false replicaCount: 1 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% telemetry: enabled: true tolerations: [] @@ -590,8 +611,6 @@ values: image: sidecar_injector injectLabel: istio-injection rewriteAppHTTPProbe: false - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% selfSigned: false tracing: enabled: false @@ -648,3 +667,4 @@ values: memory: 900Mi tag: 2.14.2 version: "" + diff --git a/data/profiles/default.yaml b/data/profiles/default.yaml index 112ed0d16..3afb31415 100644 --- a/data/profiles/default.yaml +++ b/data/profiles/default.yaml @@ -52,6 +52,10 @@ spec: requests: cpu: 500m memory: 2048Mi + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" # Policy feature policy: @@ -76,6 +80,10 @@ spec: env: - name: GODEBUG value: "gctrace=1" + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" # Telemetry feature telemetry: @@ -109,11 +117,22 @@ spec: limits: cpu: 4800m memory: 4G + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" # Security feature security: enabled: true components: + citadel: + enabled: true + k8s: + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" certManager: enabled: false nodeAgent: @@ -130,6 +149,10 @@ spec: resources: requests: cpu: 100m + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" # Auto injection feature autoInjection: @@ -139,6 +162,10 @@ spec: enabled: true k8s: replicaCount: 1 + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" # Istio Gateway feature gateways: @@ -166,6 +193,10 @@ spec: limits: cpu: 2000m memory: 1024Mi + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" egressGateway: enabled: false @@ -189,6 +220,10 @@ spec: limits: cpu: 2000m memory: 256Mi + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" # Global values passed through to helm global.yaml. values: @@ -305,8 +340,6 @@ spec: autoscaleMin: 1 autoscaleMax: 5 replicaCount: 1 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% image: pilot traceSampling: 1.0 configNamespace: istio-config @@ -358,8 +391,6 @@ spec: telemetry: image: mixer replicaCount: 1 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% autoscaleEnabled: true sessionAffinityEnabled: false loadshedding: @@ -375,20 +406,14 @@ spec: policy: image: mixer - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% adapters: kubernetesenv: enabled: true galley: - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% citadel: image: citadel - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% selfSigned: true # indicate if self-signed CA is used. trustDomain: cluster.local # indicate the domain used in SPIFFE identity URL enableNamespacesByDefault: true @@ -406,8 +431,6 @@ spec: gateways: istio-egressgateway: autoscaleEnabled: true - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% zvpn: suffix: global enabled: true @@ -433,8 +456,6 @@ spec: istio-ingressgateway: autoscaleEnabled: true - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% applicationPorts: "" debug: info domain: "" @@ -512,8 +533,6 @@ spec: tls: false sidecarInjectorWebhook: - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% image: sidecar_injector enableNamespacesByDefault: false rewriteAppHTTPProbe: false diff --git a/pkg/apis/istio/v1alpha2/fixup_go_structs.patch b/pkg/apis/istio/v1alpha2/fixup_go_structs.patch index f0536492b..f874d0299 100644 --- a/pkg/apis/istio/v1alpha2/fixup_go_structs.patch +++ b/pkg/apis/istio/v1alpha2/fixup_go_structs.patch @@ -1,6 +1,6 @@ ---- pkg/apis/istio/v1alpha2/istiocontrolplane_types.pb.go.orig 2019-07-16 23:54:05.946555219 -0700 -+++ pkg/apis/istio/v1alpha2/istiocontrolplane_types.pb.go 2019-07-17 00:29:40.578006785 -0700 -@@ -222,8 +223,8 @@ +--- pkg/apis/istio/v1alpha2/istiocontrolplane_types.pb.go.orig 2019-08-26 22:57:50.731329334 -0700 ++++ pkg/apis/istio/v1alpha2/istiocontrolplane_types.pb.go 2019-08-26 23:05:09.508609092 -0700 +@@ -123,8 +123,8 @@ AutoInjection *AutoInjectionFeatureSpec `protobuf:"bytes,30,opt,name=auto_injection,json=autoInjection,proto3" json:"auto_injection,omitempty"` Gateways *GatewayFeatureSpec `protobuf:"bytes,31,opt,name=gateways,proto3" json:"gateways,omitempty"` // Overrides for default global values.yaml. @@ -11,8 +11,7 @@ // Path or name for the profile e.g. // minimal (looks in profiles dir for a file called minimal.yaml) // /tmp/istio/install/values/custom/custom-install.yaml (local file path) -@@ -2439,8 +2441,9 @@ - // Path of the form a.b:c.e.:f +@@ -1837,6 +1837,7 @@ // Where b:c is a list element selector of the form key:value and :f is a list selector of the form :value. // All path intermediate nodes must exist. Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` @@ -20,9 +19,7 @@ XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` - } -@@ -2838,8 +2841,9 @@ - +@@ -2188,6 +2189,7 @@ // Mirrors k8s.io.api.core.v1.HTTPGetAction for unmarshaling type HTTPGetAction struct { Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` @@ -30,14 +27,20 @@ Host string `protobuf:"bytes,3,opt,name=host,proto3" json:"host,omitempty"` Scheme string `protobuf:"bytes,4,opt,name=scheme,proto3" json:"scheme,omitempty"` HttpHeaders []*HTTPHeader `protobuf:"bytes,5,rep,name=httpHeaders,proto3" json:"httpHeaders,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` -@@ -2965,8 +2969,9 @@ - } - +@@ -2299,6 +2301,7 @@ + // Mirrors k8s.io.api.core.v1.TCPSocketAction for unmarshaling type TCPSocketAction struct { + Port IntOrStringForPB `protobuf:"bytes,1,opt,name=port,proto3" json:"port,omitempty"` Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` +@@ -2443,6 +2446,8 @@ + + // Mirrors k8s.io.api.apps.v1.RollingUpdateDeployment for unmarshaling. + type RollingUpdateDeployment struct { ++ MaxUnavailable IntOrStringForPB `protobuf:"bytes,1,opt,name=maxUnavailable,proto3" json:"maxUnavailable,omitempty"` ++ MaxSurge IntOrStringForPB `protobuf:"bytes,1,opt,name=maxSurge,proto3" json:"maxSurge,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` diff --git a/pkg/apis/istio/v1alpha2/istiocontrolplane_types.pb.go b/pkg/apis/istio/v1alpha2/istiocontrolplane_types.pb.go index 850a39c54..71bd4ba04 100644 --- a/pkg/apis/istio/v1alpha2/istiocontrolplane_types.pb.go +++ b/pkg/apis/istio/v1alpha2/istiocontrolplane_types.pb.go @@ -7,10 +7,10 @@ import ( fmt "fmt" protobuf "github.com/gogo/protobuf/types" proto "github.com/golang/protobuf/proto" - v11 "k8s.io/api/apps/v1" + _ "k8s.io/api/apps/v1" v2beta1 "k8s.io/api/autoscaling/v2beta1" v1 "k8s.io/api/core/v1" - v12 "k8s.io/apimachinery/pkg/apis/meta/v1" + v11 "k8s.io/apimachinery/pkg/apis/meta/v1" math "math" ) @@ -1632,7 +1632,7 @@ type KubernetesResourcesSpec struct { Service *v1.ServiceSpec `protobuf:"bytes,12,opt,name=service,proto3" json:"service,omitempty"` // k8s deployment strategy. // https://kubernetes.io/docs/concepts/workloads/controllers/deployment/ - Strategy *v11.DeploymentStrategy `protobuf:"bytes,13,opt,name=strategy,proto3" json:"strategy,omitempty"` + Strategy *DeploymentStrategy `protobuf:"bytes,13,opt,name=strategy,proto3" json:"strategy,omitempty"` // Overlays for k8s resources in rendered manifests. Overlays []*K8SObjectOverlay `protobuf:"bytes,100,rep,name=overlays,proto3" json:"overlays,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1749,7 +1749,7 @@ func (m *KubernetesResourcesSpec) GetService() *v1.ServiceSpec { return nil } -func (m *KubernetesResourcesSpec) GetStrategy() *v11.DeploymentStrategy { +func (m *KubernetesResourcesSpec) GetStrategy() *DeploymentStrategy { if m != nil { return m.Strategy } @@ -2343,7 +2343,7 @@ func (m *TCPSocketAction) GetHost() string { // Mirrors k8s.io.api.policy.v1beta1.PodDisruptionBudget for unmarshaling. type PodDisruptionBudgetSpec struct { MinAvailable uint32 `protobuf:"varint,1,opt,name=min_available,json=minAvailable,proto3" json:"min_available,omitempty"` - Selector *v12.LabelSelector `protobuf:"bytes,2,opt,name=selector,proto3" json:"selector,omitempty"` + Selector *v11.LabelSelector `protobuf:"bytes,2,opt,name=selector,proto3" json:"selector,omitempty"` MaxUnavailable uint32 `protobuf:"varint,3,opt,name=max_unavailable,json=maxUnavailable,proto3" json:"max_unavailable,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2382,7 +2382,7 @@ func (m *PodDisruptionBudgetSpec) GetMinAvailable() uint32 { return 0 } -func (m *PodDisruptionBudgetSpec) GetSelector() *v12.LabelSelector { +func (m *PodDisruptionBudgetSpec) GetSelector() *v11.LabelSelector { if m != nil { return m.Selector } @@ -2396,6 +2396,88 @@ func (m *PodDisruptionBudgetSpec) GetMaxUnavailable() uint32 { return 0 } +// Mirrors k8s.io.api.apps.v1.DeploymentStrategy for unmarshaling. +type DeploymentStrategy struct { + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + RollingUpdate *RollingUpdateDeployment `protobuf:"bytes,2,opt,name=rollingUpdate,proto3" json:"rollingUpdate,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeploymentStrategy) Reset() { *m = DeploymentStrategy{} } +func (m *DeploymentStrategy) String() string { return proto.CompactTextString(m) } +func (*DeploymentStrategy) ProtoMessage() {} +func (*DeploymentStrategy) Descriptor() ([]byte, []int) { + return fileDescriptor_daac92937abd81a4, []int{30} +} + +func (m *DeploymentStrategy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeploymentStrategy.Unmarshal(m, b) +} +func (m *DeploymentStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeploymentStrategy.Marshal(b, m, deterministic) +} +func (m *DeploymentStrategy) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeploymentStrategy.Merge(m, src) +} +func (m *DeploymentStrategy) XXX_Size() int { + return xxx_messageInfo_DeploymentStrategy.Size(m) +} +func (m *DeploymentStrategy) XXX_DiscardUnknown() { + xxx_messageInfo_DeploymentStrategy.DiscardUnknown(m) +} + +var xxx_messageInfo_DeploymentStrategy proto.InternalMessageInfo + +func (m *DeploymentStrategy) GetType() string { + if m != nil { + return m.Type + } + return "" +} + +func (m *DeploymentStrategy) GetRollingUpdate() *RollingUpdateDeployment { + if m != nil { + return m.RollingUpdate + } + return nil +} + +// Mirrors k8s.io.api.apps.v1.RollingUpdateDeployment for unmarshaling. +type RollingUpdateDeployment struct { + MaxUnavailable IntOrStringForPB `protobuf:"bytes,1,opt,name=maxUnavailable,proto3" json:"maxUnavailable,omitempty"` + MaxSurge IntOrStringForPB `protobuf:"bytes,1,opt,name=maxSurge,proto3" json:"maxSurge,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RollingUpdateDeployment) Reset() { *m = RollingUpdateDeployment{} } +func (m *RollingUpdateDeployment) String() string { return proto.CompactTextString(m) } +func (*RollingUpdateDeployment) ProtoMessage() {} +func (*RollingUpdateDeployment) Descriptor() ([]byte, []int) { + return fileDescriptor_daac92937abd81a4, []int{31} +} + +func (m *RollingUpdateDeployment) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RollingUpdateDeployment.Unmarshal(m, b) +} +func (m *RollingUpdateDeployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RollingUpdateDeployment.Marshal(b, m, deterministic) +} +func (m *RollingUpdateDeployment) XXX_Merge(src proto.Message) { + xxx_messageInfo_RollingUpdateDeployment.Merge(m, src) +} +func (m *RollingUpdateDeployment) XXX_Size() int { + return xxx_messageInfo_RollingUpdateDeployment.Size(m) +} +func (m *RollingUpdateDeployment) XXX_DiscardUnknown() { + xxx_messageInfo_RollingUpdateDeployment.DiscardUnknown(m) +} + +var xxx_messageInfo_RollingUpdateDeployment proto.InternalMessageInfo + type ObjectMeta struct { // From k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` @@ -2409,7 +2491,7 @@ func (m *ObjectMeta) Reset() { *m = ObjectMeta{} } func (m *ObjectMeta) String() string { return proto.CompactTextString(m) } func (*ObjectMeta) ProtoMessage() {} func (*ObjectMeta) Descriptor() ([]byte, []int) { - return fileDescriptor_daac92937abd81a4, []int{30} + return fileDescriptor_daac92937abd81a4, []int{32} } func (m *ObjectMeta) XXX_Unmarshal(b []byte) error { @@ -2466,7 +2548,7 @@ func (m *TestKube) Reset() { *m = TestKube{} } func (m *TestKube) String() string { return proto.CompactTextString(m) } func (*TestKube) ProtoMessage() {} func (*TestKube) Descriptor() ([]byte, []int) { - return fileDescriptor_daac92937abd81a4, []int{31} + return fileDescriptor_daac92937abd81a4, []int{33} } func (m *TestKube) XXX_Unmarshal(b []byte) error { @@ -2595,6 +2677,8 @@ func init() { proto.RegisterType((*HTTPHeader)(nil), "v1alpha2.HTTPHeader") proto.RegisterType((*TCPSocketAction)(nil), "v1alpha2.TCPSocketAction") proto.RegisterType((*PodDisruptionBudgetSpec)(nil), "v1alpha2.PodDisruptionBudgetSpec") + proto.RegisterType((*DeploymentStrategy)(nil), "v1alpha2.DeploymentStrategy") + proto.RegisterType((*RollingUpdateDeployment)(nil), "v1alpha2.RollingUpdateDeployment") proto.RegisterType((*ObjectMeta)(nil), "v1alpha2.ObjectMeta") proto.RegisterType((*TestKube)(nil), "v1alpha2.TestKube") proto.RegisterMapType((map[string]string)(nil), "v1alpha2.TestKube.EnvEntry") @@ -2607,151 +2691,154 @@ func init() { } var fileDescriptor_daac92937abd81a4 = []byte{ - // 2335 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0x5b, 0x73, 0xdb, 0xc6, - 0x15, 0x2e, 0xa8, 0x1b, 0x75, 0x24, 0xea, 0xb2, 0x52, 0x62, 0x44, 0x56, 0x62, 0x05, 0xb5, 0x1d, - 0x37, 0x6d, 0x40, 0xcb, 0x8a, 0x1d, 0xb9, 0x49, 0x9d, 0xd2, 0xb2, 0x22, 0x69, 0x62, 0x4b, 0x0c, - 0x24, 0xbb, 0x97, 0xe9, 0x94, 0xb3, 0x04, 0x57, 0x24, 0x22, 0x10, 0x8b, 0x62, 0x17, 0x8c, 0xd9, - 0xd7, 0x76, 0xa6, 0xed, 0x53, 0x67, 0xf2, 0xdc, 0xcb, 0x74, 0x3a, 0xbd, 0xfc, 0x84, 0x3e, 0xe4, - 0xbd, 0xbf, 0xa2, 0xff, 0xa0, 0x8f, 0x7d, 0xeb, 0x4c, 0xa7, 0xb3, 0x8b, 0xc5, 0x8d, 0x04, 0x65, - 0x53, 0xc9, 0x74, 0xd4, 0x37, 0xe0, 0x9c, 0xef, 0x1c, 0x9c, 0x3d, 0xbb, 0xe7, 0xec, 0xb7, 0x0b, - 0xb8, 0xeb, 0x9f, 0xb5, 0xab, 0xd8, 0x77, 0x58, 0xd5, 0x61, 0xdc, 0xa1, 0xd5, 0xde, 0x26, 0x76, - 0xfd, 0x0e, 0xbe, 0x13, 0xbd, 0xda, 0xd4, 0xe3, 0x01, 0x75, 0x7d, 0x17, 0x7b, 0xa4, 0xc1, 0xfb, - 0x3e, 0x61, 0xa6, 0x1f, 0x50, 0x4e, 0x51, 0x39, 0xc6, 0xad, 0x19, 0x67, 0xdb, 0xcc, 0x74, 0xa8, - 0xf0, 0x51, 0xb5, 0x69, 0x40, 0xaa, 0xbd, 0xcd, 0x6a, 0x9b, 0x78, 0x24, 0xc0, 0x9c, 0xb4, 0x22, - 0x74, 0x0e, 0x83, 0x7d, 0x9f, 0x15, 0x61, 0xcc, 0x2c, 0x26, 0xe4, 0x94, 0xd9, 0xd8, 0x75, 0xbc, - 0x76, 0xb5, 0x77, 0xa7, 0x49, 0x38, 0x1e, 0xc6, 0xbf, 0x9b, 0xe2, 0xbb, 0xd8, 0xee, 0x38, 0x1e, - 0x09, 0xfa, 0xd5, 0x64, 0x30, 0x5d, 0xc2, 0x71, 0xd1, 0x57, 0xbe, 0xdb, 0x76, 0x78, 0x27, 0x6c, - 0x9a, 0x36, 0xed, 0x56, 0xdb, 0xb4, 0x4d, 0xab, 0x52, 0xdc, 0x0c, 0x4f, 0xd3, 0x87, 0x36, 0xa5, - 0x6d, 0x97, 0xa4, 0xef, 0x9f, 0x05, 0xd8, 0xf7, 0x49, 0xa0, 0x46, 0x6e, 0xf4, 0x61, 0xf9, 0x40, - 0xa4, 0x66, 0x27, 0x4a, 0x4d, 0x5d, 0xa4, 0x06, 0x6d, 0xc1, 0x24, 0xf3, 0x89, 0xad, 0x4f, 0x6c, - 0x68, 0xb7, 0xe6, 0xee, 0x5c, 0x33, 0xe3, 0xec, 0x98, 0x43, 0xd0, 0x63, 0x9f, 0xd8, 0x96, 0x04, - 0xa3, 0x2a, 0x4c, 0x33, 0x8e, 0x79, 0xc8, 0xf4, 0x49, 0x69, 0x76, 0x25, 0x63, 0xe6, 0x31, 0x8e, - 0x5d, 0xf7, 0x58, 0xaa, 0x2d, 0x05, 0x33, 0x3e, 0x9f, 0x82, 0x57, 0x0a, 0x1d, 0xa2, 0x6f, 0xc2, - 0x72, 0x8b, 0x9c, 0xe2, 0xd0, 0xe5, 0x0d, 0x0f, 0x77, 0x09, 0xf3, 0xb1, 0x4d, 0xf4, 0xa9, 0x0d, - 0xed, 0xd6, 0xac, 0xb5, 0xa4, 0x14, 0x87, 0xb1, 0x1c, 0x3d, 0x05, 0xc4, 0x03, 0x7c, 0x7a, 0xea, - 0xd8, 0x8d, 0x2e, 0xf6, 0x70, 0x9b, 0x74, 0x89, 0xc7, 0xf5, 0xd7, 0x64, 0x0c, 0x37, 0xd3, 0x18, - 0x4e, 0x22, 0xcc, 0x93, 0x04, 0xf2, 0x11, 0xc1, 0x3c, 0x0c, 0xa2, 0x11, 0x2c, 0xf3, 0x41, 0x2d, - 0xda, 0x82, 0x69, 0x9f, 0xba, 0x8e, 0xdd, 0xd7, 0xd7, 0xa4, 0xab, 0xab, 0xa9, 0xab, 0xba, 0x94, - 0x67, 0xed, 0x15, 0x14, 0x7d, 0x00, 0xb3, 0x9c, 0xb8, 0xa4, 0x4b, 0x78, 0xd0, 0xd7, 0xaf, 0x4a, - 0xbb, 0x37, 0x32, 0x21, 0xc4, 0xaa, 0xac, 0x69, 0x6a, 0x80, 0xee, 0x43, 0x99, 0x11, 0x3b, 0x0c, - 0x1c, 0xde, 0xd7, 0xd7, 0xa5, 0xf1, 0xeb, 0xa9, 0xf1, 0xb1, 0xd2, 0x64, 0x6d, 0x13, 0x38, 0xb2, - 0x60, 0xd9, 0xa6, 0xde, 0xa9, 0xd3, 0xce, 0xe6, 0xe0, 0x75, 0xe9, 0xe3, 0x46, 0xea, 0x63, 0x47, - 0x42, 0x8a, 0x53, 0xb0, 0x64, 0x0f, 0x28, 0xd1, 0x01, 0x2c, 0x88, 0x95, 0xdb, 0x70, 0xbc, 0x4f, - 0x89, 0xcd, 0x1d, 0xea, 0xe9, 0x6f, 0x48, 0x87, 0x46, 0xea, 0xb0, 0x16, 0x72, 0x7a, 0x10, 0xab, - 0xb3, 0xde, 0x2a, 0x38, 0xab, 0x41, 0xdb, 0x50, 0x6e, 0x63, 0x4e, 0x3e, 0xc3, 0x7d, 0xa6, 0x5f, - 0x93, 0x4e, 0xd6, 0x53, 0x27, 0x7b, 0x91, 0x26, 0x37, 0xb0, 0x18, 0x8d, 0x74, 0x98, 0xf1, 0x03, - 0x7a, 0xea, 0xb8, 0x44, 0x6f, 0xc9, 0x05, 0x10, 0xbf, 0xa2, 0xdb, 0xb0, 0xea, 0x44, 0xeb, 0xaa, - 0xe1, 0x63, 0xfb, 0x0c, 0xb7, 0x49, 0xc3, 0xc7, 0xbc, 0xa3, 0x9f, 0x4a, 0x18, 0x52, 0xba, 0x7a, - 0xa4, 0xaa, 0x63, 0xde, 0x41, 0x4b, 0x30, 0xd1, 0x09, 0x9b, 0xba, 0x27, 0x01, 0xe2, 0x51, 0x48, - 0x38, 0x6e, 0xeb, 0x34, 0x92, 0x70, 0xdc, 0x36, 0xbe, 0x28, 0xc1, 0xfa, 0x79, 0x4b, 0x05, 0xbd, - 0x0b, 0x33, 0xc4, 0xc3, 0x4d, 0x97, 0xb4, 0x74, 0x4d, 0x8e, 0x64, 0xcd, 0x8c, 0x4a, 0xcc, 0x8c, - 0x4b, 0xcc, 0x7c, 0x48, 0xa9, 0xfb, 0x0c, 0xbb, 0x21, 0xb1, 0x62, 0x28, 0xfa, 0x04, 0xc0, 0xa6, - 0x5d, 0x9f, 0x7a, 0xc4, 0xe3, 0x4c, 0xbf, 0x23, 0x0d, 0x37, 0x5f, 0x6e, 0x71, 0x9a, 0x3b, 0x89, - 0xa1, 0x95, 0x71, 0xb2, 0xf6, 0xb9, 0x06, 0x90, 0xaa, 0xd0, 0x3a, 0xcc, 0xa6, 0xb5, 0xa2, 0xc9, - 0x01, 0xa5, 0x02, 0x74, 0x07, 0xa6, 0x7c, 0xc7, 0xa5, 0x5c, 0x5f, 0x1d, 0xcc, 0x7e, 0x5d, 0x88, - 0x13, 0x3f, 0x32, 0xfb, 0x11, 0x54, 0xda, 0x04, 0xf4, 0x79, 0x5f, 0x7f, 0x65, 0xc8, 0x46, 0x88, - 0x07, 0x6d, 0x84, 0xcc, 0xf8, 0x97, 0x06, 0xcb, 0x43, 0xe5, 0x71, 0xc1, 0x9c, 0x7d, 0x54, 0x90, - 0xb3, 0x9b, 0xe7, 0x54, 0xe1, 0xa8, 0x44, 0xe1, 0x31, 0xf2, 0x74, 0x37, 0xa9, 0xfa, 0xd5, 0xc1, - 0x02, 0x8c, 0xbe, 0x97, 0x1f, 0xb5, 0x02, 0x1b, 0x3f, 0x2b, 0xc1, 0x6a, 0x51, 0x75, 0x5f, 0x70, - 0xe4, 0x07, 0x05, 0x23, 0xff, 0xc6, 0xf9, 0x7d, 0x64, 0xd4, 0xe0, 0x3f, 0x1d, 0x63, 0xf0, 0x0f, - 0xb2, 0xdd, 0x2b, 0x1a, 0xff, 0x46, 0xc1, 0x57, 0xf3, 0x29, 0x48, 0x4d, 0x8c, 0x9f, 0x4f, 0xc0, - 0x4a, 0x41, 0x9b, 0xba, 0x60, 0x12, 0xf6, 0x0b, 0x92, 0x70, 0xeb, 0xdc, 0x7e, 0x38, 0x2a, 0x07, - 0xff, 0x1c, 0xa7, 0x52, 0xb6, 0x61, 0xc6, 0x76, 0x38, 0x6e, 0x11, 0x57, 0xa5, 0x20, 0xd3, 0xc0, - 0x77, 0x22, 0x45, 0x3e, 0x01, 0x31, 0x1c, 0xed, 0xc2, 0xbc, 0x4d, 0x02, 0xae, 0x3a, 0x70, 0xa0, - 0xca, 0x26, 0xd3, 0x2d, 0x77, 0x48, 0xc0, 0xa3, 0x12, 0x0f, 0xf2, 0x2e, 0xe6, 0xec, 0x54, 0x83, - 0x3e, 0x04, 0xf0, 0x68, 0x8b, 0x34, 0x70, 0x5b, 0xf4, 0xf0, 0x57, 0x07, 0xa7, 0xe1, 0x90, 0xb6, - 0x48, 0x4d, 0xa8, 0x06, 0xa6, 0xc1, 0x8b, 0xe5, 0xc6, 0x2f, 0x4b, 0x70, 0xf5, 0x9c, 0x4e, 0x7f, - 0xc1, 0xe9, 0xa8, 0x17, 0x4c, 0xc7, 0xed, 0x97, 0xda, 0x5a, 0xbe, 0xa2, 0xba, 0x6c, 0x63, 0xd7, - 0x25, 0x05, 0x75, 0xb9, 0x27, 0xe5, 0x03, 0x75, 0x19, 0x81, 0x8d, 0x5f, 0x97, 0x40, 0x1f, 0xb5, - 0x47, 0x5d, 0x30, 0x0f, 0x4f, 0x0a, 0xf2, 0xf0, 0xce, 0x8b, 0x77, 0xc4, 0x51, 0x49, 0xf0, 0xc6, - 0x48, 0xc2, 0x43, 0x28, 0x47, 0x7b, 0x31, 0x0d, 0x54, 0x1a, 0x32, 0xed, 0xf0, 0xd8, 0x69, 0x11, - 0x1b, 0x07, 0x07, 0x0a, 0x90, 0xcf, 0x47, 0x62, 0x67, 0xfc, 0xa3, 0x04, 0x68, 0x78, 0xc3, 0xbd, - 0x60, 0x2e, 0xf6, 0x0a, 0x72, 0xf1, 0xd6, 0x79, 0x1b, 0xfb, 0xa8, 0x2c, 0xfc, 0x7d, 0x9c, 0x0a, - 0x3d, 0x84, 0x45, 0xc7, 0x6b, 0x07, 0x84, 0xb1, 0x86, 0xa2, 0x09, 0x8a, 0x53, 0xdc, 0xc8, 0x32, - 0x4e, 0x09, 0x50, 0x11, 0xe4, 0x93, 0xb1, 0xe0, 0xe4, 0x94, 0xe8, 0x63, 0x58, 0x20, 0x79, 0x77, - 0x1b, 0xd2, 0xdd, 0xf5, 0xd4, 0xdd, 0xee, 0x68, 0x6f, 0x15, 0x92, 0xd5, 0x19, 0xbf, 0xd5, 0x00, - 0x0d, 0x6f, 0xa9, 0x17, 0xcc, 0x6f, 0x2e, 0x0f, 0xa5, 0xc1, 0x3c, 0x6c, 0xc1, 0xc4, 0xd9, 0x36, - 0xd3, 0xeb, 0xd2, 0xdf, 0x9b, 0x69, 0xb0, 0x1f, 0x87, 0x4d, 0x12, 0x78, 0x84, 0x13, 0x66, 0x11, - 0x46, 0xc3, 0xc0, 0x26, 0x4c, 0x46, 0x2a, 0xd0, 0x51, 0x7c, 0x43, 0xdb, 0xf7, 0xe5, 0x89, 0xef, - 0x2f, 0x1a, 0xac, 0x9f, 0xb7, 0x94, 0x2f, 0x4f, 0xa4, 0xbf, 0xd3, 0x60, 0xa5, 0x80, 0x13, 0x5c, - 0x9e, 0x00, 0xff, 0xa0, 0xc1, 0xab, 0xc5, 0x9b, 0xf6, 0xe5, 0x89, 0xf1, 0xf7, 0x1a, 0xac, 0x16, - 0xed, 0xaa, 0x97, 0x27, 0xc2, 0x3f, 0x6a, 0xa0, 0x8f, 0xda, 0xb8, 0x2f, 0xd7, 0x5c, 0x17, 0x33, - 0x83, 0xcb, 0x55, 0x30, 0x05, 0x9b, 0xf5, 0xe5, 0x09, 0xf0, 0xcf, 0x1a, 0x5c, 0x3d, 0x67, 0xe3, - 0xb8, 0x3c, 0x81, 0xfe, 0x49, 0x83, 0xb5, 0xdd, 0xff, 0x83, 0x38, 0x7f, 0x53, 0x86, 0x2b, 0x23, - 0x00, 0x68, 0x1b, 0xca, 0xe2, 0xcc, 0xeb, 0x39, 0xbc, 0xaf, 0xa2, 0x5c, 0x57, 0x77, 0x66, 0x26, - 0xf6, 0x1d, 0xd3, 0xa6, 0x01, 0x31, 0x7b, 0x9b, 0x66, 0x4d, 0x61, 0xac, 0x04, 0x8d, 0xbe, 0x05, - 0x13, 0xc4, 0xeb, 0xe9, 0xa5, 0x8d, 0x09, 0x39, 0xb4, 0x02, 0xa3, 0x5d, 0xaf, 0xf7, 0x0c, 0x07, - 0x96, 0x80, 0xa1, 0x67, 0x50, 0xee, 0xf8, 0xb8, 0x91, 0xb9, 0xcf, 0x7a, 0x3f, 0x6b, 0x92, 0xb9, - 0x9b, 0x33, 0xd5, 0xdd, 0x9c, 0xb9, 0x4f, 0x03, 0xe7, 0xa7, 0xd4, 0xe3, 0xd8, 0xad, 0xd3, 0x56, - 0x4d, 0x01, 0x48, 0x10, 0xb1, 0xfd, 0x8e, 0x8f, 0x65, 0xfc, 0x6f, 0xc3, 0xb2, 0xd3, 0x95, 0x97, - 0x0e, 0xa1, 0xeb, 0x36, 0xd4, 0xa1, 0x71, 0x52, 0xa6, 0x6d, 0x51, 0x2a, 0xea, 0xa1, 0xeb, 0x46, - 0xfb, 0x03, 0xfa, 0x3e, 0x54, 0x24, 0xa5, 0x67, 0xc4, 0x8d, 0xd8, 0xdb, 0x94, 0x8c, 0x7d, 0xeb, - 0x85, 0x69, 0x94, 0x6c, 0xff, 0x58, 0x59, 0xed, 0x7a, 0x3c, 0xe8, 0x5b, 0xf3, 0x5e, 0x46, 0x84, - 0x9e, 0xc2, 0x2b, 0x3e, 0x6d, 0x35, 0x5a, 0x0e, 0x0b, 0x42, 0x5f, 0x50, 0xce, 0x46, 0x33, 0x6c, - 0xb5, 0x09, 0xd7, 0xa7, 0x07, 0x27, 0xaa, 0x4e, 0x5b, 0x8f, 0x12, 0xd4, 0x43, 0x09, 0x92, 0x03, - 0x5a, 0xf1, 0x87, 0x15, 0xe8, 0xc7, 0xb0, 0x28, 0xdc, 0x62, 0xcf, 0xa3, 0x1c, 0x0b, 0x39, 0xd3, - 0x67, 0x64, 0xc8, 0x77, 0x5f, 0x1c, 0xb2, 0xc8, 0x59, 0x6a, 0x17, 0x05, 0xbd, 0xe0, 0xe7, 0x84, - 0xc8, 0x84, 0x15, 0x3f, 0x70, 0xa8, 0x38, 0xbf, 0x35, 0x6c, 0x17, 0x33, 0x26, 0xef, 0xf9, 0xf4, - 0xb2, 0x4c, 0xdf, 0x72, 0xac, 0xda, 0x11, 0x9a, 0x43, 0xdc, 0x25, 0xa8, 0x06, 0x8b, 0x01, 0xc1, - 0x2d, 0xc7, 0x13, 0x2c, 0xcd, 0x0f, 0x68, 0x93, 0xe8, 0xb3, 0x72, 0x80, 0x7a, 0x1a, 0x8f, 0x15, - 0x03, 0xea, 0x42, 0x6f, 0x2d, 0x04, 0xb9, 0x77, 0xf4, 0x75, 0xa8, 0x04, 0xc4, 0x77, 0x1d, 0x1b, - 0x37, 0x6c, 0x1a, 0x7a, 0x5c, 0x87, 0x0d, 0xed, 0x56, 0xc5, 0x9a, 0x57, 0xc2, 0x1d, 0x21, 0x43, - 0x9b, 0x30, 0x1b, 0xc4, 0x83, 0xd1, 0xe7, 0xe4, 0x17, 0x56, 0xb2, 0x5f, 0x50, 0x2a, 0x2b, 0x45, - 0xa1, 0xfb, 0x30, 0xc3, 0x48, 0xd0, 0x73, 0x6c, 0xa2, 0xcf, 0xab, 0xeb, 0xd2, 0x82, 0x15, 0x79, - 0x1c, 0x41, 0xa2, 0x25, 0xa4, 0xf0, 0x82, 0xcf, 0x33, 0x1e, 0x60, 0x4e, 0xda, 0x7d, 0xbd, 0xa2, - 0xf8, 0x7c, 0x76, 0x69, 0xfa, 0x3e, 0x13, 0xb6, 0x8f, 0x88, 0xef, 0xd2, 0xbe, 0x38, 0x54, 0x1d, - 0x2b, 0xb4, 0x95, 0xd8, 0xa1, 0x7b, 0x50, 0xa6, 0x3d, 0x12, 0xb8, 0xb8, 0xcf, 0xf4, 0x96, 0xaa, - 0x88, 0x24, 0xe0, 0xb3, 0x6d, 0x76, 0xd4, 0x14, 0x24, 0xea, 0x28, 0x82, 0x58, 0x09, 0x76, 0xed, - 0x43, 0x58, 0x1e, 0x5a, 0x5b, 0x68, 0x09, 0x26, 0xce, 0x48, 0x5f, 0x31, 0x6e, 0xf1, 0x88, 0x56, - 0x61, 0xaa, 0x27, 0xda, 0x84, 0x6a, 0x08, 0xd1, 0xcb, 0xb7, 0x4b, 0xdb, 0xda, 0x5a, 0x4d, 0xb0, - 0x9f, 0xa1, 0x99, 0x1e, 0xc7, 0x85, 0xf1, 0x85, 0x06, 0x4b, 0x83, 0x21, 0xa2, 0x6b, 0x30, 0x87, - 0x7d, 0xa7, 0xd1, 0x23, 0x01, 0x73, 0xa8, 0xa7, 0x1c, 0x01, 0xf6, 0x9d, 0x67, 0x91, 0x04, 0x21, - 0x98, 0x3c, 0x73, 0xbc, 0x96, 0x72, 0x27, 0x9f, 0x85, 0x4c, 0x2e, 0xa0, 0x89, 0x48, 0x26, 0x9e, - 0xd1, 0x03, 0x98, 0xf1, 0x31, 0xb7, 0x3b, 0x84, 0xe9, 0x93, 0x32, 0x31, 0xd7, 0x47, 0x27, 0xc6, - 0xac, 0x63, 0xde, 0x51, 0xfd, 0x50, 0x19, 0xad, 0x5d, 0x83, 0xd9, 0x44, 0x2a, 0x3e, 0x20, 0x2f, - 0x17, 0xa3, 0x70, 0xe4, 0xb3, 0xf1, 0xab, 0x29, 0xa8, 0xe4, 0x6e, 0xb6, 0xd1, 0x49, 0xe1, 0x55, - 0xb4, 0x36, 0x7c, 0x38, 0xc9, 0x18, 0x99, 0x6a, 0x5c, 0xea, 0x72, 0xbc, 0xe0, 0x26, 0xba, 0x0e, - 0x4b, 0x51, 0x7b, 0x69, 0xa4, 0xb7, 0x33, 0xa5, 0x71, 0x7c, 0x2e, 0x46, 0xe6, 0x09, 0x17, 0x44, - 0xb5, 0xcc, 0x45, 0xf3, 0xc4, 0x38, 0x9e, 0x5e, 0x70, 0xe1, 0x3c, 0x39, 0x8e, 0xaf, 0xe1, 0x0b, - 0xe7, 0x82, 0x83, 0x5d, 0xd4, 0x28, 0x5f, 0xd2, 0xe3, 0xe0, 0xc1, 0xee, 0xf1, 0xd0, 0xc1, 0x6e, - 0x7a, 0x1c, 0x77, 0xf9, 0x93, 0xdd, 0x1a, 0x86, 0x4a, 0x4e, 0x8f, 0x74, 0x98, 0xc9, 0xaf, 0xd2, - 0xf8, 0x15, 0xdd, 0x4b, 0x7e, 0x85, 0x88, 0x79, 0x5a, 0xc8, 0x5e, 0x21, 0xe5, 0x3f, 0x38, 0xf0, - 0x47, 0x64, 0x1b, 0xa6, 0x95, 0xef, 0x32, 0x4c, 0x1e, 0x1e, 0x1d, 0xee, 0x2e, 0x7d, 0x0d, 0xcd, - 0x43, 0xf9, 0x69, 0xfd, 0x51, 0xed, 0xe4, 0xe0, 0x70, 0x6f, 0x49, 0x43, 0x73, 0x30, 0xb3, 0xbf, - 0x5b, 0x7b, 0x7c, 0xb2, 0xff, 0x83, 0xa5, 0x12, 0x9a, 0x85, 0xa9, 0x5d, 0xcb, 0x3a, 0xb2, 0x96, - 0x26, 0x8c, 0x7f, 0x6b, 0x30, 0x9b, 0xb4, 0x27, 0xf4, 0x1e, 0x4c, 0xbb, 0x4e, 0xd7, 0xe1, 0x4c, - 0xd7, 0xe4, 0x80, 0xaf, 0x15, 0xf4, 0x30, 0xf3, 0xb1, 0x44, 0x44, 0xfd, 0x59, 0xc1, 0xd1, 0x77, - 0xa0, 0x1c, 0x90, 0x9f, 0x84, 0x84, 0x71, 0xa6, 0xf6, 0xd7, 0x37, 0x8b, 0x4c, 0x2d, 0x85, 0x89, - 0x8c, 0x13, 0x93, 0xb5, 0xfb, 0x30, 0x97, 0xf1, 0x3a, 0x56, 0x3b, 0x79, 0x1f, 0x2a, 0x39, 0xaf, - 0x63, 0x35, 0x92, 0xff, 0x94, 0x60, 0x21, 0xdf, 0xfe, 0xd1, 0x2d, 0x98, 0x24, 0xcf, 0x89, 0xad, - 0x8a, 0x6f, 0x35, 0x73, 0x94, 0x7f, 0x4e, 0xec, 0x9a, 0xbc, 0x9d, 0xb1, 0x24, 0x02, 0x6d, 0xc2, - 0x4c, 0x87, 0x73, 0x7f, 0x8f, 0x70, 0x55, 0x55, 0x99, 0x1f, 0x57, 0xfb, 0x27, 0x27, 0xf5, 0x3d, - 0xc2, 0x15, 0x3e, 0xc6, 0xa1, 0xf7, 0x60, 0x96, 0xdb, 0xfe, 0x31, 0xb5, 0xcf, 0x08, 0x57, 0x05, - 0xf4, 0x5a, 0xe6, 0xa2, 0x74, 0xa7, 0x1e, 0xa9, 0x94, 0x59, 0x8a, 0x45, 0xb7, 0x61, 0x45, 0x70, - 0x18, 0x07, 0xbb, 0x8f, 0x88, 0x8b, 0xfb, 0xc7, 0xc4, 0xa6, 0x5e, 0x2b, 0xfa, 0x61, 0x36, 0x65, - 0x15, 0xa9, 0xd0, 0x4d, 0x58, 0xe0, 0x4e, 0x97, 0xd0, 0x90, 0xc7, 0xe0, 0x29, 0x09, 0x1e, 0x90, - 0xa2, 0xeb, 0x50, 0xf1, 0x49, 0xe0, 0xd0, 0x56, 0x0c, 0x9b, 0x96, 0xb0, 0xbc, 0x10, 0xbd, 0x0d, - 0x4b, 0x2c, 0xb4, 0x6d, 0xc2, 0xd8, 0x49, 0x27, 0x20, 0xac, 0x43, 0xdd, 0x96, 0x3e, 0x23, 0x81, - 0x43, 0x72, 0x81, 0x3d, 0xc5, 0x8e, 0x1b, 0x06, 0x24, 0xc5, 0x96, 0x23, 0xec, 0xa0, 0xdc, 0xb8, - 0x09, 0x90, 0xe6, 0x55, 0x14, 0x86, 0x4d, 0xbb, 0x5d, 0xec, 0xb5, 0xe4, 0xfa, 0x9b, 0xb5, 0xe2, - 0x57, 0xe3, 0x17, 0x1a, 0x54, 0x72, 0x39, 0x2d, 0x6a, 0xac, 0x42, 0xd6, 0xa1, 0x8c, 0xc7, 0xdd, - 0x5c, 0x3c, 0xa3, 0x57, 0x61, 0x9a, 0xd9, 0x1d, 0xd2, 0x25, 0x8a, 0x63, 0xa9, 0x37, 0x74, 0x0f, - 0xe6, 0xc4, 0xac, 0xec, 0x13, 0xdc, 0x22, 0x01, 0x53, 0xfd, 0x62, 0x35, 0x3f, 0x83, 0x91, 0xd2, - 0xca, 0x02, 0x8d, 0x7b, 0x00, 0xa9, 0x2a, 0xd9, 0x3f, 0xb4, 0xcc, 0xfe, 0x51, 0xb8, 0xdc, 0x8c, - 0x1b, 0xb0, 0x38, 0x30, 0xbf, 0x49, 0xb8, 0xa5, 0x34, 0x5c, 0xe3, 0x6f, 0x1a, 0x5c, 0x19, 0xc1, - 0xb8, 0x04, 0x13, 0xe9, 0x3a, 0x5e, 0x03, 0xf7, 0xb0, 0xe3, 0x0a, 0xea, 0x2d, 0xbf, 0x5a, 0xb1, - 0xe6, 0xbb, 0x8e, 0x57, 0x8b, 0x65, 0xe8, 0x48, 0xb4, 0x68, 0xc5, 0x16, 0xa3, 0x65, 0xb9, 0x95, - 0xe1, 0x06, 0xc9, 0x2f, 0x62, 0xd3, 0x3f, 0x6b, 0x0b, 0x01, 0x33, 0xbb, 0x84, 0x63, 0xc1, 0x16, - 0x1e, 0xe3, 0x26, 0x71, 0xe3, 0x6d, 0xdd, 0x4a, 0x9c, 0xa0, 0xb7, 0x60, 0xb1, 0x8b, 0x9f, 0x37, - 0x42, 0x2f, 0xfd, 0xee, 0x84, 0xfc, 0xee, 0x42, 0x17, 0x3f, 0x7f, 0x9a, 0x4a, 0x8d, 0x07, 0x00, - 0xd1, 0xde, 0xf8, 0x84, 0x70, 0x9c, 0x64, 0x66, 0x2a, 0x93, 0x99, 0xdc, 0x49, 0x61, 0x7a, 0xe0, - 0xa4, 0x60, 0xfc, 0x75, 0x1a, 0xca, 0x27, 0x84, 0x71, 0xc1, 0x0f, 0xd1, 0x3b, 0x11, 0x57, 0xff, - 0x40, 0x4e, 0xcb, 0xd5, 0xec, 0xcf, 0x84, 0x08, 0x20, 0xa8, 0x7a, 0xd4, 0x45, 0x24, 0x59, 0xcf, - 0xf1, 0xaf, 0xfa, 0x4b, 0xf1, 0xaf, 0x02, 0x6a, 0xf8, 0xc9, 0x98, 0xd4, 0x30, 0x7b, 0x44, 0x78, - 0xf6, 0x15, 0x1e, 0x11, 0x46, 0x92, 0xf3, 0xef, 0x7d, 0x29, 0x72, 0x9e, 0x3d, 0x39, 0x95, 0xc7, - 0x3a, 0x39, 0x1d, 0x0d, 0xd3, 0xfa, 0x1f, 0xca, 0x99, 0xb9, 0x59, 0x30, 0x33, 0x2f, 0xc3, 0xe3, - 0x0f, 0x06, 0x0f, 0x36, 0x3f, 0x1a, 0x64, 0x5a, 0x89, 0xbb, 0x17, 0x9d, 0x64, 0x2e, 0x4a, 0x64, - 0xef, 0x41, 0x39, 0x5e, 0x43, 0xff, 0x63, 0xfe, 0xfa, 0xa5, 0x39, 0x74, 0x73, 0x5a, 0x9e, 0xc7, - 0xb7, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x8f, 0x4f, 0x1e, 0xad, 0xb6, 0x22, 0x00, 0x00, + // 2371 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xdd, 0x6f, 0xdc, 0xc6, + 0x11, 0x2f, 0x4f, 0x5f, 0xa7, 0x91, 0x4e, 0x1f, 0x2b, 0xd9, 0xa6, 0x65, 0x25, 0x56, 0x58, 0xdb, + 0x71, 0xd3, 0x86, 0xb2, 0xac, 0xd8, 0x91, 0x9b, 0xd4, 0xa9, 0x2c, 0x2b, 0x92, 0x10, 0x5b, 0xba, + 0x50, 0xb2, 0xfb, 0x81, 0xa2, 0x87, 0x15, 0xb9, 0xba, 0x63, 0xc4, 0xe3, 0x32, 0xcb, 0xe5, 0xc5, + 0xd7, 0xd7, 0x16, 0x68, 0xfb, 0x54, 0xc0, 0xef, 0x6d, 0x51, 0x14, 0xfd, 0xf8, 0x13, 0xfa, 0x90, + 0xf7, 0xfe, 0x15, 0xfd, 0x0f, 0xfa, 0xd8, 0xb7, 0x02, 0x45, 0xb1, 0xcb, 0xe5, 0xd7, 0x1d, 0x4f, + 0xf6, 0x29, 0x41, 0xa1, 0xbe, 0x91, 0x33, 0xbf, 0x19, 0xce, 0xce, 0xee, 0xcc, 0xce, 0x0c, 0xe1, + 0x5e, 0x70, 0xda, 0x5c, 0xc5, 0x81, 0x1b, 0xae, 0xba, 0x21, 0x77, 0xe9, 0x6a, 0x67, 0x0d, 0x7b, + 0x41, 0x0b, 0xdf, 0x8d, 0x5f, 0x6d, 0xea, 0x73, 0x46, 0xbd, 0xc0, 0xc3, 0x3e, 0x69, 0xf0, 0x6e, + 0x40, 0x42, 0x33, 0x60, 0x94, 0x53, 0x54, 0x4d, 0x70, 0x4b, 0xc6, 0xe9, 0x46, 0x68, 0xba, 0x54, + 0xe8, 0x58, 0xb5, 0x29, 0x23, 0xab, 0x9d, 0xb5, 0xd5, 0x26, 0xf1, 0x09, 0xc3, 0x9c, 0x38, 0x31, + 0xba, 0x80, 0xc1, 0x41, 0x10, 0x96, 0x61, 0xcc, 0x3c, 0x26, 0xe2, 0x34, 0xb4, 0xb1, 0xe7, 0xfa, + 0xcd, 0xd5, 0xce, 0xdd, 0x63, 0xc2, 0x71, 0x3f, 0xfe, 0xbd, 0x0c, 0xdf, 0xc6, 0x76, 0xcb, 0xf5, + 0x09, 0xeb, 0xae, 0xa6, 0x8b, 0x69, 0x13, 0x8e, 0xcb, 0xbe, 0xf2, 0xfd, 0xa6, 0xcb, 0x5b, 0xd1, + 0xb1, 0x69, 0xd3, 0xf6, 0x6a, 0x93, 0x36, 0xe9, 0xaa, 0x24, 0x1f, 0x47, 0x27, 0xd9, 0x43, 0x93, + 0xd2, 0xa6, 0x47, 0xb2, 0xf7, 0x2f, 0x18, 0x0e, 0x02, 0xc2, 0xd4, 0xca, 0x8d, 0x2e, 0xcc, 0xef, + 0x09, 0xd7, 0x6c, 0xc5, 0xae, 0xa9, 0x0b, 0xd7, 0xa0, 0x75, 0x18, 0x0d, 0x03, 0x62, 0xeb, 0x23, + 0x2b, 0xda, 0xed, 0xa9, 0xbb, 0xd7, 0xcd, 0xc4, 0x3b, 0x66, 0x1f, 0xf4, 0x30, 0x20, 0xb6, 0x25, + 0xc1, 0x68, 0x15, 0xc6, 0x43, 0x8e, 0x79, 0x14, 0xea, 0xa3, 0x52, 0xec, 0x4a, 0x4e, 0xcc, 0x0f, + 0x39, 0xf6, 0xbc, 0x43, 0xc9, 0xb6, 0x14, 0xcc, 0x78, 0x39, 0x06, 0x97, 0x4a, 0x15, 0xa2, 0x6f, + 0xc3, 0xbc, 0x43, 0x4e, 0x70, 0xe4, 0xf1, 0x86, 0x8f, 0xdb, 0x24, 0x0c, 0xb0, 0x4d, 0xf4, 0xb1, + 0x15, 0xed, 0xf6, 0xa4, 0x35, 0xa7, 0x18, 0xfb, 0x09, 0x1d, 0x3d, 0x03, 0xc4, 0x19, 0x3e, 0x39, + 0x71, 0xed, 0x46, 0x1b, 0xfb, 0xb8, 0x49, 0xda, 0xc4, 0xe7, 0xfa, 0x55, 0x69, 0xc3, 0xad, 0xcc, + 0x86, 0xa3, 0x18, 0xf3, 0x34, 0x85, 0x7c, 0x4c, 0x30, 0x8f, 0x58, 0xbc, 0x82, 0x79, 0xde, 0xcb, + 0x45, 0xeb, 0x30, 0x1e, 0x50, 0xcf, 0xb5, 0xbb, 0xfa, 0x92, 0x54, 0x75, 0x2d, 0x53, 0x55, 0x97, + 0xf4, 0xbc, 0xbc, 0x82, 0xa2, 0x0f, 0x61, 0x92, 0x13, 0x8f, 0xb4, 0x09, 0x67, 0x5d, 0xfd, 0x9a, + 0x94, 0x7b, 0x33, 0x67, 0x42, 0xc2, 0xca, 0x8b, 0x66, 0x02, 0xe8, 0x01, 0x54, 0x43, 0x62, 0x47, + 0xcc, 0xe5, 0x5d, 0x7d, 0x59, 0x0a, 0xbf, 0x91, 0x09, 0x1f, 0x2a, 0x4e, 0x5e, 0x36, 0x85, 0x23, + 0x0b, 0xe6, 0x6d, 0xea, 0x9f, 0xb8, 0xcd, 0xbc, 0x0f, 0xde, 0x90, 0x3a, 0x6e, 0x66, 0x3a, 0xb6, + 0x24, 0xa4, 0xdc, 0x05, 0x73, 0x76, 0x0f, 0x13, 0xed, 0xc1, 0x8c, 0x38, 0xb9, 0x0d, 0xd7, 0xff, + 0x8c, 0xd8, 0xdc, 0xa5, 0xbe, 0xfe, 0xa6, 0x54, 0x68, 0x64, 0x0a, 0x37, 0x23, 0x4e, 0xf7, 0x12, + 0x76, 0x5e, 0x5b, 0x0d, 0xe7, 0x39, 0x68, 0x03, 0xaa, 0x4d, 0xcc, 0xc9, 0x17, 0xb8, 0x1b, 0xea, + 0xd7, 0xa5, 0x92, 0xe5, 0x4c, 0xc9, 0x4e, 0xcc, 0x29, 0x2c, 0x2c, 0x41, 0x23, 0x1d, 0x26, 0x02, + 0x46, 0x4f, 0x5c, 0x8f, 0xe8, 0x8e, 0x3c, 0x00, 0xc9, 0x2b, 0xba, 0x03, 0x8b, 0x6e, 0x7c, 0xae, + 0x1a, 0x01, 0xb6, 0x4f, 0x71, 0x93, 0x34, 0x02, 0xcc, 0x5b, 0xfa, 0x89, 0x84, 0x21, 0xc5, 0xab, + 0xc7, 0xac, 0x3a, 0xe6, 0x2d, 0x34, 0x07, 0x23, 0xad, 0xe8, 0x58, 0xf7, 0x25, 0x40, 0x3c, 0x0a, + 0x0a, 0xc7, 0x4d, 0x9d, 0xc6, 0x14, 0x8e, 0x9b, 0xc6, 0x97, 0x15, 0x58, 0x3e, 0xeb, 0xa8, 0xa0, + 0xf7, 0x60, 0x82, 0xf8, 0xf8, 0xd8, 0x23, 0x8e, 0xae, 0xc9, 0x95, 0x2c, 0x99, 0x71, 0x88, 0x99, + 0x49, 0x88, 0x99, 0x8f, 0x28, 0xf5, 0x9e, 0x63, 0x2f, 0x22, 0x56, 0x02, 0x45, 0x9f, 0x02, 0xd8, + 0xb4, 0x1d, 0x50, 0x9f, 0xf8, 0x3c, 0xd4, 0xef, 0x4a, 0xc1, 0xb5, 0xd7, 0x3b, 0x9c, 0xe6, 0x56, + 0x2a, 0x68, 0xe5, 0x94, 0x2c, 0xbd, 0xd4, 0x00, 0x32, 0x16, 0x5a, 0x86, 0xc9, 0x2c, 0x56, 0x34, + 0xb9, 0xa0, 0x8c, 0x80, 0xee, 0xc2, 0x58, 0xe0, 0x7a, 0x94, 0xeb, 0x8b, 0xbd, 0xde, 0xaf, 0x0b, + 0x72, 0xaa, 0x47, 0x7a, 0x3f, 0x86, 0x4a, 0x19, 0x46, 0x5f, 0x74, 0xf5, 0x4b, 0x7d, 0x32, 0x82, + 0xdc, 0x2b, 0x23, 0x68, 0xc6, 0xbf, 0x34, 0x98, 0xef, 0x0b, 0x8f, 0x73, 0xfa, 0xec, 0xe3, 0x12, + 0x9f, 0xdd, 0x3a, 0x23, 0x0a, 0x07, 0x39, 0x0a, 0x0f, 0xe1, 0xa7, 0x7b, 0x69, 0xd4, 0x2f, 0xf6, + 0x06, 0x60, 0xfc, 0xbd, 0xe2, 0xaa, 0x15, 0xd8, 0xf8, 0x79, 0x05, 0x16, 0xcb, 0xa2, 0xfb, 0x9c, + 0x2b, 0xdf, 0x2b, 0x59, 0xf9, 0xb7, 0xce, 0xce, 0x23, 0x83, 0x16, 0xff, 0xd9, 0x10, 0x8b, 0x7f, + 0x98, 0xcf, 0x5e, 0xf1, 0xfa, 0x57, 0x4a, 0xbe, 0x5a, 0x74, 0x41, 0x26, 0x62, 0xfc, 0x62, 0x04, + 0x16, 0x4a, 0xd2, 0xd4, 0x39, 0x9d, 0xb0, 0x5b, 0xe2, 0x84, 0xdb, 0x67, 0xe6, 0xc3, 0x41, 0x3e, + 0xf8, 0xe7, 0x30, 0x91, 0xb2, 0x01, 0x13, 0xb6, 0xcb, 0xb1, 0x43, 0x3c, 0xe5, 0x82, 0x5c, 0x02, + 0xdf, 0x8a, 0x19, 0x45, 0x07, 0x24, 0x70, 0xb4, 0x0d, 0xd3, 0x36, 0x61, 0x5c, 0x65, 0x60, 0xa6, + 0xc2, 0x26, 0x97, 0x2d, 0xb7, 0x08, 0xe3, 0x71, 0x88, 0xb3, 0xa2, 0x8a, 0x29, 0x3b, 0xe3, 0xa0, + 0x8f, 0x00, 0x7c, 0xea, 0x90, 0x06, 0x6e, 0x8a, 0x1c, 0x7e, 0xb9, 0x77, 0x1b, 0xf6, 0xa9, 0x43, + 0x36, 0x05, 0xab, 0x67, 0x1b, 0xfc, 0x84, 0x6e, 0xfc, 0xaa, 0x02, 0xd7, 0xce, 0xc8, 0xf4, 0xe7, + 0xdc, 0x8e, 0x7a, 0xc9, 0x76, 0xdc, 0x79, 0xad, 0xab, 0xe5, 0x6b, 0x8a, 0xcb, 0x26, 0xf6, 0x3c, + 0x52, 0x12, 0x97, 0x3b, 0x92, 0xde, 0x13, 0x97, 0x31, 0xd8, 0xf8, 0x4d, 0x05, 0xf4, 0x41, 0x77, + 0xd4, 0x39, 0xfd, 0xf0, 0xb4, 0xc4, 0x0f, 0xef, 0xbe, 0xfa, 0x46, 0x1c, 0xe4, 0x04, 0x7f, 0x08, + 0x27, 0x3c, 0x82, 0x6a, 0x7c, 0x17, 0x53, 0xa6, 0xdc, 0x90, 0x4b, 0x87, 0x87, 0xae, 0x43, 0x6c, + 0xcc, 0xf6, 0x14, 0xa0, 0xe8, 0x8f, 0x54, 0xce, 0xf8, 0x47, 0x05, 0x50, 0xff, 0x85, 0x7b, 0x4e, + 0x5f, 0xec, 0x94, 0xf8, 0xe2, 0xed, 0xb3, 0x2e, 0xf6, 0x41, 0x5e, 0xf8, 0xfb, 0x30, 0x11, 0xba, + 0x0f, 0xb3, 0xae, 0xdf, 0x64, 0x24, 0x0c, 0x1b, 0xaa, 0x4c, 0x50, 0x35, 0xc5, 0xcd, 0x7c, 0xc5, + 0x29, 0x01, 0xca, 0x82, 0xa2, 0x33, 0x66, 0xdc, 0x02, 0x13, 0x7d, 0x02, 0x33, 0xa4, 0xa8, 0x6e, + 0x45, 0xaa, 0xbb, 0x91, 0xa9, 0xdb, 0x1e, 0xac, 0xad, 0x46, 0xf2, 0x3c, 0xe3, 0xb7, 0x1a, 0xa0, + 0xfe, 0x2b, 0xf5, 0x9c, 0xfe, 0x2d, 0xf8, 0xa1, 0xd2, 0xeb, 0x87, 0x75, 0x18, 0x39, 0xdd, 0x08, + 0xf5, 0xba, 0xd4, 0xf7, 0x56, 0x66, 0xec, 0x27, 0xd1, 0x31, 0x61, 0x3e, 0xe1, 0x24, 0xb4, 0x48, + 0x48, 0x23, 0x66, 0x93, 0x50, 0x5a, 0x2a, 0xd0, 0xb1, 0x7d, 0x7d, 0xd7, 0xf7, 0xc5, 0xb1, 0xef, + 0x2f, 0x1a, 0x2c, 0x9f, 0x75, 0x94, 0x2f, 0x8e, 0xa5, 0xbf, 0xd3, 0x60, 0xa1, 0xa4, 0x26, 0xb8, + 0x38, 0x06, 0xfe, 0x41, 0x83, 0xcb, 0xe5, 0x97, 0xf6, 0xc5, 0xb1, 0xf1, 0xf7, 0x1a, 0x2c, 0x96, + 0xdd, 0xaa, 0x17, 0xc7, 0xc2, 0x3f, 0x6a, 0xa0, 0x0f, 0xba, 0xb8, 0x2f, 0xd6, 0x5e, 0x97, 0x57, + 0x06, 0x17, 0x2b, 0x60, 0x4a, 0x2e, 0xeb, 0x8b, 0x63, 0xe0, 0x9f, 0x35, 0xb8, 0x76, 0xc6, 0xc5, + 0x71, 0x71, 0x0c, 0xfd, 0x93, 0x06, 0x4b, 0xdb, 0xff, 0x07, 0x76, 0xbe, 0xac, 0xc2, 0x95, 0x01, + 0x00, 0xb4, 0x01, 0x55, 0xd1, 0xf3, 0xfa, 0x2e, 0xef, 0x2a, 0x2b, 0x97, 0xd5, 0xcc, 0xcc, 0xc4, + 0x81, 0x6b, 0xda, 0x94, 0x11, 0xb3, 0xb3, 0x66, 0x6e, 0x2a, 0x8c, 0x95, 0xa2, 0xd1, 0x77, 0x60, + 0x84, 0xf8, 0x1d, 0xbd, 0xb2, 0x32, 0x22, 0x97, 0x56, 0x22, 0xb4, 0xed, 0x77, 0x9e, 0x63, 0x66, + 0x09, 0x18, 0x7a, 0x0e, 0xd5, 0x56, 0x80, 0x1b, 0xb9, 0x79, 0xd6, 0x07, 0x79, 0x91, 0xdc, 0x6c, + 0xce, 0x54, 0xb3, 0x39, 0x73, 0x97, 0x32, 0xf7, 0x67, 0xd4, 0xe7, 0xd8, 0xab, 0x53, 0x67, 0x53, + 0x01, 0x08, 0x8b, 0xab, 0xfd, 0x56, 0x80, 0xa5, 0xfd, 0xef, 0xc0, 0xbc, 0xdb, 0x96, 0x43, 0x87, + 0xc8, 0xf3, 0x1a, 0xaa, 0x69, 0x1c, 0x95, 0x6e, 0x9b, 0x95, 0x8c, 0x7a, 0xe4, 0x79, 0xf1, 0xfd, + 0x80, 0x7e, 0x08, 0x35, 0x59, 0xd2, 0x87, 0xc4, 0x8b, 0xab, 0xb7, 0x31, 0x69, 0xfb, 0xfa, 0x2b, + 0xdd, 0x28, 0xab, 0xfd, 0x43, 0x25, 0xb5, 0xed, 0x73, 0xd6, 0xb5, 0xa6, 0xfd, 0x1c, 0x09, 0x3d, + 0x83, 0x4b, 0x01, 0x75, 0x1a, 0x8e, 0x1b, 0xb2, 0x28, 0x10, 0x25, 0x67, 0xe3, 0x38, 0x72, 0x9a, + 0x84, 0xeb, 0xe3, 0xbd, 0x1b, 0x55, 0xa7, 0xce, 0xe3, 0x14, 0xf5, 0x48, 0x82, 0xe4, 0x82, 0x16, + 0x82, 0x7e, 0x06, 0xfa, 0x29, 0xcc, 0x0a, 0xb5, 0xd8, 0xf7, 0x29, 0xc7, 0x82, 0x1e, 0xea, 0x13, + 0xd2, 0xe4, 0x7b, 0xaf, 0x36, 0x59, 0xf8, 0x2c, 0x93, 0x8b, 0x8d, 0x9e, 0x09, 0x0a, 0x44, 0x64, + 0xc2, 0x42, 0xc0, 0x5c, 0x2a, 0xfa, 0xb7, 0x86, 0xed, 0xe1, 0x30, 0x94, 0x73, 0x3e, 0xbd, 0x2a, + 0xdd, 0x37, 0x9f, 0xb0, 0xb6, 0x04, 0x67, 0x1f, 0xb7, 0x09, 0xda, 0x84, 0x59, 0x46, 0xb0, 0xe3, + 0xfa, 0xa2, 0x4a, 0x0b, 0x18, 0x3d, 0x26, 0xfa, 0xa4, 0x5c, 0xa0, 0x9e, 0xd9, 0x63, 0x25, 0x80, + 0xba, 0xe0, 0x5b, 0x33, 0xac, 0xf0, 0x8e, 0xbe, 0x09, 0x35, 0x46, 0x02, 0xcf, 0xb5, 0x71, 0xc3, + 0xa6, 0x91, 0xcf, 0x75, 0x58, 0xd1, 0x6e, 0xd7, 0xac, 0x69, 0x45, 0xdc, 0x12, 0x34, 0xb4, 0x06, + 0x93, 0x2c, 0x59, 0x8c, 0x3e, 0x25, 0xbf, 0xb0, 0x90, 0xff, 0x82, 0x62, 0x59, 0x19, 0x0a, 0x3d, + 0x80, 0x89, 0x90, 0xb0, 0x8e, 0x6b, 0x13, 0x7d, 0x5a, 0x8d, 0x4b, 0x4b, 0x4e, 0xe4, 0x61, 0x0c, + 0x89, 0x8f, 0x90, 0xc2, 0x8b, 0x10, 0x08, 0x39, 0xc3, 0x9c, 0x34, 0xbb, 0x7a, 0xad, 0x77, 0xc6, + 0xf2, 0x98, 0x04, 0x1e, 0xed, 0x8a, 0x56, 0xea, 0x50, 0x61, 0xac, 0x14, 0x8d, 0xee, 0x43, 0x95, + 0x76, 0x08, 0xf3, 0x70, 0x37, 0xd4, 0x1d, 0x15, 0x07, 0xa9, 0xe4, 0xe9, 0x46, 0x78, 0x70, 0x2c, + 0x4a, 0xa7, 0x83, 0x18, 0x62, 0xa5, 0xd8, 0xa5, 0x8f, 0x60, 0xbe, 0xef, 0x44, 0xa1, 0x39, 0x18, + 0x39, 0x25, 0x5d, 0x55, 0x67, 0x8b, 0x47, 0xb4, 0x08, 0x63, 0x1d, 0x91, 0x1c, 0x54, 0x1a, 0x88, + 0x5f, 0xbe, 0x5b, 0xd9, 0xd0, 0x96, 0x36, 0x45, 0xcd, 0xd3, 0xb7, 0xbf, 0xc3, 0xa8, 0x30, 0xbe, + 0xd4, 0x60, 0xae, 0xd7, 0x44, 0x74, 0x1d, 0xa6, 0x70, 0xe0, 0x36, 0x3a, 0x84, 0x85, 0x2e, 0xf5, + 0x95, 0x22, 0xc0, 0x81, 0xfb, 0x3c, 0xa6, 0x20, 0x04, 0xa3, 0xa7, 0xae, 0xef, 0x28, 0x75, 0xf2, + 0x59, 0xd0, 0xe4, 0xb1, 0x19, 0x89, 0x69, 0xe2, 0x19, 0x3d, 0x84, 0x89, 0x00, 0x73, 0xbb, 0x45, + 0x42, 0x7d, 0x54, 0x3a, 0xe6, 0xc6, 0x60, 0xc7, 0x98, 0x75, 0xcc, 0x5b, 0x2a, 0x0b, 0x2a, 0xa1, + 0xa5, 0xeb, 0x30, 0x99, 0x52, 0xc5, 0x07, 0xe4, 0x48, 0x31, 0x36, 0x47, 0x3e, 0x1b, 0xbf, 0x1e, + 0x83, 0x5a, 0x61, 0x9e, 0x8d, 0x8e, 0x4a, 0x07, 0xd0, 0x5a, 0x7f, 0x4b, 0x92, 0x13, 0x32, 0xd5, + 0xba, 0xd4, 0x48, 0xbc, 0x64, 0xfe, 0x5c, 0x87, 0xb9, 0x38, 0xa9, 0x34, 0xb2, 0x99, 0x4c, 0x65, + 0x18, 0x9d, 0xb3, 0xb1, 0x78, 0x5a, 0x01, 0xa2, 0xcd, 0xdc, 0x78, 0x79, 0x64, 0x18, 0x4d, 0xaf, + 0x18, 0x33, 0x8f, 0x0e, 0xa3, 0xab, 0x7f, 0xcc, 0x5c, 0xd2, 0xce, 0xc5, 0xe9, 0xf1, 0x35, 0x35, + 0xf6, 0xb6, 0x73, 0x4f, 0xfa, 0xda, 0xb9, 0xf1, 0x61, 0xd4, 0x15, 0xfb, 0xb9, 0x25, 0x0c, 0xb5, + 0x02, 0x1f, 0xe9, 0x30, 0x51, 0x3c, 0xa5, 0xc9, 0x2b, 0xba, 0x9f, 0xfe, 0x00, 0x11, 0xfb, 0x34, + 0x93, 0x1f, 0x1c, 0x15, 0x3f, 0xd8, 0xf3, 0x1f, 0x64, 0x03, 0xc6, 0x95, 0xee, 0x2a, 0x8c, 0xee, + 0x1f, 0xec, 0x6f, 0xcf, 0x7d, 0x03, 0x4d, 0x43, 0xf5, 0x59, 0xfd, 0xf1, 0xe6, 0xd1, 0xde, 0xfe, + 0xce, 0x9c, 0x86, 0xa6, 0x60, 0x62, 0x77, 0x7b, 0xf3, 0xc9, 0xd1, 0xee, 0x8f, 0xe6, 0x2a, 0x68, + 0x12, 0xc6, 0xb6, 0x2d, 0xeb, 0xc0, 0x9a, 0x1b, 0x31, 0xfe, 0xad, 0xc1, 0x64, 0x9a, 0x94, 0xd0, + 0xfb, 0x30, 0xee, 0xb9, 0x6d, 0x97, 0x87, 0xba, 0x26, 0x17, 0x7c, 0xbd, 0x24, 0x73, 0x99, 0x4f, + 0x24, 0x22, 0xce, 0xca, 0x0a, 0x8e, 0xbe, 0x07, 0x55, 0x46, 0x3e, 0x8f, 0x48, 0xc8, 0x43, 0x75, + 0xab, 0xbe, 0x55, 0x26, 0x6a, 0x29, 0x4c, 0x2c, 0x9c, 0x8a, 0x2c, 0x3d, 0x80, 0xa9, 0x9c, 0xd6, + 0xa1, 0xd2, 0xc9, 0x07, 0x50, 0x2b, 0x68, 0x1d, 0x2a, 0x91, 0xfc, 0xa7, 0x02, 0x33, 0xc5, 0xa4, + 0x8f, 0x6e, 0xc3, 0x28, 0x79, 0x41, 0x6c, 0x15, 0x7c, 0x8b, 0xb9, 0x06, 0xfe, 0x05, 0xb1, 0x37, + 0xe5, 0x4c, 0xc6, 0x92, 0x08, 0xb4, 0x06, 0x13, 0x2d, 0xce, 0x83, 0x1d, 0xc2, 0x55, 0x54, 0xe5, + 0x7e, 0x57, 0xed, 0x1e, 0x1d, 0xd5, 0x77, 0x08, 0x57, 0xf8, 0x04, 0x87, 0xde, 0x87, 0x49, 0x6e, + 0x07, 0x87, 0xd4, 0x3e, 0x25, 0x5c, 0x05, 0xd0, 0xd5, 0xdc, 0x78, 0x74, 0xab, 0x1e, 0xb3, 0x94, + 0x58, 0x86, 0x45, 0x77, 0x60, 0x41, 0x54, 0x2e, 0x2e, 0xf6, 0x1e, 0x13, 0x0f, 0x77, 0x0f, 0x89, + 0x4d, 0x7d, 0x27, 0xfe, 0x4d, 0x36, 0x66, 0x95, 0xb1, 0xd0, 0x2d, 0x98, 0xe1, 0x6e, 0x9b, 0xd0, + 0x88, 0x27, 0xe0, 0x31, 0x09, 0xee, 0xa1, 0xa2, 0x1b, 0x50, 0x0b, 0x08, 0x73, 0xa9, 0x93, 0xc0, + 0xc6, 0x25, 0xac, 0x48, 0x44, 0xef, 0xc0, 0x5c, 0x18, 0xd9, 0x36, 0x09, 0xc3, 0xa3, 0x16, 0x23, + 0x61, 0x8b, 0x7a, 0x8e, 0x3e, 0x21, 0x81, 0x7d, 0x74, 0x81, 0x3d, 0xc1, 0xae, 0x17, 0x31, 0x92, + 0x61, 0xab, 0x31, 0xb6, 0x97, 0x6e, 0xdc, 0x02, 0xc8, 0xfc, 0x2a, 0x02, 0xc3, 0xa6, 0xed, 0x36, + 0xf6, 0x1d, 0x79, 0xfe, 0x26, 0xad, 0xe4, 0xd5, 0xf8, 0xa5, 0x06, 0xb5, 0x82, 0x4f, 0xcb, 0x12, + 0xab, 0xa0, 0xb5, 0x68, 0xc8, 0x93, 0x6c, 0x2e, 0x9e, 0xd1, 0x65, 0x18, 0x0f, 0xed, 0x16, 0x69, + 0x13, 0x55, 0x59, 0xa9, 0x37, 0x74, 0x1f, 0xa6, 0xc4, 0xae, 0xec, 0x12, 0xec, 0x10, 0x16, 0xaa, + 0x7c, 0xb1, 0x58, 0xdc, 0xc1, 0x98, 0x69, 0xe5, 0x81, 0xc6, 0x7d, 0x80, 0x8c, 0x95, 0xde, 0x1f, + 0x5a, 0xee, 0xfe, 0x28, 0x3d, 0x6e, 0xc6, 0x4d, 0x98, 0xed, 0xd9, 0xdf, 0xd4, 0xdc, 0x4a, 0x66, + 0xae, 0xf1, 0x37, 0x0d, 0xae, 0x0c, 0xa8, 0xb3, 0x44, 0xfd, 0xd1, 0x76, 0xfd, 0x06, 0xee, 0x60, + 0xd7, 0x13, 0x05, 0xb7, 0xfc, 0x6a, 0xcd, 0x9a, 0x6e, 0xbb, 0xfe, 0x66, 0x42, 0x43, 0x07, 0x22, + 0x45, 0xab, 0x1a, 0x31, 0x3e, 0x96, 0xeb, 0xb9, 0x6a, 0x22, 0xfd, 0x31, 0x6c, 0x06, 0xa7, 0x4d, + 0x41, 0x08, 0xcd, 0x36, 0xe1, 0x58, 0xd4, 0x17, 0x4f, 0xf0, 0x31, 0xf1, 0x92, 0x6b, 0xdd, 0x4a, + 0x95, 0xa0, 0xb7, 0x61, 0xb6, 0x8d, 0x5f, 0x34, 0x22, 0x3f, 0xfb, 0xee, 0x88, 0xfc, 0xee, 0x4c, + 0x1b, 0xbf, 0x78, 0x96, 0x51, 0x8d, 0xcf, 0x01, 0xf5, 0x57, 0x1c, 0x62, 0x91, 0xbc, 0x1b, 0xa4, + 0x1e, 0x12, 0xcf, 0x68, 0x07, 0x6a, 0x8c, 0x7a, 0xa2, 0x60, 0x7e, 0x16, 0x38, 0x98, 0x13, 0x65, + 0x68, 0x3e, 0x65, 0xe4, 0xd9, 0x99, 0x56, 0xab, 0x28, 0x67, 0x5c, 0x85, 0x2b, 0x03, 0x90, 0xc6, + 0x43, 0x80, 0xf8, 0xa6, 0x7e, 0x4a, 0x38, 0x4e, 0xf7, 0x69, 0x2c, 0xb7, 0x4f, 0x85, 0x6e, 0x65, + 0xbc, 0xa7, 0x5b, 0x31, 0xfe, 0x3a, 0x0e, 0xd5, 0x23, 0x12, 0x72, 0x51, 0xa3, 0xa2, 0x77, 0xe3, + 0x7e, 0xe1, 0x43, 0x79, 0x48, 0xae, 0xe5, 0x7f, 0x68, 0xc4, 0x00, 0xd1, 0x2e, 0xc4, 0x39, 0x4d, + 0x36, 0x0c, 0x85, 0x1a, 0xb0, 0xfe, 0x5a, 0x35, 0x60, 0x49, 0x79, 0xfa, 0xe9, 0x90, 0xe5, 0x69, + 0xbe, 0x4d, 0x79, 0xfe, 0x35, 0xb6, 0x29, 0x03, 0x1b, 0x84, 0x1f, 0x7c, 0xa5, 0x06, 0x21, 0xdf, + 0xbd, 0x55, 0x87, 0xea, 0xde, 0x0e, 0xfa, 0x5b, 0x8b, 0x1f, 0xcb, 0x9d, 0xb9, 0x55, 0xb2, 0x33, + 0xaf, 0xd3, 0x4b, 0xec, 0xf5, 0x36, 0x57, 0x3f, 0xe9, 0xad, 0xfb, 0x52, 0x75, 0xaf, 0xea, 0xa6, + 0xce, 0x5b, 0x56, 0xdf, 0x87, 0x6a, 0x72, 0x86, 0xfe, 0xc7, 0xd5, 0xf4, 0x57, 0xae, 0xe8, 0x8f, + 0xc7, 0xe5, 0x4c, 0x60, 0xfd, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe9, 0x8f, 0xd5, 0xdd, 0x3a, + 0x23, 0x00, 0x00, } diff --git a/pkg/apis/istio/v1alpha2/istiocontrolplane_types.proto b/pkg/apis/istio/v1alpha2/istiocontrolplane_types.proto index adf615feb..18638e400 100644 --- a/pkg/apis/istio/v1alpha2/istiocontrolplane_types.proto +++ b/pkg/apis/istio/v1alpha2/istiocontrolplane_types.proto @@ -432,7 +432,7 @@ message KubernetesResourcesSpec { k8s.io.api.core.v1.ServiceSpec service = 12; // k8s deployment strategy. // https://kubernetes.io/docs/concepts/workloads/controllers/deployment/ - k8s.io.api.apps.v1.DeploymentStrategy strategy = 13; + DeploymentStrategy strategy = 13; // Overlays for k8s resources in rendered manifests. repeated k8sObjectOverlay overlays = 100; @@ -536,6 +536,16 @@ message PodDisruptionBudgetSpec { uint32 max_unavailable = 3; } +// Mirrors k8s.io.api.apps.v1.DeploymentStrategy for unmarshaling. +message DeploymentStrategy { + string type = 1; + RollingUpdateDeployment rollingUpdate = 2; +} + +// Mirrors k8s.io.api.apps.v1.RollingUpdateDeployment for unmarshaling. +message RollingUpdateDeployment { +} + message ObjectMeta { // From k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta string name = 5; diff --git a/pkg/apis/istio/v1alpha2/v1alpha2.pb.html b/pkg/apis/istio/v1alpha2/v1alpha2.pb.html index c770aa352..17ece284d 100644 --- a/pkg/apis/istio/v1alpha2/v1alpha2.pb.html +++ b/pkg/apis/istio/v1alpha2/v1alpha2.pb.html @@ -2,7 +2,7 @@ title: v1alpha2 layout: protoc-gen-docs generator: protoc-gen-docs -number_of_entries: 48 +number_of_entries: 49 ---

AutoInjectionFeatureSpec

@@ -188,6 +188,34 @@

ConfigManagementFeatureSpec.Comp

+

DeploymentStrategy

+
+

Mirrors k8s.io.api.apps.v1.DeploymentStrategy for unmarshaling.

+ + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typestring +
rollingUpdateRollingUpdateDeployment +
+

EgressGatewayComponentSpec

Configuration options for egress gateways.

@@ -826,7 +854,7 @@

KubernetesResourcesSpec

strategy -k8s.io.api.apps.v1.DeploymentStrategy +DeploymentStrategy

k8s deployment strategy. https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

@@ -1194,6 +1222,11 @@

Resources

+
+

RollingUpdateDeployment

+
+

Mirrors k8s.io.api.apps.v1.RollingUpdateDeployment for unmarshaling.

+

SecurityFeatureSpec

@@ -1552,45 +1585,6 @@

TrafficManagementFeatureSpec.Co proxy ProxyComponentSpec - - - - -

-

k8s.io.api.apps.v1.DeploymentStrategy

-
-

DeploymentStrategy describes how to replace existing pods with new ones.

- - - - - - - - - - - - - - - - - - - diff --git a/pkg/translate/translate.go b/pkg/translate/translate.go index ef7cec165..e330d4a6f 100644 --- a/pkg/translate/translate.go +++ b/pkg/translate/translate.go @@ -167,6 +167,10 @@ var ( "[{{.ResourceType}}:{{.ResourceName}}].spec.template.spec.containers.[name:{{.ContainerName}}].resources", nil, }, + "{{.FeatureName}}.Components.{{.ComponentName}}.K8S.Strategy": { + "[{{.ResourceType}}:{{.ResourceName}}].spec.strategy", + nil, + }, }, ToFeature: map[name.ComponentName]name.FeatureName{ name.IstioBaseComponentName: name.IstioBaseFeatureName, diff --git a/pkg/translate/translate_value.go b/pkg/translate/translate_value.go index 1cb38d87d..fcd708a0a 100644 --- a/pkg/translate/translate_value.go +++ b/pkg/translate/translate_value.go @@ -53,16 +53,18 @@ var ( "Affinity.PodAntiAffinity.RequiredDuringSchedulingIgnoredDuringExecution", "{{.ValueComponentName}}.podAntiAffinityTermLabelSelector": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s." + "Affinity.PodAntiAffinity.PreferredDuringSchedulingIgnoredDuringExecution", - "{{.ValueComponentName}}.env": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.Env", - "{{.ValueComponentName}}.autoscaleEnabled": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.HpaSpec", - "{{.ValueComponentName}}.imagePullPolicy": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.ImagePullPolicy", - "{{.ValueComponentName}}.nodeSelector": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.NodeSelector", - "{{.ValueComponentName}}.podDisruptionBudget": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.PodDisruptionBudget", - "{{.ValueComponentName}}.podAnnotations": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.PodAnnotations", - "{{.ValueComponentName}}.priorityClassName": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.PriorityClassName", - "{{.ValueComponentName}}.readinessProbe": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.ReadinessProbe", - "{{.ValueComponentName}}.replicaCount": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.ReplicaCount", - "{{.ValueComponentName}}.resources": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.Resources", + "{{.ValueComponentName}}.env": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.Env", + "{{.ValueComponentName}}.autoscaleEnabled": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.HpaSpec", + "{{.ValueComponentName}}.imagePullPolicy": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.ImagePullPolicy", + "{{.ValueComponentName}}.nodeSelector": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.NodeSelector", + "{{.ValueComponentName}}.podDisruptionBudget": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.PodDisruptionBudget", + "{{.ValueComponentName}}.podAnnotations": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.PodAnnotations", + "{{.ValueComponentName}}.priorityClassName": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.PriorityClassName", + "{{.ValueComponentName}}.readinessProbe": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.ReadinessProbe", + "{{.ValueComponentName}}.replicaCount": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.ReplicaCount", + "{{.ValueComponentName}}.resources": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.Resources", + "{{.ValueComponentName}}.rollingMaxSurge": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.Strategy", + "{{.ValueComponentName}}.rollingMaxUnavailable": "{{.FeatureName}}.Components.{{.ComponentName}}.K8s.Strategy", }, KubernetesMapping: map[string]*Translation{}, ValuesToComponentName: map[string]name.ComponentName{}, @@ -254,6 +256,25 @@ func (t *ReverseTranslator) setEnablementAndNamespacesFromValue(valueSpec map[st return nil } +// translateStrategy translates Deployment Strategy related configurations from helm values.yaml tree. +func translateStrategy(fieldName string, outPath string, value interface{}, cpSpecTree map[string]interface{}) error { + fieldMap := map[string]string{ + "rollingMaxSurge": "maxSurge", + "rollingMaxUnavailable": "maxUnavailable", + } + newFieldName, ok := fieldMap[fieldName] + if !ok { + return fmt.Errorf("expected field name found in values.yaml: %s", fieldName) + } + outPath += ".rollingUpdate." + newFieldName + + log.Infof("path has value in helm Value.yaml tree, mapping to output path %s", outPath) + if err := tpath.WriteNode(cpSpecTree, util.ToYAMLPath(outPath), value); err != nil { + return err + } + return nil +} + // translateHPASpec translates HPA related configurations from helm values.yaml tree. func translateHPASpec(inPath string, outPath string, value interface{}, valueTree map[string]interface{}, cpSpecTree map[string]interface{}) error { asEnabled, ok := value.(bool) @@ -416,6 +437,12 @@ func (t *ReverseTranslator) translateK8sTree(valueTree map[string]interface{}, return fmt.Errorf("error in translating k8s Affinity: %s", err) } + case "rollingMaxSurge", "rollingMaxUnavailable": + err := translateStrategy(k8sSettingName, v.outPath, m, cpSpecTree) + if err != nil { + return fmt.Errorf("error in translating k8s Strategy: %s", err) + } + default: output := util.ToYAMLPath(v.outPath) log.Infof("path has value in helm Value.yaml tree, mapping to output path %s", output) diff --git a/pkg/translate/translate_value_test.go b/pkg/translate/translate_value_test.go index 3ad8d3688..1aad87bce 100644 --- a/pkg/translate/translate_value_test.go +++ b/pkg/translate/translate_value_test.go @@ -41,6 +41,8 @@ galley: enabled: false pilot: enabled: true + rollingMaxSurge: 100% + rollingMaxUnavailable: 25% resources: requests: cpu: 1000m @@ -154,6 +156,10 @@ trafficManagement: requests: cpu: 1000m memory: 1G + strategy: + rollingUpdate: + maxSurge: 100% + maxUnavailable: 25% enabled: true autoInjection: components: @@ -200,6 +206,8 @@ nodeagent: gateways: enabled: true istio-ingressgateway: + rollingMaxSurge: 4 + rollingMaxUnavailable: 1 resources: requests: cpu: 1000m @@ -257,7 +265,11 @@ gateways: resources: requests: cpu: 1000m - memory: 1G + memory: 1G + strategy: + rollingUpdate: + maxSurge: 4 + maxUnavailable: 1 egressGateway: enabled: false enabled: true diff --git a/pkg/vfs/assets.gen.go b/pkg/vfs/assets.gen.go index 2afa78cd1..e98663ed0 100644 --- a/pkg/vfs/assets.gen.go +++ b/pkg/vfs/assets.gen.go @@ -39,7 +39,6 @@ // ../../data/charts/gateways/istio-ingress/templates/serviceaccount.yaml // ../../data/charts/gateways/istio-ingress/templates/sidecar.yaml // ../../data/charts/gateways/istio-ingress/values.yaml -// ../../data/charts/global.yaml // ../../data/charts/istio-cni/Chart.yaml // ../../data/charts/istio-cni/templates/clusterrole.yaml // ../../data/charts/istio-cni/templates/clusterrolebinding.yaml @@ -3783,446 +3782,6 @@ func chartsGatewaysIstioIngressValuesYaml() (*asset, error) { return a, nil } -var _chartsGlobalYaml = []byte(`# Global and common settings for installing Istio. - -# This file is configured for a small scale production cluster. -# Use user-values-medium or custom settings to tune up the CPU and scalling. -# Additional values overrides can be used. - -# Each individual component will use values from this file, with defaults and 'advanced' settings included in -# its own chart's values.yaml. - -# TODO: trim this file to commonly used settings, leave 'advanced' in the individual values.yaml (they can -# still be overridden by users, but won't show in basic documentation. - -# This doesn't match istio defaults, which are more geared towards tests and bookinfo. - -global: - # Used to locate istio-pilot. - # Default is to install pilot in a dedicated namespace, istio-pilot11. You can use multiple namespaces, but - # for each 'profile' you need to match the control plane namespace and the value of istioNamespace - # It is assumed that istio-system is running either 1.0 or an upgraded version of 1.1, but only security components are - # used (citadel generating the secrets). - istioNamespace: istio-control - configNamespace: istio-control - - # Telemetry namespace, including tracing. - telemetryNamespace: istio-telemetry - - prometheusNamespace: istio-telemetry - - policyNamespace: istio-policy - - ## End new settings - ## After this line we have the old Istio settings. - - # Default hub for Istio images. - # Releases are published to docker hub under 'istio' project. - # Daily builds from prow are on gcr.io, and nightly builds from circle on docker.io/istionightly - hub: gcr.io/istio-release - - # Default tag for Istio images. - tag: master-latest-daily - - # Comma-separated minimum per-scope logging level of messages to output, in the form of :,: - # The control plane has different scopes depending on component, but can configure default log level across all components - # If empty, default scope and level will be used as configured in code - logging: - level: "default:info" - - # To output all istio components logs in json format by adding --log_as_json argument to each container argument - logAsJson: false - - k8sIngress: - enabled: false - # Gateway used for k8s Ingress resources. By default it is - # using 'istio:ingressgateway' that will be installed by setting - # 'gateways.enabled' and 'gateways.istio-ingressgateway.enabled' - # flags to true. - gatewayName: ingressgateway - # enableHttps will add port 443 on the ingress. - # It REQUIRES that the certificates are installed in the - # expected secrets - enabling this option without certificates - # will result in LDS rejection and the ingress will not work. - enableHttps: false - - proxy: - image: proxyv2 - - # cluster domain. Default value is "cluster.local". - clusterDomain: "cluster.local" - - # Resources for the sidecar. - resources: - requests: - cpu: 100m - memory: 128Mi - limits: - cpu: 2000m - memory: 128Mi - - # Controls number of Proxy worker threads. - # If set to 0 (default), then start worker thread for each CPU thread/core. - concurrency: 2 - - # Configures the access log for each sidecar. - # Options: - # "" - disables access log - # "/dev/stdout" - enables access log - accessLogFile: "" - - # Configure how and what fields are displayed in sidecar access log. Setting to - # empty string will result in default log format - accessLogFormat: "" - - # Configure the access log for sidecar to JSON or TEXT. - accessLogEncoding: TEXT - - # Log level for proxy, applies to gateways and sidecars. - # Expected values are: trace|debug|info|warning|error|critical|off - logLevel: warning - - # Per Component log level for proxy, applies to gateways and sidecars. If a component level is - # not set, then the global "logLevel" will be used. - componentLogLevel: "misc:error" - - # Configure the DNS refresh rate for Envoy cluster of type STRICT_DNS - # This must be given it terms of seconds. For example, 300s is valid but 5m is invalid. - dnsRefreshRate: 300s - - #If set to true, istio-proxy container will have privileged securityContext - privileged: false - - # If set, newly injected sidecars will have core dumps enabled. - enableCoreDump: false - - # Default port for Pilot agent health checks. A value of 0 will disable health checking. - statusPort: 15020 - - # The initial delay for readiness probes in seconds. - readinessInitialDelaySeconds: 1 - - # The period between readiness probes. - readinessPeriodSeconds: 2 - - # The number of successive failed probes before indicating readiness failure. - readinessFailureThreshold: 30 - - # istio egress capture whitelist - # https://istio.io/docs/tasks/traffic-management/egress.html#calling-external-services-directly - # example: includeIPRanges: "172.30.0.0/16,172.20.0.0/16" - # would only capture egress traffic on those two IP Ranges, all other outbound traffic would - # be allowed by the sidecar - includeIPRanges: "*" - excludeIPRanges: "" - excludeOutboundPorts: "" - - # pod internal interfaces - kubevirtInterfaces: "" - - # istio ingress capture whitelist - # examples: - # Redirect no inbound traffic to Envoy: --includeInboundPorts="" - # Redirect all inbound traffic to Envoy: --includeInboundPorts="*" - # Redirect only selected ports: --includeInboundPorts="80,8080" - includeInboundPorts: "*" - excludeInboundPorts: "" - - # This controls the 'policy' in the sidecar injector. - autoInject: enabled - - # Sets the destination Statsd in envoy (the value of the "--statsdUdpAddress" proxy argument - # would be :). - # Disabled by default. - # The istio-statsd-prom-bridge is deprecated and should not be used moving forward. - envoyStatsd: - # If enabled is set to true, host and port must also be provided. Istio no longer provides a statsd collector. - enabled: false - host: # example: statsd-svc.istio-system - port: # example: 9125 - - # Sets the Envoy Metrics Service address, used to push Envoy metrics to an external collector - # via the Metrics Service gRPC API. This contains detailed stats information emitted directly - # by Envoy and should not be confused with the the Istio telemetry. The Envoy stats are also - # available to scrape via the Envoy admin port at either /stats or /stats/prometheus. - # - # See https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/metrics/v2/metrics_service.proto - # for details about Envoy's Metrics Service API. - # - # Disabled by default. - envoyMetricsService: - enabled: false - host: # example: metrics-service.istio-system - port: # example: 15000 - - # Specify which tracer to use. One of: lightstep, zipkin, datadog - tracer: "zipkin" - - proxy_init: - # Base name for the proxy_init container, used to configure iptables. - image: proxy_init - - # imagePullPolicy is applied to istio control plane components. - # local tests require IfNotPresent, to avoid uploading to dockerhub. - # TODO: Switch to Always as default, and override in the local tests. - imagePullPolicy: Always - - # controlPlaneMtls enabled. Will result in delays starting the pods while secrets are - # propagated, not recommended for tests. - controlPlaneSecurityEnabled: true - - # disablePolicyChecks disables mixer policy checks. - # if mixer.policy.enabled==true then disablePolicyChecks has affect. - # Will set the value with same name in istio config map - pilot needs to be restarted to take effect. - disablePolicyChecks: true - - # policyCheckFailOpen allows traffic in cases when the mixer policy service cannot be reached. - # Default is false which means the traffic is denied when the client is unable to connect to Mixer. - policyCheckFailOpen: false - - # EnableTracing sets the value with same name in istio config map, requires pilot restart to take effect. - enableTracing: true - - # Configuration for each of the supported tracers - tracer: - # Configuration for envoy to send trace data to LightStep. - # Disabled by default. - # address: the : of the satellite pool - # accessToken: required for sending data to the pool - # secure: specifies whether data should be sent with TLS - # cacertPath: the path to the file containing the cacert to use when verifying TLS. If secure is true, this is - # required. If a value is specified then a secret called "lightstep.cacert" must be created in the destination - # namespace with the key matching the base of the provided cacertPath and the value being the cacert itself. - # - lightstep: - address: "" # example: lightstep-satellite:443 - accessToken: "" # example: abcdefg1234567 - secure: true # example: true|false - cacertPath: "" # example: /etc/lightstep/cacert.pem - zipkin: - # Host:Port for reporting trace data in zipkin format. If not specified, will default to - # zipkin service (port 9411) in the same namespace as the other istio components. - address: "" - datadog: - # Host:Port for submitting traces to the Datadog agent. - address: "$(HOST_IP):8126" - - # Default mtls policy. If true, mtls between services will be enabled by default. - mtls: - # Default setting for service-to-service mtls. Can be set explicitly using - # destination rules or service annotations. - enabled: false - - # ImagePullSecrets for all ServiceAccount, list of secrets in the same namespace - # to use for pulling any images in pods that reference this ServiceAccount. - # For components that don't use ServiceAccounts (i.e. grafana, servicegraph, tracing) - # ImagePullSecrets will be added to the corresponding Deployment(StatefulSet) objects. - # Must be set for any clustser configured with private docker registry. - imagePullSecrets: - # - private-registry-key - - # Specify pod scheduling arch(amd64, ppc64le, s390x) and weight as follows: - # 0 - Never scheduled - # 1 - Least preferred - # 2 - No preference - # 3 - Most preferred - arch: - amd64: 2 - s390x: 2 - ppc64le: 2 - - # Whether to restrict the applications namespace the controller manages; - # If not set, controller watches all namespaces - oneNamespace: false - - # Default node selector to be applied to all deployments so that all pods can be - # constrained to run a particular nodes. Each component can overwrite these default - # values by adding its node selector block in the relevant section below and setting - # the desired values. - defaultNodeSelector: {} - - # Whether to perform server-side validation of configuration. - configValidation: true - - # Custom DNS config for the pod to resolve names of services in other - # clusters. Use this to add additional search domains, and other settings. - # see - # https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#dns-config - # This does not apply to gateway pods as they typically need a different - # set of DNS settings than the normal application pods (e.g., in - # multicluster scenarios). - # NOTE: If using templates, follow the pattern in the commented example below. - #podDNSSearchNamespaces: - #- global - #- "[[ valueOrDefault .DeploymentMeta.Namespace \"default\" ]].global" - - # If set to true, the pilot and citadel mtls will be exposed on the - # ingress gateway - meshExpansion: - enabled: false - # If set to true, the pilot and citadel mtls and the plain text pilot ports - # will be exposed on an internal gateway - useILB: false - - multiCluster: - # Set to true to connect two kubernetes clusters via their respective - # ingressgateway services when pods in each cluster cannot directly - # talk to one another. All clusters should be using Istio mTLS and must - # have a shared root CA for this model to work. - enabled: false - - # A minimal set of requested resources to applied to all deployments so that - # Horizontal Pod Autoscaler will be able to function (if set). - # Each component can overwrite these default values by adding its own resources - # block in the relevant section below and setting the desired resources values. - defaultResources: - requests: - cpu: 10m - # memory: 128Mi - # limits: - # cpu: 100m - # memory: 128Mi - - # enable pod distruption budget for the control plane, which is used to - # ensure Istio control plane components are gradually upgraded or recovered. - defaultPodDisruptionBudget: - enabled: true - # The values aren't mutable due to a current PodDisruptionBudget limitation - # minAvailable: 1 - - # Kubernetes >=v1.11.0 will create two PriorityClass, including system-cluster-critical and - # system-node-critical, it is better to configure this in order to make sure your Istio pods - # will not be killed because of low priority class. - # Refer to https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass - # for more detail. - priorityClassName: "" - - # Use the Mesh Control Protocol (MCP) for configuring Mixer and - # Pilot. Requires galley (`+"`"+`--set galley.enabled=true`+"`"+`). - useMCP: true - - # The trust domain corresponds to the trust root of a system - # Refer to https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE-ID.md#21-trust-domain - # Indicate the domain used in SPIFFE identity URL - # The default depends on the environment. - # kubernetes: cluster.local - # else: default dns domain - trustDomain: "" - - # Set the default behavior of the sidecar for handling outbound traffic from the application: - # ALLOW_ANY - outbound traffic to unknown destinations will be allowed, in case there are no - # services or ServiceEntries for the destination port - # REGISTRY_ONLY - restrict outbound traffic to services defined in the service registry as well - # as those defined through ServiceEntries - # ALLOW_ANY is the default in 1.1. This means each pod will be able to make outbound requests - # to services outside of the mesh without any ServiceEntry. - # REGISTRY_ONLY was the default in 1.0. If this behavior is desired, set the value below to REGISTRY_ONLY. - outboundTrafficPolicy: - mode: ALLOW_ANY - - # The namespace where globally shared configurations should be present. - # DestinationRules that apply to the entire mesh (e.g., enabling mTLS), - # default Sidecar configs, etc. should be added to this namespace. - # configRootNamespace: istio-config - - # set the default set of namespaces to which services, service entries, virtual services, destination - # rules should be exported to. Currently only one value can be provided in this list. This value - # should be one of the following two options: - # * implies these objects are visible to all namespaces, enabling any sidecar to talk to any other sidecar. - # . implies these objects are visible to only to sidecars in the same namespace, or if imported as a Sidecar.egress.host - #defaultConfigVisibilitySettings: - #- '*' - - sds: - # SDS enabled. IF set to true, mTLS certificates for the sidecars will be - # distributed through the SecretDiscoveryService instead of using K8S secrets to mount the certificates. - enabled: false - udsPath: "" - useTrustworthyJwt: false - useNormalJwt: false - - # Configure the mesh networks to be used by the Split Horizon EDS. - # - # The following example defines two networks with different endpoints association methods. - # For `+"`"+`network1`+"`"+` all endpoints that their IP belongs to the provided CIDR range will be - # mapped to network1. The gateway for this network example is specified by its public IP - # address and port. - # The second network, `+"`"+`network2`+"`"+`, in this example is defined differently with all endpoints - # retrieved through the specified Multi-Cluster registry being mapped to network2. The - # gateway is also defined differently with the name of the gateway service on the remote - # cluster. The public IP for the gateway will be determined from that remote service (not - # supported yet). - # - # meshNetworks: - # network1: - # endpoints: - # - fromCidr: "192.168.0.1/24" - # gateways: - # - address: 1.1.1.1 - # port: 80 - # network2: - # endpoints: - # - fromRegistry: reg1 - # gateways: - # - registryServiceName: istio-ingressgateway - # port: 443 - # - meshNetworks: {} - - # Specifies the global locality load balancing settings. - # Locality-weighted load balancing allows administrators to control the distribution of traffic to - # endpoints based on the localities of where the traffic originates and where it will terminate. - # Please set either failover or distribute configuration but not both. - # - # localityLbSetting: - # distribute: - # - from: "us-central1/*" - # to: - # "us-central1/*": 80 - # "us-central2/*": 20 - # - # localityLbSetting: - # failover: - # - from: us-east - # to: eu-west - # - from: us-west - # to: us-east - localityLbSetting: {} - - # Specifies whether helm test is enabled or not. - # This field is set to false by default, so 'helm template ...' - # will ignore the helm test yaml files when generating the template - enableHelmTest: false - -certmanager: {} - -# Internal setting - used when generating helm templates for kustomize. -# clusterResources controls the inclusion of cluster-wide resources when generating the charts/installing. -# For backward compat, it is set to 'true', resulting in the old-style installation. -# When set to 'false', all cluster-wide resources will be omitted, and are expected to be installed -# at the same time with the CRDs. -clusterResources: true - -# Version is set as 'version' label and part of the resource names when installing. -# It is used to support multiple version in same namespace, similar with normal app traffic shift. -version: "" -`) - -func chartsGlobalYamlBytes() ([]byte, error) { - return _chartsGlobalYaml, nil -} - -func chartsGlobalYaml() (*asset, error) { - bytes, err := chartsGlobalYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "charts/global.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - var _chartsIstioCniChartYaml = []byte(`apiVersion: v1 name: istio-cni version: 0.2.0 @@ -32058,6 +31617,10 @@ spec: requests: cpu: 500m memory: 2048Mi + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" # Policy feature policy: @@ -32082,6 +31645,10 @@ spec: env: - name: GODEBUG value: "gctrace=1" + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" # Telemetry feature telemetry: @@ -32115,11 +31682,22 @@ spec: limits: cpu: 4800m memory: 4G + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" # Security feature security: enabled: true components: + citadel: + enabled: true + k8s: + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" certManager: enabled: false nodeAgent: @@ -32136,6 +31714,10 @@ spec: resources: requests: cpu: 100m + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" # Auto injection feature autoInjection: @@ -32145,6 +31727,10 @@ spec: enabled: true k8s: replicaCount: 1 + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" # Istio Gateway feature gateways: @@ -32172,6 +31758,10 @@ spec: limits: cpu: 2000m memory: 1024Mi + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" egressGateway: enabled: false @@ -32195,6 +31785,10 @@ spec: limits: cpu: 2000m memory: 256Mi + strategy: + rollingUpdate: + maxSurge: "100%" + maxUnavailable: "25%" # Global values passed through to helm global.yaml. values: @@ -32311,8 +31905,6 @@ spec: autoscaleMin: 1 autoscaleMax: 5 replicaCount: 1 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% image: pilot traceSampling: 1.0 configNamespace: istio-config @@ -32364,8 +31956,6 @@ spec: telemetry: image: mixer replicaCount: 1 - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% autoscaleEnabled: true sessionAffinityEnabled: false loadshedding: @@ -32381,20 +31971,14 @@ spec: policy: image: mixer - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% adapters: kubernetesenv: enabled: true galley: - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% citadel: image: citadel - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% selfSigned: true # indicate if self-signed CA is used. trustDomain: cluster.local # indicate the domain used in SPIFFE identity URL enableNamespacesByDefault: true @@ -32412,8 +31996,6 @@ spec: gateways: istio-egressgateway: autoscaleEnabled: true - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% zvpn: suffix: global enabled: true @@ -32439,8 +32021,6 @@ spec: istio-ingressgateway: autoscaleEnabled: true - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% applicationPorts: "" debug: info domain: "" @@ -32518,8 +32098,6 @@ spec: tls: false sidecarInjectorWebhook: - rollingMaxSurge: 100% - rollingMaxUnavailable: 25% image: sidecar_injector enableNamespacesByDefault: false rewriteAppHTTPProbe: false @@ -33145,7 +32723,6 @@ var _bindata = map[string]func() (*asset, error){ "charts/gateways/istio-ingress/templates/serviceaccount.yaml": chartsGatewaysIstioIngressTemplatesServiceaccountYaml, "charts/gateways/istio-ingress/templates/sidecar.yaml": chartsGatewaysIstioIngressTemplatesSidecarYaml, "charts/gateways/istio-ingress/values.yaml": chartsGatewaysIstioIngressValuesYaml, - "charts/global.yaml": chartsGlobalYaml, "charts/istio-cni/Chart.yaml": chartsIstioCniChartYaml, "charts/istio-cni/templates/clusterrole.yaml": chartsIstioCniTemplatesClusterroleYaml, "charts/istio-cni/templates/clusterrolebinding.yaml": chartsIstioCniTemplatesClusterrolebindingYaml, @@ -33420,7 +32997,6 @@ var _bintree = &bintree{nil, map[string]*bintree{ "values.yaml": &bintree{chartsGatewaysIstioIngressValuesYaml, map[string]*bintree{}}, }}, }}, - "global.yaml": &bintree{chartsGlobalYaml, map[string]*bintree{}}, "istio-cni": &bintree{nil, map[string]*bintree{ "Chart.yaml": &bintree{chartsIstioCniChartYaml, map[string]*bintree{}}, "templates": &bintree{nil, map[string]*bintree{ diff --git a/python/istio_api/pkg/apis/istio/v1alpha2/istiocontrolplane_types_pb2.py b/python/istio_api/pkg/apis/istio/v1alpha2/istiocontrolplane_types_pb2.py index 4c0d87043..b7030f63a 100644 --- a/python/istio_api/pkg/apis/istio/v1alpha2/istiocontrolplane_types_pb2.py +++ b/python/istio_api/pkg/apis/istio/v1alpha2/istiocontrolplane_types_pb2.py @@ -25,7 +25,7 @@ package='v1alpha2', syntax='proto3', serialized_options=None, - serialized_pb=_b('\n5pkg/apis/istio/v1alpha2/istiocontrolplane_types.proto\x12\x08v1alpha2\x1a\"k8s.io/api/core/v1/generated.proto\x1a\"k8s.io/api/apps/v1/generated.proto\x1a.k8s.io/api/autoscaling/v2beta1/generated.proto\x1a\x34k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\x1a@github.com/gogo/protobuf/protobuf/google/protobuf/wrappers.proto\"k\n\x11IstioControlPlane\x12-\n\x04spec\x18\x03 \x01(\x0b\x32\x1f.v1alpha2.IstioControlPlaneSpec\x12\'\n\x06status\x18\x04 \x01(\x0b\x32\x17.v1alpha2.InstallStatus\"\xfe\x03\n\x15IstioControlPlaneSpec\x12\x19\n\x11\x64\x65\x66\x61ult_namespace\x18\x05 \x01(\t\x12\x42\n\x12traffic_management\x18\x19 \x01(\x0b\x32&.v1alpha2.TrafficManagementFeatureSpec\x12+\n\x06policy\x18\x1a \x01(\x0b\x32\x1b.v1alpha2.PolicyFeatureSpec\x12\x31\n\ttelemetry\x18\x1b \x01(\x0b\x32\x1e.v1alpha2.TelemetryFeatureSpec\x12/\n\x08security\x18\x1c \x01(\x0b\x32\x1d.v1alpha2.SecurityFeatureSpec\x12@\n\x11\x63onfig_management\x18\x1d \x01(\x0b\x32%.v1alpha2.ConfigManagementFeatureSpec\x12:\n\x0e\x61uto_injection\x18\x1e \x01(\x0b\x32\".v1alpha2.AutoInjectionFeatureSpec\x12.\n\x08gateways\x18\x1f \x01(\x0b\x32\x1c.v1alpha2.GatewayFeatureSpec\x12\x0f\n\x07profile\x18\x64 \x01(\t\x12\x1c\n\x14install_package_path\x18\x66 \x01(\t\x12\x0b\n\x03hub\x18n \x01(\t\x12\x0b\n\x03tag\x18o \x01(\t\"\x8d\x02\n\x1cTrafficManagementFeatureSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x45\n\ncomponents\x18\x32 \x01(\x0b\x32\x31.v1alpha2.TrafficManagementFeatureSpec.Components\x1ay\n\nComponents\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12+\n\x05pilot\x18\x14 \x01(\x0b\x32\x1c.v1alpha2.PilotComponentSpec\x12+\n\x05proxy\x18\x15 \x01(\x0b\x32\x1c.v1alpha2.ProxyComponentSpec\"\xcc\x01\n\x11PolicyFeatureSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12:\n\ncomponents\x18\x32 \x01(\x0b\x32&.v1alpha2.PolicyFeatureSpec.Components\x1aN\n\nComponents\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12-\n\x06policy\x18\x14 \x01(\x0b\x32\x1d.v1alpha2.PolicyComponentSpec\"\xd8\x01\n\x14TelemetryFeatureSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12=\n\ncomponents\x18\x32 \x01(\x0b\x32).v1alpha2.TelemetryFeatureSpec.Components\x1aT\n\nComponents\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x33\n\ttelemetry\x18\x14 \x01(\x0b\x32 .v1alpha2.TelemetryComponentSpec\"\xc3\x02\n\x13SecurityFeatureSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12<\n\ncomponents\x18\x32 \x01(\x0b\x32(.v1alpha2.SecurityFeatureSpec.Components\x1a\xc0\x01\n\nComponents\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12/\n\x07\x63itadel\x18\x14 \x01(\x0b\x32\x1e.v1alpha2.CitadelComponentSpec\x12\x38\n\x0c\x63\x65rt_manager\x18\x15 \x01(\x0b\x32\".v1alpha2.CertManagerComponentSpec\x12\x34\n\nnode_agent\x18\x16 \x01(\x0b\x32 .v1alpha2.NodeAgentComponentSpec\"\xe0\x01\n\x1b\x43onfigManagementFeatureSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x44\n\ncomponents\x18\x32 \x01(\x0b\x32\x30.v1alpha2.ConfigManagementFeatureSpec.Components\x1aN\n\nComponents\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12-\n\x06galley\x18\x14 \x01(\x0b\x32\x1d.v1alpha2.GalleyComponentSpec\"\xe5\x01\n\x18\x41utoInjectionFeatureSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x41\n\ncomponents\x18\x32 \x01(\x0b\x32-.v1alpha2.AutoInjectionFeatureSpec.Components\x1aY\n\nComponents\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x38\n\x08injector\x18\x14 \x01(\x0b\x32&.v1alpha2.SidecarInjectorComponentSpec\"\x9e\x02\n\x12GatewayFeatureSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12;\n\ncomponents\x18\x32 \x01(\x0b\x32\'.v1alpha2.GatewayFeatureSpec.Components\x1a\x9d\x01\n\nComponents\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12>\n\x0fingress_gateway\x18\x1f \x01(\x0b\x32%.v1alpha2.IngressGatewayComponentSpec\x12<\n\x0e\x65gress_gateway\x18 \x01(\x0b\x32$.v1alpha2.EgressGatewayComponentSpec\"\x84\x01\n\x12PilotComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x84\x01\n\x12ProxyComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x8e\x01\n\x1cSidecarInjectorComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x85\x01\n\x13PolicyComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x88\x01\n\x16TelemetryComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x86\x01\n\x14\x43itadelComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x8a\x01\n\x18\x43\x65rtManagerComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x88\x01\n\x16NodeAgentComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x85\x01\n\x13GalleyComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x8d\x01\n\x1bIngressGatewayComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x8c\x01\n\x1a\x45gressGatewayComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\xcf\x06\n\x17KubernetesResourcesSpec\x12.\n\x08\x61\x66\x66inity\x18\x01 \x01(\x0b\x32\x1c.k8s.io.api.core.v1.Affinity\x12\'\n\x03\x65nv\x18\x02 \x03(\x0b\x32\x1a.k8s.io.api.core.v1.EnvVar\x12M\n\x08hpa_spec\x18\x03 \x01(\x0b\x32;.k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec\x12\x19\n\x11image_pull_policy\x18\x04 \x01(\t\x12J\n\rnode_selector\x18\x05 \x03(\x0b\x32\x33.v1alpha2.KubernetesResourcesSpec.NodeSelectorEntry\x12@\n\x15pod_disruption_budget\x18\x06 \x01(\x0b\x32!.v1alpha2.PodDisruptionBudgetSpec\x12N\n\x0fpod_annotations\x18\x07 \x03(\x0b\x32\x35.v1alpha2.KubernetesResourcesSpec.PodAnnotationsEntry\x12\x1b\n\x13priority_class_name\x18\x08 \x01(\t\x12\x31\n\x0freadiness_probe\x18\t \x01(\x0b\x32\x18.v1alpha2.ReadinessProbe\x12\x15\n\rreplica_count\x18\n \x01(\r\x12&\n\tresources\x18\x0b \x01(\x0b\x32\x13.v1alpha2.Resources\x12\x30\n\x07service\x18\x0c \x01(\x0b\x32\x1f.k8s.io.api.core.v1.ServiceSpec\x12\x38\n\x08strategy\x18\r \x01(\x0b\x32&.k8s.io.api.apps.v1.DeploymentStrategy\x12,\n\x08overlays\x18\x64 \x03(\x0b\x32\x1a.v1alpha2.k8sObjectOverlay\x1a\x33\n\x11NodeSelectorEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13PodAnnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x95\x01\n\x10k8sObjectOverlay\x12\x13\n\x0b\x61pi_version\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x35\n\x07patches\x18\x04 \x03(\x0b\x32$.v1alpha2.k8sObjectOverlay.PathValue\x1a\x19\n\tPathValue\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x99\x04\n\rInstallStatus\x12\x41\n\x12traffic_management\x18\x01 \x01(\x0b\x32%.v1alpha2.InstallStatus.VersionStatus\x12?\n\x10policy_telemetry\x18\x02 \x01(\x0b\x32%.v1alpha2.InstallStatus.VersionStatus\x12\x37\n\x08security\x18\x03 \x01(\x0b\x32%.v1alpha2.InstallStatus.VersionStatus\x12@\n\x11\x63onfig_management\x18\x04 \x01(\x0b\x32%.v1alpha2.InstallStatus.VersionStatus\x12>\n\x0fingress_gateway\x18\x05 \x03(\x0b\x32%.v1alpha2.InstallStatus.VersionStatus\x12=\n\x0e\x65gress_gateway\x18\x06 \x03(\x0b\x32%.v1alpha2.InstallStatus.VersionStatus\x1aP\n\rVersionStatus\x12\x0f\n\x07version\x18\x01 \x01(\t\x12.\n\x06status\x18\x02 \x01(\x0e\x32\x1e.v1alpha2.InstallStatus.Status\"8\n\x06Status\x12\x08\n\x04NONE\x10\x00\x12\x0c\n\x08UPDATING\x10\x01\x12\x0b\n\x07HEALTHY\x10\x02\x12\t\n\x05\x45RROR\x10\x03\"\xd1\x01\n\tResources\x12/\n\x06limits\x18\x01 \x03(\x0b\x32\x1f.v1alpha2.Resources.LimitsEntry\x12\x33\n\x08requests\x18\x02 \x03(\x0b\x32!.v1alpha2.Resources.RequestsEntry\x1a-\n\x0bLimitsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rRequestsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8c\x02\n\x0eReadinessProbe\x12\"\n\x04\x65xec\x18\x01 \x01(\x0b\x32\x14.v1alpha2.ExecAction\x12(\n\x07httpGet\x18\x02 \x01(\x0b\x32\x17.v1alpha2.HTTPGetAction\x12,\n\ttcpSocket\x18\x03 \x01(\x0b\x32\x19.v1alpha2.TCPSocketAction\x12\x1b\n\x13initialDelaySeconds\x18\x04 \x01(\x05\x12\x16\n\x0etimeoutSeconds\x18\x05 \x01(\x05\x12\x15\n\rperiodSeconds\x18\x06 \x01(\x05\x12\x18\n\x10successThreshold\x18\x07 \x01(\x05\x12\x18\n\x10\x66\x61ilureThreshold\x18\x08 \x01(\x05\"\x1d\n\nExecAction\x12\x0f\n\x07\x63ommand\x18\x01 \x03(\t\"f\n\rHTTPGetAction\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x03 \x01(\t\x12\x0e\n\x06scheme\x18\x04 \x01(\t\x12)\n\x0bhttpHeaders\x18\x05 \x03(\x0b\x32\x14.v1alpha2.HTTPHeader\")\n\nHTTPHeader\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\x1f\n\x0fTCPSocketAction\x12\x0c\n\x04host\x18\x02 \x01(\t\"\x90\x01\n\x17PodDisruptionBudgetSpec\x12\x15\n\rmin_available\x18\x01 \x01(\r\x12\x45\n\x08selector\x18\x02 \x01(\x0b\x32\x33.k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector\x12\x17\n\x0fmax_unavailable\x18\x03 \x01(\r\"-\n\nObjectMeta\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x11\n\tnamespace\x18\x06 \x01(\t\"\x94\x05\n\x08TestKube\x12(\n\x03\x65nv\x18< \x03(\x0b\x32\x1b.v1alpha2.TestKube.EnvEntry\x12&\n\tresources\x18P \x01(\x0b\x32\x13.v1alpha2.Resources\x12\x31\n\x0freadiness_probe\x18Q \x01(\x0b\x32\x18.v1alpha2.ReadinessProbe\x12M\n\x08hpa_spec\x18V \x01(\x0b\x32;.k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec\x12@\n\x15pod_disruption_budget\x18W \x01(\x0b\x32!.v1alpha2.PodDisruptionBudgetSpec\x12.\n\x08\x61\x66\x66inity\x18\x08 \x01(\x0b\x32\x1c.k8s.io.api.core.v1.Affinity\x12?\n\x0fpod_annotations\x18Z \x03(\x0b\x32&.v1alpha2.TestKube.PodAnnotationsEntry\x12;\n\rnode_selector\x18\\ \x03(\x0b\x32$.v1alpha2.TestKube.NodeSelectorEntry\x12,\n\x08overlays\x18\x64 \x03(\x0b\x32\x1a.v1alpha2.k8sObjectOverlay\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13PodAnnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x33\n\x11NodeSelectorEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x62\x06proto3') + serialized_pb=_b('\n5pkg/apis/istio/v1alpha2/istiocontrolplane_types.proto\x12\x08v1alpha2\x1a\"k8s.io/api/core/v1/generated.proto\x1a\"k8s.io/api/apps/v1/generated.proto\x1a.k8s.io/api/autoscaling/v2beta1/generated.proto\x1a\x34k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\x1a@github.com/gogo/protobuf/protobuf/google/protobuf/wrappers.proto\"k\n\x11IstioControlPlane\x12-\n\x04spec\x18\x03 \x01(\x0b\x32\x1f.v1alpha2.IstioControlPlaneSpec\x12\'\n\x06status\x18\x04 \x01(\x0b\x32\x17.v1alpha2.InstallStatus\"\xfe\x03\n\x15IstioControlPlaneSpec\x12\x19\n\x11\x64\x65\x66\x61ult_namespace\x18\x05 \x01(\t\x12\x42\n\x12traffic_management\x18\x19 \x01(\x0b\x32&.v1alpha2.TrafficManagementFeatureSpec\x12+\n\x06policy\x18\x1a \x01(\x0b\x32\x1b.v1alpha2.PolicyFeatureSpec\x12\x31\n\ttelemetry\x18\x1b \x01(\x0b\x32\x1e.v1alpha2.TelemetryFeatureSpec\x12/\n\x08security\x18\x1c \x01(\x0b\x32\x1d.v1alpha2.SecurityFeatureSpec\x12@\n\x11\x63onfig_management\x18\x1d \x01(\x0b\x32%.v1alpha2.ConfigManagementFeatureSpec\x12:\n\x0e\x61uto_injection\x18\x1e \x01(\x0b\x32\".v1alpha2.AutoInjectionFeatureSpec\x12.\n\x08gateways\x18\x1f \x01(\x0b\x32\x1c.v1alpha2.GatewayFeatureSpec\x12\x0f\n\x07profile\x18\x64 \x01(\t\x12\x1c\n\x14install_package_path\x18\x66 \x01(\t\x12\x0b\n\x03hub\x18n \x01(\t\x12\x0b\n\x03tag\x18o \x01(\t\"\x8d\x02\n\x1cTrafficManagementFeatureSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x45\n\ncomponents\x18\x32 \x01(\x0b\x32\x31.v1alpha2.TrafficManagementFeatureSpec.Components\x1ay\n\nComponents\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12+\n\x05pilot\x18\x14 \x01(\x0b\x32\x1c.v1alpha2.PilotComponentSpec\x12+\n\x05proxy\x18\x15 \x01(\x0b\x32\x1c.v1alpha2.ProxyComponentSpec\"\xcc\x01\n\x11PolicyFeatureSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12:\n\ncomponents\x18\x32 \x01(\x0b\x32&.v1alpha2.PolicyFeatureSpec.Components\x1aN\n\nComponents\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12-\n\x06policy\x18\x14 \x01(\x0b\x32\x1d.v1alpha2.PolicyComponentSpec\"\xd8\x01\n\x14TelemetryFeatureSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12=\n\ncomponents\x18\x32 \x01(\x0b\x32).v1alpha2.TelemetryFeatureSpec.Components\x1aT\n\nComponents\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x33\n\ttelemetry\x18\x14 \x01(\x0b\x32 .v1alpha2.TelemetryComponentSpec\"\xc3\x02\n\x13SecurityFeatureSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12<\n\ncomponents\x18\x32 \x01(\x0b\x32(.v1alpha2.SecurityFeatureSpec.Components\x1a\xc0\x01\n\nComponents\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12/\n\x07\x63itadel\x18\x14 \x01(\x0b\x32\x1e.v1alpha2.CitadelComponentSpec\x12\x38\n\x0c\x63\x65rt_manager\x18\x15 \x01(\x0b\x32\".v1alpha2.CertManagerComponentSpec\x12\x34\n\nnode_agent\x18\x16 \x01(\x0b\x32 .v1alpha2.NodeAgentComponentSpec\"\xe0\x01\n\x1b\x43onfigManagementFeatureSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x44\n\ncomponents\x18\x32 \x01(\x0b\x32\x30.v1alpha2.ConfigManagementFeatureSpec.Components\x1aN\n\nComponents\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12-\n\x06galley\x18\x14 \x01(\x0b\x32\x1d.v1alpha2.GalleyComponentSpec\"\xe5\x01\n\x18\x41utoInjectionFeatureSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x41\n\ncomponents\x18\x32 \x01(\x0b\x32-.v1alpha2.AutoInjectionFeatureSpec.Components\x1aY\n\nComponents\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x38\n\x08injector\x18\x14 \x01(\x0b\x32&.v1alpha2.SidecarInjectorComponentSpec\"\x9e\x02\n\x12GatewayFeatureSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12;\n\ncomponents\x18\x32 \x01(\x0b\x32\'.v1alpha2.GatewayFeatureSpec.Components\x1a\x9d\x01\n\nComponents\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12>\n\x0fingress_gateway\x18\x1f \x01(\x0b\x32%.v1alpha2.IngressGatewayComponentSpec\x12<\n\x0e\x65gress_gateway\x18 \x01(\x0b\x32$.v1alpha2.EgressGatewayComponentSpec\"\x84\x01\n\x12PilotComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x84\x01\n\x12ProxyComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x8e\x01\n\x1cSidecarInjectorComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x85\x01\n\x13PolicyComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x88\x01\n\x16TelemetryComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x86\x01\n\x14\x43itadelComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x8a\x01\n\x18\x43\x65rtManagerComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x88\x01\n\x16NodeAgentComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x85\x01\n\x13GalleyComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x8d\x01\n\x1bIngressGatewayComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\x8c\x01\n\x1a\x45gressGatewayComponentSpec\x12+\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12.\n\x03k8s\x18P \x01(\x0b\x32!.v1alpha2.KubernetesResourcesSpec\"\xc5\x06\n\x17KubernetesResourcesSpec\x12.\n\x08\x61\x66\x66inity\x18\x01 \x01(\x0b\x32\x1c.k8s.io.api.core.v1.Affinity\x12\'\n\x03\x65nv\x18\x02 \x03(\x0b\x32\x1a.k8s.io.api.core.v1.EnvVar\x12M\n\x08hpa_spec\x18\x03 \x01(\x0b\x32;.k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec\x12\x19\n\x11image_pull_policy\x18\x04 \x01(\t\x12J\n\rnode_selector\x18\x05 \x03(\x0b\x32\x33.v1alpha2.KubernetesResourcesSpec.NodeSelectorEntry\x12@\n\x15pod_disruption_budget\x18\x06 \x01(\x0b\x32!.v1alpha2.PodDisruptionBudgetSpec\x12N\n\x0fpod_annotations\x18\x07 \x03(\x0b\x32\x35.v1alpha2.KubernetesResourcesSpec.PodAnnotationsEntry\x12\x1b\n\x13priority_class_name\x18\x08 \x01(\t\x12\x31\n\x0freadiness_probe\x18\t \x01(\x0b\x32\x18.v1alpha2.ReadinessProbe\x12\x15\n\rreplica_count\x18\n \x01(\r\x12&\n\tresources\x18\x0b \x01(\x0b\x32\x13.v1alpha2.Resources\x12\x30\n\x07service\x18\x0c \x01(\x0b\x32\x1f.k8s.io.api.core.v1.ServiceSpec\x12.\n\x08strategy\x18\r \x01(\x0b\x32\x1c.v1alpha2.DeploymentStrategy\x12,\n\x08overlays\x18\x64 \x03(\x0b\x32\x1a.v1alpha2.k8sObjectOverlay\x1a\x33\n\x11NodeSelectorEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13PodAnnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x95\x01\n\x10k8sObjectOverlay\x12\x13\n\x0b\x61pi_version\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x35\n\x07patches\x18\x04 \x03(\x0b\x32$.v1alpha2.k8sObjectOverlay.PathValue\x1a\x19\n\tPathValue\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x99\x04\n\rInstallStatus\x12\x41\n\x12traffic_management\x18\x01 \x01(\x0b\x32%.v1alpha2.InstallStatus.VersionStatus\x12?\n\x10policy_telemetry\x18\x02 \x01(\x0b\x32%.v1alpha2.InstallStatus.VersionStatus\x12\x37\n\x08security\x18\x03 \x01(\x0b\x32%.v1alpha2.InstallStatus.VersionStatus\x12@\n\x11\x63onfig_management\x18\x04 \x01(\x0b\x32%.v1alpha2.InstallStatus.VersionStatus\x12>\n\x0fingress_gateway\x18\x05 \x03(\x0b\x32%.v1alpha2.InstallStatus.VersionStatus\x12=\n\x0e\x65gress_gateway\x18\x06 \x03(\x0b\x32%.v1alpha2.InstallStatus.VersionStatus\x1aP\n\rVersionStatus\x12\x0f\n\x07version\x18\x01 \x01(\t\x12.\n\x06status\x18\x02 \x01(\x0e\x32\x1e.v1alpha2.InstallStatus.Status\"8\n\x06Status\x12\x08\n\x04NONE\x10\x00\x12\x0c\n\x08UPDATING\x10\x01\x12\x0b\n\x07HEALTHY\x10\x02\x12\t\n\x05\x45RROR\x10\x03\"\xd1\x01\n\tResources\x12/\n\x06limits\x18\x01 \x03(\x0b\x32\x1f.v1alpha2.Resources.LimitsEntry\x12\x33\n\x08requests\x18\x02 \x03(\x0b\x32!.v1alpha2.Resources.RequestsEntry\x1a-\n\x0bLimitsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rRequestsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8c\x02\n\x0eReadinessProbe\x12\"\n\x04\x65xec\x18\x01 \x01(\x0b\x32\x14.v1alpha2.ExecAction\x12(\n\x07httpGet\x18\x02 \x01(\x0b\x32\x17.v1alpha2.HTTPGetAction\x12,\n\ttcpSocket\x18\x03 \x01(\x0b\x32\x19.v1alpha2.TCPSocketAction\x12\x1b\n\x13initialDelaySeconds\x18\x04 \x01(\x05\x12\x16\n\x0etimeoutSeconds\x18\x05 \x01(\x05\x12\x15\n\rperiodSeconds\x18\x06 \x01(\x05\x12\x18\n\x10successThreshold\x18\x07 \x01(\x05\x12\x18\n\x10\x66\x61ilureThreshold\x18\x08 \x01(\x05\"\x1d\n\nExecAction\x12\x0f\n\x07\x63ommand\x18\x01 \x03(\t\"f\n\rHTTPGetAction\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x03 \x01(\t\x12\x0e\n\x06scheme\x18\x04 \x01(\t\x12)\n\x0bhttpHeaders\x18\x05 \x03(\x0b\x32\x14.v1alpha2.HTTPHeader\")\n\nHTTPHeader\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\x1f\n\x0fTCPSocketAction\x12\x0c\n\x04host\x18\x02 \x01(\t\"\x90\x01\n\x17PodDisruptionBudgetSpec\x12\x15\n\rmin_available\x18\x01 \x01(\r\x12\x45\n\x08selector\x18\x02 \x01(\x0b\x32\x33.k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector\x12\x17\n\x0fmax_unavailable\x18\x03 \x01(\r\"\\\n\x12\x44\x65ploymentStrategy\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x38\n\rrollingUpdate\x18\x02 \x01(\x0b\x32!.v1alpha2.RollingUpdateDeployment\"\x19\n\x17RollingUpdateDeployment\"-\n\nObjectMeta\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x11\n\tnamespace\x18\x06 \x01(\t\"\x94\x05\n\x08TestKube\x12(\n\x03\x65nv\x18< \x03(\x0b\x32\x1b.v1alpha2.TestKube.EnvEntry\x12&\n\tresources\x18P \x01(\x0b\x32\x13.v1alpha2.Resources\x12\x31\n\x0freadiness_probe\x18Q \x01(\x0b\x32\x18.v1alpha2.ReadinessProbe\x12M\n\x08hpa_spec\x18V \x01(\x0b\x32;.k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec\x12@\n\x15pod_disruption_budget\x18W \x01(\x0b\x32!.v1alpha2.PodDisruptionBudgetSpec\x12.\n\x08\x61\x66\x66inity\x18\x08 \x01(\x0b\x32\x1c.k8s.io.api.core.v1.Affinity\x12?\n\x0fpod_annotations\x18Z \x03(\x0b\x32&.v1alpha2.TestKube.PodAnnotationsEntry\x12;\n\rnode_selector\x18\\ \x03(\x0b\x32$.v1alpha2.TestKube.NodeSelectorEntry\x12,\n\x08overlays\x18\x64 \x03(\x0b\x32\x1a.v1alpha2.k8sObjectOverlay\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13PodAnnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x33\n\x11NodeSelectorEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x62\x06proto3') , dependencies=[k8s_dot_io_dot_api_dot_core_dot_v1_dot_generated__pb2.DESCRIPTOR,k8s_dot_io_dot_api_dot_apps_dot_v1_dot_generated__pb2.DESCRIPTOR,k8s_dot_io_dot_api_dot_autoscaling_dot_v2beta1_dot_generated__pb2.DESCRIPTOR,k8s_dot_io_dot_apimachinery_dot_pkg_dot_apis_dot_meta_dot_v1_dot_generated__pb2.DESCRIPTOR,github_dot_com_dot_gogo_dot_protobuf_dot_protobuf_dot_google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) @@ -56,8 +56,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=5715, - serialized_end=5771, + serialized_start=5705, + serialized_end=5761, ) _sym_db.RegisterEnumDescriptor(_INSTALLSTATUS_STATUS) @@ -1289,8 +1289,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4973, - serialized_end=5024, + serialized_start=4963, + serialized_end=5014, ) _KUBERNETESRESOURCESSPEC_PODANNOTATIONSENTRY = _descriptor.Descriptor( @@ -1326,8 +1326,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5026, - serialized_end=5079, + serialized_start=5016, + serialized_end=5069, ) _KUBERNETESRESOURCESSPEC = _descriptor.Descriptor( @@ -1448,7 +1448,7 @@ oneofs=[ ], serialized_start=4232, - serialized_end=5079, + serialized_end=5069, ) @@ -1478,8 +1478,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5206, - serialized_end=5231, + serialized_start=5196, + serialized_end=5221, ) _K8SOBJECTOVERLAY = _descriptor.Descriptor( @@ -1529,8 +1529,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5082, - serialized_end=5231, + serialized_start=5072, + serialized_end=5221, ) @@ -1567,8 +1567,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5633, - serialized_end=5713, + serialized_start=5623, + serialized_end=5703, ) _INSTALLSTATUS = _descriptor.Descriptor( @@ -1633,8 +1633,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5234, - serialized_end=5771, + serialized_start=5224, + serialized_end=5761, ) @@ -1671,8 +1671,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5889, - serialized_end=5934, + serialized_start=5879, + serialized_end=5924, ) _RESOURCES_REQUESTSENTRY = _descriptor.Descriptor( @@ -1708,8 +1708,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5936, - serialized_end=5983, + serialized_start=5926, + serialized_end=5973, ) _RESOURCES = _descriptor.Descriptor( @@ -1745,8 +1745,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5774, - serialized_end=5983, + serialized_start=5764, + serialized_end=5973, ) @@ -1825,8 +1825,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5986, - serialized_end=6254, + serialized_start=5976, + serialized_end=6244, ) @@ -1856,8 +1856,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6256, - serialized_end=6285, + serialized_start=6246, + serialized_end=6275, ) @@ -1908,8 +1908,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6287, - serialized_end=6389, + serialized_start=6277, + serialized_end=6379, ) @@ -1946,8 +1946,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6391, - serialized_end=6432, + serialized_start=6381, + serialized_end=6422, ) @@ -1977,8 +1977,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6434, - serialized_end=6465, + serialized_start=6424, + serialized_end=6455, ) @@ -2022,8 +2022,70 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6468, - serialized_end=6612, + serialized_start=6458, + serialized_end=6602, +) + + +_DEPLOYMENTSTRATEGY = _descriptor.Descriptor( + name='DeploymentStrategy', + full_name='v1alpha2.DeploymentStrategy', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='v1alpha2.DeploymentStrategy.type', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='rollingUpdate', full_name='v1alpha2.DeploymentStrategy.rollingUpdate', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6604, + serialized_end=6696, +) + + +_ROLLINGUPDATEDEPLOYMENT = _descriptor.Descriptor( + name='RollingUpdateDeployment', + full_name='v1alpha2.RollingUpdateDeployment', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6698, + serialized_end=6723, ) @@ -2060,8 +2122,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6614, - serialized_end=6659, + serialized_start=6725, + serialized_end=6770, ) @@ -2098,8 +2160,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7172, - serialized_end=7214, + serialized_start=7283, + serialized_end=7325, ) _TESTKUBE_PODANNOTATIONSENTRY = _descriptor.Descriptor( @@ -2135,8 +2197,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5026, - serialized_end=5079, + serialized_start=5016, + serialized_end=5069, ) _TESTKUBE_NODESELECTORENTRY = _descriptor.Descriptor( @@ -2172,8 +2234,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4973, - serialized_end=5024, + serialized_start=4963, + serialized_end=5014, ) _TESTKUBE = _descriptor.Descriptor( @@ -2258,8 +2320,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6662, - serialized_end=7322, + serialized_start=6773, + serialized_end=7433, ) _ISTIOCONTROLPLANE.fields_by_name['spec'].message_type = _ISTIOCONTROLPLANESPEC @@ -2336,7 +2398,7 @@ _KUBERNETESRESOURCESSPEC.fields_by_name['readiness_probe'].message_type = _READINESSPROBE _KUBERNETESRESOURCESSPEC.fields_by_name['resources'].message_type = _RESOURCES _KUBERNETESRESOURCESSPEC.fields_by_name['service'].message_type = k8s_dot_io_dot_api_dot_core_dot_v1_dot_generated__pb2._SERVICESPEC -_KUBERNETESRESOURCESSPEC.fields_by_name['strategy'].message_type = k8s_dot_io_dot_api_dot_apps_dot_v1_dot_generated__pb2._DEPLOYMENTSTRATEGY +_KUBERNETESRESOURCESSPEC.fields_by_name['strategy'].message_type = _DEPLOYMENTSTRATEGY _KUBERNETESRESOURCESSPEC.fields_by_name['overlays'].message_type = _K8SOBJECTOVERLAY _K8SOBJECTOVERLAY_PATHVALUE.containing_type = _K8SOBJECTOVERLAY _K8SOBJECTOVERLAY.fields_by_name['patches'].message_type = _K8SOBJECTOVERLAY_PATHVALUE @@ -2358,6 +2420,7 @@ _READINESSPROBE.fields_by_name['tcpSocket'].message_type = _TCPSOCKETACTION _HTTPGETACTION.fields_by_name['httpHeaders'].message_type = _HTTPHEADER _PODDISRUPTIONBUDGETSPEC.fields_by_name['selector'].message_type = k8s_dot_io_dot_apimachinery_dot_pkg_dot_apis_dot_meta_dot_v1_dot_generated__pb2._LABELSELECTOR +_DEPLOYMENTSTRATEGY.fields_by_name['rollingUpdate'].message_type = _ROLLINGUPDATEDEPLOYMENT _TESTKUBE_ENVENTRY.containing_type = _TESTKUBE _TESTKUBE_PODANNOTATIONSENTRY.containing_type = _TESTKUBE _TESTKUBE_NODESELECTORENTRY.containing_type = _TESTKUBE @@ -2400,6 +2463,8 @@ DESCRIPTOR.message_types_by_name['HTTPHeader'] = _HTTPHEADER DESCRIPTOR.message_types_by_name['TCPSocketAction'] = _TCPSOCKETACTION DESCRIPTOR.message_types_by_name['PodDisruptionBudgetSpec'] = _PODDISRUPTIONBUDGETSPEC +DESCRIPTOR.message_types_by_name['DeploymentStrategy'] = _DEPLOYMENTSTRATEGY +DESCRIPTOR.message_types_by_name['RollingUpdateDeployment'] = _ROLLINGUPDATEDEPLOYMENT DESCRIPTOR.message_types_by_name['ObjectMeta'] = _OBJECTMETA DESCRIPTOR.message_types_by_name['TestKube'] = _TESTKUBE _sym_db.RegisterFileDescriptor(DESCRIPTOR) @@ -2718,6 +2783,20 @@ }) _sym_db.RegisterMessage(PodDisruptionBudgetSpec) +DeploymentStrategy = _reflection.GeneratedProtocolMessageType('DeploymentStrategy', (_message.Message,), { + 'DESCRIPTOR' : _DEPLOYMENTSTRATEGY, + '__module__' : 'pkg.apis.istio.v1alpha2.istiocontrolplane_types_pb2' + # @@protoc_insertion_point(class_scope:v1alpha2.DeploymentStrategy) + }) +_sym_db.RegisterMessage(DeploymentStrategy) + +RollingUpdateDeployment = _reflection.GeneratedProtocolMessageType('RollingUpdateDeployment', (_message.Message,), { + 'DESCRIPTOR' : _ROLLINGUPDATEDEPLOYMENT, + '__module__' : 'pkg.apis.istio.v1alpha2.istiocontrolplane_types_pb2' + # @@protoc_insertion_point(class_scope:v1alpha2.RollingUpdateDeployment) + }) +_sym_db.RegisterMessage(RollingUpdateDeployment) + ObjectMeta = _reflection.GeneratedProtocolMessageType('ObjectMeta', (_message.Message,), { 'DESCRIPTOR' : _OBJECTMETA, '__module__' : 'pkg.apis.istio.v1alpha2.istiocontrolplane_types_pb2'
FieldTypeDescription
typestring -

Type of deployment. Can be “Recreate” or “RollingUpdate”. Default is RollingUpdate. -+optional

- -
rollingUpdatek8s.io.api.apps.v1.RollingUpdateDeployment -

Rolling update config params. Present only if DeploymentStrategyType =

- -

RollingUpdate.

- -

TODO: Update this to follow our convention for oneOf, whatever we decide it -to be. -+optional

-