openstack-helm-infra/roles/deploy-env/tasks/k8s_client.yaml
Vladimir Kozhukalov 10583bc269 Update deploy-env role to support root user
Change-Id: I4126155eec03677cf29edfb47e80f54ab501705d
2024-06-13 15:05:54 -05:00

71 lines
2.2 KiB
YAML

# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
- name: Install Kubectl
apt:
state: present
update_cache: true
allow_downgrade: true
pkg:
- "kubectl={{ kube_version }}"
- name: Set user home directory
set_fact:
user_home_directory: /home/{{ kubectl.user }}
when: kubectl.user != "root"
- name: Set root home directory
set_fact:
user_home_directory: /root
when: kubectl.user == "root"
- name: "Setup kubeconfig directory for {{ kubectl.user }} user"
shell: |
mkdir -p {{ user_home_directory }}/.kube
- name: "Copy kube_config file for {{ kubectl.user }} user"
synchronize:
src: /tmp/kube_config
dest: "{{ user_home_directory }}/.kube/config"
- name: "Set kubconfig file ownership for {{ kubectl.user }} user"
shell: |
chown -R {{ kubectl.user }}:{{ kubectl.group }} /home/{{ kubectl.user }}/.kube
- name: Deploy Helm
block:
- name: Install Helm
shell: |
TMP_DIR=$(mktemp -d)
curl -sSL https://get.helm.sh/helm-{{ helm_version }}-linux-amd64.tar.gz | tar -zxv --strip-components=1 -C ${TMP_DIR}
mv "${TMP_DIR}"/helm /usr/local/bin/helm
rm -rf "${TMP_DIR}"
args:
executable: /bin/bash
- name: Install osh helm plugin
become_user: "{{ kubectl.user }}"
shell: |
helm plugin install {{ osh_plugin_repo }}
# This is to improve build time
- name: Remove stable Helm repo
become_user: "{{ kubectl.user }}"
command: helm repo remove stable
ignore_errors: true
- name: Untaint Kubernetes control plane node
become: false
command: kubectl taint nodes -l 'node-role.kubernetes.io/control-plane' node-role.kubernetes.io/control-plane-
...