I use ansible to send jobs / configurations to my k8s cluster via the kubectl command on my local machine. I have my inventory file setup so that each cluster is it's own group and each cluster is basically a connection to localhost .
# Inventory File
#
[east.k.example.com]
localhost ansible_connection=local
[east2.k.example.com]
localhost ansible_connection=local
Then in my group_vars directory I have a different file with the name of my group from my inventory file that holds all the different variables for each cluster.
I limit my runs to target only one cluster with the limit option:
ansible-playbook -vv create.yaml -l east2.k.example.com --tags ingress-generate-only
The problem is that when I attempt to use variables in my templates I get variables from the other groups. I'm thinking because each group includes localhost.
Is there a better way to solve this issue? Can I set a flag so that groups only include the variables from the group_var files?
thanks,
Refactor your inventory to use distinct names:
# Inventory File
#
[east.k.example.com]
east ansible_connection=local
[east2.k.example.com]
east2 ansible_connection=local
This way Ansible will treat them as different hosts, thus not merging variables from different groups.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With