diff --git a/kube-linter/kube-linter-parser.sh b/kube-linter/kube-linter-parser.sh old mode 100644 new mode 100755 index 1016c3d..ee269d6 --- a/kube-linter/kube-linter-parser.sh +++ b/kube-linter/kube-linter-parser.sh @@ -1,9 +1,22 @@ #!/bin/sh -kube-linter lint $1 2>&1 | -while read -r line -do - echo - echo $line |sed -n 's/^\([^\ ]*\)\ \(([^\(]*)\)\ \(.*\)$/\3/p' - echo -done +POD_FILE=/tmp/${3}.yaml + +#Getting yaml of pod ${3} through kubernetes API +curl -XGET "{$1}/api/v1/namespaces/{$2}/pods/{$3}" --header "Authorization: Bearer ${4}" --silent -k > ${POD_FILE} +[ ! $? -eq 0 ] && (echo "{}" && exit 0) + +#Execute kubelinter against ${POD_FILE} +wcl=$(cat ${POD_FILE} | wc -l ) + +if [[ $wcl -gt 0 ]];then + kube-linter lint ${POD_FILE} 2>&1 | + while read -r line + do + echo $line | sed -n 's/^\([^\ ]*\)\ \(([^\(]*)\)\ \(.*\)$/\3/p' + done | jq -R -s -c 'split("\n")' +else + echo "{}" +fi + + diff --git a/nginx/KubeInvaders.templ b/nginx/KubeInvaders.templ index 98ebf27..6e3bc72 100644 --- a/nginx/KubeInvaders.templ +++ b/nginx/KubeInvaders.templ @@ -8,13 +8,9 @@ server { content_by_lua_block { local arg = ngx.req.get_uri_args() ngx.req.read_body() - local request_body = ngx.req.get_body_data() - os.execute("curl -XGET " .. arg['k8s_url'] .. "/api/v1/namespaces/" .. arg['namespace'] .. "/pods/" .. arg['pod_name'] .. " --header 'Authorization: Bearer " .. arg['token'] .. "' -k > /tmp/" .. arg['pod_name'] .. ".yaml") - os.execute("/opt/kube-linter-parser.sh /tmp/" .. arg['pod_name'] .. ".yaml > /tmp/" .. arg['pod_name'] .. ".linter") - local handle = io.popen('jq -R -s -c \'split("\n")\' < /tmp/' .. arg['pod_name'] .. '.linter') + local request_body = ngx.req.get_body_data() + local handle = io.popen("/opt/kube-linter-parser.sh" .. arg['k8s_url'] .. " " .. arg['namespace'] .. " " .. arg['pod_name'] .. " " .. arg['token']") local result = handle:read("*a") - os.execute("rm -f /tmp/" .. arg['pod_name'] .. ".linter") - os.execute("rm -f /tmp/" .. arg['pod_name'] .. ".yaml") ngx.say(result) } } diff --git a/nginx/KubeInvaders_dev.templ b/nginx/KubeInvaders_dev.templ index d46915b..31f877d 100644 --- a/nginx/KubeInvaders_dev.templ +++ b/nginx/KubeInvaders_dev.templ @@ -9,12 +9,8 @@ server { local arg = ngx.req.get_uri_args() ngx.req.read_body() local request_body = ngx.req.get_body_data() - os.execute("curl -XGET " .. arg['k8s_url'] .. "/api/v1/namespaces/" .. arg['namespace'] .. "/pods/" .. arg['pod_name'] .. " --header 'Authorization: Bearer " .. arg['token'] .. "' -k > /tmp/" .. arg['pod_name'] .. ".yaml") - os.execute("/opt/kube-linter-parser.sh /tmp/" .. arg['pod_name'] .. ".yaml > /tmp/" .. arg['pod_name'] .. ".linter") - local handle = io.popen('jq -R -s -c \'split("\n")\' < /tmp/' .. arg['pod_name'] .. '.linter') + local handle = io.popen("/opt/kube-linter-parser.sh" .. arg['k8s_url'] .. " " .. arg['namespace'] .. " " .. arg['pod_name'] .. " " .. arg['token']") local result = handle:read("*a") - os.execute("rm -f /tmp/" .. arg['pod_name'] .. ".linter") - os.execute("rm -f /tmp/" .. arg['pod_name'] .. ".yaml") ngx.say(result) } }