mirror of
https://github.com/kubevela/kubevela.git
synced 2026-02-14 10:00:06 +00:00
961 lines
28 KiB
YAML
961 lines
28 KiB
YAML
---
|
|
# PATCH #1: Creating the istio-system namespace.
|
|
apiVersion: v1
|
|
kind: Namespace
|
|
metadata:
|
|
name: istio-system
|
|
labels:
|
|
istio-injection: disabled
|
|
# PATCH #1 ends.
|
|
---
|
|
# Source: istio/templates/configmap.yaml
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: istio
|
|
namespace: istio-system
|
|
labels:
|
|
app: istio
|
|
chart: istio
|
|
heritage: Helm
|
|
release: RELEASE-NAME
|
|
data:
|
|
mesh: |-
|
|
# Set the following variable to true to disable policy checks by Mixer.
|
|
# Note that metrics will still be reported to Mixer.
|
|
disablePolicyChecks: true
|
|
|
|
disableMixerHttpReports: false
|
|
# reportBatchMaxEntries is the number of requests that are batched before telemetry data is sent to the mixer server
|
|
reportBatchMaxEntries: 100
|
|
# reportBatchMaxTime is the max waiting time before the telemetry data of a request is sent to the mixer server
|
|
reportBatchMaxTime: 1s
|
|
|
|
# Set enableTracing to false to disable request tracing.
|
|
enableTracing: true
|
|
|
|
# Set accessLogFile to empty string to disable access log.
|
|
accessLogFile: "/dev/stdout"
|
|
|
|
# If accessLogEncoding is TEXT, value will be used directly as the log format
|
|
# example: "[%START_TIME%] %REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%\n"
|
|
# If AccessLogEncoding is JSON, value will be parsed as map[string]string
|
|
# example: '{"start_time": "%START_TIME%", "req_method": "%REQ(:METHOD)%"}'
|
|
# Leave empty to use default log format
|
|
accessLogFormat: ""
|
|
|
|
# Set accessLogEncoding to JSON or TEXT to configure sidecar access log
|
|
accessLogEncoding: 'JSON'
|
|
|
|
enableEnvoyAccessLogService: false
|
|
# Let Pilot give ingresses the public IP of the Istio ingressgateway
|
|
ingressService: istio-ingressgateway
|
|
|
|
# Default connect timeout for dynamic clusters generated by Pilot and returned via XDS
|
|
connectTimeout: 10s
|
|
|
|
# Automatic protocol detection uses a set of heuristics to
|
|
# determine whether the connection is using TLS or not (on the
|
|
# server side), as well as the application protocol being used
|
|
# (e.g., http vs tcp). These heuristics rely on the client sending
|
|
# the first bits of data. For server first protocols like MySQL,
|
|
# MongoDB, etc., Envoy will timeout on the protocol detection after
|
|
# the specified period, defaulting to non mTLS plain TCP
|
|
# traffic. Set this field to tweak the period that Envoy will wait
|
|
# for the client to send the first bits of data. (MUST BE >=1ms)
|
|
protocolDetectionTimeout: 100ms
|
|
|
|
# DNS refresh rate for Envoy clusters of type STRICT_DNS
|
|
dnsRefreshRate: 300s
|
|
|
|
# Unix Domain Socket through which envoy communicates with NodeAgent SDS to get
|
|
# key/cert for mTLS. Use secret-mount files instead of SDS if set to empty.
|
|
sdsUdsPath: ""
|
|
|
|
# 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
|
|
trustDomain: ""
|
|
|
|
# The trust domain aliases represent the aliases of trust_domain.
|
|
# For example, if we have
|
|
# trustDomain: td1
|
|
# trustDomainAliases: [“td2”, "td3"]
|
|
# Any service with the identity "td1/ns/foo/sa/a-service-account", "td2/ns/foo/sa/a-service-account",
|
|
# or "td3/ns/foo/sa/a-service-account" will be treated the same in the Istio mesh.
|
|
trustDomainAliases:
|
|
|
|
# If true, automatically configure client side mTLS settings to match the corresponding service's
|
|
# server side mTLS authentication policy, when destination rule for that service does not specify
|
|
# TLS settings.
|
|
enableAutoMtls: false
|
|
|
|
# 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
|
|
outboundTrafficPolicy:
|
|
mode: ALLOW_ANY
|
|
localityLbSetting:
|
|
enabled: true
|
|
# The namespace to treat as the administrative root namespace for istio
|
|
# configuration.
|
|
rootNamespace: istio-system
|
|
|
|
# Configures DNS certificates provisioned through Chiron linked into Pilot.
|
|
certificates:
|
|
[]
|
|
|
|
defaultConfig:
|
|
#
|
|
# TCP connection timeout between Envoy & the application, and between Envoys. Used for static clusters
|
|
# defined in Envoy's configuration file
|
|
connectTimeout: 10s
|
|
#
|
|
### ADVANCED SETTINGS #############
|
|
# Where should envoy's configuration be stored in the istio-proxy container
|
|
configPath: "/etc/istio/proxy"
|
|
binaryPath: "/usr/local/bin/envoy"
|
|
# The pseudo service name used for Envoy.
|
|
serviceCluster: istio-proxy
|
|
# These settings that determine how long an old Envoy
|
|
# process should be kept alive after an occasional reload.
|
|
drainDuration: 45s
|
|
parentShutdownDuration: 1m0s
|
|
#
|
|
# The mode used to redirect inbound connections to Envoy. This setting
|
|
# has no effect on outbound traffic: iptables REDIRECT is always used for
|
|
# outbound connections.
|
|
# If "REDIRECT", use iptables REDIRECT to NAT and redirect to Envoy.
|
|
# The "REDIRECT" mode loses source addresses during redirection.
|
|
# If "TPROXY", use iptables TPROXY to redirect to Envoy.
|
|
# The "TPROXY" mode preserves both the source and destination IP
|
|
# addresses and ports, so that they can be used for advanced filtering
|
|
# and manipulation.
|
|
# The "TPROXY" mode also configures the sidecar to run with the
|
|
# CAP_NET_ADMIN capability, which is required to use TPROXY.
|
|
#interceptionMode: REDIRECT
|
|
#
|
|
# Port where Envoy listens (on local host) for admin commands
|
|
# You can exec into the istio-proxy container in a pod and
|
|
# curl the admin port (curl http://localhost:15000/) to obtain
|
|
# diagnostic information from Envoy. See
|
|
# https://lyft.github.io/envoy/docs/operations/admin.html
|
|
# for more details
|
|
proxyAdminPort: 15000
|
|
#
|
|
# Set concurrency to a specific number to control the number of Proxy worker threads.
|
|
# If set to 0 (default), then start worker thread for each CPU thread/core.
|
|
concurrency: 2
|
|
#
|
|
tracing:
|
|
zipkin:
|
|
# Address of the Zipkin collector
|
|
address: zipkin.istio-system:9411
|
|
#
|
|
# Mutual TLS authentication between sidecars and istio control plane.
|
|
controlPlaneAuthPolicy: NONE
|
|
#
|
|
# Address where istio Pilot service is running
|
|
discoveryAddress: istio-pilot.istio-system:15010
|
|
|
|
# Configuration file for the mesh networks to be used by the Split Horizon EDS.
|
|
meshNetworks: |-
|
|
networks: {}
|
|
---
|
|
# Source: istio/charts/gateways/templates/serviceaccount.yaml
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: cluster-local-gateway-service-account
|
|
namespace: istio-system
|
|
labels:
|
|
app: cluster-local-gateway
|
|
chart: gateways
|
|
heritage: Helm
|
|
release: RELEASE-NAME
|
|
---
|
|
# Source: istio/charts/gateways/templates/serviceaccount.yaml
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: istio-ingressgateway-service-account
|
|
namespace: istio-system
|
|
labels:
|
|
app: istio-ingressgateway
|
|
chart: gateways
|
|
heritage: Helm
|
|
release: RELEASE-NAME
|
|
---
|
|
# Source: istio/charts/pilot/templates/serviceaccount.yaml
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: istio-pilot-service-account
|
|
namespace: istio-system
|
|
labels:
|
|
app: pilot
|
|
chart: pilot
|
|
heritage: Helm
|
|
release: RELEASE-NAME
|
|
---
|
|
# Source: istio/templates/serviceaccount.yaml
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: istio-multi
|
|
namespace: istio-system
|
|
---
|
|
# Source: istio/charts/pilot/templates/clusterrole.yaml
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: istio-pilot-istio-system
|
|
labels:
|
|
app: pilot
|
|
chart: pilot
|
|
heritage: Helm
|
|
release: RELEASE-NAME
|
|
rules:
|
|
- apiGroups: ["config.istio.io"]
|
|
resources: ["*"]
|
|
verbs: ["*"]
|
|
- apiGroups: ["rbac.istio.io"]
|
|
resources: ["*"]
|
|
verbs: ["get", "watch", "list"]
|
|
- apiGroups: ["security.istio.io"]
|
|
resources: ["*"]
|
|
verbs: ["get", "watch", "list"]
|
|
- apiGroups: ["networking.istio.io"]
|
|
resources: ["*"]
|
|
verbs: ["*"]
|
|
- apiGroups: ["authentication.istio.io"]
|
|
resources: ["*"]
|
|
verbs: ["*"]
|
|
- apiGroups: ["apiextensions.k8s.io"]
|
|
resources: ["customresourcedefinitions"]
|
|
verbs: ["*"]
|
|
- apiGroups: ["extensions"]
|
|
resources: ["ingresses", "ingresses/status"]
|
|
verbs: ["*"]
|
|
- apiGroups: [""]
|
|
resources: ["configmaps"]
|
|
verbs: ["create", "get", "list", "watch", "update"]
|
|
- apiGroups: [""]
|
|
resources: ["endpoints", "pods", "services", "namespaces", "nodes"]
|
|
verbs: ["get", "list", "watch"]
|
|
- apiGroups: [""]
|
|
resources: ["secrets"]
|
|
verbs: ["create", "get", "watch", "list", "update", "delete"]
|
|
- apiGroups: ["certificates.k8s.io"]
|
|
resources:
|
|
- "certificatesigningrequests"
|
|
- "certificatesigningrequests/approval"
|
|
- "certificatesigningrequests/status"
|
|
verbs: ["update", "create", "get", "delete"]
|
|
---
|
|
# Source: istio/templates/clusterrole.yaml
|
|
kind: ClusterRole
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
metadata:
|
|
name: istio-reader
|
|
rules:
|
|
- apiGroups: ['']
|
|
resources: ['nodes', 'pods', 'services', 'endpoints', "replicationcontrollers"]
|
|
verbs: ['get', 'watch', 'list']
|
|
- apiGroups: ["extensions", "apps"]
|
|
resources: ["replicasets"]
|
|
verbs: ["get", "list", "watch"]
|
|
---
|
|
# Source: istio/charts/pilot/templates/clusterrolebinding.yaml
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: istio-pilot-istio-system
|
|
labels:
|
|
app: pilot
|
|
chart: pilot
|
|
heritage: Helm
|
|
release: RELEASE-NAME
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: istio-pilot-istio-system
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: istio-pilot-service-account
|
|
namespace: istio-system
|
|
---
|
|
# Source: istio/templates/clusterrolebinding.yaml
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: istio-multi
|
|
labels:
|
|
chart: istio-1.4.9
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: istio-reader
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: istio-multi
|
|
namespace: istio-system
|
|
---
|
|
# Source: istio/charts/gateways/templates/role.yaml
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: Role
|
|
metadata:
|
|
name: istio-ingressgateway-sds
|
|
namespace: istio-system
|
|
rules:
|
|
- apiGroups: [""]
|
|
resources: ["secrets"]
|
|
verbs: ["get", "watch", "list"]
|
|
---
|
|
# Source: istio/charts/gateways/templates/rolebindings.yaml
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: RoleBinding
|
|
metadata:
|
|
name: istio-ingressgateway-sds
|
|
namespace: istio-system
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: Role
|
|
name: istio-ingressgateway-sds
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: istio-ingressgateway-service-account
|
|
---
|
|
# Source: istio/charts/gateways/templates/service.yaml
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: cluster-local-gateway
|
|
namespace: istio-system
|
|
annotations:
|
|
labels:
|
|
chart: gateways
|
|
heritage: Helm
|
|
release: RELEASE-NAME
|
|
app: cluster-local-gateway
|
|
istio: cluster-local-gateway
|
|
spec:
|
|
type: ClusterIP
|
|
selector:
|
|
release: RELEASE-NAME
|
|
app: cluster-local-gateway
|
|
istio: cluster-local-gateway
|
|
ports:
|
|
-
|
|
name: status-port
|
|
port: 15020
|
|
-
|
|
name: http2
|
|
port: 80
|
|
-
|
|
name: https
|
|
port: 443
|
|
---
|
|
# Source: istio/charts/gateways/templates/service.yaml
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: istio-ingressgateway
|
|
namespace: istio-system
|
|
annotations:
|
|
labels:
|
|
chart: gateways
|
|
heritage: Helm
|
|
release: RELEASE-NAME
|
|
app: istio-ingressgateway
|
|
istio: ingressgateway
|
|
spec:
|
|
type: LoadBalancer
|
|
selector:
|
|
release: RELEASE-NAME
|
|
app: istio-ingressgateway
|
|
istio: ingressgateway
|
|
ports:
|
|
-
|
|
name: status-port
|
|
port: 15020
|
|
-
|
|
name: http2
|
|
port: 80
|
|
-
|
|
name: https
|
|
port: 443
|
|
---
|
|
# Source: istio/charts/pilot/templates/service.yaml
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: istio-pilot
|
|
namespace: istio-system
|
|
labels:
|
|
app: pilot
|
|
chart: pilot
|
|
heritage: Helm
|
|
release: RELEASE-NAME
|
|
istio: pilot
|
|
spec:
|
|
ports:
|
|
- port: 15010
|
|
name: grpc-xds # direct
|
|
- port: 15011
|
|
name: https-xds # mTLS
|
|
- port: 8080
|
|
name: http-legacy-discovery # direct
|
|
- port: 15014
|
|
name: http-monitoring
|
|
selector:
|
|
istio: pilot
|
|
---
|
|
# Source: istio/charts/gateways/templates/deployment.yaml
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: istio-ingressgateway
|
|
namespace: istio-system
|
|
labels:
|
|
app: istio-ingressgateway
|
|
chart: gateways
|
|
heritage: Helm
|
|
istio: ingressgateway
|
|
release: RELEASE-NAME
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: istio-ingressgateway
|
|
istio: ingressgateway
|
|
strategy:
|
|
rollingUpdate:
|
|
maxSurge: 100%
|
|
maxUnavailable: 25%
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: istio-ingressgateway
|
|
chart: gateways
|
|
heritage: Helm
|
|
istio: ingressgateway
|
|
release: RELEASE-NAME
|
|
annotations:
|
|
sidecar.istio.io/inject: "false"
|
|
spec:
|
|
serviceAccountName: istio-ingressgateway-service-account
|
|
containers:
|
|
- name: ingress-sds
|
|
image: "docker.io/istio/node-agent-k8s:1.4.9"
|
|
imagePullPolicy: IfNotPresent
|
|
resources:
|
|
limits:
|
|
cpu: 2000m
|
|
memory: 1024Mi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
env:
|
|
- name: "ENABLE_WORKLOAD_SDS"
|
|
value: "false"
|
|
- name: "ENABLE_INGRESS_GATEWAY_SDS"
|
|
value: "true"
|
|
- name: "INGRESS_GATEWAY_NAMESPACE"
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.namespace
|
|
volumeMounts:
|
|
- name: ingressgatewaysdsudspath
|
|
mountPath: /var/run/ingress_gateway
|
|
- name: istio-proxy
|
|
image: "docker.io/istio/proxyv2:1.4.9"
|
|
imagePullPolicy: IfNotPresent
|
|
ports:
|
|
- containerPort: 15020
|
|
- containerPort: 80
|
|
- containerPort: 443
|
|
- containerPort: 15090
|
|
protocol: TCP
|
|
name: http-envoy-prom
|
|
args:
|
|
- proxy
|
|
- router
|
|
- --domain
|
|
- $(POD_NAMESPACE).svc.cluster.local
|
|
- --log_output_level=default:info
|
|
- --drainDuration
|
|
- '45s' #drainDuration
|
|
- --parentShutdownDuration
|
|
- '1m0s' #parentShutdownDuration
|
|
- --connectTimeout
|
|
- '10s' #connectTimeout
|
|
- --serviceCluster
|
|
- istio-ingressgateway
|
|
- --zipkinAddress
|
|
- zipkin:9411
|
|
- --proxyAdminPort
|
|
- "15000"
|
|
- --statusPort
|
|
- "15020"
|
|
- --controlPlaneAuthPolicy
|
|
- NONE
|
|
- --discoveryAddress
|
|
- istio-pilot:15010
|
|
readinessProbe:
|
|
failureThreshold: 30
|
|
httpGet:
|
|
path: /healthz/ready
|
|
port: 15020
|
|
scheme: HTTP
|
|
initialDelaySeconds: 1
|
|
periodSeconds: 2
|
|
successThreshold: 1
|
|
timeoutSeconds: 1
|
|
resources:
|
|
limits:
|
|
cpu: 2000m
|
|
memory: 1024Mi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
env:
|
|
- name: NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: spec.nodeName
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.name
|
|
- name: POD_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.namespace
|
|
- name: INSTANCE_IP
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: status.podIP
|
|
- name: HOST_IP
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: status.hostIP
|
|
- name: SERVICE_ACCOUNT
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.serviceAccountName
|
|
- name: ISTIO_META_POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.name
|
|
- name: ISTIO_META_CONFIG_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
- name: ISTIO_METAJSON_LABELS
|
|
value: |
|
|
{"app":"istio-ingressgateway","chart":"gateways","heritage":"Helm","istio":"ingressgateway","release":"RELEASE-NAME"}
|
|
- name: ISTIO_META_CLUSTER_ID
|
|
value: "Kubernetes"
|
|
- name: SDS_ENABLED
|
|
value: "false"
|
|
- name: ISTIO_META_WORKLOAD_NAME
|
|
value: istio-ingressgateway
|
|
- name: ISTIO_META_OWNER
|
|
value: kubernetes://apis/apps/v1/namespaces/istio-system/deployments/istio-ingressgateway
|
|
- name: ISTIO_META_USER_SDS
|
|
value: "true"
|
|
- name: ISTIO_META_ROUTER_MODE
|
|
value: sni-dnat
|
|
|
|
|
|
volumeMounts:
|
|
- name: ingressgatewaysdsudspath
|
|
mountPath: /var/run/ingress_gateway
|
|
- name: istio-certs
|
|
mountPath: /etc/certs
|
|
readOnly: true
|
|
- name: ingressgateway-certs
|
|
mountPath: "/etc/istio/ingressgateway-certs"
|
|
readOnly: true
|
|
- name: ingressgateway-ca-certs
|
|
mountPath: "/etc/istio/ingressgateway-ca-certs"
|
|
readOnly: true
|
|
volumes:
|
|
- name: ingressgatewaysdsudspath
|
|
emptyDir: {}
|
|
- name: istio-certs
|
|
secret:
|
|
secretName: istio.istio-ingressgateway-service-account
|
|
optional: true
|
|
- name: ingressgateway-certs
|
|
secret:
|
|
secretName: "istio-ingressgateway-certs"
|
|
optional: true
|
|
- name: ingressgateway-ca-certs
|
|
secret:
|
|
secretName: "istio-ingressgateway-ca-certs"
|
|
optional: true
|
|
affinity:
|
|
nodeAffinity:
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
nodeSelectorTerms:
|
|
- matchExpressions:
|
|
- key: beta.kubernetes.io/arch
|
|
operator: In
|
|
values:
|
|
- "amd64"
|
|
- "ppc64le"
|
|
- "s390x"
|
|
preferredDuringSchedulingIgnoredDuringExecution:
|
|
- weight: 2
|
|
preference:
|
|
matchExpressions:
|
|
- key: beta.kubernetes.io/arch
|
|
operator: In
|
|
values:
|
|
- "amd64"
|
|
- weight: 2
|
|
preference:
|
|
matchExpressions:
|
|
- key: beta.kubernetes.io/arch
|
|
operator: In
|
|
values:
|
|
- "ppc64le"
|
|
- weight: 2
|
|
preference:
|
|
matchExpressions:
|
|
- key: beta.kubernetes.io/arch
|
|
operator: In
|
|
values:
|
|
- "s390x"
|
|
---
|
|
# Source: istio/charts/gateways/templates/deployment.yaml
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: cluster-local-gateway
|
|
namespace: istio-system
|
|
labels:
|
|
app: cluster-local-gateway
|
|
chart: gateways
|
|
heritage: Helm
|
|
istio: cluster-local-gateway
|
|
release: RELEASE-NAME
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: cluster-local-gateway
|
|
istio: cluster-local-gateway
|
|
strategy:
|
|
rollingUpdate:
|
|
maxSurge:
|
|
maxUnavailable:
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: cluster-local-gateway
|
|
chart: gateways
|
|
heritage: Helm
|
|
istio: cluster-local-gateway
|
|
release: RELEASE-NAME
|
|
annotations:
|
|
sidecar.istio.io/inject: "false"
|
|
spec:
|
|
serviceAccountName: cluster-local-gateway-service-account
|
|
containers:
|
|
- name: istio-proxy
|
|
image: "docker.io/istio/proxyv2:1.4.9"
|
|
imagePullPolicy: IfNotPresent
|
|
ports:
|
|
- containerPort: 15020
|
|
- containerPort: 80
|
|
- containerPort: 443
|
|
- containerPort: 15090
|
|
protocol: TCP
|
|
name: http-envoy-prom
|
|
args:
|
|
- proxy
|
|
- router
|
|
- --domain
|
|
- $(POD_NAMESPACE).svc.cluster.local
|
|
- --log_output_level=default:info
|
|
- --drainDuration
|
|
- '45s' #drainDuration
|
|
- --parentShutdownDuration
|
|
- '1m0s' #parentShutdownDuration
|
|
- --connectTimeout
|
|
- '10s' #connectTimeout
|
|
- --serviceCluster
|
|
- cluster-local-gateway
|
|
- --zipkinAddress
|
|
- zipkin:9411
|
|
- --proxyAdminPort
|
|
- "15000"
|
|
- --statusPort
|
|
- "15020"
|
|
- --controlPlaneAuthPolicy
|
|
- NONE
|
|
- --discoveryAddress
|
|
- istio-pilot:15010
|
|
readinessProbe:
|
|
failureThreshold: 30
|
|
httpGet:
|
|
path: /healthz/ready
|
|
port: 15020
|
|
scheme: HTTP
|
|
initialDelaySeconds: 1
|
|
periodSeconds: 2
|
|
successThreshold: 1
|
|
timeoutSeconds: 1
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
env:
|
|
- name: NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: spec.nodeName
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.name
|
|
- name: POD_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.namespace
|
|
- name: INSTANCE_IP
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: status.podIP
|
|
- name: HOST_IP
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: status.hostIP
|
|
- name: SERVICE_ACCOUNT
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.serviceAccountName
|
|
- name: ISTIO_META_POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.name
|
|
- name: ISTIO_META_CONFIG_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
- name: ISTIO_METAJSON_LABELS
|
|
value: |
|
|
{"app":"cluster-local-gateway","chart":"gateways","heritage":"Helm","istio":"cluster-local-gateway","release":"RELEASE-NAME"}
|
|
- name: ISTIO_META_CLUSTER_ID
|
|
value: "Kubernetes"
|
|
- name: SDS_ENABLED
|
|
value: "false"
|
|
- name: ISTIO_META_WORKLOAD_NAME
|
|
value: cluster-local-gateway
|
|
- name: ISTIO_META_OWNER
|
|
value: kubernetes://apis/apps/v1/namespaces/istio-system/deployments/cluster-local-gateway
|
|
|
|
volumeMounts:
|
|
- name: istio-certs
|
|
mountPath: /etc/certs
|
|
readOnly: true
|
|
- name: cluster-local-gateway-certs
|
|
mountPath: "/etc/istio/cluster-local-gateway-certs"
|
|
readOnly: true
|
|
- name: cluster-local-gateway-ca-certs
|
|
mountPath: "/etc/istio/cluster-local-gateway-ca-certs"
|
|
readOnly: true
|
|
volumes:
|
|
- name: istio-certs
|
|
secret:
|
|
secretName: istio.cluster-local-gateway-service-account
|
|
optional: true
|
|
- name: cluster-local-gateway-certs
|
|
secret:
|
|
secretName: "istio-cluster-local-gateway-certs"
|
|
optional: true
|
|
- name: cluster-local-gateway-ca-certs
|
|
secret:
|
|
secretName: "istio-cluster-local-gateway-ca-certs"
|
|
optional: true
|
|
affinity:
|
|
nodeAffinity:
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
nodeSelectorTerms:
|
|
- matchExpressions:
|
|
- key: beta.kubernetes.io/arch
|
|
operator: In
|
|
values:
|
|
- "amd64"
|
|
- "ppc64le"
|
|
- "s390x"
|
|
preferredDuringSchedulingIgnoredDuringExecution:
|
|
- weight: 2
|
|
preference:
|
|
matchExpressions:
|
|
- key: beta.kubernetes.io/arch
|
|
operator: In
|
|
values:
|
|
- "amd64"
|
|
- weight: 2
|
|
preference:
|
|
matchExpressions:
|
|
- key: beta.kubernetes.io/arch
|
|
operator: In
|
|
values:
|
|
- "ppc64le"
|
|
- weight: 2
|
|
preference:
|
|
matchExpressions:
|
|
- key: beta.kubernetes.io/arch
|
|
operator: In
|
|
values:
|
|
- "s390x"
|
|
---
|
|
# Source: istio/charts/pilot/templates/deployment.yaml
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: istio-pilot
|
|
namespace: istio-system
|
|
# TODO: default template doesn't have this, which one is right ?
|
|
labels:
|
|
app: pilot
|
|
chart: pilot
|
|
heritage: Helm
|
|
release: RELEASE-NAME
|
|
istio: pilot
|
|
spec:
|
|
replicas: 1
|
|
strategy:
|
|
rollingUpdate:
|
|
maxSurge: 100%
|
|
maxUnavailable: 25%
|
|
selector:
|
|
matchLabels:
|
|
istio: pilot
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: pilot
|
|
chart: pilot
|
|
heritage: Helm
|
|
release: RELEASE-NAME
|
|
istio: pilot
|
|
annotations:
|
|
sidecar.istio.io/inject: "false"
|
|
spec:
|
|
serviceAccountName: istio-pilot-service-account
|
|
containers:
|
|
- name: discovery
|
|
image: "docker.io/istio/pilot:1.4.9"
|
|
imagePullPolicy: IfNotPresent
|
|
args:
|
|
- "discovery"
|
|
- --monitoringAddr=:15014
|
|
- --log_output_level=default:info
|
|
- --domain
|
|
- cluster.local
|
|
- --secureGrpcAddr
|
|
- ""
|
|
- --keepaliveMaxServerConnectionAge
|
|
- "30m"
|
|
ports:
|
|
- containerPort: 8080
|
|
- containerPort: 15010
|
|
- containerPort: 15011
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /ready
|
|
port: 8080
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 5
|
|
timeoutSeconds: 5
|
|
env:
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.name
|
|
- name: POD_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.namespace
|
|
- name: PILOT_PUSH_THROTTLE
|
|
value: "100"
|
|
- name: PILOT_TRACE_SAMPLING
|
|
value: "100"
|
|
- name: PILOT_ENABLE_PROTOCOL_SNIFFING_FOR_OUTBOUND
|
|
value: "true"
|
|
- name: PILOT_ENABLE_PROTOCOL_SNIFFING_FOR_INBOUND
|
|
value: "false"
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
volumeMounts:
|
|
- name: config-volume
|
|
mountPath: /etc/istio/config
|
|
- name: istio-certs
|
|
mountPath: /etc/certs
|
|
readOnly: true
|
|
volumes:
|
|
- name: config-volume
|
|
configMap:
|
|
name: istio
|
|
- name: istio-certs
|
|
secret:
|
|
secretName: istio.istio-pilot-service-account
|
|
optional: true
|
|
affinity:
|
|
nodeAffinity:
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
nodeSelectorTerms:
|
|
- matchExpressions:
|
|
- key: beta.kubernetes.io/arch
|
|
operator: In
|
|
values:
|
|
- "amd64"
|
|
- "ppc64le"
|
|
- "s390x"
|
|
preferredDuringSchedulingIgnoredDuringExecution:
|
|
- weight: 2
|
|
preference:
|
|
matchExpressions:
|
|
- key: beta.kubernetes.io/arch
|
|
operator: In
|
|
values:
|
|
- "amd64"
|
|
- weight: 2
|
|
preference:
|
|
matchExpressions:
|
|
- key: beta.kubernetes.io/arch
|
|
operator: In
|
|
values:
|
|
- "ppc64le"
|
|
- weight: 2
|
|
preference:
|
|
matchExpressions:
|
|
- key: beta.kubernetes.io/arch
|
|
operator: In
|
|
values:
|
|
- "s390x"
|