neoave / mrack

Multicloud use-case based multihost async provisioner for CIs and testing during development
Apache License 2.0
11 stars 14 forks source link

feat: basic part of podman provider #35

Closed pvoborni closed 3 years ago

pvoborni commented 3 years ago

Add basic support for Podman.

So far supported:

rootless containers
Ansible via using "podman" connection in Inventory
ssh action via attaching to the container

TODO:

attach network the the containers
privileged containers
custom user mapping for provider as containers have different user than cloud images

I.e. test bench will be to install a FreeIPA server with couple replicas.

Commands usable for testing:

mrack -c $SOME_PATH/provisioning-config.yaml up -p podman $OTHER_PATH/simple_hosts.yaml mrack -c $SOME_PATH/provisioning-config.yaml destroy $OTHER_PATH/simple_hosts.yaml mrack -c $SOME_PATH/provisioning-config.yaml ssh $OTHER_PATH/simple_hosts.yaml mrack -c $SOME_PATH/provisioning-config.yaml list $OTHER_PATH/simple_hosts.yaml ansible -i mrack-inventory.yaml all -m shell -a "cat /etc/redhat-release"

Example enhancement of provisioning config:

podman: images: fedora-30: registry.fedoraproject.org/fedora:30 fedora-31: registry.fedoraproject.org/fedora:31 fedora-32: registry.fedoraproject.org/fedora:32 fedora-latest: registry.fedoraproject.org/fedora:latest fedora-rawhide: registry.fedoraproject.org/fedora:rawhide

Example metadata file:

domains:

pvoborni commented 3 years ago

/azp run

azure-pipelines[bot] commented 3 years ago
Azure Pipelines successfully started running 1 pipeline(s).
pvoborni commented 3 years ago

This was modified to a "mergable state". I'd not consider it as done or practically usable as there is no way to communicate between multiple provisioned containers but it is basis for next work.

netoarmando commented 3 years ago

I've rebased this to fix conflicts, I consider ok to merge to serve as "basis for next work".

pvoborni commented 3 years ago

So is this and approval for merge? Should I click the button? ;)