Skip to content

Commit

Permalink
Fixes #249: Update Helm example in chapter 16.
Browse files Browse the repository at this point in the history
  • Loading branch information
geerlingguy committed Jul 21, 2020
1 parent efc0786 commit 13ee874
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 93 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -8,3 +8,4 @@ test.sh

*/roles/geerlingguy.*
*/provisioning/roles/geerlingguy.*
*/collections/ansible_collections/community/*
39 changes: 5 additions & 34 deletions kubernetes/examples/helm-cleanup.yml
Expand Up @@ -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:
state: absent
definition: "{{ lookup('file', 'files/tiller-rbac.yml') | from_yaml }}"

- name: Remove Tiller ServiceAccount.
k8s:
- name: Remove phpMyAdmin with Helm.
community.kubernetes.helm:
name: phpmyadmin
chart_ref: bitnami/phpmyadmin
release_namespace: default
state: absent
api_version: v1
kind: ServiceAccount
name: tiller
namespace: kube-system

- name: Delete helm binary.
file:
Expand Down
77 changes: 21 additions & 56 deletions kubernetes/examples/helm.yml
Expand Up @@ -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
- 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
command: cp /tmp/linux-amd64/helm /usr/local/bin/helm
args:
creates: /usr/local/bin/helm

- 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
Expand Down
10 changes: 7 additions & 3 deletions kubernetes/requirements.yml
@@ -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

0 comments on commit 13ee874

Please sign in to comment.