"]
24 | [5.545042, "o", "\u001b[?2004l\r\r\n"]
25 | [5.553171, "o", "\u001b]2;make helm-test\u0007\u001b]1;make\u0007"]
26 | [5.553214, "o", "\u001b]133;C;\r\u0007"]
27 | [12.357598, "o", "NAME: command-runner\r\nLAST DEPLOYED: Sat Aug 3 07:20:40 2024\r\nNAMESPACE: kubert-assistant\r\nSTATUS: deployed\r\nREVISION: 1\r\nTEST SUITE: command-runner-kubert-assistant-workload-test-connection\r\nLast Started: Sat Aug 3 07:24:50 2024\r\nLast Completed: Sat Aug 3 07:24:56 2024\r\nPhase: Succeeded\r\n"]
28 | [12.421405, "o", "NAME: agent-repo\r\nLAST DEPLOYED: Sat Aug 3 07:20:40 2024\r\nNAMESPACE: kubert-assistant\r\nSTATUS: deployed\r\nREVISION: 1\r\nTEST SUITE: None\r\n"]
29 | [12.468782, "o", "NAME: plugin-repo\r\nLAST DEPLOYED: Sat Aug 3 07:20:40 2024\r\nNAMESPACE: kubert-assistant\r\nSTATUS: deployed\r\nREVISION: 1\r\nTEST SUITE: None\r\n"]
30 | [12.51235, "o", "NAME: gateway\r\nLAST DEPLOYED: Sat Aug 3 07:20:41 2024\r\nNAMESPACE: kubert-assistant\r\nSTATUS: deployed\r\nREVISION: 1\r\nTEST SUITE: None\r\n"]
31 | [12.569741, "o", "NAME: lobechat\r\nLAST DEPLOYED: Sat Aug 3 07:20:41 2024\r\nNAMESPACE: kubert-assistant\r\nSTATUS: deployed\r\nREVISION: 1\r\nTEST SUITE: None\r\n"]
32 | [12.571144, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
33 | [12.679651, "o", "\u001b]2;patrykattc@patryksacstudio:~/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1;..ssistant-lite\u0007"]
34 | [12.681701, "o", "\u001b]7;file://patryksacstudio.lan/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u001b\\"]
35 | [12.681784, "o", "\u001b]133;D;0\u0007"]
36 | [12.683389, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
37 | [12.693052, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b]133;B\u0007\u001b[K"]
38 | [12.693128, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
39 | [15.714226, "o", "\u001b[?2004l\r\r\n"]
40 |
--------------------------------------------------------------------------------
/docs/assets/terminal/lint-chart.cast:
--------------------------------------------------------------------------------
1 | {"version": 2, "width": 272, "height": 44, "timestamp": 1722683799, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}}
2 | [0.111661, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
3 | [0.1121, "o", "\u001b]1337;ShellIntegrationVersion=14;shell=zsh\u0007"]
4 | [0.766899, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
5 | [0.868339, "o", "\u001b]2;patrykattc@patryksacstudio:~/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1;..ssistant-lite\u0007"]
6 | [0.869968, "o", "\u001b]7;file://patryksacstudio.lan/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u001b\\"]
7 | [0.870098, "o", "\u001b]133;D;0\u0007"]
8 | [0.874486, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
9 | [0.88634, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b]133;B\u0007\u001b[K"]
10 | [0.886423, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
11 | [0.906595, "o", "\r\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b]133;B\u0007\u001b[K"]
12 | [2.572652, "o", "m"]
13 | [2.575687, "o", "\bm\u001b[90make\u001b[39m\b\b\b"]
14 | [2.706752, "o", "\bm\u001b[39ma"]
15 | [2.820511, "o", "\u001b[39mk"]
16 | [3.152259, "o", "\u001b[39me"]
17 | [3.540311, "o", " "]
18 | [3.543536, "o", "\u001b[90mcoverage\u001b[39m\u001b[8D"]
19 | [4.07692, "o", "\u001b[39ml\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \b\b\b\b\b\b\b"]
20 | [4.080107, "o", "\u001b[90mint-chart\u001b[39m\u001b[9D"]
21 | [4.27027, "o", "\u001b[39mi"]
22 | [4.418951, "o", "\u001b[39mn"]
23 | [5.584551, "o", "\u001b[39mt\u001b[39m-\u001b[39mc\u001b[39mh\u001b[39ma\u001b[39mr\u001b[39mt"]
24 | [6.155476, "o", "\u001b[?1l\u001b>\u001b[?2004l"]
25 | [6.155737, "o", "\r\r\n"]
26 | [6.164141, "o", "\u001b]2;make lint-chart\u0007\u001b]1;make\u0007"]
27 | [6.164204, "o", "\u001b]133;C;\r\u0007"]
28 | [6.181623, "o", "helm lint manifests/chart\r\n"]
29 | [6.236186, "o", "==> Linting manifests/chart\r\n\r\n1 chart(s) linted, 0 chart(s) failed\r\n"]
30 | [6.237166, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
31 | [6.333244, "o", "\u001b]2;patrykattc@patryksacstudio:~/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1;..ssistant-lite\u0007"]
32 | [6.335064, "o", "\u001b]7;file://patryksacstudio.lan/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u001b\\"]
33 | [6.335112, "o", "\u001b]133;D;0\u0007"]
34 | [6.336689, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
35 | [6.346392, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b]133;B\u0007\u001b[K"]
36 | [6.346464, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
37 | [8.867849, "o", "\u001b[?2004l\r\r\n"]
38 |
--------------------------------------------------------------------------------
/docs/assets/terminal/make-cleanup-mac.cast:
--------------------------------------------------------------------------------
1 | {"version": 2, "width": 167, "height": 45, "timestamp": 1722610317, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}}
2 | [2.183254, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
3 | [2.445038, "o", "\u001b]2;patrykattc@Patryks-MacBook-Pro:~/projects/git/kubert-assistant-lite\u0007"]
4 | [2.445391, "o", "\u001b]1;..ssistant-lite\u0007"]
5 | [2.45147, "o", "\u001b]7;file://Patryks-MacBook-Pro.local/Users/patrykattc/projects/git/kubert-assistant-lite\u001b\\"]
6 | [2.453349, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[K"]
7 | [2.453533, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
8 | [2.58262, "o", "\r\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b[K"]
9 | [4.066769, "o", "m"]
10 | [4.219875, "o", "\bma"]
11 | [4.376931, "o", "k"]
12 | [4.465005, "o", "e"]
13 | [4.647347, "o", " "]
14 | [4.963685, "o", "c"]
15 | [5.097384, "o", "l"]
16 | [5.525404, "o", "e"]
17 | [5.693303, "o", "a"]
18 | [5.815114, "o", "n"]
19 | [6.161226, "o", "u"]
20 | [6.315051, "o", "p"]
21 | [7.335266, "o", "\u001b[?1l\u001b>"]
22 | [7.3353, "o", "\u001b[?2004l\r\r\n"]
23 | [7.336075, "o", "\u001b]2;make cleanup\u0007\u001b]1;make\u0007"]
24 | [7.744802, "o", "\u001b[0;32m2024-08-02 10:52:05 [INFO]: Validating required tools...\u001b[0m\r\n"]
25 | [7.750981, "o", "\u001b[0;32m2024-08-02 10:52:05 [INFO]: kind is installed.\u001b[0m\r\n"]
26 | [7.756568, "o", "\u001b[0;32m2024-08-02 10:52:05 [INFO]: kubectl is installed.\u001b[0m\r\n"]
27 | [7.765572, "o", "\u001b[0;32m2024-08-02 10:52:05 [INFO]: helm is installed.\u001b[0m\r\n"]
28 | [7.771811, "o", "\u001b[0;32m2024-08-02 10:52:05 [INFO]: jq is installed.\u001b[0m\r\n"]
29 | [7.782165, "o", "\u001b[0;32m2024-08-02 10:52:05 [INFO]: All required tools are installed. You are ready to proceed!\u001b[0m\r\n"]
30 | [7.788239, "o", "\u001b[0;32m2024-08-02 10:52:05 [INFO]: Starting cleanup process...\u001b[0m\r\n"]
31 | [7.910504, "o", "\u001b[0;32m2024-08-02 10:52:05 [INFO]: Deleting kind cluster kubert-cluster...\u001b[0m\r\n"]
32 | [7.948696, "o", "Deleting cluster \"kubert-cluster\" ...\r\n"]
33 | [10.806227, "o", "Deleted nodes: [\"kubert-cluster-control-plane\"]\r\n"]
34 | [10.815412, "o", "\u001b[0;32m2024-08-02 10:52:08 [INFO]: Cleaning up hosts file entries...\u001b[0m\r\n"]
35 | [10.854347, "o", "\u001b[0;32m2024-08-02 10:52:08 [INFO]: Cleaning up /etc/hosts file...\u001b[0m\r\n"]
36 | [10.906736, "o", "Password:"]
37 | [14.489117, "o", "\r\n"]
38 | [14.785301, "o", "\u001b[0;32m2024-08-02 10:52:12 [INFO]: Removed 10.1.1.75 kubert-assistant.lan from /etc/hosts\u001b[0m\r\n"]
39 | [14.831711, "o", "\u001b[0;32m2024-08-02 10:52:12 [INFO]: Removed 10.1.1.75 kubert-agent.lan from /etc/hosts\u001b[0m\r\n"]
40 | [14.881216, "o", "\u001b[0;32m2024-08-02 10:52:12 [INFO]: Removed 10.1.1.75 kubert-plugin.lan from /etc/hosts\u001b[0m\r\n"]
41 | [14.932174, "o", "\u001b[0;32m2024-08-02 10:52:12 [INFO]: Removed 10.1.1.75 kubert-plugin-gateway.lan from /etc/hosts\u001b[0m\r\n"]
42 | [14.975068, "o", "grep: /proc/version: No such file or directory\r\n"]
43 | [15.068704, "o", "\u001b[0;32m2024-08-02 10:52:12 [INFO]: Cleanup process completed successfully.\u001b[0m\r\n"]
44 | [15.069713, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
45 | [15.340786, "o", "\u001b]2;patrykattc@Patryks-MacBook-Pro:~/projects/git/kubert-assistant-lite\u0007\u001b]1;..ssistant-lite\u0007"]
46 | [15.347489, "o", "\u001b]7;file://Patryks-MacBook-Pro.local/Users/patrykattc/projects/git/kubert-assistant-lite\u001b\\"]
47 | [15.34932, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b[K"]
48 | [15.349511, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
49 | [19.114894, "o", "\u001b[?2004l\r\r\n"]
50 |
--------------------------------------------------------------------------------
/docs/assets/terminal/make-list.cast:
--------------------------------------------------------------------------------
1 | {"version": 2, "width": 272, "height": 40, "timestamp": 1722625742, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}}
2 | [0.132128, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
3 | [0.132658, "o", "\u001b]1337;ShellIntegrationVersion=14;shell=zsh\u0007"]
4 | [0.787775, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
5 | [0.891362, "o", "\u001b]2;patrykattc@patryksacstudio:~/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1;..ssistant-lite\u0007"]
6 | [0.893376, "o", "\u001b]7;file://patryksacstudio.lan/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u001b\\"]
7 | [0.893454, "o", "\u001b]133;D;0\u0007"]
8 | [0.897797, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
9 | [0.910312, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b]133;B\u0007\u001b[K"]
10 | [0.910444, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
11 | [0.933514, "o", "\r\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b]133;B\u0007\u001b[K"]
12 | [2.079989, "o", "m"]
13 | [2.083011, "o", "\bm\u001b[90make deploy\u001b[39m\u001b[10D"]
14 | [2.151302, "o", "\bm\u001b[39ma"]
15 | [2.265167, "o", "\u001b[39mk"]
16 | [2.353699, "o", "\u001b[39me"]
17 | [2.998081, "o", "\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \b\b\b\b\b\b\b"]
18 | [2.998573, "o", "\u001b[?1l\u001b>\u001b[?2004l\r\r\n"]
19 | [3.007774, "o", "\u001b]2;make\u0007\u001b]1;make\u0007"]
20 | [3.007932, "o", "\u001b]133;C;\r\u0007"]
21 | [3.03142, "o", "\u001b[36mbuild-kcov-image \u001b[0m Build kcov image with additional tools\r\n\u001b[36mtests \u001b[0m Run bats and tests\r\n"]
22 | [3.031534, "o", "\u001b[36mintegration-tests \u001b[0m Run bats integration tests\r\n\u001b[36mcoverage \u001b[0m Run kcov and tests\r\n\u001b[36mclean-build \u001b[0m Remove coverage dir and kcov image\r\n\u001b[36mdeploy \u001b[0m Deploy kind cluster with Kubert AI Assistant Lite\r\n\u001b[36mdeploy-kubert-assistant \u001b[0m Deploy Kubert Assistant components using Helm\r\n\u001b[36mcleanup-kubert-assistant \u001b[0m Uninstall deployed Kubert Assistant components with Helm\r\n\u001b[36mcleanup \u001b[0m Clean up kind cluster and hosts file\r\n"]
23 | [3.031599, "o", "\u001b[36mcheck-deps-dev \u001b[0m Check for required dependencies for development\r\n\u001b[36mcheck-deps-deploy \u001b[0m Check for required dependencies for deployment\r\n"]
24 | [3.03162, "o", "\u001b[36mlint-chart \u001b[0m Lint the Helm chart\r\n\u001b[36mtemplate-chart \u001b[0m Template the Helm chart\r\n"]
25 | [3.031723, "o", "\u001b[36mhelm-test \u001b[0m Run Helm tests\r\n"]
26 | [3.032165, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
27 | [3.14505, "o", "\u001b]2;patrykattc@patryksacstudio:~/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1;..ssistant-lite\u0007"]
28 | [3.147056, "o", "\u001b]7;file://patryksacstudio.lan/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u001b\\"]
29 | [3.147116, "o", "\u001b]133;D;0\u0007"]
30 | [3.148762, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
31 | [3.158886, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b]133;B\u0007\u001b[K"]
32 | [3.158948, "o", "\u001b[?1h\u001b="]
33 | [3.15899, "o", "\u001b[?2004h"]
34 | [4.756026, "o", "\u001b[?2004l\r\r\n"]
35 |
--------------------------------------------------------------------------------
/docs/assets/terminal/make-tests-integration.cast:
--------------------------------------------------------------------------------
1 | {"version": 2, "width": 272, "height": 40, "timestamp": 1722626461, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}}
2 | [0.122815, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1337;ShellIntegrationVersion=14;shell=zsh\u0007"]
3 | [0.773314, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
4 | [0.883508, "o", "\u001b]2;patrykattc@patryksacstudio:~/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1;..ssistant-lite\u0007"]
5 | [0.885455, "o", "\u001b]7;file://patryksacstudio.lan/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u001b\\"]
6 | [0.885543, "o", "\u001b]133;D;0\u0007"]
7 | [0.889833, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
8 | [0.902344, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b]133;B\u0007\u001b[K"]
9 | [0.902506, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
10 | [0.926005, "o", "\r\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b]133;B\u0007\u001b[K"]
11 | [2.430321, "o", "m"]
12 | [2.433405, "o", "\bm\u001b[90make tests TEST_FILE=tests/unit/test_wait_functions.bats TEST_PATTERN=\"wait_for_nodes should succeed when all nodes are ready\"\u001b[39m\u001b[125D"]
13 | [2.561007, "o", "\bm\u001b[39ma"]
14 | [2.683143, "o", "\u001b[39mk"]
15 | [2.75052, "o", "\u001b[39me"]
16 | [3.043124, "o", "\u001b[39m "]
17 | [3.349697, "o", "\u001b[39mi\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[120D"]
18 | [3.352388, "o", "\u001b[90mntegration-tests\u001b[39m\u001b[16D"]
19 | [4.384632, "o", "\u001b[39mn\u001b[39mt\u001b[39me\u001b[39mg\u001b[39mr\u001b[39ma\u001b[39mt\u001b[39mi\u001b[39mo\u001b[39mn\u001b[39m-\u001b[39mt\u001b[39me\u001b[39ms\u001b[39mt\u001b[39ms"]
20 | [4.907772, "o", "\u001b[?1l\u001b>\u001b[?2004l"]
21 | [4.907838, "o", "\r\r\n"]
22 | [4.916574, "o", "\u001b]2;make integration-tests\u0007\u001b]1;make\u0007"]
23 | [4.916806, "o", "\u001b]133;C;\r\u0007"]
24 | [5.07708, "o", "1..3\r\n"]
25 | [5.171338, "o", "# Setting up integration test for create_kind_cluster...\r\n"]
26 | [5.171673, "o", "# Running create_kind_cluster function...\r\n"]
27 | [5.260888, "o", "# kind cluster creation step completed.\r\n"]
28 | [5.364014, "o", "# Checking if the kind cluster was created...\r\n"]
29 | [5.398548, "o", "# kind cluster verification step completed.\r\n"]
30 | [5.398617, "o", "# Checking if nodes are present...\r\n"]
31 | [5.480007, "o", "# Nodes verification completed.\r\n"]
32 | [5.5609, "o", "# Checking if the namespace is created...\r\n"]
33 | [5.638406, "o", "# Namespace verification completed.\r\n"]
34 | [5.642055, "o", "# Cleaning up by deleting the kind cluster...\r\n"]
35 | [7.366557, "o", "# Cleanup step completed.\r\n"]
36 | [7.366955, "o", "# Integration test for create_kind_cluster completed.\r\n"]
37 | [7.369337, "o", "ok 1 create_kind_cluster should create a kind cluster\r\n"]
38 | [7.49654, "o", "# Setting up integration test for deploy_application...\r\n"]
39 | [39.245576, "o", "kubectl coredns configmap output (before update): .:53 {\r\n"]
40 | [39.245616, "o", " errors\r\n health {\r\n lameduck 5s\r\n }\r\n"]
41 | [39.245821, "o", " ready\r\n kubernetes cluster.local in-addr.arpa ip6.arpa {\r\n pods insecure\r\n fallthrough in-addr.arpa ip6.arpa\r\n ttl 30\r\n }\r\n prometheus :9153\r\n forward . /etc/resolv.conf {\r\n"]
42 | [39.245848, "o", " max_concurrent 1000\r\n }\r\n cache 30\r\n loop\r\n"]
43 | [39.245949, "o", " reload\r\n loadbalance\r\n}\r\n"]
44 | [39.698379, "o", "kubectl coredns configmap output (after update): .:53 {\r\n hosts {\r\n"]
45 | [39.698491, "o", " 192.168.86.32 kubert-assistant.lan\r\n 192.168.86.32 kubert-agent.lan\r\n 192.168.86.32 kubert-plugin.lan\r\n 192.168.86.32 kubert-plugin-gateway.lan\r\n fallthrough\r\n"]
46 | [39.698503, "o", " }\r\n"]
47 | [39.698579, "o", " errors\r\n health {\r\n lameduck 5s\r\n"]
48 | [39.698668, "o", " }\r\n ready\r\n kubernetes cluster.local in-addr.arpa ip6.arpa {\r\n pods insecure\r\n"]
49 | [39.698727, "o", " fallthrough in-addr.arpa ip6.arpa\r\n ttl 30\r\n }\r\n"]
50 | [39.698774, "o", " prometheus :9153\r\n forward . /etc/resolv.conf {\r\n"]
51 | [39.698795, "o", " max_concurrent 1000\r\n"]
52 | [39.698845, "o", " }\r\n cache 30\r\n loop\r\n"]
53 | [39.698891, "o", " reload\r\n loadbalance\r\n"]
54 | [39.698942, "o", "}\r\n2024-08-02 15:21:41 [INFO]: CoreDNS ConfigMap updated successfully.\r\n"]
55 | [39.698964, "o", "2024-08-02 15:21:41 [INFO]: Restarting CoreDNS pods...\r\n"]
56 | [39.698997, "o", "2024-08-02 15:21:41 [INFO]: CoreDNS pods restarted successfully.\r\n"]
57 | [39.703481, "o", "\r\n"]
58 | [39.707662, "o", "\r\n"]
59 | [39.71179, "o", "\r\n"]
60 | [39.718914, "o", "# Cleaning up by deleting the kind cluster...\r\n"]
61 | [40.157862, "o", "# Cleanup step completed.\r\n"]
62 | [40.158143, "o", "# Integration test for deploy_application completed.\r\n"]
63 | [40.160701, "o", "ok 2 update_coredns_config should update CoreDNS ConfigMap with host IP and local domains\r\n"]
64 | [40.233209, "o", "# Setting up integration test for deploy_application...\r\n"]
65 | [71.609364, "o", "# Deploying the echo server application...\r\n"]
66 | [72.463263, "o", "# Echo server application deployment step completed.\r\n"]
67 | [72.463375, "o", "# Checking if the namespace is created...\r\n"]
68 | [72.539123, "o", "# Namespace verification completed.\r\n"]
69 | [72.539249, "o", "# Checking if echo server pod is running in the namespace...\r\n"]
70 | [72.611156, "o", "# Echo server pod verification completed.\r\n"]
71 | [72.611286, "o", "# Checking if echo server service is running in the namespace...\r\n"]
72 | [72.684217, "o", "# Echo server service verification completed.\r\n"]
73 | [72.684375, "o", "# Cleaning up the echo server deployment...\r\n"]
74 | [72.763028, "o", "# Echo server deployment cleanup step completed.\r\n"]
75 | [72.767007, "o", "# Cleaning up by deleting the kind cluster...\r\n"]
76 | [73.246812, "o", "# Cleanup step completed.\r\n"]
77 | [73.247048, "o", "# Integration test for deploy_application completed.\r\n"]
78 | [73.252189, "o", "ok 3 deploy_application should deploy the echo server\r\n"]
79 | [73.275199, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
80 | [73.398282, "o", "\u001b]2;patrykattc@patryksacstudio:~/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1;..ssistant-lite\u0007"]
81 | [73.400344, "o", "\u001b]7;file://patryksacstudio.lan/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u001b\\"]
82 | [73.400403, "o", "\u001b]133;D;0\u0007"]
83 | [73.402013, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
84 | [73.412119, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b]133;B\u0007\u001b[K"]
85 | [73.4122, "o", "\u001b[?1h\u001b="]
86 | [73.412238, "o", "\u001b[?2004h"]
87 | [76.503649, "o", "\u001b[?2004l\r\r\n"]
88 |
--------------------------------------------------------------------------------
/docs/assets/terminal/make-tests-one-file-one-test.cast:
--------------------------------------------------------------------------------
1 | {"version": 2, "width": 272, "height": 40, "timestamp": 1722625872, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}}
2 | [0.115587, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
3 | [0.116195, "o", "\u001b]1337;ShellIntegrationVersion=14;shell=zsh\u0007"]
4 | [0.771272, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
5 | [0.873654, "o", "\u001b]2;patrykattc@patryksacstudio:~/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1;..ssistant-lite\u0007"]
6 | [0.875351, "o", "\u001b]7;file://patryksacstudio.lan/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u001b\\"]
7 | [0.875421, "o", "\u001b]133;D;0\u0007"]
8 | [0.879631, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
9 | [0.891485, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b]133;B\u0007\u001b[K"]
10 | [0.891576, "o", "\u001b[?1h\u001b="]
11 | [0.891586, "o", "\u001b[?2004h"]
12 | [0.91317, "o", "\r\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b]133;B\u0007\u001b[K"]
13 | [1.572331, "o", "m"]
14 | [1.575125, "o", "\bm\u001b[90make tests TEST_FILE=tests/unit/test_wait_functions.bats\u001b[39m\u001b[55D"]
15 | [1.616297, "o", "\bm\u001b[39ma"]
16 | [1.737921, "o", "\u001b[39mk"]
17 | [1.828787, "o", "\u001b[39me"]
18 | [3.30308, "o", "\u001b[39m \u001b[39mt\u001b[39me\u001b[39ms\u001b[39mt\u001b[39ms\u001b[39m \u001b[39mT\u001b[39mE\u001b[39mS\u001b[39mT\u001b[39m_\u001b[39mF\u001b[39mI\u001b[39mL\u001b[39mE\u001b[39m=\u001b[39mt\u001b[39me\u001b[39ms\u001b[39mt\u001b[39ms\u001b[39m/\u001b[39mu\u001b[39mn\u001b[39mi\u001b[39mt\u001b[39m/\u001b[39mt\u001b[39me\u001b[39ms\u001b[39mt\u001b[39m_\u001b[39mw\u001b[39ma\u001b[39mi\u001b[39mt\u001b[39m_\u001b[39mf\u001b[39mu\u001b[39mn\u001b[39mc\u001b[39mt\u001b[39mi\u001b[39mo\u001b[39mn\u001b[39ms\u001b[39m.\u001b[39mb\u001b[39ma\u001b[39mt\u001b[39ms"]
19 | [3.886564, "o", " "]
20 | [3.889745, "o", "\u001b[90mTEST_PATTERN=\"wait_for_nodes should succeed when all nodes are ready\"\u001b[39m\u001b[69D"]
21 | [5.224566, "o", "\u001b[39mT\u001b[39mE\u001b[39mS\u001b[39mT\u001b[39m_\u001b[39mP\u001b[39mA\u001b[39mT\u001b[39mT\u001b[39mE\u001b[39mR\u001b[39mN\u001b[39m=\u001b[39m\"\u001b[39mw\u001b[39ma\u001b[39mi\u001b[39mt\u001b[39m_\u001b[39mf\u001b[39mo\u001b[39mr\u001b[39m_\u001b[39mn\u001b[39mo\u001b[39md\u001b[39me\u001b[39ms\u001b[39m \u001b[39ms\u001b[39mh\u001b[39mo\u001b[39mu\u001b[39ml\u001b[39md\u001b[39m \u001b[39ms\u001b[39mu\u001b[39mc\u001b[39mc\u001b[39me\u001b[39me\u001b[39md\u001b[39m \u001b[39mw\u001b[39mh\u001b[39me\u001b[39mn\u001b[39m \u001b[39ma\u001b[39ml\u001b[39ml\u001b[39m \u001b[39mn\u001b[39mo\u001b[39md\u001b[39me\u001b[39ms\u001b[39m \u001b[39ma\u001b[39mr\u001b[39me\u001b[39m \u001b[39mr\u001b[39me\u001b[39ma\u001b[39md\u001b[39my\u001b[39m\""]
22 | [6.090281, "o", "\u001b[?1l\u001b>"]
23 | [6.090704, "o", "\u001b[?2004l\r\r\n"]
24 | [6.100093, "o", "\u001b]2;make tests TEST_FILE=tests/unit/test_wait_functions.bats \u0007\u001b]1;make\u0007"]
25 | [6.100253, "o", "\u001b]133;C;\r\u0007"]
26 | [6.349136, "o", "\u001b[34;1mtest_wait_functions.bats\r\n\u001b[0m\u001b[1G wait_for_nodes should succeed when all nodes are ready\u001b[K\u001b[269G1/1\u001b[2G"]
27 | [6.571699, "o", "\u001b[1G ✓ wait_for_nodes should succeed when all nodes are ready\u001b[K\r\n\u001b[0m\u001b[32;1m\r\n1 test, 0 failures\r\n\u001b[0m\r\n"]
28 | [6.575666, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
29 | [6.680014, "o", "\u001b]2;patrykattc@patryksacstudio:~/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1;..ssistant-lite\u0007"]
30 | [6.682077, "o", "\u001b]7;file://patryksacstudio.lan/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u001b\\"]
31 | [6.682141, "o", "\u001b]133;D;0\u0007"]
32 | [6.683639, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
33 | [6.693415, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b]133;B\u0007\u001b[K"]
34 | [6.693489, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
35 | [8.029421, "o", "\u001b[?2004l\r\r\n"]
36 |
--------------------------------------------------------------------------------
/docs/assets/terminal/make-tests-one-file.cast:
--------------------------------------------------------------------------------
1 | {"version": 2, "width": 272, "height": 40, "timestamp": 1722625846, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}}
2 | [0.116336, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1337;ShellIntegrationVersion=14;shell=zsh\u0007"]
3 | [0.763271, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
4 | [0.868063, "o", "\u001b]2;patrykattc@patryksacstudio:~/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1;..ssistant-lite\u0007"]
5 | [0.870067, "o", "\u001b]7;file://patryksacstudio.lan/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u001b\\"]
6 | [0.87018, "o", "\u001b]133;D;0\u0007"]
7 | [0.874247, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
8 | [0.887304, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b]133;B\u0007\u001b[K"]
9 | [0.887424, "o", "\u001b[?1h\u001b="]
10 | [0.887441, "o", "\u001b[?2004h"]
11 | [0.911066, "o", "\r\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b]133;B\u0007\u001b[K"]
12 | [1.665531, "o", "asciinema rec make-tests-one-file.cast"]
13 | [1.938286, "o", "\u001b[38Drm\u001b[11P\u001b[25C \u001b[11D"]
14 | [2.817133, "o", "\u001b[27Dmake tests TEST_FILE=tests/unit/test_wait_functions.bats"]
15 | [5.324806, "o", "\u001b[?1l\u001b>\u001b[?2004l\r\r\n"]
16 | [5.332731, "o", "\u001b]2;make tests TEST_FILE=tests/unit/test_wait_functions.bats\u0007\u001b]1;make\u0007"]
17 | [5.332773, "o", "\u001b]133;C;\r\u0007"]
18 | [5.577574, "o", "\u001b[34;1mtest_wait_functions.bats\r\n\u001b[0m\u001b[1G wait_for_nodes should succeed when all nodes are ready\u001b[K\u001b[269G1/9\u001b[2G"]
19 | [5.810491, "o", "\u001b[1G ✓ wait_for_nodes should succeed when all nodes are ready\u001b[K\r\n\u001b[0m\u001b[1G wait_for_nodes should fail when not all nodes are ready within timeout\u001b[K\u001b[269G2/9\u001b[2G"]
20 | [6.585894, "o", "\u001b[1G ✓ wait_for_nodes should fail when not all nodes are ready within timeout\u001b[K\r\n\u001b[0m\u001b[1G wait_for_nginx_ingress should succeed when all pods are ready\u001b[K\u001b[269G3/9\u001b[2G"]
21 | [6.848105, "o", "\u001b[1G ✓ wait_for_nginx_ingress should succeed when all pods are ready\u001b[K\r\n\u001b[0m\u001b[1G wait_for_nginx_ingress should fail when not all pods are ready within timeout\u001b[K\u001b[269G4/9\u001b[2G"]
22 | [7.62692, "o", "\u001b[1G ✓ wait_for_nginx_ingress should fail when not all pods are ready within timeout\u001b[K\r\n\u001b[0m\u001b[1G wait_for_ingress_ready should succeed when all ingresses have an address\u001b[K\u001b[269G5/9\u001b[2G"]
23 | [7.876436, "o", "\u001b[1G ✓ wait_for_ingress_ready should succeed when all ingresses have an address\u001b[K\r\n\u001b[0m\u001b[1G wait_for_ingress_ready should fail when not all ingresses have an address within timeout\u001b[K\u001b[269G6/9\u001b[2G"]
24 | [8.649741, "o", "\u001b[1G ✓ wait_for_ingress_ready should fail when not all ingresses have an address within timeout\u001b[K\r\n\u001b[0m\u001b[1G wait_for_service should succeed when the service is available immediately\u001b[K\u001b[269G7/9\u001b[2G"]
25 | [8.906901, "o", "\u001b[1G ✓ wait_for_service should succeed when the service is available immediately\u001b[K\r\n\u001b[0m\u001b[1G wait_for_service should fail when the service is not available within timeout\u001b[K\u001b[269G8/9\u001b[2G"]
26 | [11.188105, "o", "\u001b[1G ✓ wait_for_service should fail when the service is not available within timeout\u001b[K\r\n\u001b[0m\u001b[1G wait_for_service should succeed when the service becomes available after a delay\u001b[K\u001b[269G9/9\u001b[2G"]
27 | [12.467669, "o", "\u001b[1G ✓ wait_for_service should succeed when the service becomes available after a delay\u001b[K\r\n\u001b[0m\u001b[32;1m\r\n9 tests, 0 failures\r\n\u001b[0m\r\n"]
28 | [12.472685, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
29 | [12.576918, "o", "\u001b]2;patrykattc@patryksacstudio:~/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1;..ssistant-lite\u0007"]
30 | [12.578742, "o", "\u001b]7;file://patryksacstudio.lan/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u001b\\"]
31 | [12.57882, "o", "\u001b]133;D;0\u0007"]
32 | [12.580295, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
33 | [12.590697, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b]133;B\u0007\u001b[K"]
34 | [12.590826, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
35 | [14.092824, "o", "\u001b[?2004l\r\r\n"]
36 |
--------------------------------------------------------------------------------
/docs/assets/terminal/template-chart.cast:
--------------------------------------------------------------------------------
1 | {"version": 2, "width": 272, "height": 44, "timestamp": 1722683851, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}}
2 | [0.112367, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1337;ShellIntegrationVersion=14;shell=zsh\u0007"]
3 | [0.752396, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
4 | [0.848571, "o", "\u001b]2;patrykattc@patryksacstudio:~/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1;..ssistant-lite\u0007"]
5 | [0.850314, "o", "\u001b]7;file://patryksacstudio.lan/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u001b\\"]
6 | [0.850399, "o", "\u001b]133;D;0\u0007"]
7 | [0.854492, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
8 | [0.867035, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b]133;B\u0007\u001b[K"]
9 | [0.867121, "o", "\u001b[?1h\u001b="]
10 | [0.867131, "o", "\u001b[?2004h"]
11 | [0.886974, "o", "\r\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b]133;B\u0007\u001b[K"]
12 | [2.551571, "o", "m"]
13 | [2.553988, "o", "\bm\u001b[90make lint-chart\u001b[39m\u001b[14D"]
14 | [2.660515, "o", "\bm\u001b[39ma"]
15 | [2.792285, "o", "\u001b[39mk"]
16 | [2.913289, "o", "\u001b[39me"]
17 | [3.098727, "o", "\u001b[39m "]
18 | [3.326238, "o", "\u001b[39mt\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[9D"]
19 | [3.328903, "o", "\u001b[90mests TEST_FILE=tests/unit/test_wait_functions.bats TEST_PATTERN=\"wait_for_nodes should succeed when all nodes are ready\"\u001b[39m\u001b[120D"]
20 | [3.482548, "o", "\u001b[39me"]
21 | [4.437992, "o", "\u001b[39mm\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[118D"]
22 | [4.441328, "o", "\u001b[90mplate-chart\u001b[39m\u001b[11D"]
23 | [5.584878, "o", "\u001b[39mp\u001b[39ml\u001b[39ma\u001b[39mt\u001b[39me\u001b[39m-\u001b[39mc\u001b[39mh\u001b[39ma\u001b[39mr\u001b[39mt"]
24 | [6.259932, "o", "\u001b[?1l\u001b>"]
25 | [6.260115, "o", "\u001b[?2004l\r\r\n"]
26 | [6.268474, "o", "\u001b]2;make template-chart\u0007\u001b]1;make\u0007"]
27 | [6.268528, "o", "\u001b]133;C;\r\u0007"]
28 | [6.284922, "o", "helm template --debug manifests/chart\r\n"]
29 | [6.323906, "o", "install.go:214: [debug] Original chart version: \"\"\r\n"]
30 | [6.323928, "o", "install.go:231: [debug] CHART PATH: /Users/patrykattc/work/git/GitHub/kubert-assistant-lite/manifests/chart\r\n\r\n"]
31 | [6.331242, "o", "---\r\n# Source: kubert-assistant-workload/templates/networkpolicy.yaml\r\nkind: NetworkPolicy\r\napiVersion: networking.k8s.io/v1\r\nmetadata:\r\n name: release-name-kubert-assistant-workload\r\n namespace: \"default\"\r\n labels:\r\n app.kubernetes.io/instance: release-name\r\n app.kubernetes.io/managed-by: Helm\r\n app.kubernetes.io/name: kubert-assistant-workload\r\n app.kubernetes.io/version: 1.0.0\r\n helm.sh/chart: kubert-assistant-workload-1.0.0\r\nspec:\r\n podSelector:\r\n matchLabels:\r\n app.kubernetes.io/instance: release-name\r\n app.kubernetes.io/name: kubert-assistant-workload \r\n policyTypes:\r\n - Ingress\r\n - Egress\r\n egress:\r\n # Allow dns resolution\r\n - ports:\r\n - port: 53\r\n protocol: UDP\r\n - port: 53\r\n protocol: TCP\r\n # Allow outbound connections to other cluster pods\r\n - ports:\r\n - port: \r\n - port: 8080\r\n to:\r\n - podSelector:\r\n matchLabels:\r\n app.kubernetes.io/instance: release-name\r\n "]
32 | [6.331342, "o", " app.kubernetes.io/name: kubert-assistant-workload\r\n ingress:\r\n - ports:\r\n - port: \r\n - port: 8080\r\n---\r\n# Source: kubert-assistant-workload/templates/serviceaccount.yaml\r\napiVersion: v1\r\nkind: ServiceAccount\r\nmetadata:\r\n name: release-name-kubert-assistant-workload\r\n namespace: \"default\"\r\n labels:\r\n app.kubernetes.io/instance: release-name\r\n app.kubernetes.io/managed-by: Helm\r\n app.kubernetes.io/name: kubert-assistant-workload\r\n app.kubernetes.io/version: 1.0.0\r\n helm.sh/chart: kubert-assistant-workload-1.0.0\r\nautomountServiceAccountToken: true\r\n---\r\n# Source: kubert-assistant-workload/templates/service.yaml\r\napiVersion: v1\r\nkind: Service\r\nmetadata:\r\n name: release-name-kubert-assistant-workload\r\n namespace: \"default\"\r\n labels:\r\n app.kubernetes.io/instance: release-name\r\n app.kubernetes.io/managed-by: Helm\r\n app.kubernetes.io/name: kubert-assistant-workload\r\n app.kubernetes.io/version: 1.0.0\r\n helm.sh/chart: kubert-assistant-workload-1.0.0\r\nspec:\r\n"]
33 | [6.331404, "o", " type: ClusterIP\r\n sessionAffinity: None\r\n ports:\r\n - name: http\r\n port: 8080\r\n protocol: TCP\r\n targetPort: http\r\n nodePort: null\r\n selector:\r\n app.kubernetes.io/instance: release-name\r\n app.kubernetes.io/name: kubert-assistant-workload\r\n---\r\n# Source: kubert-assistant-workload/templates/deployment.yaml\r\napiVersion: apps/v1\r\nkind: Deployment\r\nmetadata:\r\n name: release-name-kubert-assistant-workload\r\n namespace: \"default\"\r\n labels:\r\n app.kubernetes.io/instance: release-name\r\n app.kubernetes.io/managed-by: Helm\r\n app.kubernetes.io/name: kubert-assistant-workload\r\n app.kubernetes.io/version: 1.0.0\r\n helm.sh/chart: kubert-assistant-workload-1.0.0\r\n annotations:\r\nspec:\r\n strategy:\r\n rollingUpdate: {}\r\n type: RollingUpdate\r\n replicas: 1\r\n selector:\r\n matchLabels:\r\n app.kubernetes.io/instance: release-name\r\n app.kubernetes.io/name: kubert-assistant-workload \r\n template:\r\n metadata:\r\n labels:\r\n app.kubernetes.io/instance: rel"]
34 | [6.331474, "o", "ease-name\r\n app.kubernetes.io/managed-by: Helm\r\n app.kubernetes.io/name: kubert-assistant-workload\r\n app.kubernetes.io/version: 1.0.0\r\n helm.sh/chart: kubert-assistant-workload-1.0.0\r\n annotations: \r\n spec:\r\n automountServiceAccountToken: false\r\n serviceAccountName: release-name-kubert-assistant-workload\r\n affinity:\r\n podAffinity:\r\n \r\n podAntiAffinity:\r\n preferredDuringSchedulingIgnoredDuringExecution:\r\n - podAffinityTerm:\r\n labelSelector:\r\n matchLabels:\r\n app.kubernetes.io/instance: release-name\r\n app.kubernetes.io/name: kubert-assistant-workload\r\n topologyKey: kubernetes.io/hostname\r\n weight: 1\r\n nodeAffinity:\r\n \r\n containers:\r\n - name: \"workload\"\r\n image: replace:replace\r\n imagePullPolicy: \"IfNotPresent\"\r\n ports:\r\n - name: http\r\n conta"]
35 | [6.331487, "o", "inerPort: \r\n env:\r\n"]
36 | [6.332524, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
37 | [6.432062, "o", "\u001b]2;patrykattc@patryksacstudio:~/work/git/GitHub/kubert-assistant-lite\u0007\u001b]1;..ssistant-lite\u0007"]
38 | [6.433991, "o", "\u001b]7;file://patryksacstudio.lan/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u001b\\"]
39 | [6.434057, "o", "\u001b]133;D;0\u0007"]
40 | [6.435676, "o", "\u001b]1337;RemoteHost=patrykattc@patryksacstudio.lan\u0007\u001b]1337;CurrentDir=/Users/patrykattc/work/git/GitHub/kubert-assistant-lite\u0007"]
41 | [6.445582, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b]133;A\u0007\u001b[01;32m➜ \u001b[36mkubert-assistant-lite\u001b[00m \u001b[01;34mgit:(\u001b[31mmain\u001b[34m) \u001b[33m✗\u001b[00m \u001b]133;B\u0007\u001b[K"]
42 | [6.445634, "o", "\u001b[?1h\u001b="]
43 | [6.445657, "o", "\u001b[?2004h"]
44 | [9.362302, "o", "\u001b[?2004l\r\r\n"]
45 |
--------------------------------------------------------------------------------
/docs/assets/video/Kubert_AI_Assistant_Lite_Demo.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TranslucentComputing/kubert-assistant-lite/3d7421646259e037dd34887a0766db5f4bc99a62/docs/assets/video/Kubert_AI_Assistant_Lite_Demo.mp4
--------------------------------------------------------------------------------
/docs/assets/video/kubert-agent-hello-world.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TranslucentComputing/kubert-assistant-lite/3d7421646259e037dd34887a0766db5f4bc99a62/docs/assets/video/kubert-agent-hello-world.mp4
--------------------------------------------------------------------------------
/docs/assets/video/memory-hog.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TranslucentComputing/kubert-assistant-lite/3d7421646259e037dd34887a0766db5f4bc99a62/docs/assets/video/memory-hog.mp4
--------------------------------------------------------------------------------
/docs/assets/video/ollama-installation-kubert-ai-config.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TranslucentComputing/kubert-assistant-lite/3d7421646259e037dd34887a0766db5f4bc99a62/docs/assets/video/ollama-installation-kubert-ai-config.mp4
--------------------------------------------------------------------------------
/docs/assets/video/open-browser.mov:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TranslucentComputing/kubert-assistant-lite/3d7421646259e037dd34887a0766db5f4bc99a62/docs/assets/video/open-browser.mov
--------------------------------------------------------------------------------
/docs/azure.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Azure Windows VM
4 | description: "Learn how to deploy a Windows 10 Pro VM on Microsoft Azure with our complete guide. Set up a scalable, secure environment for development and testing. Includes Kubert AI Assistant Lite setup."
5 | parent: Installation
6 | nav_order: 2
7 | nav_fold: false
8 | k_seo:
9 | title: "Azure VM Windows 10 Pro Deployment: A Complete Guide"
10 | ---
11 |
12 | # Azure VM Windows 10 Pro Deployment: A Complete Guide
13 |
14 | Deploying a Windows Virtual Machine (VM) on Microsoft Azure allows you to create a scalable and flexible environment for development, testing, or any other business needs. Azure provides a cloud-based platform where you can easily deploy and manage Windows VMs, taking advantage of the power and security of Microsoft's infrastructure. This document will guide you through the process of deploying a Windows 10 Pro VM on Azure, from the initial setup to accessing the VM remotely.
15 |
16 | **Note:** While you can select other versions of Windows, including Windows 11 Pro, this guide focuses on Windows 10 Pro to support the deployment of Kubert AI Assistant Lite for developers, who mostly use Windows 10 Pro on their personal development PCs.
17 |
18 | ## Prerequisites
19 |
20 | Before you begin, ensure you have the following:
21 |
22 | - **Azure Subscription**: An active Azure subscription is required. If you don’t have one, you can sign up for a free account at the [Azure portal](https://azure.microsoft.com/en-ca/){:target="_blank"}.
23 |
24 | ## Step 1: Sign in to the Azure Portal
25 |
26 | 1. Open your web browser and go to the Azure Portal.
27 | 2. Sign in with your Microsoft account.
28 |
29 | [](/kubert-assistant-lite/assets/images/azure-vm/1_azure-home.png)
30 |
31 | ## Step 2: Create a Virtual Machine
32 |
33 | 1. Navigate to the "Virtual Machine" section in the Azure Portal.
34 | [](/kubert-assistant-lite/assets/images/azure-vm/2_azure-vm-home.png)
35 | 2. Click "Create" and select "Azure virtual machine".
36 | [](/kubert-assistant-lite/assets/images/azure-vm/3_create-vm.png)
37 |
38 | ## Step 3: Configure the VM
39 |
40 | 1. Start by creating a new, click "Create a resource".
41 | [](/kubert-assistant-lite/assets/images/azure-vm/4_create-resource-group.png)
42 |
43 | `Note`-> **Benefits of Using a Resource Group for Cleanup**:
44 | - **Centralized Management**: A resource group allows you to manage all related resources as a single unit. This means that all components related to your VM (e.g., virtual network, public IP address, network interface, storage accounts) are organized under one resource group.
45 | - **Simplified Deletion**: If you no longer need the VM and its associated resources, you can delete the entire resource group in one action. This ensures that no orphaned resources are left behind, which can otherwise incur unnecessary costs.
46 | - **Cost Management**: By grouping related resources together, you can more easily track the costs associated with a specific project or environment. When you're done with the project, deleting the resource group removes all associated costs.
47 | - **Isolation**: Resource groups help isolate environments, especially in cases where you might have multiple projects or environments (e.g., development, testing, production). This reduces the risk of accidentally deleting or modifying resources that are unrelated to your current task.
48 | 2. Enter the host name and choose the region where you want to deploy the VM.
49 | [](/kubert-assistant-lite/assets/images/azure-vm/5_define_host_name.png)
50 | 3. Select image and security type.
51 | [](/kubert-assistant-lite/assets/images/azure-vm/6_security_and_image.png)
52 |
53 | `Note`-> For the security type, select "Standard" to support nested virtualization, more on that in the size section. We selected the Windows 10 Pro image and chose "Run with Azure Spot discount." There is no expectation for this VM, which is used for development and testing, to run for a long time uninterrupted. Therefore, using the spot discount can significantly reduce costs.
54 | 4. Select the size.
55 | [](/kubert-assistant-lite/assets/images/azure-vm/7_size_cpu_ram.png)
56 |
57 | `Note`-> We plan to run Windows Subsystem for Linux (WSL) within the VM, it's crucial to select a VM size that supports nested virtualization. Nested virtualization allows you to run a virtual machine inside another virtual machine, which is necessary for WSL.
58 |
59 | [What is Nested Virtualization](https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization){:target="_blank"}
60 |
61 | Not all Azure VM sizes support nested virtualization. Typically, VMs in the Dv3, Ev3, and newer series (like Dv4 or Ev4) support this feature. Ensure you select a VM size from a CPU family that offers nested virtualization support.
62 | List of CPU families that support nested virtualization can be found [here](https://learn.microsoft.com/en-us/azure/virtual-machines/acu){:target="_blank"}.
63 |
64 | Information about the CPU family used in this deployment can be found [here](https://learn.microsoft.com/en-us/azure/virtual-machines/ev3-esv3-series){:target="_blank"}.
65 | 5. Account and inbound ports.
66 | [](/kubert-assistant-lite/assets/images/azure-vm/8_account_port.png)
67 |
68 | `Note`-> Enter the username and password that will be used to log into Windows 10 pro. Disable the "Public inbound ports". The specific inbound ports will be configured once the VM has been deployed. Accept the licensing and click "Next: Disks >" to continue the configuration.
69 | 6. Disks
70 | [](/kubert-assistant-lite/assets/images/azure-vm/9_disks.png)
71 |
72 | `Note`-> No updates are required in this section, click on the "Next: Networking >" to continue the configuration.
73 | 7. Networking
74 | [](/kubert-assistant-lite/assets/images/azure-vm/10_delete_public_ip.png)
75 |
76 | `Note`-> Check of the "Delete public IP and NIC when VM is deleted" to help with resource cleanup once the VM has been deleted. Click on the "Next: Management ->" to continue the configuration.
77 | 8. Auto-shutdown
78 | [](/kubert-assistant-lite/assets/images/azure-vm/11_auto-shutdown.png)
79 |
80 | `Note`-> Don't leave you VM running, enable the auto-shutdown and the time and timezone, to shutdown the VM automatically. We will stop the configuration here, click on "Review + create". For advance use case continue the configuration to the monitoring section.
81 | 9. Trigger deployment.
82 | [](/kubert-assistant-lite/assets/images/azure-vm/12_create-vm.png.png)
83 |
84 | `Note`-> Review the configuration and click "Create" to start the deployment.
85 | 10. Deploying
86 | [](/kubert-assistant-lite/assets/images/azure-vm/13_deploying.png)
87 | 11. Deployment completed, go to the resource.
88 | [](/kubert-assistant-lite/assets/images/azure-vm/14_done-deployment.png)
89 | 12. Deployed host
90 | [](/kubert-assistant-lite/assets/images/azure-vm/15_host.png)
91 | 13. Set RDP port
92 | [](/kubert-assistant-lite/assets/images/azure-vm/16_set-rdp-port.png)
93 |
94 | `Note`-> Go to the "Operations" section, then "Run command", select the "SetRDPPort"
95 | 14. Enter the RDP port and execute the script.
96 | [](/kubert-assistant-lite/assets/images/azure-vm/17_enter-port.png)
97 | 15. RDP port updated
98 | [](/kubert-assistant-lite/assets/images/azure-vm/18_port-set.png)
99 | 16. Set inbound networking rule
100 | [](/kubert-assistant-lite/assets/images/azure-vm/19_set-inbound-rule.png)
101 |
102 | `Note`-> Go to the "Networking" section, then "Networking settings", click "Create port rule" and select "inbound port rule"
103 | 17. Configure "My IP address" security rule
104 | [](/kubert-assistant-lite/assets/images/azure-vm/20_my-ip-rule.png)
105 |
106 | `Note`-> For the source, select "My IP address"; it will auto-populate the Source IP with your IP address. For the "Destination port ranges," add the RDP port used in the previous step. The protocol should be TCP, and provide a description for clarity.
107 | 18. Download RDP file
108 | [](/kubert-assistant-lite/assets/images/azure-vm/22_download-rdp-file.png)
109 |
110 | ## Step 4: Remote Desktop
111 |
112 | 1. Edit the downloaded RDP file.
113 | [](/kubert-assistant-lite/assets/images/azure-vm/23_remote-desktop.png)
114 |
115 | 2. Update the port.
116 | [](/kubert-assistant-lite/assets/images/azure-vm/24_updated-port.png)
117 |
118 | 3. Start remote desktop and log into Windows.
119 | [](/kubert-assistant-lite/assets/images/azure-vm/25_logged-in.png)
120 |
--------------------------------------------------------------------------------
/docs/installation.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Installation
4 | description: "Step-by-step instructions to install and set up Kubert AI Assistant Lite on your local machine. Ensure Docker, kind, Helm, Kubectl, and other essential tools are ready for a smooth installation."
5 | nav_nabled: true
6 | has_children: true
7 | has_toc: false
8 | nav_fold: false
9 | k_seo:
10 | title: "Kubert AI Assistant Lite Installation Guide"
11 | ---
12 |
13 | # Kubert Lite Installation Guide
14 |
15 | This guide provides step-by-step instructions to install and set up Kubert AI Assistant Lite on your local machine.
16 |
17 | ## Prerequisites
18 |
19 | Before proceeding with the installation, ensure you have the following software installed:
20 |
21 | - [Docker](https://docs.docker.com/get-docker/){:target="_blank"}
22 | - [kind](https://kind.sigs.k8s.io/){:target="_blank"}
23 | - [Helm](https://helm.sh/docs/intro/install/){:target="_blank"}
24 | - [Kubectl](https://kubernetes.io/docs/tasks/tools/){:target="_blank"}
25 | - [jq](https://stedolan.github.io/jq/){:target="_blank"}
26 | - [Make](https://www.gnu.org/software/make/){:target="_blank"}
27 | - [OpenAI API Key](https://platform.openai.com/docs/api-reference/authentication){:target="_blank"} or [Anthropic API Key](https://console.anthropic.com/docs/authentication){:target="_blank"} (for AI capabilities)
28 |
29 | Ensure that these tools are properly installed and accessible from your command line.
30 |
31 | ## Setting up API Keys
32 |
33 | To enable the AI capabilities of Kubert AI Assistant Lite, you need to set up an API key from either OpenAI or Anthropic. Follow these steps to obtain and configure your API key:
34 |
35 | ### OpenAI API Key
36 |
37 | 1. Sign up for an account at [OpenAI](https://platform.openai.com/signup/){:target="_blank"} if you don't have one already.
38 | 2. Navigate to the [API Keys](https://platform.openai.com/account/api-keys){:target="_blank"} section in your OpenAI account dashboard.
39 | 3. Click on the "Create new secret key" button to generate a new API key.
40 | 4. Copy the generated API key and store it securely.
41 |
42 | ### Anthropic API Key
43 |
44 | 1. Sign up for an account at [Anthropic](https://console.anthropic.com/login){:target="_blank"} if you don't have one already.
45 | 2. Navigate to the [API Keys](https://console.anthropic.com/settings/keys){:target="_blank"} section in your Anthropic account dashboard.
46 | 3. Click on the "Create Key" button to generate a new API key.
47 | 4. Copy the generated API key and store it securely.
48 |
49 | ### Groq API Key
50 |
51 | 1. Sign up for an account at [groqcloud](https://console.groq.com/login){:target="_blank"} if you don't have one already.
52 | 2. Navigate to the [API Keys](https://console.groq.com/keys){:target="_blank"} section in your groqcloud account dashboard.
53 | 3. Click on teh "Create Key" button to generate a new API key.
54 | 4. Copy the generated API key and store it securely.
55 |
56 | ### Google AI API key
57 |
58 | 1. Sign up for an account at [AI Studio](https://ai.google.dev/aistudio){:target="_blank"} if you don't have one already.
59 | 2. Click on teh "Get API Key" to navigate to the API keys section.
60 | 3. Click on teh "Create Key" button to generate a new API key.
61 | 4. Copy the generated API key and store it securely.
62 |
63 | Once you have obtained your API key, you will need to provide it during the installation process.
64 |
65 | ## Installation Steps
66 |
67 | Follow these steps to install and set up Kubert AI Assistant Lite:
68 |
69 | 1. **Clone the repository**
70 |
71 | Open a terminal and run:
72 |
73 | ```bash
74 | git clone https://github.com/TranslucentComputing/kubert-assistant-lite.git
75 | cd kubert-assistant-lite
76 | ```
77 |
78 | 2. **(Optional) Initialize Git submodules for testing**
79 |
80 | If you plan to run tests, initialize the BATS submodules:
81 |
82 | ```bash
83 | git submodule update --init --recursive
84 | ```
85 |
86 | 3. **Check deployment dependencies.**
87 |
88 | ```bash
89 | make check-deps-deploy
90 | ```
91 |
92 | 4. **Deploy the kind Cluster and Application**
93 |
94 | Use the Makefile to deploy:
95 |
96 | ```bash
97 | make deploy
98 | ```
99 |
100 | This command will set up the kind cluster and deploy the application using Helm. During the deployment `OPENAI_API_KEY` will be requested as well as the system password to update `/etc/hosts` file with the local domains. For Windows users the user admin password is required to update `c:\Windows\System32\Drivers\etc\hosts`.
101 |
102 | 5. **Open browser to [http://kubert-assistant.lan/](http://kubert-assistant.lan/){:target="_blank"}**
103 |
104 |
105 |
109 |
110 |
111 | ## Cleaning Up
112 |
113 | To clean up and delete the kind cluster and the Kubert AI Assistant Lite components, run the following command:
114 |
115 | ```bash
116 | make cleanup
117 | ```
118 |
119 | This command will remove the kind cluster and all the associated resources, bringing your environment back to its initial state.
120 |
121 | ## Terminal Deployment
122 |
123 | ### Make Deploy
124 |
125 | #### Mac Version
126 |
127 | Example running `make deploy` in iTerminal on a Mac.
128 |
129 |
130 |
135 |
136 | ### Make Cleanup
137 |
138 | #### Mac Version
139 |
140 | Example running `make cleanup` in iTerminal on a Mac.
141 |
142 |
143 |
148 |
--------------------------------------------------------------------------------
/docs/ollama.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Ollama
4 | description: "Complete guide to Ollama installation with step-by-step instructions for macOS and Windows. Install Ollama on your local system easily today!"
5 | parent: Installation
6 | nav_order: 1
7 | nav_fold: false
8 | k_seo:
9 | title: "Ollama Installation for macOS, Linux, and Windows"
10 | ---
11 |
12 | # Ollama Installation for macOS, Linux, and Windows
13 |
14 | Full Ollama installation instruction can be found at [Ollama](https://ollama.com){:target="_blank"}.
15 | Bellow you have links to the macOS and Windows installation binaries, download and install.
16 |
17 | ### Installation macOS
18 |
19 | [Download](https://ollama.com/download/Ollama-darwin.zip){:target="_blank"}
20 |
21 | ### Installation Windows
22 |
23 | [Download](https://ollama.com/download/OllamaSetup.exe){:target="_blank"}
24 |
25 | ### Installation Linux
26 |
27 | ```bash
28 | curl -fsSL https://ollama.com/install.sh | sh
29 | ```
30 |
31 | [Manual install instructions](https://github.com/ollama/ollama/blob/main/docs/linux.md){:target="_blank"}
32 |
33 | ## Ollama Server Configuration Guide
34 |
35 | These instructions go over how to configure the Ollama server using environment variables on macOS, Linux, and Windows.
36 |
37 | Additional info can be found [Ollama FAQ](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-do-i-configure-ollama-server){:target="_blank"}
38 |
39 | ### Configuration macOS
40 |
41 | If Ollama is run as a macOS application, environment variables should be set using `launchctl`.
42 |
43 | #### Steps
44 |
45 | 1. Open the Terminal application.
46 | 2. For each environment variable you need to set, use the following command:
47 |
48 | ```bash
49 | launchctl setenv OLLAMA_HOST "0.0.0.0"
50 | launchctl setenv OLLAMA_ORIGINS "*"
51 | ```
52 |
53 | 3. After setting the environment variables, restart the Ollama application for the changes to take effect.
54 |
55 | ### Configuration Linux
56 |
57 | If Ollama is run as a systemd service, environment variables should be set using `systemctl`.
58 |
59 | #### Steps
60 |
61 | 1. Open a terminal and edit the systemd service for Ollama by running:
62 |
63 | ```bash
64 | sudo systemctl edit ollama.service
65 | ```
66 |
67 | This will open an editor.
68 |
69 | 2. Under the `[Service]` section, add a line for each environment variable:
70 |
71 | ```ini
72 | [Service]
73 | Environment="OLLAMA_HOST=0.0.0.0"
74 | Environment="OLLAMA_ORIGINS=*"
75 | ```
76 |
77 | 3. Save the file and exit the editor.
78 |
79 | 4. Reload the systemd daemon to apply the changes:
80 |
81 | ```bash
82 | sudo systemctl daemon-reload
83 | ```
84 |
85 | 5. Restart the Ollama service:
86 |
87 | ```bash
88 | sudo systemctl restart ollama
89 | ```
90 |
91 | ### Configuration Windows
92 |
93 | On Windows, Ollama inherits your user and system environment variables.
94 |
95 | #### Steps
96 |
97 | 1. Quit Ollama by right-clicking the Ollama icon in the taskbar and selecting "Quit".
98 | 2. Open the **Settings** (Windows 11) or **Control Panel** (Windows 10) application.
99 | 3. Search for "environment variables" and select **Edit environment variables for your account**.
100 | 4. In the Environment Variables window, edit or create a new variable for your user account:
101 | - Variable Name: `OLLAMA_HOST`
102 | - Variable Value: `0.0.0.0`
103 | 5. Create a new variable for `OLLAMA_ORIGINS` with value `"*"`
104 | 6. Click **OK** or **Apply** to save your changes.
105 | 7. Restart the Ollama application from the Windows Start menu.
106 |
107 | ## Models
108 |
109 | There are several models we suggest to install. Starting with the main model, LLama3.1. Open a terminal and execute:
110 |
111 | ```bash
112 | ollama pull llama3.1:latest
113 | ```
114 |
115 | The other models we suggest are:
116 |
117 | | Model | Parameters | Size | Download | Why? |
118 | | ------------------ | ---------- | ----- | -----------------------------------------------------| ----------------------------------------------------- |
119 | | Llama 3.1 | 405B | 231GB | `ollama pull llama3.1:405b` | If you have the space and want full Llama experience. |
120 | | Gemma 2 | 2B | 1.6GB | `ollama pull gemma2:2b` | Good for testing Google SLM |
121 | | Mistral | 7B | 4.1GB | `ollama pull mistral` | SLM with good performance. |
122 | | Code Llama | 7B | 3.8GB | `ollama pull codellama` | Use text prompts to generate and discuss code. |
123 | | Qwen 2 | 7.62B | 4.4GB | `ollama pull qwen2:latest` | LLM with good performance. |
124 | | Qwen 2 Math | 72B | 47GB | `ollama pull incept5/qwen2-math-72b-instruct:latest` | Specialized math LLM built upon the Qwen2 LLM. |
125 |
--------------------------------------------------------------------------------
/docs/sitemap.xml:
--------------------------------------------------------------------------------
1 | ---
2 | layout: null
3 | sitemap:
4 | exclude: 'yes'
5 | ---
6 |
7 |
8 | {% assign base_url = site.url | append: '/kubert-assistant-lite' %}
9 | {% for post in site.posts %}
10 | {% unless post.published == false %}
11 |
12 | {{ base_url }}{{ post.url }}
13 | {% if post.sitemap.lastmod %}
14 | {{ post.sitemap.lastmod | date: "%Y-%m-%d" }}
15 | {% elsif post.date %}
16 | {{ post.date | date_to_xmlschema }}
17 | {% else %}
18 | {{ site.time | date_to_xmlschema }}
19 | {% endif %}
20 | {% if post.sitemap.changefreq %}
21 | {{ post.sitemap.changefreq }}
22 | {% else %}
23 | monthly
24 | {% endif %}
25 | {% if post.sitemap.priority %}
26 | {{ post.sitemap.priority }}
27 | {% else %}
28 | 0.5
29 | {% endif %}
30 |
31 | {% endunless %}
32 | {% endfor %}
33 | {% for page in site.pages %}
34 | {% assign file_extension = page.path | split: '.' | last %}
35 | {% unless page.sitemap.exclude == "yes" or page.name == "feed.xml" or page.path contains ".js" or page.path contains ".xml" or page.path contains ".css" or page.path contains ".json" or page.path contains ".scss" %}
36 |
37 | {{ base_url }}{{ page.url | remove: "index.html" }}
38 | {% if page.sitemap.lastmod %}
39 | {{ page.sitemap.lastmod | date: "%Y-%m-%d" }}
40 | {% elsif page.date %}
41 | {{ page.date | date_to_xmlschema }}
42 | {% else %}
43 | {{ site.time | date_to_xmlschema }}
44 | {% endif %}
45 | {% if page.sitemap.changefreq %}
46 | {{ page.sitemap.changefreq }}
47 | {% else %}
48 | monthly
49 | {% endif %}
50 | {% if page.sitemap.priority %}
51 | {{ page.sitemap.priority }}
52 | {% else %}
53 | 0.5
54 | {% endif %}
55 |
56 | {% endunless %}
57 | {% endfor %}
58 |
--------------------------------------------------------------------------------
/docs/testing.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Testing
4 | nav_nabled: true
5 | k_seo:
6 | title: "Kubert Lite Testing Guide: Unit and Integration Testing with BATS, kcov, and Helm Linter"
7 | ---
8 |
9 | # **Kubert Lite Testing Guide:** Unit and Integration Testing with BATS, kcov, and Helm Linter
10 |
11 | Testing is an essential part of ensuring the reliability and correctness of the Kubert AI Assistant Lite project. This section outlines the testing strategy, tools used, and how to run the tests for the project.
12 |
13 | ## Testing Philosophy
14 |
15 | At Kubert AI Assistant Lite, we believe in the importance of thorough testing to maintain code quality, prevent regressions, and ensure a smooth user experience. We follow a comprehensive testing approach that includes:
16 |
17 | - **Unit Testing**: We write unit tests to verify the behavior of individual components and functions in isolation. Unit tests help catch bugs early and provide a safety net for refactoring and making changes to the codebase.
18 |
19 | - **Integration Testing**: Integration tests focus on the interaction between different components of the system. These tests ensure that the components work together seamlessly and produce the expected results when combined.
20 |
21 | - **Continuous Integration**: We have set up continuous integration (CI) pipelines that automatically run the test suite on each commit or pull request. This helps catch any issues early in the development process and maintains the stability of the main branch. - #TODO
22 |
23 | By following this testing philosophy, we aim to deliver a robust and reliable product to our users.
24 |
25 | ## Testing Tools
26 |
27 | The following tools are used for testing in the Kubert AI Assistant Lite project:
28 |
29 | - **BATS (Bash Automated Testing System)**: A testing framework for Bash scripts that provides a simple way to verify the behavior of shell scripts.
30 | - **bats-support**: A library of helper functions for writing BATS tests, making them easier to read and maintain.
31 | - **bats-assert**: An assertion library for BATS, providing convenient functions for making assertions in tests.
32 | - **kcov**: A code coverage tool for Bash scripts, providing insights into which parts of the scripts are executed during testing.
33 | - **Helm Linter**: Checks if the the helm chart used for the Kubert AI Assistant Lite components has issues.
34 | - **Helm Test**: After Helm chart deployment, Helm tests are executed to validate the deployment.
35 |
36 | ## Test Structure
37 |
38 | The tests are organized into unit tests and integration tests:
39 |
40 | - **Unit Tests**: These tests focus on individual functions and scripts, verifying their behavior in isolation. The unit tests are located in the tests/unit directory.
41 | - **Integration Tests**: These tests focus on the interaction between components, ensuring they work together as expected. Integration tests are located in the tests/integration directory.
42 |
43 | ## Running Tests
44 |
45 | To run the tests, ensure you have the necessary dependencies installed and the project environment set up correctly.
46 |
47 | ### Unit Tests
48 |
49 | Unit tests verify individual components of the project:
50 |
51 | ```bash
52 | make tests
53 | ```
54 |
55 | This command runs all unit tests located in the tests/unit directory.
56 |
57 |
58 |
63 |
64 | To run a single unit test file:
65 |
66 | ```bash
67 | make tests TEST_FILE=tests/unit/test_wait_functions.bats
68 | ```
69 |
70 |
71 |
76 |
77 | To run a single test in a unit test file:
78 |
79 | ```bash
80 | make tests TEST_FILE=tests/unit/test_wait_functions.bats TEST_PATTERN="wait_for_nodes should succeed when all nodes are ready"
81 | ```
82 |
83 |
84 |
89 |
90 | ### Integration Tests
91 |
92 | Integration tests verify the interaction between components:
93 |
94 | ```bash
95 | make integration-tests
96 | ```
97 |
98 |
99 |
104 |
105 | This command runs all integration tests located in the tests/integration directory.
106 |
107 | To run a specific integration test, use the following command:
108 |
109 | ```bash
110 | make integration-tests INTEGRATION_TEST_FILE=tests/integration/test_deploy_application.bats
111 | ```
112 |
113 |
114 |
119 |
120 | ## Test Coverage
121 |
122 | To run tests with coverage and generate coverage reports using kcov, follow these steps:
123 |
124 | 1. Build the kcov Docker image:
125 |
126 | ```bash
127 | make build-kcov-image
128 | ```
129 |
130 |
131 |
136 |
137 | 2. Run the coverage target:
138 |
139 | ```bash
140 | make coverage
141 | ```
142 |
143 |
144 |
149 |
150 | This command will execute the tests and generate coverage reports in the coverage directory using kcov. To view the coverage open the index.html file in the coverage directory in a browser.
151 |
152 | ```bash
153 | open coverage/index.html
154 | ```
155 |
156 | 
157 |
158 | ## Helm Testing
159 |
160 | Local Helm chart, `manifests/chart`, is used to deploy the different Kubert AI Assistant Lite component. Use a linter for a quick check:
161 |
162 | ```bash
163 | make lint-chart
164 | ```
165 |
166 |
171 |
172 | Using Helm template, we can have a quick view at the Helm templates in the chart:
173 |
174 | ```bash
175 | make template-chart
176 | ```
177 |
178 |
179 |
184 |
185 | Once the system has been deployed, we can execute Helm tests with:
186 |
187 | ```bash
188 | make helm-test
189 | ```
190 |
191 |
192 |
197 |
198 | ## Conclusion
199 |
200 | Testing is a crucial aspect of the Kubert AI Assistant Lite project, ensuring its reliability, stability, and correctness. By following the testing guidelines, writing comprehensive unit tests, running integration tests, and utilizing continuous integration, we aim to deliver a robust and well-tested product to our users.
201 |
202 | We encourage all contributors to prioritize testing and to follow the best practices outlined in this guide when working on the project. Together, we can maintain the quality and integrity of Kubert AI Assistant Lite.
203 |
--------------------------------------------------------------------------------
/docs/usage.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Usage
4 | description: "Watch Kubert usage videos, including AI Assistant setup, Kubernetes cluster queries, diagnosing resource issues, Ollama installation, and Windows 10 Pro setup for developers."
5 | nav_nabled: true
6 | has_children: true
7 | toc: true
8 | sitemap:
9 | priority: 0.7
10 | changefreq: 'weekly'
11 | k_seo:
12 | title: "Kubert Lite Usage Videos: Guide for Setup, Querying, and Troubleshooting"
13 | ---
14 |
15 | # Kubert Lite Usage Videos: Guide for Setup, Querying, and Troubleshooting
16 | {: .no_toc }
17 |
18 | ## Table of contents
19 | {: .no_toc .text-delta }
20 |
21 | 1. TOC
22 | {:toc}
23 |
24 | ## Kubert AI Assistant Setup
25 |
26 | Below is a demonstration video that guides you through the setup and usage of Kubert AI Assistant Lite. Watch as we cover the deployment process, features, and key interactions with the AI Assistant.
27 |
28 |
29 |
33 |
34 | ## Querying the Kubernetes Cluster with Kubert AI Agent
35 |
36 | In this video, you'll learn how to use the Kubert AI Agent to efficiently query your Kubernetes cluster using natural language prompts. We'll demonstrate both basic and advanced use cases, showing how these prompts are seamlessly transformed into `kubectl` commands to simplify cluster management.
37 |
38 |
39 |
43 |
44 |
45 | ## Diagnosing and Fixing Resource Misconfigurations
46 |
47 | This video demonstrates how to identify and resolve resource misconfigurations in Kubernetes using the Kubectl AI Agent. Watch as we deploy a problematic manifest, diagnose an Out of Memory (OOM) error, and use AI-generated commands to dynamically adjust resource limits, showcasing the power of AI-driven automation.
48 |
49 | The memory hog yaml can be found [HERE](https://raw.githubusercontent.com/TranslucentComputing/kubert-assistant-lite/main/manifests/test-deployment/memory-hog.yaml){:target="_blank"}
50 |
51 |
52 |
56 |
--------------------------------------------------------------------------------
/docs/usage_ollama_and_kubert.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: "Ollama & Kubert Lite"
4 | description: "Learn how to install Ollama, set up Kubert AI Assistant Lite, and configure it within the Kubert UI for seamless AI-powered Kubernetes management. Follow this guide for an effortless setup."
5 | parent: Usage
6 | nav_order: 1
7 | nav_fold: false
8 | k_seo:
9 | title: "Installing Ollama and Configuring Kubert AI Assistant Lite Video"
10 | ---
11 |
12 | # Installing Ollama and Configuring Kubert AI Assistant Lite Video
13 |
14 | In this video, we walk you through the process of installing Ollama, deploying Kubert AI Assistant Lite, and configuring Ollama within the Kubert UI settings. This comprehensive guide is perfect for anyone looking to integrate AI-powered tools into their Kubernetes environment seamlessly.
15 |
16 | Once, you've installed Ollama and configured the environment variables, pull the models from the Ollama library.
17 |
18 | Additional information is available in [Ollama Installation Guide](ollama.html).
19 |
20 |
21 |
25 |
26 |
--------------------------------------------------------------------------------
/docs/usage_window_setup_dev.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: "Windows Setup For Devs"
4 | description: "Set up a development environment on Windows 10 Pro by enabling Hyper-V, configuring WSL 2, and installing Ubuntu, Docker, VS Code, and Ollama for an optimized workflow."
5 | parent: Usage
6 | nav_order: 1
7 | nav_fold: false
8 | k_seo:
9 | title: "Windows 10 Pro Setup for Developers Video"
10 | ---
11 |
12 | # Windows 10 Pro Setup for Developers Video
13 |
14 | Follow along as we transform a fresh Windows 10 Pro installation into a powerful development environment. In this step-by-step guide, we’ll enable Hyper-V, configure WSL 2, install Ubuntu, Docker, Visual Studio Code, and Ollama. Whether you're setting up a new machine or optimizing your current setup, this video provides everything you need to get started with a robust and AI-enhanced workflow. Perfect for developers at any level!
15 |
16 |