From b0e32f6afdabc4f8f6f5e1e0913480c0b7d04e9c Mon Sep 17 00:00:00 2001 From: yutao04 Date: Wed, 9 Nov 2022 14:00:39 +0800 Subject: [PATCH 1/2] feat: adapt for k8s 1.22 Signed-off-by: yutao04 --- install/crds/crd-10.yaml | 766 ++++++++++++++++++++++++++++----------- install/crds/crd-11.yaml | 44 ++- install/crds/crd-17.yaml | 179 ++------- install/install.sh | 4 +- 4 files changed, 614 insertions(+), 379 deletions(-) diff --git a/install/crds/crd-10.yaml b/install/crds/crd-10.yaml index a835d74..60866fe 100644 --- a/install/crds/crd-10.yaml +++ b/install/crds/crd-10.yaml @@ -1,9 +1,8 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: authorizationpolicies.rbac.istio.io - selfLink: /apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/authorizationpolicies.rbac.istio.io spec: group: rbac.istio.io names: @@ -12,13 +11,16 @@ spec: plural: authorizationpolicies singular: authorizationpolicy scope: Namespaced - version: v1alpha1 versions: - name: v1alpha1 served: true storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: versionmanagers.networking.istio.io @@ -39,10 +41,17 @@ spec: - istio-io - networking-istio-io scope: Namespaced - version: v1alpha3 + versions: + - name: v1alpha3 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: virtualservices.networking.istio.io @@ -66,25 +75,32 @@ spec: - istio-io - networking-istio-io scope: Namespaced - version: v1alpha3 - additionalPrinterColumns: - - JSONPath: .spec.gateways - description: The names of gateways and sidecars that should apply these routes - name: Gateways - type: string - - JSONPath: .spec.hosts - description: The destination hosts to which traffic is being sent - name: Hosts - type: string - - JSONPath: .metadata.creationTimestamp - description: |- - CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. - - Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - name: Age - type: date + versions: + - name: v1alpha3 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true + additionalPrinterColumns: + - jsonPath: .spec.gateways + description: The names of gateways and sidecars that should apply these routes + name: Gateways + type: string + - jsonPath: .spec.hosts + description: The destination hosts to which traffic is being sent + name: Hosts + type: string + - jsonPath: .metadata.creationTimestamp + description: |- + CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. + + Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + name: Age + type: date --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: destinationrules.networking.istio.io @@ -108,21 +124,28 @@ spec: - istio-io - networking-istio-io scope: Namespaced - version: v1alpha3 - additionalPrinterColumns: - - JSONPath: .spec.host - description: The name of a service from the service registry - name: Host - type: string - - JSONPath: .metadata.creationTimestamp - description: |- - CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. - - Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - name: Age - type: date + versions: + - name: v1alpha3 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true + additionalPrinterColumns: + - jsonPath: .spec.host + description: The name of a service from the service registry + name: Host + type: string + - jsonPath: .metadata.creationTimestamp + description: |- + CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. + + Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + name: Age + type: date --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: serviceentries.networking.istio.io @@ -146,29 +169,36 @@ spec: - istio-io - networking-istio-io scope: Namespaced - version: v1alpha3 - additionalPrinterColumns: - - JSONPath: .spec.hosts - description: The hosts associated with the ServiceEntry - name: Hosts - type: string - - JSONPath: .spec.location - description: Whether the service is external to the mesh or part of the mesh (MESH_EXTERNAL or MESH_INTERNAL) - name: Location - type: string - - JSONPath: .spec.resolution - description: Service discovery mode for the hosts (NONE, STATIC, or DNS) - name: Resolution - type: string - - JSONPath: .metadata.creationTimestamp - description: |- - CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. - - Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - name: Age - type: date + versions: + - name: v1alpha3 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true + additionalPrinterColumns: + - jsonPath: .spec.hosts + description: The hosts associated with the ServiceEntry + name: Hosts + type: string + - jsonPath: .spec.location + description: Whether the service is external to the mesh or part of the mesh (MESH_EXTERNAL or MESH_INTERNAL) + name: Location + type: string + - jsonPath: .spec.resolution + description: Service discovery mode for the hosts (NONE, STATIC, or DNS) + name: Resolution + type: string + - jsonPath: .metadata.creationTimestamp + description: |- + CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. + + Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + name: Age + type: date --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: gateways.networking.istio.io @@ -191,9 +221,16 @@ spec: - istio-io - networking-istio-io scope: Namespaced - version: v1alpha3 + versions: + - name: v1alpha3 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: envoyfilters.networking.istio.io @@ -214,10 +251,17 @@ spec: - istio-io - networking-istio-io scope: Namespaced - version: v1alpha3 + versions: + - name: v1alpha3 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: clusterrbacconfigs.rbac.istio.io labels: @@ -237,10 +281,17 @@ spec: - istio-io - rbac-istio-io scope: Cluster - version: v1alpha1 + versions: + - name: v1alpha1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: policies.authentication.istio.io labels: @@ -260,10 +311,17 @@ spec: - istio-io - authentication-istio-io scope: Namespaced - version: v1alpha1 + versions: + - name: v1alpha1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: meshpolicies.authentication.istio.io labels: @@ -284,10 +342,17 @@ spec: - istio-io - authentication-istio-io scope: Cluster - version: v1alpha1 + versions: + - name: v1alpha1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: httpapispecbindings.config.istio.io labels: @@ -307,10 +372,17 @@ spec: - istio-io - apim-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: httpapispecs.config.istio.io labels: @@ -330,10 +402,17 @@ spec: - istio-io - apim-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: quotaspecbindings.config.istio.io labels: @@ -353,10 +432,17 @@ spec: - istio-io - apim-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: quotaspecs.config.istio.io labels: @@ -376,10 +462,17 @@ spec: - istio-io - apim-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: rules.config.istio.io labels: @@ -401,10 +494,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: attributemanifests.config.istio.io labels: @@ -426,10 +526,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: bypasses.config.istio.io labels: @@ -451,10 +558,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: circonuses.config.istio.io labels: @@ -476,10 +590,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: deniers.config.istio.io labels: @@ -501,10 +622,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: fluentds.config.istio.io labels: @@ -526,10 +654,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: kubernetesenvs.config.istio.io labels: @@ -551,10 +686,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: listcheckers.config.istio.io labels: @@ -576,10 +718,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: memquotas.config.istio.io labels: @@ -601,10 +750,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: noops.config.istio.io labels: @@ -626,10 +782,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: opas.config.istio.io labels: @@ -651,10 +814,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: prometheuses.config.istio.io labels: @@ -676,10 +846,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: rbacs.config.istio.io labels: @@ -701,10 +878,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: redisquotas.config.istio.io labels: @@ -723,10 +907,17 @@ spec: plural: redisquotas singular: redisquota scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: signalfxs.config.istio.io labels: @@ -748,10 +939,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: solarwindses.config.istio.io labels: @@ -773,10 +971,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: stackdrivers.config.istio.io labels: @@ -798,10 +1003,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: statsds.config.istio.io labels: @@ -823,10 +1035,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: stdios.config.istio.io labels: @@ -848,10 +1067,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: apikeys.config.istio.io labels: @@ -873,10 +1099,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: authorizations.config.istio.io labels: @@ -898,10 +1131,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: checknothings.config.istio.io labels: @@ -923,10 +1163,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: kuberneteses.config.istio.io labels: @@ -948,10 +1195,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: listentries.config.istio.io labels: @@ -973,10 +1227,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: logentries.config.istio.io labels: @@ -998,30 +1259,37 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 - additionalPrinterColumns: - - JSONPath: .spec.severity - description: The importance of the log entry - name: Severity - type: string - - JSONPath: .spec.timestamp - description: The time value for the log entry - name: Timestamp - type: string - - JSONPath: .spec.monitored_resource_type - description: Optional expression to compute the type of the monitored resource this log entry is being recorded on - name: Res Type - type: string - - JSONPath: .metadata.creationTimestamp - description: |- - CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. - - Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - name: Age - type: date + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true + additionalPrinterColumns: + - jsonPath: .spec.severity + description: The importance of the log entry + name: Severity + type: string + - jsonPath: .spec.timestamp + description: The time value for the log entry + name: Timestamp + type: string + - jsonPath: .spec.monitored_resource_type + description: Optional expression to compute the type of the monitored resource this log entry is being recorded on + name: Res Type + type: string + - jsonPath: .metadata.creationTimestamp + description: |- + CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. + + Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + name: Age + type: date --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: edges.config.istio.io labels: @@ -1043,10 +1311,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: metrics.config.istio.io labels: @@ -1068,10 +1343,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: quotas.config.istio.io labels: @@ -1093,10 +1375,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: reportnothings.config.istio.io labels: @@ -1118,10 +1407,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: tracespans.config.istio.io labels: @@ -1143,10 +1439,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: rbacconfigs.rbac.istio.io labels: @@ -1168,10 +1471,17 @@ spec: - istio-io - rbac-istio-io scope: Namespaced - version: v1alpha1 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: serviceroles.rbac.istio.io labels: @@ -1193,10 +1503,17 @@ spec: - istio-io - rbac-istio-io scope: Namespaced - version: v1alpha1 + versions: + - name: v1alpha1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: servicerolebindings.rbac.istio.io labels: @@ -1218,22 +1535,29 @@ spec: - istio-io - rbac-istio-io scope: Namespaced - version: v1alpha1 - additionalPrinterColumns: - - JSONPath: .spec.roleRef.name - description: The name of the ServiceRole object being referenced - name: Reference - type: string - - JSONPath: .metadata.creationTimestamp - description: |- - CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. - - Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - name: Age - type: date + versions: + - name: v1alpha1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true + additionalPrinterColumns: + - jsonPath: .spec.roleRef.name + description: The name of the ServiceRole object being referenced + name: Reference + type: string + - jsonPath: .metadata.creationTimestamp + description: |- + CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. + + Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + name: Age + type: date --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: adapters.config.istio.io labels: @@ -1255,10 +1579,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: instances.config.istio.io labels: @@ -1280,10 +1611,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: templates.config.istio.io labels: @@ -1305,10 +1643,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: handlers.config.istio.io labels: @@ -1330,10 +1675,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: redisclusters.networking.istio.io @@ -1347,41 +1699,13 @@ spec: plural: redisclusters singular: rediscluster scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: RedisCluster is the Schema for the redisclusters API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: RedisClusterSpec defines the desired state of RedisCluster - properties: - proxy: - properties: - auth: - type: string - type: object - service: - type: string - type: object - status: - description: RedisClusterStatus defines the observed state of RedisCluster - type: object - type: object - version: v1alpha3 versions: - - name: v1alpha3 - served: true - storage: true + - name: v1alpha3 + served: true + storage: true + subresources: + status: {} + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true diff --git a/install/crds/crd-11.yaml b/install/crds/crd-11.yaml index 2ec76f0..df741e6 100644 --- a/install/crds/crd-11.yaml +++ b/install/crds/crd-11.yaml @@ -1,6 +1,6 @@ --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: cloudwatches.config.istio.io labels: @@ -19,10 +19,17 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: dogstatsds.config.istio.io labels: @@ -41,9 +48,16 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: sidecars.networking.istio.io @@ -64,10 +78,17 @@ spec: - istio-io - networking-istio-io scope: Namespaced - version: v1alpha3 + versions: + - name: v1alpha3 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 metadata: name: zipkins.config.istio.io labels: @@ -86,5 +107,12 @@ spec: - istio-io - policy-istio-io scope: Namespaced - version: v1alpha2 + versions: + - name: v1alpha2 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true --- diff --git a/install/crds/crd-17.yaml b/install/crds/crd-17.yaml index 58bac24..3e5e2bd 100644 --- a/install/crds/crd-17.yaml +++ b/install/crds/crd-17.yaml @@ -1,5 +1,5 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: @@ -12,19 +12,6 @@ metadata: release: istio name: peerauthentications.security.istio.io spec: - additionalPrinterColumns: - - JSONPath: .spec.mtls.mode - description: Defines the mTLS mode used for peer authentication. - name: Mode - type: string - - JSONPath: .metadata.creationTimestamp - description: 'CreationTimestamp is a timestamp representing the server time when - this object was created. It is not guaranteed to be set in happens-before order - across separate operations. Clients may not set this value. It is represented - in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for - lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' - name: Age - type: date group: security.istio.io names: categories: @@ -38,63 +25,32 @@ spec: singular: peerauthentication preserveUnknownFields: false scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - properties: - spec: - description: PeerAuthentication defines how traffic will be tunneled (or - not) to the sidecar. - properties: - mtls: - description: Mutual TLS settings for workload. - properties: - mode: - description: Defines the mTLS mode used for peer authentication. - enum: - - UNSET - - DISABLE - - PERMISSIVE - - STRICT - type: string - type: object - portLevelMtls: - additionalProperties: - properties: - mode: - description: Defines the mTLS mode used for peer authentication. - enum: - - UNSET - - DISABLE - - PERMISSIVE - - STRICT - type: string - type: object - description: Port specific mutual TLS settings. - type: object - selector: - description: The selector determines the workloads to apply the ChannelAuthentication - on. - properties: - matchLabels: - additionalProperties: - format: string - type: string - type: object - type: object - type: object - status: + versions: + - name: v1beta1 + served: true + storage: true + subresources: + status: {} + schema: + openAPIV3Schema: type: object x-kubernetes-preserve-unknown-fields: true - type: object - versions: - - name: v1beta1 - served: true - storage: true + additionalPrinterColumns: + - jsonPath: .spec.mtls.mode + description: Defines the mTLS mode used for peer authentication. + name: Mode + type: string + - jsonPath: .metadata.creationTimestamp + description: 'CreationTimestamp is a timestamp representing the server time when + this object was created. It is not guaranteed to be set in happens-before order + across separate operations. Clients may not set this value. It is represented + in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for + lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' + name: Age + type: date --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: @@ -120,88 +76,15 @@ spec: singular: requestauthentication preserveUnknownFields: false scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - properties: - spec: - description: RequestAuthentication defines what request authentication methods - are supported by a workload. - properties: - jwtRules: - description: Define the list of JWTs that can be validated at the selected - workloads' proxy. - items: - properties: - audiences: - items: - format: string - type: string - type: array - forwardOriginalToken: - description: If set to true, the orginal token will be kept for - the ustream request. - type: boolean - fromHeaders: - description: List of header locations from which JWT is expected. - items: - properties: - name: - description: The HTTP header name. - format: string - type: string - prefix: - description: The prefix that should be stripped before decoding - the token. - format: string - type: string - type: object - type: array - fromParams: - description: List of query parameters from which JWT is expected. - items: - format: string - type: string - type: array - issuer: - description: Identifies the issuer that issued the JWT. - format: string - type: string - jwks: - description: JSON Web Key Set of public keys to validate signature - of the JWT. - format: string - type: string - jwks_uri: - format: string - type: string - jwksUri: - format: string - type: string - outputPayloadToHeader: - format: string - type: string - type: object - type: array - selector: - description: The selector determines the workloads to apply the RequestAuthentication - on. - properties: - matchLabels: - additionalProperties: - format: string - type: string - type: object - type: object - type: object - status: + versions: + - name: v1beta1 + served: true + storage: true + subresources: + status: {} + schema: + openAPIV3Schema: type: object x-kubernetes-preserve-unknown-fields: true - type: object - versions: - - name: v1beta1 - served: true - storage: true --- diff --git a/install/install.sh b/install/install.sh index 4b16993..6f5bbc7 100644 --- a/install/install.sh +++ b/install/install.sh @@ -72,12 +72,12 @@ function helm_install_for_hango_component() { function verify_hango_install() { while true do + sleep 10s pod_number=`kubectl -n $HANGO_NAMESPACE get pods | grep Running | wc -l` if [[ $pod_number -ge 7 ]]; then echo "hango pod running" break fi - sleep 10 done } @@ -96,7 +96,7 @@ function main() { log "start to init hango components(asynchronously), you are supposed to check their status manually." helm_install_for_hango_component log "install finished!" - log "stat verify hango install" + log "start to verify hango install" verify_hango_install log "hango verfied ok" "${work_dir}"/init-hango/init.sh From d01e5e6fe6fad23e67ff77e2ab4eba39502e223b Mon Sep 17 00:00:00 2001 From: yutao04 Date: Mon, 21 Nov 2022 19:27:38 +0800 Subject: [PATCH 2/2] feat: support for eureka and nacos registry Signed-off-by: yutao04 --- .../hango-gateway-configmap.yaml | 14 +++++++++-- .../hango-gateway/hango-gateway-deploy.yaml | 19 +++++++++++++++ .../hango-gateway/hango-gateway-service.yaml | 4 ++++ .../charts/hango-gateway/values.yaml | 24 +++++++++++++++---- 4 files changed, 55 insertions(+), 6 deletions(-) diff --git a/install/helm/hango-gateway/charts/hango-gateway/templates/base/hango-gateway/hango-gateway-configmap.yaml b/install/helm/hango-gateway/charts/hango-gateway/templates/base/hango-gateway/hango-gateway-configmap.yaml index b58311d..c5bc6bb 100644 --- a/install/helm/hango-gateway/charts/hango-gateway/templates/base/hango-gateway/hango-gateway-configmap.yaml +++ b/install/helm/hango-gateway/charts/hango-gateway/templates/base/hango-gateway/hango-gateway-configmap.yaml @@ -18,7 +18,9 @@ data: reportBatchMaxTime: 1s # Set enableTracing to false to disable request tracing. enableTracing: true - + configSources: + - address: xds://slime-hango.{{ .Values.namespace }}.svc:16010?types=serviceentry + - address: k8s:// # Set accessLogFile to empty string to disable access log. accessLogFile: "/tmp/gateway-proxy-envoy-access.log" @@ -266,11 +268,13 @@ metadata: apiVersion: v1 data: cfg: | - {"bundle":{"modules":[{"kind":"limiter","name":"limiter"},{"kind":"plugin","name":"plugin"}]},"enable":true,"global":{"configSources":[{"address":"ss://"}],"log":{"logLevel":"info"}},"name":"bundle"} + {"bundle":{"modules":[{"name":"plugin","kind":"plugin"},{"name":"limiter","kind":"limiter"},{"name":"meshregistry","kind":"meshregistry"}]},"enable":true,"global":{"service":"","istioNamespace":"hango-system","slimeNamespace":"hango-system","istioRev":"","configRev":"mesh-reg","configSources":[{"address":"ss://"}],"log":{"klogLevel":5,"logLevel":"info"},"misc":{"pathRedirect":"/ready->/meshregistry/ready,/pc->/meshregistry/pc,/nc->/meshregistry/nc,/zk->/meshregistry/zk,/zks->/meshregistry/zks,/xdsCache->/meshregistry/xdsCache","xdsSourceEnableIncPush":"true"}},"name":"bundle"} cfg_limiter: | {"enable":true,"general":{"disableAdaptive":true,"disableGlobalRateLimit":true,"disableInsertGlobalRateLimit":true},"kind":"limiter","mode":"BundleItem","name":"limiter"} cfg_plugin: | {"enable":true,"kind":"plugin","mode":"BundleItem","name":"plugin"} + cfg_meshregistry: | + {"name":"meshregistry","kind":"meshregistry","enable":true,"mode":"BundleItem","general":{"LEGACY":{"MeshConfigFile":"","RevCrds":"","Mcp":{},"K8SSource":{"Enabled":false},"EurekaSource":{"Enabled":{{ .Values.registry.eureka.enable }},"Address":[{{ .Values.registry.eureka.address }}],"RefreshPeriod":"{{ .Values.registry.eureka.refresh_period }}","GatewayModel":true},"NacosSource":{"Enabled":{{ .Values.registry.nacos.enable }},"Address":[{{ .Values.registry.nacos.address }}],"GatewayModel":true,"Group":"{{ .Values.registry.nacos.service_group }}"}}}} kind: ConfigMap metadata: name: slime-hango @@ -334,3 +338,9 @@ data: 4, '已上线' ); + {{ if .Values.registry.nacos.enable }} + INSERT INTO apigw_gportal_registry_center (`registry_type`, `registry_addr`, `registry_alias`) VALUES ('Nacos', '-', 'nacos'); + {{- end }} + {{ if .Values.registry.eureka.enable }} + INSERT INTO apigw_gportal_registry_center (`registry_type`, `registry_addr`, `registry_alias`) VALUES ('Eureka', '-', 'eureka'); + {{- end }} \ No newline at end of file diff --git a/install/helm/hango-gateway/charts/hango-gateway/templates/base/hango-gateway/hango-gateway-deploy.yaml b/install/helm/hango-gateway/charts/hango-gateway/templates/base/hango-gateway/hango-gateway-deploy.yaml index f73ed15..724ca47 100644 --- a/install/helm/hango-gateway/charts/hango-gateway/templates/base/hango-gateway/hango-gateway-deploy.yaml +++ b/install/helm/hango-gateway/charts/hango-gateway/templates/base/hango-gateway/hango-gateway-deploy.yaml @@ -247,6 +247,8 @@ spec: value: "false" - name: PILOT_ENABLE_CDS_CACHE value: "false" + - name: CONFIG_REVISION + value: mesh-reg image: "{{ .Values.images.istiod_image }}" name: discovery ports: @@ -346,6 +348,20 @@ spec: value: "true" - name: GODEBUG value: gctrace=1 + - name: ENABLE_INC_PUSH + value: "true" + - name: LOCALITY_LABELS + value: system.msha/region,system.msha/zone,system.msha/cluster + - name: CLUSTER_ID + value: cluster1 + - name: XDS_SEND_TIMEOUT + value: 40s + - name: SENT_NONCE_RECORD_NUM + value: "10" + - name: MESH_REG_ISTIO_REVISION + value: mesh-reg + - name: NSF_COLOR_ENDPOINT_LABEL + value: nsf.skiff.netease.com/mark ports: - name: http containerPort: 80 @@ -356,6 +372,9 @@ spec: - name: log-source-port containerPort: 8082 protocol: TCP + - containerPort: 16010 + name: mcp-over-xds + protocol: TCP readinessProbe: httpGet: path: "/modules/readyz" diff --git a/install/helm/hango-gateway/charts/hango-gateway/templates/base/hango-gateway/hango-gateway-service.yaml b/install/helm/hango-gateway/charts/hango-gateway/templates/base/hango-gateway/hango-gateway-service.yaml index 2bc3fb7..99977b0 100644 --- a/install/helm/hango-gateway/charts/hango-gateway/templates/base/hango-gateway/hango-gateway-service.yaml +++ b/install/helm/hango-gateway/charts/hango-gateway/templates/base/hango-gateway/hango-gateway-service.yaml @@ -94,6 +94,10 @@ spec: targetPort: aux-port protocol: TCP name: aux-port + - name: mcp-over-xds + port: 16010 + protocol: TCP + targetPort: 16010 selector: app: slime-hango diff --git a/install/helm/hango-gateway/charts/hango-gateway/values.yaml b/install/helm/hango-gateway/charts/hango-gateway/values.yaml index 3b2504c..ac4faa4 100644 --- a/install/helm/hango-gateway/charts/hango-gateway/values.yaml +++ b/install/helm/hango-gateway/charts/hango-gateway/values.yaml @@ -2,11 +2,11 @@ data_dir: /data cluster_dns_domain: cluster.local images: - hango_apiplane_image: docker.io/hangoio/api-plane:latest - hango_portal_image: docker.io/hangoio/hango-portal:latest - hango_ui_image: docker.io/hangoio/hango-ui:v1.0.1-f7ddf75e + hango_apiplane_image: docker.io/hangoio/api-plane:1.1.0 + hango_portal_image: docker.io/hangoio/hango-portal:v1.0.3-40b0cdb96 + hango_ui_image: docker.io/hangoio/hango-ui:v1.0.3-1e003c49 istiod_image: docker.io/hangoio/istiod:hango-1.0.0-rc1 - slime_image: docker.io/slimeio/slime-bundle-hango:v0.5.0_linux_amd64 + slime_image: docker.io/slimeio/slime-bundle-hango:hango-ee2bff9_linux_amd64 hango_proxy_image: hangoio/envoy-proxy:v1.0.3-9c18597-amd64 @@ -28,3 +28,19 @@ slime: logLevel: info misc: seLabelSelectorKeys: projectName + +registry: + nacos: + ## nacos注册中心功能开关(true 或 false) + enable: false + ## 注册中心实例地址;格式:整体以英文单引号包裹,单个地址以英文双引号包裹,多个地址用英文逗号分隔 + address: '"http://127.0.0.1:8848"' + ## nacos客户端服务所在分组 + service_group: hango_demo + eureka: + ## eureka注册中心功能开关(true 或 false) + enable: false + ## 刷新eureka服务缓存的时间周期,默认15s,格式为: [正整数]s + refresh_period: 15s + ## 注册中心实例地址;格式:整体以英文单引号包裹,单个地址以英文双引号包裹,多个地址用英文逗号分隔 + address: '"http://127.0.0.1:8761/eureka"' \ No newline at end of file