# Copyright (c) 2022 VEXXHOST, Inc.
#
# 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: Add apt key
  ansible.builtin.apt_key:
    url: "{{ helm_repository_apt_key }}"
    state: present

- name: Configure version pinning
  ansible.builtin.template:
    src: apt-preferences.j2
    dest: /etc/apt/preferences.d/helm
    mode: "0644"

- name: Add package repository
  ansible.builtin.apt_repository:
    repo: "deb {{ helm_repository_url }} all main"
    state: present

- name: Install packages
  ansible.builtin.apt:
    name: ["git", "helm"]
    install_recommends: false

- name: Add bash autocomplete for helm
  ansible.builtin.lineinfile:
    path: /root/.bashrc
    line: 'source <(helm completion bash)'
    insertbefore: EOF
