Skip to content

Commit

Permalink
Add scalable cluster kubernetes support
Browse files Browse the repository at this point in the history
  • Loading branch information
matburt committed Feb 1, 2018
1 parent 6e9930a commit 6a85fc3
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 3 deletions.
9 changes: 9 additions & 0 deletions installer/kubernetes/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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"

Expand Down
2 changes: 2 additions & 0 deletions installer/kubernetes/templates/configmap.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
30 changes: 27 additions & 3 deletions installer/kubernetes/templates/deployment.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
44 changes: 44 additions & 0 deletions installer/kubernetes/templates/etcd.yml.j2
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 6a85fc3

Please sign in to comment.