Tripleo-lab and the fantabulous evolution of things
Long time without any update right? Well. Here’s something worth the wait: tripleo-lab is now using the tripleo-operator-ansible, a native collection of roles providing a nice interface for ansible.
These roles replace all the calls to the openstack CLI, allowing to get a unified way to deploy, configure, import nodes, introspect and so on.
This change within tripleo-lab is a huge thing, since it now allows to configure almost ANY aspect of your deploy, using the operator parameters. Of course, some aren’t directly available, since they are generated within the lab, but you should get the proper interfaces to extend the generated things.
In order to continue using tripleo-lab, you need to get the operator collection installed. A helper is here for you:
$ ansible-playbook config-host.yaml -e update_operator=true
This will call a dedicated role within the lab that will clone the latest
version of the operators, and run the correct command to get the collection
installed in the right location (usually
~/.ansible/collections/ansible_collections
). Once you’ve launched this
command, you can run your usual ansible-playbook command, with your custom env
and so on.
Also, please ensure you run it on a regular base, or set the
update_operator
to true
in your env file - they actually do change
quite often lately, since I’m pushing new features in order to get them working
fine within tripleo-lab :). Please note this might lead in some deploy issue,
since github might have some hickups.
Since the operators provides a lot of new parameters, and some where duplicated within the lab, a deep scrub was done in the lab parameters. All the dropped things are properly deprecated, and a new role has been created in order to fail the run early, showing what replaces the deprecated variable (or, well, some were just dropped since they were useless).
This last feature ensures your environment is sane, and doesn’t have any ambiguity regarding what you’re deploying.
There are also some new things regarding the proxy support: since the
no_proxy
variable is a bit messy (and I’m still polite here), the proxy
is only set for the package manager. This ensures you won’t get any weird
issues while fetching container images, or other network resources. Fun fact to
know, there is absolutely NO RFC describing how an application should handle
any proxy related variables. To make things even funnier, some applications
seem to support the CIDR notation for no_proxy, while neither curl nor wget
appear to support it (their manpage talks about domains, no IP)… Not to
mention the length limit of the variable value. This, of course, leads to some
really fun confusion, especially when podman containers, by default, import the
proxy configuration.
Finally… CentOS-8 being out and stable enough, tripleo-lab supports it. Your
builder can be on CentOS-8, as well as the VMs. Note that you’ll need to pass
a specific environment file for CentOS-8 based VMs:
environments/vm-centos8.yaml
. This will ensure you get the right setup,
with the right size and so on.
What a bunch of new things right? :)