mirror of https://github.com/istio/istio.io.git
71 lines
2.4 KiB
Go
71 lines
2.4 KiB
Go
// Copyright Istio Authors
|
|
//
|
|
// 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.
|
|
|
|
package security
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"istio.io/istio/pkg/test/framework"
|
|
"istio.io/istio/pkg/test/framework/components/environment/kube"
|
|
|
|
"istio.io/istio.io/pkg/test/istioio"
|
|
)
|
|
|
|
const (
|
|
ingressPortCommand = `$(kubectl -n istio-system \
|
|
get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].port}')`
|
|
ingressHostCommand = `$(kubectl -n istio-system \
|
|
get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')`
|
|
minikubeIngressPortCommand = `$(kubectl -n istio-system \
|
|
get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')`
|
|
minikubeIngressHostCommand = `$(kubectl -n istio-system \
|
|
get pod -l istio=ingressgateway -o jsonpath='{.items[0].status.hostIP}')`
|
|
)
|
|
|
|
//https://istio.io/docs/examples/bookinfo/
|
|
//https://github.com/istio/istio.io/blob/master/content/en/docs/examples/bookinfo/index.md
|
|
func TestBookinfo(t *testing.T) {
|
|
framework.
|
|
NewTest(t).
|
|
Run(istioio.NewBuilder("examples__bookinfo").
|
|
Add(istioio.Script{
|
|
Input: istioio.InputSelectorFunc(func(ctx istioio.Context) istioio.Input {
|
|
e := ctx.Environment().(*kube.Environment)
|
|
portCommand := ingressPortCommand
|
|
hostCommand := ingressHostCommand
|
|
if e.Settings().Minikube {
|
|
portCommand = minikubeIngressPortCommand
|
|
hostCommand = minikubeIngressHostCommand
|
|
}
|
|
return istioio.Evaluate(
|
|
istioio.Path("scripts/bookinfo.txt"),
|
|
map[string]interface{}{
|
|
"ingressPortCommand": portCommand,
|
|
"ingressHostCommand": hostCommand,
|
|
},
|
|
).SelectInput(ctx)
|
|
}),
|
|
}).
|
|
Defer(istioio.Script{
|
|
Input: istioio.Inline{
|
|
FileName: "cleanup.sh",
|
|
Value: `
|
|
kubectl delete -n default -f samples/bookinfo/platform/kube/bookinfo.yaml || true
|
|
kubectl delete -n default -f samples/bookinfo/networking/bookinfo-gateway.yaml || true`,
|
|
},
|
|
}).
|
|
Build())
|
|
}
|