action #112457
Updated by ilausuch about 2 years ago
Kubernetes client is part of Containers Module since 15-SP1.
From [scc.suse.com](scc.suse.com):
```
kubernetes-client 1.17.4-4.18.1 Apache-2.0 Containers Module 15 SP1
kubernetes1.18-client 1.18.10-5.5.1 Apache-2.0 Containers Module 15 SP2
kubernetes1.18-client 1.18.10-5.5.1 Apache-2.0 Containers Module 15 SP3
kubernetes1.18-client 1.18.10-5.5.1 Apache-2.0 Containers Module 15 SP4
```
The goal is to have proper coverage for `kubectl` exercising all the command options that the CLI provides.
We could run validation of the client against several K8S environments (EKS, , similar to what we do for Helm tests.
There is already some basic smoke test for `kubectl` here:
https://github.com/os-autoinst/os-autoinst-distri-opensuse/blob/master/lib/rancher/utils.pm#L39
```
sub kubectl_basic_test {
assert_script_run "kubectl get pod --all-namespaces -o wide";
assert_script_run "kubectl get service --all-namespaces -o wide";
assert_script_run "kubectl get namespaces --all-namespaces -o wide";
assert_script_run "kubectl get endpoints --all-namespaces -o wide";
assert_script_run "kubectl get deployments --all-namespaces -o wide";
assert_script_run "kubectl get replicasets --all-namespaces -o wide";
assert_script_run "kubectl get ingresses --all-namespaces -o wide";
assert_script_run "kubectl cluster-info";
}
```
This could be used as a base.
There is also a method in `lib` directory to install it in SLE/openSUSE:
https://github.com/os-autoinst/os-autoinst-distri-opensuse/blob/master/lib/containers/k8s.pm#L38
## Acceptance criteria:
New test module(s) for SLE 15-SP1+ and openSUSE to cover `kubectl` command line operations with real Kubernetes environments.
* **AC 1**: Get (get) operation (namespace, deployment, replicaset, pod, job, cronjob, service, ingresses, pc, pvc, secrets, configmaps, endpoints)
* **AC 2**: Describe (describe) operations (the same than in AC 1)
* **AC 3**: Queries get operations
* **AC 4**: Filtering over describe operations (for instance on configmaps or pod status)
* **AC 5**: Creation, delete, list and change of namespaces