From e2b009b1c28575e34904b9f2275ced1c4ec06fec Mon Sep 17 00:00:00 2001 From: Bartek Grzybowski Date: Tue, 15 Sep 2020 16:51:24 +0200 Subject: Add feature to install shell autocompletion for kubectl Change-Id: I732dcd92144f9a8489a351047ab88b53ca36759e Issue-ID: OOM-2564 Signed-off-by: Bartek Grzybowski --- ansible/roles/kubectl/defaults/main.yml | 2 ++ .../kubectl/molecule/default/tests/test_default.py | 4 ++++ ansible/roles/kubectl/tasks/main.yml | 22 ++++++++++++++++++++++ build/data_lists/onap_deb.list | 1 + build/data_lists/onap_rpm.list | 1 + 5 files changed, 30 insertions(+) diff --git a/ansible/roles/kubectl/defaults/main.yml b/ansible/roles/kubectl/defaults/main.yml index b922fb58..5c2a4c69 100644 --- a/ansible/roles/kubectl/defaults/main.yml +++ b/ansible/roles/kubectl/defaults/main.yml @@ -1,2 +1,4 @@ --- kubectl_bin_dir: /usr/local/bin +completion_dir: /etc/bash_completion.d +completion_package: bash-completion diff --git a/ansible/roles/kubectl/molecule/default/tests/test_default.py b/ansible/roles/kubectl/molecule/default/tests/test_default.py index 4f799b95..3f4c7c7d 100644 --- a/ansible/roles/kubectl/molecule/default/tests/test_default.py +++ b/ansible/roles/kubectl/molecule/default/tests/test_default.py @@ -9,3 +9,7 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( def test_kubectl(host): assert host.file('/usr/local/bin/kubectl').exists assert host.run('kubectl').rc != 127 + + +def test_kubectl_bash_completion(host): + assert host.file('/etc/bash_completion.d/kubectl').exists diff --git a/ansible/roles/kubectl/tasks/main.yml b/ansible/roles/kubectl/tasks/main.yml index 7c77c3c5..03b9f9b0 100644 --- a/ansible/roles/kubectl/tasks/main.yml +++ b/ansible/roles/kubectl/tasks/main.yml @@ -5,3 +5,25 @@ dest: "{{ kubectl_bin_dir }}/kubectl" remote_src: true mode: 0755 + +- name: Install completion for the bash shell + package: + name: "{{ completion_package }}" + state: present + +- name: Generate shell autocompletion code for kubectl + command: kubectl completion bash + register: kubectl_completion + changed_when: false + +- name: Ensure bash completion dir exists + file: + path: "{{ completion_dir }}" + state: directory + mode: 0755 + +- name: Install bash autocompletion code for kubectl + copy: + content: "{{ kubectl_completion.stdout }}" + dest: "{{ completion_dir }}/kubectl" + mode: 0644 diff --git a/build/data_lists/onap_deb.list b/build/data_lists/onap_deb.list index fcc6391d..44ccf600 100644 --- a/build/data_lists/onap_deb.list +++ b/build/data_lists/onap_deb.list @@ -55,3 +55,4 @@ libc-dev make binutils resolvconf +bash-completion diff --git a/build/data_lists/onap_rpm.list b/build/data_lists/onap_rpm.list index c369de08..b906e036 100644 --- a/build/data_lists/onap_rpm.list +++ b/build/data_lists/onap_rpm.list @@ -1,4 +1,5 @@ audit-libs-python-2.8.4-4.el7.x86_64 +bash-completion-2.1-8.el7.noarch checkpolicy-2.5-8.el7.x86_64 containerd.io-1.2.5-3.1.el7.x86_64 container-selinux-2.107-1.el7_6.noarch -- cgit 1.2.3-korg