kop-cli 0.1.0a7__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/PKG-INFO +35 -33
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/README.md +29 -29
- kop_cli-0.2.0/docs/faq.md +45 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/getting_started.md +30 -1
- kop_cli-0.2.0/docs/guide/ClusterRoleBindings.md +48 -0
- kop_cli-0.2.0/docs/guide/ClusterRoles.md +48 -0
- kop_cli-0.1.0a7/docs/tutorial.md → kop_cli-0.2.0/docs/guide/Clusters.md +5 -4
- kop_cli-0.2.0/docs/guide/ConfigMaps.md +48 -0
- kop_cli-0.2.0/docs/guide/CronJobs.md +81 -0
- kop_cli-0.2.0/docs/guide/DaemonSets.md +65 -0
- kop_cli-0.2.0/docs/guide/Deployments.md +79 -0
- kop_cli-0.2.0/docs/guide/EndpointSlices.md +48 -0
- kop_cli-0.2.0/docs/guide/Endpoints.md +48 -0
- kop_cli-0.2.0/docs/guide/IngressClasses.md +65 -0
- kop_cli-0.2.0/docs/guide/Ingresses.md +48 -0
- kop_cli-0.2.0/docs/guide/Jobs.md +48 -0
- kop_cli-0.2.0/docs/guide/Namespaces.md +48 -0
- kop_cli-0.2.0/docs/guide/NetworkPolicies.md +48 -0
- kop_cli-0.2.0/docs/guide/Nodes.md +99 -0
- kop_cli-0.2.0/docs/guide/PersistentVolumeClaims.md +48 -0
- kop_cli-0.2.0/docs/guide/PersistentVolumes.md +48 -0
- kop_cli-0.2.0/docs/guide/Pods.md +132 -0
- kop_cli-0.2.0/docs/guide/RoleBindings.md +48 -0
- kop_cli-0.2.0/docs/guide/Roles.md +48 -0
- kop_cli-0.2.0/docs/guide/Secrets.md +48 -0
- kop_cli-0.2.0/docs/guide/ServiceAccounts.md +48 -0
- kop_cli-0.2.0/docs/guide/Services.md +48 -0
- kop_cli-0.2.0/docs/guide/StatefulSets.md +81 -0
- kop_cli-0.2.0/docs/guide/StorageClasses.md +48 -0
- kop_cli-0.2.0/docs/guide/index.md +29 -0
- kop_cli-0.2.0/docs/guide/zh/pods-zh.md +120 -0
- kop_cli-0.2.0/docs/images/tutorial/action_workspace.png +0 -0
- kop_cli-0.2.0/docs/images/tutorial/cluster_area.png +0 -0
- kop_cli-0.2.0/docs/images/tutorial/detail_view.png +0 -0
- kop_cli-0.2.0/docs/images/tutorial/keys.png +0 -0
- kop_cli-0.2.0/docs/images/tutorial/resource_view.png +0 -0
- kop_cli-0.2.0/docs/images/tutorial/startup.png +0 -0
- kop_cli-0.2.0/docs/images/tutorial/themes.png +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/index.md +11 -3
- kop_cli-0.2.0/docs/tutorial.md +75 -0
- kop_cli-0.2.0/mkdocs.yml +54 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/pyproject.toml +6 -4
- kop_cli-0.2.0/scripts/set_release_version.py +52 -0
- kop_cli-0.2.0/src/kop/__init__.py +2 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/controllers/handler.py +410 -27
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/factory.py +122 -34
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/models.py +44 -1
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/provider/client.py +60 -18
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/provider/forward.py +15 -1
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/provider/logs.py +4 -4
- kop_cli-0.2.0/src/kop/provider/utils.py +7 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/renderers/details.py +10 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/renderers/fields.py +9 -1
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/renderers/formatter.py +35 -0
- kop_cli-0.2.0/src/kop/templates/resource/clusterrolebindings.yaml +13 -0
- kop_cli-0.2.0/src/kop/templates/resource/clusterroles.yaml +12 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/templates/resource/configmaps.yaml +3 -0
- kop_cli-0.2.0/src/kop/templates/resource/deployments.yaml +21 -0
- kop_cli-0.2.0/src/kop/templates/resource/endpointslices.yaml +19 -0
- kop_cli-0.2.0/src/kop/templates/resource/ingressclasses.yaml +10 -0
- kop_cli-0.2.0/src/kop/templates/resource/ingresses.yaml +16 -0
- kop_cli-0.2.0/src/kop/templates/resource/namespaces.yaml +4 -0
- kop_cli-0.2.0/src/kop/templates/resource/networkpolicies.yaml +35 -0
- kop_cli-0.2.0/src/kop/templates/resource/persistentvolumeclaims.yaml +17 -0
- kop_cli-0.2.0/src/kop/templates/resource/persistentvolumes.yaml +18 -0
- kop_cli-0.2.0/src/kop/templates/resource/pods.yaml +10 -0
- kop_cli-0.2.0/src/kop/templates/resource/rolebindings.yaml +17 -0
- kop_cli-0.2.0/src/kop/templates/resource/roles.yaml +9 -0
- kop_cli-0.2.0/src/kop/templates/resource/secrets.yaml +23 -0
- kop_cli-0.2.0/src/kop/templates/resource/serviceaccounts.yaml +7 -0
- kop_cli-0.2.0/src/kop/templates/resource/services.yaml +11 -0
- kop_cli-0.2.0/src/kop/templates/resource/storageclasses.yaml +14 -0
- kop_cli-0.2.0/src/kop/views/ActionWorkspace.py +179 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/views/EditView.py +35 -9
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/views/PodAttach.py +14 -4
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/views/PodLog.py +13 -4
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/views/PodTerminal.py +13 -3
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/views/ResourceView.py +57 -19
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/views/StartupView.py +1 -1
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Edit.py +24 -12
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Forward.py +2 -3
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Log.py +2 -1
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Modals.py +181 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Panel.py +28 -2
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Pty.py +38 -31
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/SideMenu.py +1 -0
- kop_cli-0.2.0/tests/test_action_workspace.py +46 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/tests/test_edit_view.py +25 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/tests/test_resource_view.py +180 -8
- kop_cli-0.1.0a7/mkdocs.yml +0 -23
- kop_cli-0.1.0a7/src/kop/__init__.py +0 -2
- kop_cli-0.1.0a7/src/kop/templates/resource/deployments.yaml +0 -19
- kop_cli-0.1.0a7/src/kop/templates/resource/pods.yaml +0 -9
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/.gitignore +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/.python-version +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/CODE_OF_CONDUCT.md +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/LICENSE +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/NOTICE +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/__init__.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/guide.md +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/images/guide/create_resource.png +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/images/guide/edit_resource.png +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/images/guide/forward_port.png +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/images/guide/pod_logs.png +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/images/guide/resource_detail.png +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/images/guide/scale_resource.png +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/images/guide/search_kinds.png +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/images/guide/select_namespace.png +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/images/sample.png +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/images/tutorial/add_new_cluster.png +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/images/tutorial/startup_without_cluster.png +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/docs/readme_ch.md +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/scripts/event.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/scripts/forward.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/scripts/kube_client.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/scripts/mock_resource_view_deployment.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/scripts/mock_resource_view_pod.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/scripts/multiple_select.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/scripts/pixels.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/scripts/pod_logs.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/scripts/rich_detail.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/scripts/view_pod_logs.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/app/__init__.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/app/main.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/provider/attach.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/provider/config.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/provider/events.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/provider/exec.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/registry.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/renderers/forms.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/renderers/table.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/templates/resource/cronjobs.yaml +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/templates/resource/daemonsets.yaml +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/templates/resource/jobs.yaml +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/templates/resource/node-shell-pod.yaml +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/templates/resource/statefulsets.yaml +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/validations.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Actions.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Attach.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Columns.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Detail.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Directory.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Dynamic.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Events.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Expandable.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Focusable.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/MultipleSelect.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/RichDetail.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/Rules.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/src/kop/widgets/__init__.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/tests/test_detail_modal_renderer.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/tests/test_event_service.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/tests/test_log_controller.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/tests/test_pagination_integration.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/tests/test_pod_logs.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/tests/test_startup_view.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/tests/test_table_renderer.py +0 -0
- {kop_cli-0.1.0a7 → kop_cli-0.2.0}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kop-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: Terminal-based kubernetes operation platform
|
|
5
5
|
Author-email: vegaoqiang <vegaoqiang@gmail.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -26,10 +26,12 @@ Classifier: Topic :: Software Development
|
|
|
26
26
|
Classifier: Topic :: System :: Systems Administration
|
|
27
27
|
Classifier: Topic :: Terminals
|
|
28
28
|
Requires-Python: >=3.9
|
|
29
|
-
Requires-Dist: kubernetes
|
|
29
|
+
Requires-Dist: kubernetes==33.1.0
|
|
30
30
|
Requires-Dist: pyte
|
|
31
|
-
Requires-Dist: textual
|
|
32
|
-
Requires-Dist:
|
|
31
|
+
Requires-Dist: textual==8.2.7
|
|
32
|
+
Requires-Dist: tree-sitter-bash
|
|
33
|
+
Requires-Dist: tree-sitter-json
|
|
34
|
+
Requires-Dist: tree-sitter-yaml
|
|
33
35
|
Provides-Extra: dev
|
|
34
36
|
Requires-Dist: pytest-asyncio; extra == 'dev'
|
|
35
37
|
Requires-Dist: pytest>=9.0.2; extra == 'dev'
|
|
@@ -47,23 +49,43 @@ Description-Content-Type: text/markdown
|
|
|
47
49
|
`kop` is a terminal-based (TUI) Kubernetes operations platform. Its goal is to provide an interactive experience similar to desktop cluster management tools, but fully within the terminal command line, aiming to solve the problem of conveniently operating Kubernetes clusters when no desktop environment is available.
|
|
48
50
|
|
|
49
51
|
|
|
50
|
-
##
|
|
52
|
+
## Installation
|
|
53
|
+
Here's how to install kop.
|
|
51
54
|
|
|
52
|
-
|
|
53
|
-
- Terminal environment with TUI support (TrueColor/xterm-256color/Mouse Tracking)
|
|
55
|
+
### Install from PyPI
|
|
54
56
|
|
|
55
|
-
|
|
57
|
+
You can install kop via PyPI with the following command:
|
|
56
58
|
|
|
57
|
-
```
|
|
59
|
+
```shell
|
|
58
60
|
pip install kop-cli
|
|
59
61
|
```
|
|
60
62
|
|
|
61
|
-
After installation, you can
|
|
62
|
-
|
|
63
|
-
```bash
|
|
63
|
+
After installation, you can run:
|
|
64
|
+
```shell
|
|
64
65
|
kop --version
|
|
65
66
|
```
|
|
66
67
|
|
|
68
|
+
### Install from an offline binary package
|
|
69
|
+
|
|
70
|
+
If the target machine cannot access PyPI, download the offline binary package from the [GitHub Releases](https://github.com/vegaoqiang/kop/releases) page on another machine first.
|
|
71
|
+
|
|
72
|
+
1. Open the release version you want to install.
|
|
73
|
+
2. Download the binary package that matches your operating system and CPU architecture.
|
|
74
|
+
3. Copy the package to the target machine.
|
|
75
|
+
4. Extract the package and run the `kop` binary.
|
|
76
|
+
|
|
77
|
+
On Linux or macOS, you may need to grant execute permission before running it:
|
|
78
|
+
|
|
79
|
+
```shell
|
|
80
|
+
chmod +x kop
|
|
81
|
+
./kop --version
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
On Windows, run `kop.exe` from PowerShell or Command Prompt:
|
|
85
|
+
|
|
86
|
+
```powershell
|
|
87
|
+
.\kop.exe --version
|
|
88
|
+
```
|
|
67
89
|
|
|
68
90
|
## Usage
|
|
69
91
|
|
|
@@ -90,30 +112,10 @@ In this mode, the file path and kubeconfig validity are verified, and after vali
|
|
|
90
112
|
|
|
91
113
|
## Operations and Shortcuts
|
|
92
114
|
See demo video:
|
|
93
|
-
[](https://www.youtube.com/watch?v=6L1jOtYvKYg)
|
|
94
116
|
|
|
95
117
|
Please refer to the [Documentation](https://vegaoqiang.github.io/kop/) for more detailed usage instructions.
|
|
96
118
|
|
|
97
|
-
### Startup Page (Cluster List)
|
|
98
|
-
|
|
99
|
-
- `a`: Add cluster
|
|
100
|
-
- `c` / `Enter`: Connect to cluster
|
|
101
|
-
- `d`: Delete cluster
|
|
102
|
-
- `e`: Edit cluster
|
|
103
|
-
- `s`: Sync local kubeconfig
|
|
104
|
-
- Arrow keys `↑↓←→`: Move between cluster cards
|
|
105
|
-
|
|
106
|
-
### Resource Page
|
|
107
|
-
|
|
108
|
-
- Select resource type from the left-side menu
|
|
109
|
-
- `]`: Quickly focus the namespace selector
|
|
110
|
-
- `/`: Search (menu or resources)
|
|
111
|
-
- `c`: Create resource (when supported by the current resource type)
|
|
112
|
-
- `Esc`: Return to cluster home page
|
|
113
|
-
|
|
114
|
-
Tip: Available actions differ by resource in the details/operation panel. The bottom of the interface shows available key hints.
|
|
115
|
-
|
|
116
|
-
|
|
117
119
|
## FAQ
|
|
118
120
|
|
|
119
121
|
### Mouse click not working
|
|
@@ -9,23 +9,43 @@
|
|
|
9
9
|
`kop` is a terminal-based (TUI) Kubernetes operations platform. Its goal is to provide an interactive experience similar to desktop cluster management tools, but fully within the terminal command line, aiming to solve the problem of conveniently operating Kubernetes clusters when no desktop environment is available.
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Installation
|
|
13
|
+
Here's how to install kop.
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
- Terminal environment with TUI support (TrueColor/xterm-256color/Mouse Tracking)
|
|
15
|
+
### Install from PyPI
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
You can install kop via PyPI with the following command:
|
|
18
18
|
|
|
19
|
-
```
|
|
19
|
+
```shell
|
|
20
20
|
pip install kop-cli
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
After installation, you can
|
|
24
|
-
|
|
25
|
-
```bash
|
|
23
|
+
After installation, you can run:
|
|
24
|
+
```shell
|
|
26
25
|
kop --version
|
|
27
26
|
```
|
|
28
27
|
|
|
28
|
+
### Install from an offline binary package
|
|
29
|
+
|
|
30
|
+
If the target machine cannot access PyPI, download the offline binary package from the [GitHub Releases](https://github.com/vegaoqiang/kop/releases) page on another machine first.
|
|
31
|
+
|
|
32
|
+
1. Open the release version you want to install.
|
|
33
|
+
2. Download the binary package that matches your operating system and CPU architecture.
|
|
34
|
+
3. Copy the package to the target machine.
|
|
35
|
+
4. Extract the package and run the `kop` binary.
|
|
36
|
+
|
|
37
|
+
On Linux or macOS, you may need to grant execute permission before running it:
|
|
38
|
+
|
|
39
|
+
```shell
|
|
40
|
+
chmod +x kop
|
|
41
|
+
./kop --version
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
On Windows, run `kop.exe` from PowerShell or Command Prompt:
|
|
45
|
+
|
|
46
|
+
```powershell
|
|
47
|
+
.\kop.exe --version
|
|
48
|
+
```
|
|
29
49
|
|
|
30
50
|
## Usage
|
|
31
51
|
|
|
@@ -52,30 +72,10 @@ In this mode, the file path and kubeconfig validity are verified, and after vali
|
|
|
52
72
|
|
|
53
73
|
## Operations and Shortcuts
|
|
54
74
|
See demo video:
|
|
55
|
-
[](https://www.youtube.com/watch?v=6L1jOtYvKYg)
|
|
56
76
|
|
|
57
77
|
Please refer to the [Documentation](https://vegaoqiang.github.io/kop/) for more detailed usage instructions.
|
|
58
78
|
|
|
59
|
-
### Startup Page (Cluster List)
|
|
60
|
-
|
|
61
|
-
- `a`: Add cluster
|
|
62
|
-
- `c` / `Enter`: Connect to cluster
|
|
63
|
-
- `d`: Delete cluster
|
|
64
|
-
- `e`: Edit cluster
|
|
65
|
-
- `s`: Sync local kubeconfig
|
|
66
|
-
- Arrow keys `↑↓←→`: Move between cluster cards
|
|
67
|
-
|
|
68
|
-
### Resource Page
|
|
69
|
-
|
|
70
|
-
- Select resource type from the left-side menu
|
|
71
|
-
- `]`: Quickly focus the namespace selector
|
|
72
|
-
- `/`: Search (menu or resources)
|
|
73
|
-
- `c`: Create resource (when supported by the current resource type)
|
|
74
|
-
- `Esc`: Return to cluster home page
|
|
75
|
-
|
|
76
|
-
Tip: Available actions differ by resource in the details/operation panel. The bottom of the interface shows available key hints.
|
|
77
|
-
|
|
78
|
-
|
|
79
79
|
## FAQ
|
|
80
80
|
|
|
81
81
|
### Mouse click not working
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- navigation
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# FAQ
|
|
7
|
+
|
|
8
|
+
## Mouse click not working
|
|
9
|
+
|
|
10
|
+
When using iTerm2 on macOS to SSH into a remote host and run kop, mouse clicks may not work. This happens because in Linux environments, most command-line programs rely on the `$TERM` variable to determine terminal capabilities (such as colors and bold text). A common value is `xterm-256color`. While `xterm-256color` is a general standard, it does not cover all extensions of modern terminals (such as advanced mouse protocols or synchronized updates). `Textual` is a very advanced TUI (text user interface) framework. To provide the best experience, it tries to detect which terminal is actually running. For `iTerm2`, it supports many non-standard advanced features. Textual has internal optimization logic: when it detects `TERM_PROGRAM=iTerm.app`, it switches to an interaction mode optimized for `iTerm2`. If Textual does not see `TERM_PROGRAM=iTerm.app`, it may avoid enabling some advanced interaction features, or due to configuration conflicts, it may fail to properly fall back to a generic mouse mode.
|
|
11
|
+
|
|
12
|
+
Solutions:
|
|
13
|
+
|
|
14
|
+
1. Manually run `export TERM_PROGRAM=iTerm.app` on the remote host. After restarting `kop`, mouse clicks should work normally.
|
|
15
|
+
2. Update local SSH config on macOS: `~/.ssh/config`, add:
|
|
16
|
+
|
|
17
|
+
```shell
|
|
18
|
+
Host *
|
|
19
|
+
SendEnv TERM_PROGRAM
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Update remote host `sshd` config: `/etc/ssh/sshd_config`, add:
|
|
23
|
+
|
|
24
|
+
```shell
|
|
25
|
+
AcceptEnv TERM_PROGRAM
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
After restarting the `sshd` service, disconnect and reconnect to the remote host, then run `kop` again. Mouse clicking should be restored.
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
## Why doesn't kop look good on macOS?
|
|
32
|
+
kop is built with Textual for terminal UI. Please refer to the Textual FAQ section about display issues in the default macOS terminal for fixes: https://textual.textualize.io/FAQ/#why-doesnt-textual-look-good-on-macos
|
|
33
|
+
|
|
34
|
+
## Abnormal display on Linux console
|
|
35
|
+
|
|
36
|
+
You may use kop on Linux console (a monitor connected to a server via a VGA cable) and find kop UI rendering issues or even crashes. This is because Linux kernel built-in virtual terminals (`tty1`~`tty6`):
|
|
37
|
+
|
|
38
|
+
* ❌ Do not support True Color (24-bit)
|
|
39
|
+
* ❌ Do not support 256 colors
|
|
40
|
+
* ✅ Only support 16 colors (sometimes even only 8)
|
|
41
|
+
* ✅ Rendering is controlled by the kernel (not by a terminal emulator)
|
|
42
|
+
|
|
43
|
+
There is currently no good solution. If you must use kop on a physical terminal, one compromise is `kmscon`.
|
|
44
|
+
|
|
45
|
+
Kmscon is a simple terminal emulator based on linux kernel mode setting (KMS). It is an attempt to replace the in-kernel VT implementation with a userspace console. See https://github.com/kmscon/kmscon
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- navigation
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Getting started
|
|
2
7
|
|
|
3
8
|
## Requirements
|
|
@@ -23,7 +28,9 @@ The new [Windows Terminal](https://apps.microsoft.com/store/detail/windows-termi
|
|
|
23
28
|
## Installation
|
|
24
29
|
Here's how to install kop.
|
|
25
30
|
|
|
26
|
-
|
|
31
|
+
### Install from PyPI
|
|
32
|
+
|
|
33
|
+
You can install kop via PyPI with the following command:
|
|
27
34
|
|
|
28
35
|
```shell
|
|
29
36
|
pip install kop-cli
|
|
@@ -34,6 +41,28 @@ After installation, you can run:
|
|
|
34
41
|
kop --version
|
|
35
42
|
```
|
|
36
43
|
|
|
44
|
+
### Install from an offline binary package
|
|
45
|
+
|
|
46
|
+
If the target machine cannot access PyPI, download the offline binary package from the [GitHub Releases](https://github.com/vegaoqiang/kop/releases) page on another machine first.
|
|
47
|
+
|
|
48
|
+
1. Open the release version you want to install.
|
|
49
|
+
2. Download the binary package that matches your operating system and CPU architecture.
|
|
50
|
+
3. Copy the package to the target machine.
|
|
51
|
+
4. Extract the package and run the `kop` binary.
|
|
52
|
+
|
|
53
|
+
On Linux or macOS, you may need to grant execute permission before running it:
|
|
54
|
+
|
|
55
|
+
```shell
|
|
56
|
+
chmod +x kop
|
|
57
|
+
./kop --version
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
On Windows, run `kop.exe` from PowerShell or Command Prompt:
|
|
61
|
+
|
|
62
|
+
```powershell
|
|
63
|
+
.\kop.exe --version
|
|
64
|
+
```
|
|
65
|
+
|
|
37
66
|
## Usage
|
|
38
67
|
|
|
39
68
|
### 1. Startup
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Cluster Role Bindings
|
|
2
|
+
This document explains how to operate Cluster Role Bindings through kop.
|
|
3
|
+
|
|
4
|
+
## Binding keys
|
|
5
|
+
Available shortcuts for ClusterRoleBinding-related operations are shown in the Footer area at the bottom of the page. Available actions may vary slightly by context; always use the real-time prompts in the Footer as the source of truth.
|
|
6
|
+
|
|
7
|
+
| Key | Action |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `d` | Delete ClusterRoleBinding |
|
|
10
|
+
| `e` | Edit ClusterRoleBinding |
|
|
11
|
+
| `n` | Next Page |
|
|
12
|
+
| `p` | Previous Page |
|
|
13
|
+
|
|
14
|
+
> Some `keys` are shown in the Footer only under specific conditions. For example, `n` and `p` are displayed only when the total number of resources exceeds the current screen height.
|
|
15
|
+
|
|
16
|
+
## Actions
|
|
17
|
+
The following sections describe what each action does and how to use it.
|
|
18
|
+
|
|
19
|
+
### Edit ClusterRoleBinding
|
|
20
|
+
Edits the ClusterRoleBinding YAML configuration and submits changes.
|
|
21
|
+
|
|
22
|
+
**Steps:**
|
|
23
|
+
|
|
24
|
+
1. In the left resource navigator, go to `Cluster Role Bindings`.
|
|
25
|
+
2. Select the target ClusterRoleBinding in the list.
|
|
26
|
+
3. Press `e` to open the YAML editor view.
|
|
27
|
+
4. Modify the content and save to submit.
|
|
28
|
+
|
|
29
|
+
**Notes:**
|
|
30
|
+
|
|
31
|
+
- Invalid or immutable field changes are rejected by the Kubernetes API.
|
|
32
|
+
- If an update fails, adjust based on the error message and retry.
|
|
33
|
+
- `Edit ClusterRoleBinding` opens in the `Action Workspace`. See [Action Workspace](../tutorial.md#action-workspace) for details.
|
|
34
|
+
|
|
35
|
+
### Delete ClusterRoleBinding
|
|
36
|
+
Deletes the currently selected ClusterRoleBinding resource.
|
|
37
|
+
|
|
38
|
+
**Steps:**
|
|
39
|
+
|
|
40
|
+
1. Select the target ClusterRoleBinding in the `Cluster Role Bindings` list.
|
|
41
|
+
2. Press `d` to trigger deletion.
|
|
42
|
+
3. Confirm the action in the prompt.
|
|
43
|
+
|
|
44
|
+
**Notes:**
|
|
45
|
+
|
|
46
|
+
- Deletion removes the selected ClusterRoleBinding object from the cluster.
|
|
47
|
+
- Check dependent workloads before deletion to avoid service impact.
|
|
48
|
+
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Cluster Roles
|
|
2
|
+
This document explains how to operate Cluster Roles through kop.
|
|
3
|
+
|
|
4
|
+
## Binding keys
|
|
5
|
+
Available shortcuts for ClusterRole-related operations are shown in the Footer area at the bottom of the page. Available actions may vary slightly by context; always use the real-time prompts in the Footer as the source of truth.
|
|
6
|
+
|
|
7
|
+
| Key | Action |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `d` | Delete ClusterRole |
|
|
10
|
+
| `e` | Edit ClusterRole |
|
|
11
|
+
| `n` | Next Page |
|
|
12
|
+
| `p` | Previous Page |
|
|
13
|
+
|
|
14
|
+
> Some `keys` are shown in the Footer only under specific conditions. For example, `n` and `p` are displayed only when the total number of resources exceeds the current screen height.
|
|
15
|
+
|
|
16
|
+
## Actions
|
|
17
|
+
The following sections describe what each action does and how to use it.
|
|
18
|
+
|
|
19
|
+
### Edit ClusterRole
|
|
20
|
+
Edits the ClusterRole YAML configuration and submits changes.
|
|
21
|
+
|
|
22
|
+
**Steps:**
|
|
23
|
+
|
|
24
|
+
1. In the left resource navigator, go to `Cluster Roles`.
|
|
25
|
+
2. Select the target ClusterRole in the list.
|
|
26
|
+
3. Press `e` to open the YAML editor view.
|
|
27
|
+
4. Modify the content and save to submit.
|
|
28
|
+
|
|
29
|
+
**Notes:**
|
|
30
|
+
|
|
31
|
+
- Invalid or immutable field changes are rejected by the Kubernetes API.
|
|
32
|
+
- If an update fails, adjust based on the error message and retry.
|
|
33
|
+
- `Edit ClusterRole` opens in the `Action Workspace`. See [Action Workspace](../tutorial.md#action-workspace) for details.
|
|
34
|
+
|
|
35
|
+
### Delete ClusterRole
|
|
36
|
+
Deletes the currently selected ClusterRole resource.
|
|
37
|
+
|
|
38
|
+
**Steps:**
|
|
39
|
+
|
|
40
|
+
1. Select the target ClusterRole in the `Cluster Roles` list.
|
|
41
|
+
2. Press `d` to trigger deletion.
|
|
42
|
+
3. Confirm the action in the prompt.
|
|
43
|
+
|
|
44
|
+
**Notes:**
|
|
45
|
+
|
|
46
|
+
- Deletion removes the selected ClusterRole object from the cluster.
|
|
47
|
+
- Check dependent workloads before deletion to avoid service impact.
|
|
48
|
+
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Clusters
|
|
2
|
+
kop support manage multiple kubernetes clusters, the documents show how to add or sync kubernetes cluster to kop
|
|
2
3
|
|
|
3
|
-
## Add Kubernetes
|
|
4
|
+
## Add Kubernetes Cluster
|
|
4
5
|
|
|
5
6
|
After starting kop, it reads the ~/.kube/config file by default.
|
|
6
7
|
|
|
@@ -9,11 +10,11 @@ After starting kop, it reads the ~/.kube/config file by default.
|
|
|
9
10
|
|
|
10
11
|
If the host running kop does not have Kubernetes (connecting to a remote Kubernetes cluster over the network). After starting kop, you will see relevant prompts.
|
|
11
12
|
|
|
12
|
-

|
|
13
|
+

|
|
13
14
|
|
|
14
15
|
At this point, you can open the `Add Cluster` view by clicking the `[Add]` button with the mouse or pressing `a` on the keyboard.
|
|
15
16
|
|
|
16
|
-

|
|
17
|
+

|
|
17
18
|
|
|
18
19
|
Then paste the contents of your kubeconfig file into the `Paste Your Cluster Config` area. Then paste the contents of your kubeconfig file into the content area, and then click the `[Save]` button or press `'ctrl+s'` to save.
|
|
19
20
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# ConfigMaps
|
|
2
|
+
This document explains how to operate ConfigMaps through kop.
|
|
3
|
+
|
|
4
|
+
## Binding keys
|
|
5
|
+
Available shortcuts for ConfigMap-related operations are shown in the Footer area at the bottom of the page. Available actions may vary slightly by context; always use the real-time prompts in the Footer as the source of truth.
|
|
6
|
+
|
|
7
|
+
| Key | Action |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `d` | Delete ConfigMap |
|
|
10
|
+
| `e` | Edit ConfigMap |
|
|
11
|
+
| `n` | Next Page |
|
|
12
|
+
| `p` | Previous Page |
|
|
13
|
+
|
|
14
|
+
> Some `keys` are shown in the Footer only under specific conditions. For example, `n` and `p` are displayed only when the total number of resources exceeds the current screen height.
|
|
15
|
+
|
|
16
|
+
## Actions
|
|
17
|
+
The following sections describe what each action does and how to use it.
|
|
18
|
+
|
|
19
|
+
### Edit ConfigMap
|
|
20
|
+
Edits the ConfigMap YAML configuration and submits changes.
|
|
21
|
+
|
|
22
|
+
**Steps:**
|
|
23
|
+
|
|
24
|
+
1. In the left resource navigator, go to `ConfigMaps`.
|
|
25
|
+
2. Select the target ConfigMap in the list.
|
|
26
|
+
3. Press `e` to open the YAML editor view.
|
|
27
|
+
4. Modify the content and save to submit.
|
|
28
|
+
|
|
29
|
+
**Notes:**
|
|
30
|
+
|
|
31
|
+
- Invalid or immutable field changes are rejected by the Kubernetes API.
|
|
32
|
+
- If an update fails, adjust based on the error message and retry.
|
|
33
|
+
- `Edit ConfigMap` opens in the `Action Workspace`. See [Action Workspace](../tutorial.md#action-workspace) for details.
|
|
34
|
+
|
|
35
|
+
### Delete ConfigMap
|
|
36
|
+
Deletes the currently selected ConfigMap resource.
|
|
37
|
+
|
|
38
|
+
**Steps:**
|
|
39
|
+
|
|
40
|
+
1. Select the target ConfigMap in the `ConfigMaps` list.
|
|
41
|
+
2. Press `d` to trigger deletion.
|
|
42
|
+
3. Confirm the action in the prompt.
|
|
43
|
+
|
|
44
|
+
**Notes:**
|
|
45
|
+
|
|
46
|
+
- Deletion removes the selected ConfigMap object from the cluster.
|
|
47
|
+
- Check dependent workloads before deletion to avoid service impact.
|
|
48
|
+
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# CronJobs
|
|
2
|
+
This document explains how to operate CronJobs through kop.
|
|
3
|
+
|
|
4
|
+
## Binding keys
|
|
5
|
+
Available shortcuts for CronJob-related operations are shown in the Footer area at the bottom of the page. Available actions may vary slightly by context; always use the real-time prompts in the Footer as the source of truth.
|
|
6
|
+
|
|
7
|
+
| Key | Action |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `d` | Delete CronJob |
|
|
10
|
+
| `e` | Edit CronJob |
|
|
11
|
+
| `s` | Suspend/Resume CronJob |
|
|
12
|
+
| `t` | Trigger CronJob |
|
|
13
|
+
| `n` | Next Page |
|
|
14
|
+
| `p` | Previous Page |
|
|
15
|
+
|
|
16
|
+
> Some `keys` are shown in the Footer only under specific conditions. For example, `n` and `p` are displayed only when the total number of resources exceeds the current screen height.
|
|
17
|
+
|
|
18
|
+
## Actions
|
|
19
|
+
The following sections describe what each action does and how to use it.
|
|
20
|
+
|
|
21
|
+
### Trigger CronJob
|
|
22
|
+
Creates a one-off Job immediately from the selected CronJob.
|
|
23
|
+
|
|
24
|
+
**Steps:**
|
|
25
|
+
|
|
26
|
+
1. In the left resource navigator, go to `CronJobs`.
|
|
27
|
+
2. Select the target CronJob in the list.
|
|
28
|
+
3. Press `t` to trigger a one-off run.
|
|
29
|
+
4. Confirm the action in the prompt.
|
|
30
|
+
5. Verify the new Job appears in related resources.
|
|
31
|
+
|
|
32
|
+
**Notes:**
|
|
33
|
+
|
|
34
|
+
- Trigger does not change the regular schedule.
|
|
35
|
+
- Use this action to validate the job template on demand.
|
|
36
|
+
|
|
37
|
+
### Suspend/Resume CronJob
|
|
38
|
+
Suspends or resumes scheduling for the selected CronJob.
|
|
39
|
+
|
|
40
|
+
**Steps:**
|
|
41
|
+
|
|
42
|
+
1. Select the target CronJob in the `CronJobs` list.
|
|
43
|
+
2. Press `s` to toggle scheduling state.
|
|
44
|
+
3. Confirm the action in the prompt.
|
|
45
|
+
4. Check the updated state in the resource table or detail view.
|
|
46
|
+
|
|
47
|
+
**Notes:**
|
|
48
|
+
|
|
49
|
+
- Suspend stops future schedule triggers but does not cancel already started Jobs.
|
|
50
|
+
- Resume re-enables schedule-based execution.
|
|
51
|
+
|
|
52
|
+
### Edit CronJob
|
|
53
|
+
Edits the CronJob YAML configuration and submits changes.
|
|
54
|
+
|
|
55
|
+
**Steps:**
|
|
56
|
+
|
|
57
|
+
1. In the left resource navigator, go to `CronJobs`.
|
|
58
|
+
2. Select the target CronJob in the list.
|
|
59
|
+
3. Press `e` to open the YAML editor view.
|
|
60
|
+
4. Modify the content and save to submit.
|
|
61
|
+
|
|
62
|
+
**Notes:**
|
|
63
|
+
|
|
64
|
+
- Invalid or immutable field changes are rejected by the Kubernetes API.
|
|
65
|
+
- If an update fails, adjust based on the error message and retry.
|
|
66
|
+
- `Edit CronJob` opens in the `Action Workspace`. See [Action Workspace](../tutorial.md#action-workspace) for details.
|
|
67
|
+
|
|
68
|
+
### Delete CronJob
|
|
69
|
+
Deletes the currently selected CronJob resource.
|
|
70
|
+
|
|
71
|
+
**Steps:**
|
|
72
|
+
|
|
73
|
+
1. Select the target CronJob in the `CronJobs` list.
|
|
74
|
+
2. Press `d` to trigger deletion.
|
|
75
|
+
3. Confirm the action in the prompt.
|
|
76
|
+
|
|
77
|
+
**Notes:**
|
|
78
|
+
|
|
79
|
+
- Deletion removes the selected CronJob object from the cluster.
|
|
80
|
+
- Check dependent workloads before deletion to avoid service impact.
|
|
81
|
+
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# DaemonSets
|
|
2
|
+
This document explains how to operate DaemonSets through kop.
|
|
3
|
+
|
|
4
|
+
## Binding keys
|
|
5
|
+
Available shortcuts for DaemonSet-related operations are shown in the Footer area at the bottom of the page. Available actions may vary slightly by context; always use the real-time prompts in the Footer as the source of truth.
|
|
6
|
+
|
|
7
|
+
| Key | Action |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `d` | Delete DaemonSet |
|
|
10
|
+
| `e` | Edit DaemonSet |
|
|
11
|
+
| `r` | Restart DaemonSet |
|
|
12
|
+
| `n` | Next Page |
|
|
13
|
+
| `p` | Previous Page |
|
|
14
|
+
|
|
15
|
+
> Some `keys` are shown in the Footer only under specific conditions. For example, `n` and `p` are displayed only when the total number of resources exceeds the current screen height.
|
|
16
|
+
|
|
17
|
+
## Actions
|
|
18
|
+
The following sections describe what each action does and how to use it.
|
|
19
|
+
|
|
20
|
+
### Restart DaemonSet
|
|
21
|
+
Triggers a rolling restart for the selected DaemonSet.
|
|
22
|
+
|
|
23
|
+
**Steps:**
|
|
24
|
+
|
|
25
|
+
1. In the left resource navigator, go to `DaemonSets`.
|
|
26
|
+
2. Select the target DaemonSet in the list.
|
|
27
|
+
3. Press `r` to trigger restart.
|
|
28
|
+
4. Confirm the action in the prompt.
|
|
29
|
+
5. Monitor Pod replacement progress on each node.
|
|
30
|
+
|
|
31
|
+
**Notes:**
|
|
32
|
+
|
|
33
|
+
- Restart updates the Pod template restart annotation and performs a rolling replacement.
|
|
34
|
+
- During rolling restart, old and new Pods may coexist briefly.
|
|
35
|
+
|
|
36
|
+
### Edit DaemonSet
|
|
37
|
+
Edits the DaemonSet YAML configuration and submits changes.
|
|
38
|
+
|
|
39
|
+
**Steps:**
|
|
40
|
+
|
|
41
|
+
1. In the left resource navigator, go to `DaemonSets`.
|
|
42
|
+
2. Select the target DaemonSet in the list.
|
|
43
|
+
3. Press `e` to open the YAML editor view.
|
|
44
|
+
4. Modify the content and save to submit.
|
|
45
|
+
|
|
46
|
+
**Notes:**
|
|
47
|
+
|
|
48
|
+
- Invalid or immutable field changes are rejected by the Kubernetes API.
|
|
49
|
+
- If an update fails, adjust based on the error message and retry.
|
|
50
|
+
- `Edit DaemonSet` opens in the `Action Workspace`. See [Action Workspace](../tutorial.md#action-workspace) for details.
|
|
51
|
+
|
|
52
|
+
### Delete DaemonSet
|
|
53
|
+
Deletes the currently selected DaemonSet resource.
|
|
54
|
+
|
|
55
|
+
**Steps:**
|
|
56
|
+
|
|
57
|
+
1. Select the target DaemonSet in the `DaemonSets` list.
|
|
58
|
+
2. Press `d` to trigger deletion.
|
|
59
|
+
3. Confirm the action in the prompt.
|
|
60
|
+
|
|
61
|
+
**Notes:**
|
|
62
|
+
|
|
63
|
+
- Deletion removes the selected DaemonSet object from the cluster.
|
|
64
|
+
- Check dependent workloads before deletion to avoid service impact.
|
|
65
|
+
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Deployments
|
|
2
|
+
This document explains how to operate Deployments through kop.
|
|
3
|
+
|
|
4
|
+
## Binding keys
|
|
5
|
+
Available shortcuts for Deployment-related operations are shown in the Footer area at the bottom of the page. Available actions may vary slightly by context; always use the real-time prompts in the Footer as the source of truth.
|
|
6
|
+
|
|
7
|
+
| Key | Action |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `d` | Delete Deployment |
|
|
10
|
+
| `e` | Edit Deployment |
|
|
11
|
+
| `n` | Next Page |
|
|
12
|
+
| `p` | Previous Page |
|
|
13
|
+
| `r` | Restart Deployment |
|
|
14
|
+
| `s` | Scale Deployment |
|
|
15
|
+
|
|
16
|
+
> Some `keys` are shown in the Footer only under specific conditions. For example, `n` and `p` are displayed only when the total number of resources exceeds the current screen height.
|
|
17
|
+
|
|
18
|
+
## Actions
|
|
19
|
+
The following sections describe what each action does and how to use it.
|
|
20
|
+
|
|
21
|
+
### Scale Deployment
|
|
22
|
+
Scales the number of desired replicas for the selected Deployment.
|
|
23
|
+
|
|
24
|
+
**Steps:**
|
|
25
|
+
|
|
26
|
+
1. In the left resource navigator, go to `Deployments`.
|
|
27
|
+
2. Select the target Deployment in the list.
|
|
28
|
+
3. Press `s` to open the scale dialog.
|
|
29
|
+
4. Enter the target replica count and confirm.
|
|
30
|
+
5. Monitor Pod rollout status until the desired state is reached.
|
|
31
|
+
|
|
32
|
+
**Notes:**
|
|
33
|
+
|
|
34
|
+
- Scaling up creates more Pods; scaling down removes Pods.
|
|
35
|
+
- Make sure cluster capacity and workload requirements match the target replica count.
|
|
36
|
+
|
|
37
|
+
### Restart Deployment
|
|
38
|
+
Triggers a rolling restart for the selected Deployment.
|
|
39
|
+
|
|
40
|
+
**Steps:**
|
|
41
|
+
|
|
42
|
+
1. Select the target Deployment in the `Deployments` list.
|
|
43
|
+
2. Press `r` to trigger restart.
|
|
44
|
+
3. Confirm the action in the prompt.
|
|
45
|
+
4. Monitor rollout progress and Pod readiness.
|
|
46
|
+
|
|
47
|
+
**Notes:**
|
|
48
|
+
|
|
49
|
+
- Restart updates the Pod template restart annotation and performs a rolling replacement.
|
|
50
|
+
- During rolling restart, old and new Pods may coexist briefly.
|
|
51
|
+
|
|
52
|
+
### Edit Deployment
|
|
53
|
+
Edits the Deployment YAML configuration and submits changes.
|
|
54
|
+
|
|
55
|
+
**Steps:**
|
|
56
|
+
|
|
57
|
+
1. Select the target Deployment.
|
|
58
|
+
2. Press `e` to open the YAML editor view.
|
|
59
|
+
3. Modify the content and save to submit.
|
|
60
|
+
|
|
61
|
+
**Notes:**
|
|
62
|
+
|
|
63
|
+
- Invalid or immutable field changes are rejected by the Kubernetes API.
|
|
64
|
+
- If an update fails, adjust based on the error message and retry.
|
|
65
|
+
- `Edit Deployment` opens in the `Action Workspace`. See [Action Workspace](../tutorial.md#action-workspace) for details.
|
|
66
|
+
|
|
67
|
+
### Delete Deployment
|
|
68
|
+
Deletes the currently selected Deployment resource.
|
|
69
|
+
|
|
70
|
+
**Steps:**
|
|
71
|
+
|
|
72
|
+
1. Select the target Deployment in the `Deployments` list.
|
|
73
|
+
2. Press `d` to trigger deletion.
|
|
74
|
+
3. Confirm the action in the prompt.
|
|
75
|
+
|
|
76
|
+
**Notes:**
|
|
77
|
+
|
|
78
|
+
- Deleting a Deployment stops controller management for its Pods.
|
|
79
|
+
- ReplicaSet and Pod cleanup behavior depends on the deletion policy and current cluster state.
|