Manage manifests with k8s module

This commit is contained in:
Paul-Henri Froidmont 2019-08-17 02:29:58 +02:00
parent 6ffa138ab1
commit 5955b3ac42
6 changed files with 64 additions and 78 deletions

View file

@ -1,4 +1,4 @@
- hosts: k8s-cluster - hosts: kube-master[0]
gather_facts: no
roles: roles:
- role: k8s-manifests - role: k8s-manifests

View file

@ -1,37 +1,5 @@
--- ---
- name: Kubernetes manifests | Lay down letsencrypt templates - include: prerequisites.yml
template: tags: prerequisites
src: "{{ item }}.j2"
dest: "{{ kube_config_dir }}/{{ item }}"
loop:
- letsencrypt-production-issuer.yml
- letsencrypt-staging-issuer.yml
register: manifests
when: inventory_hostname == groups['kube-master'][0]
- name: Kubernetes manifests | Start letsencrypt issuers - include: searx.yml
kube:
kubectl: "{{ bin_dir }}/kubectl"
filename: "{{ kube_config_dir }}/{{ item.item }}"
state: latest
loop: "{{ manifests.results }}"
when: inventory_hostname == groups['kube-master'][0]
- name: Kubernetes manifests | Lay down searx templates
template:
src: "{{ item }}.j2"
dest: "{{ kube_config_dir }}/{{ item }}"
loop:
- searx-deployment.yml
- searx-svc.yml
- searx-ingress.yml
register: manifests
when: inventory_hostname == groups['kube-master'][0]
- name: Kubernetes manifests | Start searx
kube:
kubectl: "{{ bin_dir }}/kubectl"
filename: "{{ kube_config_dir }}/{{ item.item }}"
state: latest
loop: "{{ manifests.results }}"
when: inventory_hostname == groups['kube-master'][0]

View file

@ -0,0 +1,9 @@
- name: Install pip
package:
name: python3-pip
state: present
- name: Install openshift python client
pip:
name: openshift
state: present

View file

@ -0,0 +1,50 @@
- name: Searx deployment
k8s:
namespace: default
state: present
definition:
apiVersion: apps/v1
kind: Deployment
metadata:
name: searx
spec:
replicas: 2
selector:
matchLabels:
app: searx
template:
metadata:
labels:
app: searx
spec:
containers:
- name: searx
image: wonderfall/searx:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8888
livenessProbe:
httpGet:
path: /
port: 8888
readinessProbe:
httpGet:
path: /
port: 8888
- name: Searx service
k8s:
namespace: default
state: present
definition:
apiVersion: v1
kind: Service
metadata:
name: searx
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 8888
selector:
app: searx

View file

@ -1,29 +0,0 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: searx
spec:
replicas: 2
selector:
matchLabels:
app: searx
template:
metadata:
labels:
app: searx
spec:
containers:
- name: searx
image: wonderfall/searx:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8888
livenessProbe:
httpGet:
path: /
port: 8888
readinessProbe:
httpGet:
path: /
port: 8888

View file

@ -1,12 +0,0 @@
---
apiVersion: v1
kind: Service
metadata:
name: searx
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 8888
selector:
app: searx