fix programming mode

This commit is contained in:
luckysideburn
2024-08-13 14:52:17 +00:00
parent fcbbbdaf49
commit 26bd2093fd
8 changed files with 94 additions and 121 deletions

View File

@@ -101,7 +101,7 @@
<div class="sidebar" id="sidebar">
<a id="gameModeButton" onclick="startGameMode()">Game Mode</a>
<a id="programmingModeButton" onclick="startProgrammingMode()">Programming Mode (alpha)</a>
<a id="programmingModeButton" onclick="startProgrammingMode()">Programming Mode</a>
<a href="#" onclick="showSpecialKeys()">Show Special Keys</a>
<a href="#" onclick="showCurrentChaosContainer()">Show Current Chaos Container for nodes</a>
<a href="#" onclick="showSetCurrentChaosContainer()">Set Custom Chaos Container for nodes</a>
@@ -424,13 +424,13 @@
<!-- START CHAOS PROGRAMMING MODE SCREEN -->
<div id="chaos-program-screen" style="display: none;">
<div class="">
<div class="row" style="margin-top: 2%;">
<font size="2" class="text-kinv" id="loadTestingPresetsText">Load Testing Presets & Chaos Programs</font>
</div>
<!-- <div class="row" style="margin-top: 2%;"> -->
<!-- <font size="2" class="text-kinv" id="loadTestingPresetsText">Load Testing Presets & Chaos Programs</font>
</div> -->
<div class="row">
<div class="btn-group" id="loadButtonGroup" role="group" aria-label="Basic example" style="overflow-x: scroll; width: 100%; padding-bottom: 2%; padding-top: 2%; scrollbar-color: dark;">
<button type="button" id="loadDefault" class="btn btn-light btn-md" onclick="loadPreset('default', 'k-inv')">Default</button>
<button type="button" id="loadCassandra" class="btn btn-light btn-md" onclick="loadPreset('cassandra', 'python')">Cassandra</button>
<!-- <button type="button" id="loadDefault" class="btn btn-light btn-md" onclick="loadPreset('default', 'k-inv')">Default</button> -->
<!-- <button type="button" id="loadCassandra" class="btn btn-light btn-md" onclick="loadPreset('cassandra', 'python')">Cassandra</button>
<button type="button" id="loadConsul" class="btn btn-light btn-md" onclick="loadPreset('consul', 'python')">Consul</button>
<button type="button" id="loadElasticsearch" class="btn btn-light btn-md" onclick="loadPreset('elasticsearch', 'python')">Elasticsearch</button>
<button type="button" id="loadEtcd3" class="btn btn-light btn-md" onclick="loadPreset('etcd3', 'python')">Etcd3</button>
@@ -444,9 +444,9 @@
<button type="button" id="loadNomad" class="btn btn-light btn-md" onclick="loadPreset('nomad', 'python')">Nomad</button>
<button type="button" id="loadPostgresql" class="btn btn-light btn-md" onclick="loadPreset('postgresql', 'python')">Postgresql</button>
<button type="button" id="loadPrometheus" class="btn btn-light btn-md" onclick="loadPreset('prometheus', 'python')">Prometheus</button>
<button type="button" id="loadRabbit" class="btn btn-light btn-md" onclick="loadPreset('rabbit', 'python')">Rabbit</button>
<button type="button" id="loadSSH" class="btn btn-light btn-md" onclick="loadPreset('SSH', 'python')">SSH</button>
<button type="button" id="loadVault" class="btn btn-light btn-md" onclick="loadPreset('vault', 'python')">Vault</button>
<button type="button" id="loadRabbit" class="btn btn-light btn-md" onclick="loadPreset('rabbit', 'python')">Rabbit</button> -->
<!-- <button type="button" id="loadSSH" class="btn btn-light btn-md" onclick="loadPreset('SSH', 'python')">SSH</button> -->
<!-- <button type="button" id="loadVault" class="btn btn-light btn-md" onclick="loadPreset('vault', 'python')">Vault</button> -->
</div>
</div>
<div class="row">
@@ -454,7 +454,7 @@
</div>
</div>
</div>
<div class="row" style="margin-top: 1%;">
<div class="row" style="margin-top: 0,5%;">
<div id="alert_placeholder_programming_mode" style="margin-top: 1%; margin-bottom: 1%;"></div>
<div class="col">
<div class="row" width="10px">
@@ -469,36 +469,33 @@
<div class="form-group">
<label for="chaosProgramTextArea"></label>
<textarea class="form-control chaos-prog-area" id="chaosProgramTextArea" rows="50" style="min-width: 100%; font-family: Courier, monospace;">
chaos-codename: CODENAME_PLACEHOLDER
jobs:
cpu-attack-job:
additional-labels:
chaos-controller: kubeinvaders
chaos-type: stress-ng
chaos-codename: CODENAME_PLACEHOLDER
image: docker.io/luckysideburn/kubeinvaders-stress-ng:latest
command: "stress-ng"
args:
- --version
mem-attack-job:
additional-labels:
chaos-controller: kubeinvaders
chaos-type: stress-ng
chaos-codename: CODENAME_PLACEHOLDER
image: docker.io/luckysideburn/kubeinvaders-stress-ng:latest
command: "stress-ng"
args:
- --version
experiments:
- name: cpu-attack-exp
job: cpu-attack-job
loop: 5
- name: mem-attack-exp
job: mem-attack-job
loop: 5
chaos-codename: CODENAME_PLACEHOLDER
k8s_jobs:
cpu-attack-job:
additional-labels:
chaos-controller: kubeinvaders
chaos-type: stress-ng
chaos-codename: CODENAME_PLACEHOLDER
image: docker.io/luckysideburn/kubeinvaders-stress-ng:latest
command: "stress-ng"
args:
- --version
mem-attack-job:
additional-labels:
chaos-controller: kubeinvaders
chaos-type: stress-ng
chaos-codename: CODENAME_PLACEHOLDER
image: docker.io/luckysideburn/kubeinvaders-stress-ng:latest
command: "stress-ng"
args:
- --version
experiments:
- name: cpu_attack_exp
k8s_job: cpu-attack-job
loop: 5
- name: mem_attack_exp
k8s_job: mem-attack-job
loop: 5
</textarea>
</div>
</form>

View File

@@ -75,15 +75,20 @@ function runChaosProgram() {
$('#chaosProgramTextArea').val(chaosProgramWithCodename);
codename_configured = true;
var now = new Date().toLocaleString().replace(',','')
$('#alert_placeholder_programming_mode').replaceWith(alert_div + 'Chaos Program launched at ' + now + ' </div>');
//var now = new Date().toLocaleString().replace(',','')
//$('#alert_placeholder_programming_mode').replaceWith(alert_div + 'Chaos Program launched at ' + now + ' </div>');
var oReq = new XMLHttpRequest();
oReq.open("POST", k8s_url + "/kube/chaos/programming_mode?id=" + random_code, true);
oReq.onreadystatechange = function () {
if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
now = new Date().toLocaleString().replace(',','')
$('#alert_placeholder_programming_mode').replaceWith(alert_div + 'Chaos Program completed at ' + now + ' </div>');
if (this.responseText.includes("Invalid")) {
$('#alert_placeholder_programming_mode').replaceWith(alert_div + this.responseText + ' </div>');
}
else {
$('#alert_placeholder_programming_mode').replaceWith(alert_div + this.responseText + 'Chaos Program loaded at ' + now + ' </div>');
}
}
};;
oReq.setRequestHeader("Content-Type", "application/json");