From 2b0a69f77bfa2e8bd09a4d5b529f3ca5e341e813 Mon Sep 17 00:00:00 2001 From: Eugenio Marzo Date: Sun, 16 Oct 2022 10:55:54 +0200 Subject: [PATCH 1/4] start feature programming mode --- html5/index.html | 93 ++++++++++++++++++++++++++++-------- html5/kubeinvaders.js | 15 ++++-- scripts/programming_mode.lua | 13 +++++ 3 files changed, 95 insertions(+), 26 deletions(-) create mode 100644 scripts/programming_mode.lua diff --git a/html5/index.html b/html5/index.html index 7f9cde7..790760c 100644 --- a/html5/index.html +++ b/html5/index.html @@ -115,26 +115,41 @@
-
+ +
- +
- +

KubeInvaders

- +
-
-
- + + @@ -148,21 +163,34 @@ Latest Replicas State Delay:  0 sec 
-
- + +
+
+
+ + +
+
-
-
+
@@ -211,6 +239,29 @@ } } + /* TODO: Improve this function... */ + function startGameMode() { + var game_buttons = document.getElementById("game-buttons"); + var game_screen = document.getElementById("game-screen"); + + if (game_mode_switch) { + game_mode_switch = false; + } else { + game_mode_switch = true; + } + + if (game_buttons.style.display === "none") { + game_buttons.style.display = "block"; + } else { + game_buttons.style.display = "none"; + } + if (game_screen.style.display === "none") { + game_screen.style.display = "block"; + } else { + game_screen.style.display = "none"; + } + } + function showSpecialKeys() { $('#showSpecialKeysModal').modal('show'); modal_opened = true; diff --git a/html5/kubeinvaders.js b/html5/kubeinvaders.js index f866b8e..6b9b380 100644 --- a/html5/kubeinvaders.js +++ b/html5/kubeinvaders.js @@ -21,6 +21,7 @@ var spaceshipxOld = 0; var randomFactor = 10; // pods list from kubernetes var pods = []; +var game_mode_switch = false; // nodes list from kubernetes var nodes = []; @@ -252,13 +253,15 @@ function getNodes() { } } -window.setInterval(function getKubeItems() { - getNodes(); - getPods(); +window.setInterval(function getKubeItems() { + if (game_mode_switch) { + getNodes(); + getPods(); + } }, 1000) function keyDownHandler(e) { - if (!modal_opened) { + if (!modal_opened && game_mode_switch) { e.preventDefault(); if(e.key == "Right" || e.key == "ArrowRight") { rightPressed = true; @@ -682,7 +685,9 @@ window.setInterval(function setAliens() { }, 1000) window.setInterval(function metrics() { - getMetrics() + if (game_mode_switch) { + getMetrics() + } }, 2000) getEndpoint(); diff --git a/scripts/programming_mode.lua b/scripts/programming_mode.lua new file mode 100644 index 0000000..3935ffb --- /dev/null +++ b/scripts/programming_mode.lua @@ -0,0 +1,13 @@ +local https = require "ssl.https" +local ltn12 = require "ltn12" +local json = require 'lunajson' +local redis = require "resty.redis" + +if os.getenv("KUBERNETES_SERVICE_HOST") then + k8s_url = "https://" .. os.getenv("KUBERNETES_SERVICE_HOST") .. ":" .. os.getenv("KUBERNETES_SERVICE_PORT_HTTPS") +else + k8s_url = os.getenv("ENDPOINT") +end + +local token = os.getenv("TOKEN") +local arg = ngx.req.get_uri_args() From bc4794dc35939a8bc72e2ab8f6013cc061716b84 Mon Sep 17 00:00:00 2001 From: Eugenio Marzo Date: Mon, 17 Oct 2022 09:51:21 +0200 Subject: [PATCH 2/4] starting creation of new endpoints --- html5/DIMITRI_.TTF | Bin 0 -> 24424 bytes html5/index.html | 22 ++++- html5/slkscre.ttf | Bin 0 -> 7720 bytes nginx/KubeInvaders.conf | 4 + scripts/programming_mode/example.yaml | 40 +++++++++ scripts/programming_mode/requirements.txt | 1 + scripts/programming_mode/start.py | 99 ++++++++++++++++++++++ 7 files changed, 165 insertions(+), 1 deletion(-) create mode 100644 html5/DIMITRI_.TTF create mode 100644 html5/slkscre.ttf create mode 100644 scripts/programming_mode/example.yaml create mode 100644 scripts/programming_mode/requirements.txt create mode 100644 scripts/programming_mode/start.py diff --git a/html5/DIMITRI_.TTF b/html5/DIMITRI_.TTF new file mode 100644 index 0000000000000000000000000000000000000000..821170aca3bca9e5664442517d783542b3e6f96c GIT binary patch literal 24424 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 TbU=&0)SBh}k%+l&<(mEnnm`c( literal 0 HcmV?d00001 diff --git a/html5/index.html b/html5/index.html index 790760c..33d6564 100644 --- a/html5/index.html +++ b/html5/index.html @@ -168,7 +168,27 @@
- +
diff --git a/html5/slkscre.ttf b/html5/slkscre.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2d1c9693316290a2778d4576b527d498f3185432 GIT binary patch literal 7720 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 {parsed_yaml}") + except yaml.YAMLError as exc: + print(exc) + +configuration = client.Configuration() +configuration.api_key = {"authorization": "Bearer ...."} +configuration.host = 'https://localhost:6443' +configuration.insecure_skip_tls_verify = True +configuration.verify_ssl = False + +client.Configuration.set_default(configuration) +client.Configuration.set_default(configuration) + +api_instance = client.CoreV1Api() +batch_api = client.BatchV1Api() +namespace = "kubeinvaders" + +for job in parsed_yaml["jobs"]: + logging.info(f"Found job {job}") + +for exp in parsed_yaml["experiments"]: + logging.info(f"Processing the experiment {exp}") + job_attrs = parsed_yaml["jobs"][exp["job"]] + logging.info(f"args= {job_attrs['args']}") + container = create_container( + image = job_attrs["image"], + name = exp["name"], + command = job_attrs["command"], + args = job_attrs["args"] + ) + + pod_template = create_pod_template(exp["name"], container) + logging.info(f"Creating job {exp['name']}") + job_def = create_job(exp["name"], pod_template) + batch_api.create_namespaced_job('kubeinvaders', job_def) + +# try: +# api_response = api_instance.list_namespaced_pod_template(namespace, pretty=True, label_selector='foo=bar') +# logging.info(api_response) +# except ApiException as e: +# logging.info(e) + +# if len(api_response.items) == 0: +# logging.info("Black box exporter is not installed. Installing it...") + From 791c5792d49329cf67775311a2fea1fd6c035069 Mon Sep 17 00:00:00 2001 From: Eugenio Marzo Date: Thu, 20 Oct 2022 23:39:53 +0200 Subject: [PATCH 3/4] try new feature... --- Dockerfile | 1 + html5/index.html | 107 +++++++++++++++------- html5/kubeinvaders.js | 18 ++++ nginx/KubeInvaders.conf | 2 +- scripts/programming_mode.lua | 6 ++ scripts/programming_mode/example.yaml | 40 -------- scripts/programming_mode/experiments.yaml | 53 +++++++++++ scripts/programming_mode/start.py | 51 ++++++----- 8 files changed, 180 insertions(+), 98 deletions(-) delete mode 100644 scripts/programming_mode/example.yaml create mode 100644 scripts/programming_mode/experiments.yaml diff --git a/Dockerfile b/Dockerfile index 4c6429f..6cb3a17 100644 --- a/Dockerfile +++ b/Dockerfile @@ -48,6 +48,7 @@ COPY scripts/node.lua /usr/local/openresty/nginx/conf/kubeinvaders/node.lua COPY scripts/kube-linter.lua /usr/local/openresty/nginx/conf/kubeinvaders/kube-linter.lua COPY scripts/chaos-node.lua /usr/local/openresty/nginx/conf/kubeinvaders/chaos-node.lua 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 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/html5/index.html b/html5/index.html index 33d6564..5c26694 100644 --- a/html5/index.html +++ b/html5/index.html @@ -118,16 +118,27 @@
- +
-

KubeInvaders

+
- + +
+
+ -
- +
-