Feature/awx
parent
7632da1019
commit
88a0e6397f
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
awx_operator_version: "0.12.0"
|
||||||
|
awx_operator_url: "https://raw.githubusercontent.com/ansible/awx-operator/{{ awx_operator_version }}/deploy/awx-operator.yaml"
|
||||||
|
kubernetes_awx_namespace: "awx-test"
|
||||||
|
kubernetes_awx_postgres_volume_size: "50Gi"
|
||||||
|
kubernetes_awx_postgres_volume_accessMode: "ReadWriteOnce"
|
||||||
|
kubernetes_awx_postgres_volume_path: "/mnt/data/postgres"
|
||||||
|
kubernetes_awx_postgres_pvc_size: "50Gi"
|
||||||
|
kubernetes_awx_postgres_pvc_accessMode: "ReadWriteOnce"
|
||||||
|
kubernetes_awx_project_volume_size: "10Gi"
|
||||||
|
kubernetes_awx_project_volume_accessMode: "ReadWriteOnce"
|
||||||
|
kubernetes_awx_project_volume_path: "/mnt/data/project"
|
||||||
|
kubernetes_awx_project_pvc_size: "10Gi"
|
||||||
|
kubernetes_awx_project_pvc_accessMode: "ReadWriteOnce"
|
||||||
|
kubernetes_awx_service_port: "80"
|
||||||
|
kubernetes_awx_service_targetPort: "80"
|
||||||
|
awx_admin_password: "awx-admin"
|
||||||
@ -0,0 +1 @@
|
|||||||
|
---
|
||||||
@ -0,0 +1 @@
|
|||||||
|
---
|
||||||
@ -0,0 +1,106 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: "Install Pip3 for {{ service_name }}"
|
||||||
|
apt:
|
||||||
|
name: python3-pip
|
||||||
|
state: present
|
||||||
|
become: True
|
||||||
|
tags:
|
||||||
|
- kube_apply
|
||||||
|
|
||||||
|
- name: "Install Kubernetes over Pip3 for {{ service_name }}"
|
||||||
|
pip:
|
||||||
|
name: kubernetes
|
||||||
|
state: present
|
||||||
|
become: True
|
||||||
|
tags:
|
||||||
|
- kube_apply
|
||||||
|
|
||||||
|
- name: "Install and Setup Kubernetes (Single node, Master-only cluster) for {{ service_name }}"
|
||||||
|
include_role:
|
||||||
|
name: geerlingguy.kubernetes
|
||||||
|
vars:
|
||||||
|
kubernetes_allow_pods_on_master: true
|
||||||
|
tags:
|
||||||
|
- kube_install
|
||||||
|
|
||||||
|
- name: "Download AWX {{ awx_operator_version }} to Kubernetes Template for {{ service_name }}"
|
||||||
|
get_url:
|
||||||
|
url: "{{ awx_operator_url }}"
|
||||||
|
dest: /tmp/awx-operator.yaml
|
||||||
|
mode: '0664'
|
||||||
|
tags:
|
||||||
|
- kube_apply
|
||||||
|
|
||||||
|
- name: "Apply AWX {{ awx_operator_version }} to Kubernetes {{ service_name }}"
|
||||||
|
k8s:
|
||||||
|
state: present
|
||||||
|
src: /tmp/awx-operator.yaml
|
||||||
|
namespace: default
|
||||||
|
wait: yes
|
||||||
|
wait_timeout: 300
|
||||||
|
tags:
|
||||||
|
- kube_apply
|
||||||
|
|
||||||
|
- name: "Ensure that postgres volume directory exists for {{ service_name }}"
|
||||||
|
file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
owner: 'root'
|
||||||
|
group: 'root'
|
||||||
|
loop:
|
||||||
|
- "{{ kubernetes_awx_postgres_volume_path }}"
|
||||||
|
- "{{ kubernetes_awx_project_volume_path }}"
|
||||||
|
tags:
|
||||||
|
- kube_apply
|
||||||
|
|
||||||
|
- name: "Copy Deployment Template for {{ service_name }}"
|
||||||
|
template:
|
||||||
|
src: awx-deployment.yml.j2
|
||||||
|
dest: /tmp/awx-deployment.yml
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
tags:
|
||||||
|
- kube_apply
|
||||||
|
|
||||||
|
- name: "Create a AWX k8s namespace for {{ service_name }}"
|
||||||
|
k8s:
|
||||||
|
name: "{{ kubernetes_awx_namespace }}"
|
||||||
|
api_version: v1
|
||||||
|
kind: Namespace
|
||||||
|
state: present
|
||||||
|
tags:
|
||||||
|
- kube_apply
|
||||||
|
|
||||||
|
- name: "Apply AWX Deployment for {{ service_name }}"
|
||||||
|
k8s:
|
||||||
|
state: present
|
||||||
|
src: /tmp/awx-deployment.yml
|
||||||
|
namespace: "{{ kubernetes_awx_namespace }}"
|
||||||
|
wait: yes
|
||||||
|
wait_timeout: 300
|
||||||
|
tags:
|
||||||
|
- kube_apply
|
||||||
|
|
||||||
|
- name: "Cleanup for {{ service_name }}"
|
||||||
|
file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: absent
|
||||||
|
loop:
|
||||||
|
- /tmp/awx-operator.yaml
|
||||||
|
- /tmp/awx-deployment.yml
|
||||||
|
tags:
|
||||||
|
- kube_apply
|
||||||
|
|
||||||
|
- name: "Wait for AWX service {{ service_name }}"
|
||||||
|
uri:
|
||||||
|
url: "http://{{ stage_server_ip }}:{{ kubernetes_awx_service_port }}"
|
||||||
|
status_code: 200
|
||||||
|
validate_certs: False
|
||||||
|
register: result
|
||||||
|
until: result.status == 200
|
||||||
|
retries: 60
|
||||||
|
delay: 20
|
||||||
|
tags:
|
||||||
|
- kube_apply
|
||||||
@ -0,0 +1,97 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: postgres-awx-volume
|
||||||
|
namespace: {{ kubernetes_awx_namespace }}
|
||||||
|
labels:
|
||||||
|
type: local
|
||||||
|
spec:
|
||||||
|
storageClassName: manual
|
||||||
|
capacity:
|
||||||
|
storage: {{ kubernetes_awx_postgres_volume_size }}
|
||||||
|
accessModes:
|
||||||
|
- {{ kubernetes_awx_postgres_volume_accessMode }}
|
||||||
|
hostPath:
|
||||||
|
path: "{{ kubernetes_awx_postgres_volume_path }}"
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: awx-project-volume
|
||||||
|
namespace: {{ kubernetes_awx_namespace }}
|
||||||
|
labels:
|
||||||
|
type: local
|
||||||
|
spec:
|
||||||
|
storageClassName: manual
|
||||||
|
capacity:
|
||||||
|
storage: {{ kubernetes_awx_project_volume_size }}
|
||||||
|
accessModes:
|
||||||
|
- {{ kubernetes_awx_project_volume_accessMode }}
|
||||||
|
hostPath:
|
||||||
|
path: "{{ kubernetes_awx_project_volume_path }}"
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: postgres-awx-postgres-0
|
||||||
|
namespace: {{ kubernetes_awx_namespace }}
|
||||||
|
spec:
|
||||||
|
storageClassName: manual
|
||||||
|
accessModes:
|
||||||
|
- {{ kubernetes_awx_postgres_pvc_accessMode }}
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: {{ kubernetes_awx_postgres_pvc_size }}
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: awx-project-claim-0
|
||||||
|
namespace: {{ kubernetes_awx_namespace }}
|
||||||
|
spec:
|
||||||
|
storageClassName: manual
|
||||||
|
accessModes:
|
||||||
|
- {{ kubernetes_awx_project_pvc_accessMode }}
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: {{ kubernetes_awx_project_pvc_size }}
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: awx.ansible.com/v1beta1
|
||||||
|
kind: AWX
|
||||||
|
metadata:
|
||||||
|
name: awx
|
||||||
|
namespace: {{ kubernetes_awx_namespace }}
|
||||||
|
spec:
|
||||||
|
projects_persistence: true
|
||||||
|
projects_existing_claim: awx-project-claim-0
|
||||||
|
projects_storage_access_mode: {{ kubernetes_awx_project_pvc_accessMode }}
|
||||||
|
projects_storage_size: {{ kubernetes_awx_project_pvc_size }}
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: awx-service
|
||||||
|
namespace: {{ kubernetes_awx_namespace }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
protocol: TCP
|
||||||
|
port: {{ kubernetes_awx_service_port }}
|
||||||
|
targetPort: {{ kubernetes_awx_service_targetPort }}
|
||||||
|
externalIPs:
|
||||||
|
- {{ stage_server_ip }}
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: awx-admin-password
|
||||||
|
namespace: {{ kubernetes_awx_namespace }}
|
||||||
|
stringData:
|
||||||
|
password: {{ awx_admin_password }}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
---
|
||||||
Loading…
Reference in New Issue