mirror of
https://github.com/geerlingguy/ansible-for-devops.git
synced 2024-05-19 06:50:03 +00:00
Fixes #249: Update Helm example in chapter 16.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@ -8,3 +8,4 @@ test.sh
|
||||
|
||||
*/roles/geerlingguy.*
|
||||
*/provisioning/roles/geerlingguy.*
|
||||
*/collections/ansible_collections/community/*
|
||||
|
@ -3,41 +3,12 @@
|
||||
become: yes
|
||||
|
||||
tasks:
|
||||
- name: Get Tiller's ClusterIP.
|
||||
k8s:
|
||||
api_version: v1
|
||||
kind: Service
|
||||
name: tiller-deploy
|
||||
namespace: kube-system
|
||||
register: tiller_service
|
||||
|
||||
- name: Set the Helm host and port.
|
||||
set_fact:
|
||||
helm_host: "{{ tiller_service.result.spec.clusterIP }}"
|
||||
helm_port: "{{ tiller_service.result.spec.ports[0].port }}"
|
||||
|
||||
- name: Delete phpmyadmin using helm.
|
||||
command: helm delete --purge phpmyadmin
|
||||
environment:
|
||||
HELM_HOST: '{{ helm_host }}:{{ helm_port }}'
|
||||
|
||||
- name: Reset Helm.
|
||||
command: helm reset --force
|
||||
environment:
|
||||
HELM_HOST: '{{ helm_host }}:{{ helm_port }}'
|
||||
|
||||
- name: Remove Tiller RBAC definition.
|
||||
k8s:
|
||||
- name: Remove phpMyAdmin with Helm.
|
||||
community.kubernetes.helm:
|
||||
name: phpmyadmin
|
||||
chart_ref: bitnami/phpmyadmin
|
||||
release_namespace: default
|
||||
state: absent
|
||||
definition: "{{ lookup('file', 'files/tiller-rbac.yml') | from_yaml }}"
|
||||
|
||||
- name: Remove Tiller ServiceAccount.
|
||||
k8s:
|
||||
state: absent
|
||||
api_version: v1
|
||||
kind: ServiceAccount
|
||||
name: tiller
|
||||
namespace: kube-system
|
||||
|
||||
- name: Delete helm binary.
|
||||
file:
|
||||
|
@ -3,74 +3,39 @@
|
||||
become: yes
|
||||
|
||||
tasks:
|
||||
- name: Create Tiller ServiceAccount.
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: tiller
|
||||
namespace: kube-system
|
||||
|
||||
- name: Apply Tiller RBAC definition.
|
||||
k8s:
|
||||
state: present
|
||||
definition: "{{ lookup('file', 'files/tiller-rbac.yml') | from_yaml }}"
|
||||
|
||||
- name: Retrieve helm binary archive.
|
||||
unarchive:
|
||||
src: https://storage.googleapis.com/kubernetes-helm/helm-v2.10.0-linux-amd64.tar.gz
|
||||
src: https://get.helm.sh/helm-v3.2.1-linux-amd64.tar.gz
|
||||
dest: /tmp
|
||||
creates: /usr/local/bin/helm
|
||||
remote_src: yes
|
||||
|
||||
- name: Move helm binary into place.
|
||||
command: >
|
||||
cp /tmp/linux-amd64/helm /usr/local/bin/helm
|
||||
creates=/usr/local/bin/helm
|
||||
command: cp /tmp/linux-amd64/helm /usr/local/bin/helm
|
||||
args:
|
||||
creates: /usr/local/bin/helm
|
||||
|
||||
- name: Set up Helm and Tiller.
|
||||
command: helm init --service-account tiller
|
||||
register: helm_init_result
|
||||
changed_when: "'already installed' not in helm_init_result.stdout"
|
||||
|
||||
- name: Get Tiller's ClusterIP.
|
||||
k8s:
|
||||
api_version: v1
|
||||
kind: Service
|
||||
name: tiller-deploy
|
||||
namespace: kube-system
|
||||
register: tiller_service
|
||||
|
||||
- name: Set the Helm host and port.
|
||||
set_fact:
|
||||
helm_host: "{{ tiller_service.result.spec.clusterIP }}"
|
||||
helm_port: "{{ tiller_service.result.spec.ports[0].port }}"
|
||||
|
||||
- name: Wait for Tiller to become responsive.
|
||||
wait_for:
|
||||
host: '{{ helm_host }}'
|
||||
port: '{{ helm_port }}'
|
||||
state: started
|
||||
|
||||
- name: List installed Helm charts.
|
||||
command: helm list
|
||||
environment:
|
||||
HELM_HOST: '{{ helm_host }}:{{ helm_port }}'
|
||||
register: helm_list_results
|
||||
changed_when: False
|
||||
- name: Add Bitnami's chart repository.
|
||||
community.kubernetes.helm_repository:
|
||||
name: bitnami
|
||||
repo_url: "https://charts.bitnami.com/bitnami"
|
||||
|
||||
- name: Install phpMyAdmin with Helm.
|
||||
command: >
|
||||
helm install --name phpmyadmin stable/phpmyadmin
|
||||
--set service.type=NodePort
|
||||
environment:
|
||||
HELM_HOST: '{{ helm_host }}:{{ helm_port }}'
|
||||
when: "'phpmyadmin' not in helm_list_results.stdout"
|
||||
community.kubernetes.helm:
|
||||
name: phpmyadmin
|
||||
chart_ref: bitnami/phpmyadmin
|
||||
release_namespace: default
|
||||
values:
|
||||
service:
|
||||
type: NodePort
|
||||
|
||||
- name: Ensure K8s module dependencies are installed.
|
||||
pip:
|
||||
name: openshift
|
||||
state: present
|
||||
|
||||
- name: Get the details of the phpmyadmin Service.
|
||||
k8s:
|
||||
community.kubernetes.k8s:
|
||||
api_version: v1
|
||||
kind: Service
|
||||
name: phpmyadmin
|
||||
|
@ -1,4 +1,8 @@
|
||||
---
|
||||
- src: geerlingguy.swap
|
||||
- src: geerlingguy.docker
|
||||
- src: geerlingguy.kubernetes
|
||||
roles:
|
||||
- name: geerlingguy.swap
|
||||
- name: geerlingguy.docker
|
||||
- name: geerlingguy.kubernetes
|
||||
|
||||
collections:
|
||||
- name: community.kubernetes
|
||||
|
Reference in New Issue
Block a user