Skip to content

Add TKP service

Add TKP service #250

Workflow file for this run

name: End to End Test
on:
push:
pull_request:
env:
LUNETTES_DOCKERHUB_REPO: local/lunettes
jobs:
create-cluster:
runs-on: ubuntu-latest
steps:
# git checkout code
- name: Checkout
uses: actions/checkout@v2
# Use the git command to retrieve the current tag information and store it in the environment variable APP_VERSION.
- name: Generate App Version
run: echo APP_VERSION=`git describe --tags --always` >> $GITHUB_ENV
- name: Build lunettes
id: docker_build_lunettes
uses: docker/build-push-action@v2
with:
push: false
file: build/docker/Dockerfile.lunettes
# docker build arg
build-args: |
GOARCH=$(go env GOARCH)
# Generate two Docker tags: ${APP_VERSION}
tags: |
${{ env.LUNETTES_DOCKERHUB_REPO }}:${{ env.APP_VERSION }}
- name: Test Build grafana
id: docker_build_grafana
uses: docker/build-push-action@v2
with:
push: false
file: build/docker/Dockerfile.grafana
# docker build arg
build-args: |
GRAFANA_PLUGINS="yesoreyeram-infinity-datasource,marcusolsson-json-datasource,marcusolsson-dynamictext-panel,volkovlabs-form-panel:3.1.0"
tags: |
grafana:${{ env.APP_VERSION }}
- name: Create k8s Kind Cluster
uses: helm/kind-action@v1.5.0
with:
config: hack/kind.yaml
cluster_name: k8s
- name: Test kind
run: |
kubectl get ns
- name: kind load image
run: |
kind load docker-image --name k8s ${{ env.LUNETTES_DOCKERHUB_REPO }}:${{ env.APP_VERSION }}
- uses: azure/setup-helm@v3
id: install
- name: Deploy lunettes
run: |
helm upgrade --install lunettes deploy/helm/lunettes/ \
--set lunettesImage=${{ env.LUNETTES_DOCKERHUB_REPO }}:${{ env.APP_VERSION }} \
--set enableAuditApiserver=true \
--set lunettesType=NodePort \
--set grafanadiType=NodePort \
--set grafanaType=NodePort \
--set jaegerType=NodePort
# waiting for lunettes ready
set +e
all_pods=$(kubectl -n lunettes get pods -o jsonpath='{.items[*].metadata.name}')
echo "pods are: ${all_pods}"
for ((i=0; i<120; i++))
do
all_pods_running=true
for pod in ${all_pods}
do
status=$(kubectl -n lunettes get pod ${pod} --output=jsonpath="{.status.phase}" )
if [ "${status}" != "Running" ]
then
all_pods_running=false
break
fi
done
if [ ${all_pods_running} = "true" ]
then
echo "all pods are running"
break
fi
output=$(kubectl -n lunettes get pods -owide)
echo "$output"
lunettes_pod_name=$(kubectl -n lunettes get pods | awk '$1 ~ /^lunettes-/{print $1}')
echo -e "################# log lunettes init ......#################\n"
kubectl -n lunettes logs ${lunettes_pod_name} -c init |head -n 100
grafanadi_pod_name=$(kubectl -n lunettes get pods | awk '$1 ~ /^grafanadi-/{print $1}')
echo -e "################# log grafanadi init ......#################\n"
kubectl -n lunettes logs ${grafanadi_pod_name} -c init |head -n 100
es_pod_name=$(kubectl -n lunettes get pods | awk '$1 ~ /^es-single-/{print $1}')
echo -e "################# log es-single ...... #################\n"
kubectl -n lunettes logs ${es_pod_name} | head -n 100
echo "rechecking the pod status after 30s..."
sleep 30
done
set -e
- name: Create test pod
run: |
kubectl run nginx --image=nginx
sleep 30
kubectl get pods
sleep 5m
echo "waiting for lunettes process audit"
- name: Test podinfo api with curl
run: |
response=$(curl -X GET "http://localhost:9099/podinfotable?searchkey=name&searchvalue=nginx")
if echo "$response" | grep -q "nginx"; then
echo "URL test passed"
else
echo "URL test failed"
exit 1
fi