This collection contains Kubernetes-related roles and Ansible plugins and modules maintained by Jeff Geerling (geerlingguy).
It includes:
Install this collection locally:
ansible-galaxy collection install geerlingguy.k8s -p ./collections
Then you can use the roles from the collection in your playbooks:
---
- hosts: all
collections:
- geerlingguy.k8s
roles:
- kubernetes
- helm
- role: k8s_manifests
vars:
k8s_manifests_base_dir: ''
k8s_manifests:
- monitoring/prometheus
- dir: docker-registry
namespace: registry
If you want to be more explicit, you can use the fully-qualified role name when referring to a role in this collection, like
geerlingguy.k8s.kubernetes
instead of justkubernetes
. This could be helpful if, for example, you maintain a separatekubernetes
role in another place on your local workstation.
Currently, all the Kubernetes roles (inside roles/
) are Git submodules, and work on the roles themselves should take place in the upstream Role repository. At some point, the roles might move into this repository for their canonical home.
This collection has some integration tests (inside molecule/
), however, which pull all the roles together and ensure they work in tandem on the latest supported platforms.
To run a particular test scenario, you need to install molecule and the OpenShift Python client (pip install molecule openshift
), then you can run:
molecule test -s [scenario]
For example, to run the k8s_manifests role test scenario:
molecule test -s test-manifests
If you would like to develop the collection or leave a scenario running for debugging, use molecule converge
to run the scenario but not tear down the local test environment.
Before tagging a new version, make sure all the git submodules are up to date:
git submodule update --recursive --remote
Then commit and push all changes, and make sure all tests are passing.
Then tag the new version of the collection and push the tag.
Once pushed, if tests pass, Travis CI will deploy the new collection version using the playbook in scripts/deploy.yml
. That directory also contains the galaxy.yml
template that will be used to build the collection metadata.
This collection was created in 2019 by Jeff Geerling, author of Ansible for DevOps and Ansible for Kubernetes.