diff --git a/docs/vars.md b/docs/vars.md index 3431d519499c2a14ea3c6a557a4992f6e9a5915b..36dd3621da9d79d48979554f87dd30ac12f0e316 100644 --- a/docs/vars.md +++ b/docs/vars.md @@ -271,6 +271,7 @@ node_taints: * `audit_webhook_mode`: batch * `audit_webhook_batch_max_size`: 100 * `audit_webhook_batch_max_wait`: 1s +* *kubectl_alias* - Bash alias of kubectl to interact with Kubernetes cluster much easier. ### Custom flags for Kube Components diff --git a/roles/kubernetes/control-plane/defaults/main/main.yml b/roles/kubernetes/control-plane/defaults/main/main.yml index 2a9eda14a51d12a6e71c2293445974140013779b..4a9800a65034b39f00ace480b6041cfc820e9fcb 100644 --- a/roles/kubernetes/control-plane/defaults/main/main.yml +++ b/roles/kubernetes/control-plane/defaults/main/main.yml @@ -228,3 +228,6 @@ auto_renew_certificates_systemd_calendar: "{{ 'Mon *-*-1,2,3,4,5,6,7 03:' ~ # If we have requirement like without renewing certs upgrade the cluster, # we can opt out from the default behavior by setting kubeadm_upgrade_auto_cert_renewal to false kubeadm_upgrade_auto_cert_renewal: true + +# Bash alias of kubectl to interact with Kubernetes cluster much easier +# kubectl_alias: k diff --git a/roles/kubernetes/control-plane/tasks/main.yml b/roles/kubernetes/control-plane/tasks/main.yml index 4f251a89bad753c9f8c633f2b13690c62faea570..8f57a04b41ec30adb1f930238e4cc998974a6500 100644 --- a/roles/kubernetes/control-plane/tasks/main.yml +++ b/roles/kubernetes/control-plane/tasks/main.yml @@ -60,6 +60,26 @@ - upgrade ignore_errors: true # noqa ignore-errors +- name: Set bash alias for kubectl + blockinfile: + path: /etc/bash_completion.d/kubectl.sh + block: |- + alias {{ kubectl_alias }}=kubectl + if [[ $(type -t compopt) = "builtin" ]]; then + complete -o default -F __start_kubectl {{ kubectl_alias }} + else + complete -o default -o nospace -F __start_kubectl {{ kubectl_alias }} + fi + state: present + marker: "# Ansible entries {mark}" + when: + - ansible_os_family in ["Debian","RedHat"] + - kubectl_alias is defined and kubectl_alias != "" + tags: + - kubectl + - upgrade + ignore_errors: true # noqa ignore-errors + - name: Disable SecurityContextDeny admission-controller and enable PodSecurityPolicy set_fact: kube_apiserver_enable_admission_plugins: "{{ kube_apiserver_enable_admission_plugins | difference(['SecurityContextDeny']) | union(['PodSecurityPolicy']) | unique }}"