AdWerx / charts

helm charts maintained by Adwerx Engineering
MIT License
25 stars 34 forks source link

Add Ansible AWX chart #1

Closed jbielick closed 5 years ago

jbielick commented 5 years ago

Purpose

Add chart for deploying distributed Ansible AWX application.

Approach

Heavily based on:

https://github.com/arthur-c/ansible-awx-helm-chart

and

https://github.com/ansible/awx/tree/devel/installer/roles/kubernetes

Subcharts: (see requirements.yaml)

Notes:

Local k8s cluster install

If you're installing this chart on the local k8s cluster in docker desktop, you'll need to add --set='memcached.AntiAffinity=soft' so that memcached will run both its replicas on the same k8s node (localhost) where it typically would have an antiaffinity to run both on the same node.

db-migrate.py

I'll probably need to remove this as it seems like it was added to the awx_task docker image. When that image starts is appears that it runs migrations, but I need to confirm this.

jbielick commented 5 years ago

Before merging I'd like to work on the NOTES.txt

wzcolon commented 5 years ago

I think I see it now.

https://github.com/AdWerx/charts/pull/1/files#diff-f1967ccb05c45fbc655cbdd08f948e3dR81

jbielick commented 5 years ago

There are two major components involved there, PersistentVolume and PersistentVolumeClaim.

A PersistentVolume (PV) is a piece of storage in the cluster that has been provisioned by an administrator or dynamically provisioned using Storage Classes. It is a resource in the cluster just like a node is a cluster resource. PVs are volume plugins like Volumes, but have a lifecycle independent of any individual pod that uses the PV. This API object captures the details of the implementation of the storage, be that NFS, iSCSI, or a cloud-provider-specific storage system.

A PersistentVolumeClaim (PVC) is a request for storage by a user. It is similar to a pod. Pods consume node resources and PVCs consume PV resources. Pods can request specific levels of resources (CPU and Memory). Claims can request specific size and access modes (e.g., can be mounted once read/write or many times read-only).

The volume implementation is provided by GCE—equivalent to EBS volumes. The volume is not destroyed with the pod, ever, and can be reattached to any node that the pod using the claim is scheduled onto.