#!/bin/bash # shellcheck disable=SC2034,SC2153,SC2155,SC2164 # Copyright Istio Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. #################################################################################################### # WARNING: THIS IS AN AUTO-GENERATED FILE, DO NOT EDIT. PLEASE MODIFY THE ORIGINAL MARKDOWN FILE: # docs/tasks/traffic-management/egress/egress-gateway-tls-origination/index.md #################################################################################################### snip_before_you_begin_1() { kubectl apply -f samples/sleep/sleep.yaml } snip_before_you_begin_2() { kubectl apply -f <(istioctl kube-inject -f samples/sleep/sleep.yaml) } snip_before_you_begin_3() { export SOURCE_POD=$(kubectl get pod -l app=sleep -o jsonpath={.items..metadata.name}) } snip_before_you_begin_4() { openssl version -a | grep OpenSSL } ! read -r -d '' snip_before_you_begin_4_out <<\ENDSNIP OpenSSL 1.1.1g 21 Apr 2020 ENDSNIP snip_perform_tls_origination_with_an_egress_gateway_1() { kubectl apply -f - < ./nginx.conf events { } http { log_format main '$remote_addr - $remote_user [$time_local] $status ' '"$request" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log; server { listen 443 ssl; root /usr/share/nginx/html; index index.html; server_name my-nginx.mesh-external.svc.cluster.local; ssl_certificate /etc/nginx-server-certs/tls.crt; ssl_certificate_key /etc/nginx-server-certs/tls.key; ssl_client_certificate /etc/nginx-ca-certs/example.com.crt; ssl_verify_client on; } } EOF } snip_deploy_a_mutual_tls_server_4() { kubectl create configmap nginx-configmap -n mesh-external --from-file=nginx.conf=./nginx.conf } snip_deploy_a_mutual_tls_server_5() { kubectl apply -f - < gateway-patch.json < Welcome to nginx! ... ENDSNIP snip_configure_mutual_tls_origination_for_egress_traffic_5() { kubectl logs -l istio=egressgateway -n istio-system | grep 'my-nginx.mesh-external.svc.cluster.local' | grep HTTP } snip_cleanup_the_mutual_tls_origination_example_1() { kubectl delete secret nginx-server-certs nginx-ca-certs -n mesh-external kubectl delete secret istio-egressgateway-certs istio-egressgateway-ca-certs nginx-client-certs nginx-ca-certs -n istio-system kubectl delete configmap nginx-configmap -n mesh-external kubectl delete service my-nginx -n mesh-external kubectl delete deployment my-nginx -n mesh-external kubectl delete namespace mesh-external kubectl delete gateway istio-egressgateway kubectl delete virtualservice direct-nginx-through-egress-gateway kubectl delete destinationrule -n istio-system originate-mtls-for-nginx kubectl delete destinationrule egressgateway-for-nginx } snip_cleanup_the_mutual_tls_origination_example_2() { rm example.com.crt example.com.key my-nginx.mesh-external.svc.cluster.local.crt my-nginx.mesh-external.svc.cluster.local.key my-nginx.mesh-external.svc.cluster.local.csr client.example.com.crt client.example.com.csr client.example.com.key } snip_cleanup_the_mutual_tls_origination_example_3() { rm ./nginx.conf rm ./gateway-patch.json } snip_cleanup_1() { kubectl delete service sleep kubectl delete deployment sleep }