diff --git a/Dockerfile b/Dockerfile index 6cb3a17..1146e01 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ RUN apt-get -y install --no-install-recommends wget gnupg ca-certificates jq ope RUN wget -O - https://openresty.org/package/pubkey.gpg | apt-key add - RUN codename=`grep -Po 'VERSION="[0-9]+ \(\K[^)]+' /etc/os-release` && echo "deb http://openresty.org/package/debian $codename openresty" | tee /etc/apt/sources.list.d/openresty.list RUN apt-get update -RUN apt-get -y install openresty luarocks libssl-dev git vim lua-json lua-socket +RUN apt-get -y install openresty luarocks libssl-dev git vim lua-json lua-socket python3 python3-pip RUN apt-get update --fix-missing RUN chmod 777 /usr/local/openresty/nginx RUN luarocks install luasec @@ -50,6 +50,8 @@ COPY scripts/chaos-node.lua /usr/local/openresty/nginx/conf/kubeinvaders/chaos-n COPY scripts/chaos-containers.lua /usr/local/openresty/nginx/conf/kubeinvaders/chaos-containers.lua COPY scripts/programming_mode.lua /usr/local/openresty/nginx/conf/kubeinvaders/programming_mode.lua COPY scripts/config_kubeinv.lua /usr/local/openresty/lualib/config_kubeinv.lua +COPY scripts/programming_mode /opt/programming_mode/ +RUN pip3 install -r /opt/programming_mode/requirements.txt COPY nginx/KubeInvaders.conf /etc/nginx/conf.d/KubeInvaders.conf RUN chmod g+rwx /var/cache/nginx /var/run /var/log/nginx /var/www/html /etc/nginx/conf.d diff --git a/scripts/programming_mode.lua b/scripts/programming_mode.lua index c8a5265..88538a9 100644 --- a/scripts/programming_mode.lua +++ b/scripts/programming_mode.lua @@ -9,11 +9,24 @@ else k8s_url = os.getenv("ENDPOINT") end +ngx.header['Access-Control-Allow-Origin'] = '*' +ngx.header['Access-Control-Allow-Methods'] = 'GET, POST, OPTIONS' +ngx.header['Access-Control-Allow-Headers'] = 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range' +ngx.header['Access-Control-Expose-Headers'] = 'Content-Length,Content-Range'; +ngx.req.read_body() + local token = os.getenv("TOKEN") local arg = ngx.req.get_uri_args() local body_data = ngx.req.get_body_data() + +ngx.log(ngx.ERR, "[programming_mode]" .. body_data) + file = io.open("/tmp/experiments.yaml", "w") io.output(file) io.write(body_data) io.close(file) +local handle = io.popen("python3 /opt/programming_mode/start.py") +local result = handle:read("*a") + +ngx.say("Chaos program has been started...") diff --git a/scripts/programming_mode/requirements.txt b/scripts/programming_mode/requirements.txt index 807e21b..53e3485 100644 --- a/scripts/programming_mode/requirements.txt +++ b/scripts/programming_mode/requirements.txt @@ -1 +1,3 @@ +yaml +requests kubernetes