| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You 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. |
| |
| setup: |
| env: kind |
| file: ../kind.yaml |
| steps: |
| - name: prepare e2e.yaml |
| command: bash hack/prepare-e2e.sh |
| - name: install cert-manager |
| command: | |
| # kind k8s cluster is in $TMPDIR |
| export KUBECONFIG=$TMPDIR/e2e-k8s.config |
| kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.3.1/cert-manager.yaml |
| wait: |
| - namespace: cert-manager |
| resource: pod |
| for: condition=Ready |
| - name: install operator |
| command: | |
| export OPERATOR_IMG=controller |
| make -C operator docker-build |
| kind load docker-image controller |
| make -C operator install |
| make -C operator deploy |
| wait: |
| - namespace: skywalking-swck-system |
| resource: pod |
| for: condition=Ready |
| - name: setup storage(use the internal type) |
| command: | |
| kubectl apply -f test/e2e/internal-storage.yaml |
| wait: |
| - namespace: default |
| resource: Storage/sample |
| for: condition=Ready |
| - name: setup oapserver and ui |
| command: | |
| kubectl create namespace skywalking-system |
| kubectl apply -f test/e2e/skywalking-components-with-storage.yaml |
| wait: |
| - namespace: default |
| resource: OAPServer/default |
| for: condition=Available |
| - namespace: skywalking-system |
| resource: UI/skywalking-system |
| for: condition=Available |
| - name: setup java agent demo |
| command: | |
| kubectl label namespace skywalking-system swck-injection=enabled |
| sed 's/oap-service/default-oap.default/' test/e2e/demo.yaml | kubectl create -f - |
| wait: |
| - namespace: skywalking-system |
| resource: deployment/demo |
| for: condition=Available |
| kind: |
| expose-ports: |
| - namespace: skywalking-system |
| resource: service/demo |
| port: 8085 |
| - namespace: default |
| resource: service/default-oap |
| port: 12800 |
| - namespace: skywalking-system |
| resource: service/skywalking-system-ui |
| port: 80 |
| - namespace: default |
| resource: service/skywalking-storage |
| port: 9200 |
| timeout: 20m |
| |
| cleanup: |
| # always never success failure |
| on: always |
| |
| trigger: |
| action: http |
| interval: 10s |
| times: 5 |
| url: http://${service_demo_host}:${service_demo_8085}/hello |
| method: GET |
| |
| verify: |
| # verify with retry strategy |
| retry: |
| # max retry count |
| count: 10 |
| # the interval between two attempts, e.g. 10s, 1m. |
| interval: 10s |
| cases: |
| - includes: |
| - ../oapserver-cases.yaml |
| - ../ui-cases.yaml |
| # confirm whether the data are stored in the es |
| - query: 'curl -u "elastic:changeme" -k "https://${service_skywalking_storage_host}:${service_skywalking_storage_9200}/_cat/indices?v" 2>&1 | grep sw_metrics | cut -d " " -f 5 | sed ''/^$/d'' | yq e ''{"indices": .}'' - | yq e ''to_entries'' -' |
| expected: ../verify/indices.yaml |