Project

General

Profile

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

Back