Add scalable cluster kubernetes support

This commit is contained in:
Matthew Jones 2018-01-11 12:16:14 -05:00
parent 6e9930a45f
commit 6a85fc38dd
No known key found for this signature in database
GPG Key ID: 76A4C17A97590C1C
4 changed files with 82 additions and 3 deletions

View File

@ -96,6 +96,12 @@
path: "{{ kubernetes_base_path }}"
state: directory
- name: Template Kubernetes AWX etcd2
template:
src: etcd.yml.j2
dest: "{{ kubernetes_base_path }}/etcd.yml"
mode: '0600'
- name: Template Kubernetes AWX Config
template:
src: configmap.yml.j2
@ -108,6 +114,9 @@
dest: "{{ kubernetes_base_path }}/deployment.yml"
mode: '0600'
- name: Apply etcd deployment
shell: "kubectl apply -f {{ kubernetes_base_path }}/etcd.yml"
- name: Apply Configmap
shell: "kubectl apply -f {{ kubernetes_base_path }}/configmap.yml"

View File

@ -13,6 +13,8 @@ data:
# Container environments don't like chroots
AWX_PROOT_ENABLED = False
AWX_AUTO_DEPROVISION_INSTANCES = True
#Autoprovisioning should replace this
CLUSTER_HOST_ID = socket.gethostname()
SYSTEM_UUID = '00000000-0000-0000-0000-000000000000'

View File

@ -41,18 +41,42 @@ spec:
- name: AWX_ADMIN_PASSWORD
value: {{ default_admin_password|default('password') }}
- name: awx-rabbit
image: rabbitmq:3
image: ansible/awx_rabbitmq:latest
imagePullPolicy: Always
env:
# For consupmption by rabbitmq-env.conf
- name: MY_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: RABBITMQ_USE_LONGNAME
value: "true"
- name: ERLANG_COOKIE
value: "test"
- name: RABBITMQ_ERLANG_COOKIE
value: secretb
value: "secretb"
- name: RABBITMQ_NODENAME
value: rabbitmq
value: "rabbit@$(MY_POD_IP)"
- name: AUTOCLUSTER_TYPE
value: "etcd"
- name: AUTOCLUSTER_DELAY
value: "60"
- name: ETCD_HOST
value: "etcd"
- name: AUTOCLUSTER_CLEANUP
value: "true"
- name: CLEANUP_WARN_ONLY
value: "false"
- name: CLEANUP_INTERVAL
value: "30"
- name: RABBITMQ_DEFAULT_USER
value: awx
- name: RABBITMQ_DEFAULT_PASS
value: abcdefg
- name: RABBITMQ_DEFAULT_VHOST
value: awx
- name: RABBITMQ_CONFIG_FILE
value: /etc/rabbitmq/rabbitmq
- name: awx-memcached
image: memcached
volumes:

View File

@ -0,0 +1,44 @@
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: etcd
namespace: {{ awx_kubernetes_project }}
spec:
replicas: 1
template:
metadata:
labels:
name: awx-etcd2
service: etcd
spec:
containers:
- name: etcd
image: elcolio/etcd:latest
ports:
- containerPort: 4001
volumeMounts:
- mountPath: /data
name: datadir
volumes:
- name: datadir
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
annotations:
labels:
name: awx-etcd
name: etcd
namespace: {{ awx_kubernetes_project }}
spec:
ports:
- name: etcd
port: 4001
protocol: TCP
targetPort: 4001
selector:
name: awx-etcd2
sessionAffinity: None
type: ClusterIP