# Ansible Contributor Summit 2021.09 ###### tags: `contributor summit` ![](https://i.imgur.com/H4PC7MK.png) **Date:** Tuesday, September 28, 2021 and Friday, October 1, 2021 **Time:** 13:00 - 21:00 UTC (check your local time for [Tuesday](https://www.timeanddate.com/worldclock/fixedtime.html?msg=Ansible+Contributor+Summit+2021.09&iso=20210928T13&ah=8), [Friday](https://www.timeanddate.com/worldclock/fixedtime.html?msg=Ansible+Contributor+Summit+2021.09&iso=20211001T13&ah=8)) **Register:** please register on [Eventbrite](https://ansiblecs202109.eventbrite.com/?aff=hackmd) **Location:** We're using Matrix as the event platform. For specific rooms, please see details in the Agenda. **Matrix Chat (preferred):** [Ansible Social Room](https://matrix.to/#/#social:ansible.com), [Main Conference Room](https://matrix.to/#/#summit:ansible.com) and [Training Room](https://matrix.to/#/#workshops:ansible.com) **IRC:** [#ansible-social](https://web.libera.chat/#ansible-social), [#ansible-conf](https://web.libera.chat/#ansible-conf) and [#ansible-workshops](https://web.libera.chat/#ansible-workshops) on Libera Chat (same rooms, bridged) **YouTube live streams:** [Day 1](https://youtu.be/rk73ND-uP3A) and [Day 2](https://youtu.be/CbGMUiHpJs0) (embedded in the Main Conference Room if you're using the Element client for Matrix) **Code of Conduct:** [Ansible's CoC](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html) ## What is Contributor Summit This is your opportunity to meet with many members of the Ansible Development team and fellow contributors to help shape the future of Ansible 1. Read the details and register on [Eventbrite](https://ansiblecs202109.eventbrite.com/?aff=hackmd) 2. Put your name further down this HackMD note under ["Attendees"](#Attendees) 3. Look at the "Potential Topics" section and add your thoughts, vote by doing +YOURNAME (i.e. +gundalow), previous years we did +1, though that's difficult to track ## How do I attend 1. RSVP via [Eventbrite](https://ansiblecs202109.eventbrite.com/?aff=hackmd) (you can select one or both days) 2. Get a [Matrix client](https://hackmd.io/@ansible-community/community-matrix-faq#What-client-should-I-use), join the [Ansible Social Room](https://matrix.to/#/#social:ansible.com) anytime before or during the event, say hi. 3. During the presentations, join the [Main Conference Room](https://matrix.to/#/#summit:ansible.com) to participate in the discussions. See [this matrix FAQ](https://hackmd.io/@ansible-community/community-matrix-faq) for details on how to use Matrix. # Agenda **Times in UTC** ## Day 2: * **13:00** (25 min) [Welcome and Announcements](#Welcome-and-Announcements) * **13:25** (25 min) [Network Team](#Network-Team) * **13:50** (25 min) [Security Team](#Security-Team) * **14:15** (15 min) break * **14:30** (25 min) [Recognizing Contributor (Badges)](#Recognizing-Contributor-Badges) * **14:55** (25 min) [Matrix](#Matrix) * **15:20** (25 min) [Increasing asynchronous discussion](#Increasing-asynchronous-discussion) * **15:45** (1 hr 15 min) lunch/social hours * **17:00** (25 min) [Developer Tooling](#Developer-Tooling) * **17:25** (25 min) [Making the Community more self sufficient](#Making-the-Community-more-self-sufficient-%E2%80%93-Brainstorming) * **17:50** (25 min) [Galaxy update](#Galaxy-update) * **18:15** (15 min) break * **18:30** (25 min) [Executor Team](#Executor-Team) * **18:55** (40 min) [Core Team](#Core-Team) * **19:35** (25 min) [Cloud Team](#Cloud-Team) * **20:00** (15 min) break * **20:15** (25 min) [If we could wave a magic wand and fix 5 most annoying things](#If-we-could-wave-a-magic-wand-and-fix-5-most-annoying-things-what-would-they-be) * **20:40** [Closing](#Closing) (Day 1 has been [Archived](#Archive) below) ## Day 2 (Friday, October 1, 2021) **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) ### Welcome and Announcements * Summary of Tuesday (& links) * New maintainers * Steering Committee updates - Ompragash * Everybody to say, in chat * Name, GitHub * What they are hoping to get from today * What involvement (if any) they've had with the Ansible Community * Summary of sessions of the rest of the day (so you can start thinking about it) **Q&A** - *Feel free to add your questions here - Yourname* - ### Network Team **Chair**: Brad, Nilashish, Rohit, Gomathi **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) * [Brad] Network [Roadmap](https://github.com/ansible/community/wiki/Network%3A2021-Till-Dec-Roadmap) * [Brad, Nilashish] What are resource modules, and how to build them * [Brad] [Introduction to Resource Modules](https://docs.ansible.com/ansible/latest/network/user_guide/network_resource_modules.html) * [Nilashish] [Developer Guide](https://github.com/ansible-network/cli_rm_builder/blob/main/docs/rm_dev_guide.md) * Proposals * [Nilashish] [Plugin to validate network configuration against a predefined rule set](https://github.com/ansible-collections/ansible.network/issues/15) * Add support for a config validation plugin that evaluates network configurations against a predefined set of rules and renders warnings/failures based on the outcome of the validation task. This is aimed to precede `*_config` tasks in a playbook and would allow us to catch potential errors in the candidate config before the succeeding tasks make configuration changes on the target. The rule set(s) are expected to be implemented by the users based on their exact needs and target platforms. * [Rohit] [Platform agnostic role `ansible.network.resource_manager` to manage network resources](https://github.com/ansible-collections/ansible.network/issues/13) * Provide a single platform agnostics entry point to manage all the resources supported for given network os. * This will be achieved by implementing a platform-agnostic role ansible.network.network_resource as part of ansible.network collection. * [Gomathi] [GRPC connection plugin to interact with network devices that support gRPC](https://github.com/ansible-collections/ansible.network/issues/9) * GRPC connection plugin to interact with network devices that support gRPC * [Nilashish] Dynamic argspec generation from docstring. * [Full list](https://github.com/ansible-collections/ansible.network/labels/proposal) **Q&A** - *Feel free to add your questions here - Yourname* - Would the [Plugin to validate network configuration against a predefined rule set](https://github.com/ansible-collections/ansible.network/issues/15) live under the specific os collection or ansible.network? Where would these rule sets/schemeas be maintianed? - Ryan Merolle - Likely in `ansible.utils`. Writing the individual rules would be upto the individual. - It would be great to build a library and community of writing rulesets. Thats something that should be looked at once the base functionality (DSL) is written. - ptoal: The thing I'm trying to understand about the resource manager is whether or not it's intuitive. Hard to tell from just that drive-by. :S [link](https://matrix.to/#/!slARxOhTdwmkrkTXzr:ansible.im/$qAqCa_94hMaNqyFauas7o8FUuUeFAjrjZhKe9wV-fu4) ### Security Team **Chair:** Sumit, Craig **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) * [Craig] [Ansible security automation overview](https://www.ansible.com/blog/topic/security-automation) * [Craig] Ansible Security Automation in Firewall policy automation space. * [Sumit] How resource modules are utilised in the context of security automation. * [Sumit] [Ansible Security Roadmap](https://github.com/ansible/community/wiki/Security:2021-Till-Dec-Roadmap). **Q&A** - *Feel free to add your questions here - Yourname* - ### Recognizing Contributor (Badges) **Chair**: Ompragash **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) - How can we recognise and reward contributors - [Openbadges.org](https://openbadges.org/) FIXME: Details of what we are wanting to achieve. **Q&A** - *Feel free to add your questions here - Yourname* - Can collection owners award ansible badges outside of github/ansible ? -Sean Sullivan - We can (and should) award badges to all types of contributions, such as Meetup organisers, attending a Contributors Summit - GitHub activity would be automatic - Curr ### Matrix **Chair**: Greg **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) - Recap of the arguments and votes on Matrix so far - Where we are at with the rollout - What's up next with the Matrix plan **Q&A** - When will we bridge to discord? - Question: On Tuesday I think you mentioned that you can link your IRC to a new Matrix ID? Is that true, and if so, how? -jrglynn2 - question: is there a plan to include a jitsi app in these different matrix rooms? ( that would allow for impromptu meetings ) -elrey741 ### Increasing asynchronous discussion **Chair**: Greg, gundalow **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) Discussion: [How to make meeting / discussion process more inclusive](https://github.com/ansible-community/community-topics/issues/38) *Feel free to leave feedback here* * Audit of places people talk about Ansible, general and specific **Q&A** - *Feel free to add your questions here - Yourname* - ### Developer Tooling **Chair**: Brad, Ganesh, Priyam, Rick, Sorin, Sviatoslav **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) * [Brad] Ansible devtools team introduction and charter * [Ganesh] Ansible Devtools team roadmap (https://github.com/ansible/community/wiki/Devtools%3A2021-Till-Dec-Roadmap and https://github.com/orgs/ansible/projects/72) * [Brad/Rick] Introduction to ansible-navigator * [Sorin/Sviatoslav] Introduction to ansible-lint and molecule * [Ganesh] Ansible Language Server, extension overview and call for action * https://github.com/ansible/ansible-language-server * https://github.com/ansible/vscode-ansible/ * [Priyam] Setting up Ansible language server dev environment with vscode extension and demo **Q&A** - *Feel free to add your questions here - Yourname* - Is there a list of which IDE you have implemented, or tracking issues for ones you haven't? - gundalow ### Making the Community more self sufficient -- Brainstorming **Chair**: abadger **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) This is a session to collect ideas for making the community less dependent on Red Hat. We'll record ideas and write down actionable items. * * Easier to make a collection (ompragash) * `ansible-galaxy collection init example_ns.example_collection --type community` * Pull Request [Added Community Collection Template as a collection-type to create new collections locally](https://github.com/ansible/ansible/pull/74901) * Can we make this flexible (by taking a URL to template) * Can we use cookiecutter to do the templating? (Ask the core team... it would add another dependency to ansible-core so it might be a nonstarter) * ssbarnea says that if we only need deps that we already have (jinja2), then adding another dep isn't useful. * sivel says that cookiecutter as a dep was already rejected for the extra dep. * Improving Communication (andersson007) * Decision workflow 1. [community-topics repository](https://github.com/ansible-community/community-topics/issues) 2. [Changes impacting Contributors issue](https://github.com/ansible-collections/overview/issues/45) 3. [Bullhorn](https://github.com/ansible/community/wiki/News#the-bullhorn) 4. Reddit & Twitter * Would like to have these sources of information listed in READMEs * Would like to have collection owners and other projects use these resources for distributing information to contributors. * How do we get more people to subscribe to The Bullhorn and Changes impacting Community * How do we increase the usefulness of these * Should [Changes impacting Contributors issue](https://github.com/ansible-collections/overview/issues/45) be a repo, rather than an issue * Pinboards * What are they. A pinboard it's just a **pinned** GitHub issue labeled as "pinboard" for general announcements and quick random questions. The main goal of the issue is to notify repository subscribers. * What should they link to (we should have links to the following also in every README) * [Bullhorn](https://github.com/ansible/community/wiki/News#the-bullhorn) * [Changes impacting Contributors issue](https://github.com/ansible-collections/overview/issues/45) * [community-topics repository](https://github.com/ansible-community/community-topics/issues) * [Ansible communication guide](https://docs.ansible.com/ansible/latest/community/communication.html) * [Contributor summit wiki page](https://github.com/ansible/community/wiki/Contributor-Summit) * READMEs, importance: they should (among other things): * Welcome newcomers * Contain links to the things mentioned above (Bullhorn, Changes impacting, community-topics, Ansible communication guide, Contributor summit wiki page) * Contain links to dev guides, quick-start guides, manuals, instruqt scenarios, maintainer guidelines, contributor path, etc. * Describe how a project is governed, how to reach out to maintainers * [Example README](https://github.com/ansible-collections/community.mysql) * Getting community involved in creating the packages (dericcrago/abadger1999) * ansible package * PPAs * Delegating permissions and privileges (dmsimard) * GitHub repository settings (description, labels, environments, secrets) * [GitHub ACLs](https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/repository-permission-levels-for-an-organization) As a contributor, you can do but other things need the repo * Content Team uses Zuul for GitOps * Example: Zuul has token to do work on the repo. When a user pushes a tag to the repo, zuul sees that event and performs additional actions on behalf of the user using its token. * Some other projects do this programatically (so there is a program which is a proxy for some actions) * [GitHub settings App](https://github.com/apps/settings) * What use cases * repo description * repo topics * github environments * "I also can't see some of those settings, even in a read-only way (like environments)," * github secrets * read access to security tab of repo (Dependabot alerts etc.) * Anything else ? * **Q&A** - *Feel free to add your questions here - Yourname* - ### Galaxy update **Chair**: Andrew Crosby (Ansible Galaxy & Automation Hub) **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) * Update on Survey * Update on building & publishing roles and collections * galaxy-importer changes * new log messages on imports **Q&A** - *Feel free to add your questions here - Yourname* - felix: hmm, where do I find this 'browse code of imported roles' feature in (community) galaxy? I've never noticed it, and can't find it right now [[link]](https://matrix.to/#/!slARxOhTdwmkrkTXzr:ansible.im/$2YWiDw9QTNUVXKezillesCp-KQPvvws5kPe3QtaUAOM) - felix: at least for me, on a role page I only see a link to the repo itself, not links for specific versions to tags on GH. or maybe I'm misunderstanding something? ### Executor Team **Chair**: eqrx **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) * What is receptor and how to use it for inter-bear communication ʕ•ᴥ•ʔ Receptor is an overlay network intended to ease the distribution of work across a large and dispersed collection of workers. Receptor nodes establish peer-to-peer connections with each other via existing networks. Once connected, the Receptor mesh provides datagram (UDP-like) and stream (TCP-like) capabilities to applications, as well as robust unit-of-work handling with resiliency against transient network failures. In this talk I want to give an overview what problems this project can solve and how it does that. See https://github.com/ansible/receptor for code and issues. Help welcome :) **Q&A** - *Feel free to add your questions here - Yourname* - ### Core Team **Chair**: nitzmahone **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) * Data Tagging - Discussion and demo of extensible mechanism for tagging data throughout Ansible Core. Tracks data provenance, allows deprecation warnings on access (eg, deprecated module return values, facts), declarative tagging/masking of sensitive data, better error messages, and more. (nitzmahone) * Split Controller/Target implementation in ansible-test - discussion and demo of what's coming in 2.13 to enable true distributed/remote testing of Ansible and modules, discrete controller/module Python versions, etc. Draft PR at https://github.com/ansible/ansible/pull/75605 (mattclay/nitzmahone) * Drinking from the `devel` firehose (or not)? (nitzmahone) * Pie in the sky - Discussion around some of the in flight discussions being held around controller Python version support, Jinja Native, and extending the lifecycle of versions. (sivel) **Q&A** - *Feel free to add your questions here - Yourname* - Will this help with `no_log` - utoddl (nitz): yes, that's the hope - maybe some `!secret` tag in yaml which can mark something as secret, so that it won't end up in the output even if it appears in places that don't use no_log - felix (nitz): yeah, I wrote that actually, though YAML tags are tricky because you can only have one at a time (in the YAML itself); we'd have to come up with a surrogate tag grammar that fits inside YAML's tag spec if we needed to support > 1 - cidrblock: Can inventory plugins tag data? (nitz): you betcha, that's how the ini demo I did works - Will there be some form of "null" helper we can use so that we can start adding Data Tagging to collections and not break things on older versions of Ansible? (Yes, everyone could write their own, but that's going to result in a mess) - tremble (nitz): good question, it's worth some thought on backporting at least a single dummy tag that people could alias arbitrary imports to to make that easier... ~~- Are stable branches feature-frozen? I was reading abut backporting a PR and see a contradiction. or I likely do not understand. - timeisler~~ - `devel` vs `milestone` branches: are you all going to publish community guidelines about how to test against devel moving forward? some best practices to make sure people who test against devel can maintain some predictability? - FIXME add provisional ansible-core release dates - gundalow - Can we have a high level doc with release dates, versions, python-controler, python-remote. - gundalow - ### Cloud Team **Chair**: jillr **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) * Cloud Roadmap * kubernets.core refactoring **Q&A** - *Feel free to add your questions here - Yourname* - aparna-patil: Hi folks! I started contributing to Ansible collection from Oct 2020 and continuing same this year as and when get time. I wanted to know if there is any centralized wiki page/ link where we can see the roadmap for Ansible collection like Azure/AWS etc so can better understand the community's priority and help accordingly with contribution? ### If we could wave a magic wand and fix 5 most annoying things, what would they be **Chair**: gundalow **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) **Q&A** - *Feel free to add your questions here - Yourname* - I would have python read the argument_spec from the docs instead of maintaining it in two different places - Alexei (russoz) - Find Proof of Concept PR - Document what's needed to get this finished - mostly it never made it into core as we would need 2nd thing which is 'controller side module rea - dmsimard: Improve installation performance of the Ansible community package - After ansible-2.10 we moved from mono-repo to ansible-core & 85+ collections in the `ansible` package. It turns out that installing hundreds (if not thousands) of files takes a long time -- there are technological limitations (i.e, setuptools and symlinks) and legal constraints (can we/should we remove tests from the collections? should they be included when doing a build of a collection in the first place?). - tremble: Supporting multiple versions of ansible-test is a PITA for CI - In general I guess - making `ansible-test` more configurable on a per-collection basis. the new `test/config.yml` is a step forward, but we can't use it for testing ansible < 2.12 - For example the AWS collections dropped support for Python <3.6, but we've no clean way to disable the related sanity tests without a ton of C&P in `ignore-2.x.txt` - Can / Should ansible-test be broken off from ansible/ansible - Possibly, It's on the dev-tools roadmap to think about the future of ansible-test and how it relates to ansible-lint and molecule - timeisler: I am used to pass/fail/skip style of test results so understanding ansible-test output is my current challenge, whether for unit or integration. - timeisler can we get some examples please - bcoca: files roles, variable scope/ precedence, connection management (avoid the hoops for networking/cloud) +felix +tremble - https://github.com/ansible/proposals/issues/191 - jrglynn2: i think training sessions like the instruqt sessions, or what tadeboro walked through on Tuesday, those are great for newbies - so more of those, with corresponding documentation - gundalow: prioritize simplicity as a feature - Please give example - Setting up the dev environment is a hassle for newcomers - we should not need to have specific directory structure to be able to test (`ansible_collection/NAMESPACE/COLLECTION_NAME`)(Alex/russoz) - tremble: Add a mechanism for 'locally' scoped variables/facts (I currently hack around this using vars on a block). It's very easy for the current global namespace to get polluted by using set_fact for temporary variables. Unfortunately sometimes you need to use set_fact for things like omit to behave the way you'd expect - cognifloyd: preserve modules and reuse python interpreter instances (ala [mitogen](https://mitogen.networkgenomics.com/ansible_detailed.html)) on target hosts in core. This should reduce network transfer time for oft-used modules, and reduce the cost of starting up a new python interpreter over and over ad nauseum. - bcoca: automatic installation of module dependencies (i.e, boto3 for aws things) ### Closing **Chair**: gundalow **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) ### Potential Topics * ansible-core * Details and timeline for Ansible Galaxy NG migration (what was ultimately decided?) +geerlingguy +tas-sos +felixfontein * What to expect when you want your collection added to the Ansible package (cidrblock) # Attendees Please put your name (irc nick / matrix ID) if you are attending * Carol Chen (cybette / @cybette:ansible.im) * Jeff Geerling (geerlingguy) * Greg Sutcliffe (gwmngilfen-work / @gwmngilfen:ansible.im) * Tadej Borovšak (tadeboro) * Tasos Lisgaras (Tas-sos) * Ompragash (ompragash) * David Moreau-Simard (@dmsimard) * Martin Schurz (schurzi) * Sviatoslav Sydorenko (Libera.chat / GitHub ID: @webknjaz) * Jim Glynn (jrglynn2) * Abhijeet Kasurde (Akasurde) * Alina Buzachis (abuzachis) * Andrei Klychkov (Libera.chat: andersson007_, GitHub ID: @Andersson007) * Alex Sowitzki (eqrx / @as:eqrx.net) * Nilashish Chakraborty (nilashishc) * Sean M. Collins (Libera.chat / GitHub = sc68cal) * Felix Fontein (Libera/GH: felixfontein) * René Moser (resmo) * Ganesh B. Nalawade (ganeshrn / @ganeshrn:ansible.im) * Sumit Jaiswal (libera.chat/GH: justjais) * Sorin Sbarnea (zbr / @ssbarnea:ansible.im) * Brian Scholer (Libera/GH: briantist) * Priyam Sahoo (GH: priyamsahoo) * Nate Case (Qalthos / @qalthos:ansible.im) * Matt Davis (nitzmahone / @nitzmahone:ansible.im) * Christoph Hille (hille721) * sivel * Gomathi Selvi (GomathiselviS) * Tony Schneider (tonys) * Jill Rouleau (jillr) * Simon Dodsley (simondodsley) * Hideki Saito (hsaito / @saito-hideki) * Todd Lewis (utoddl) * David Duncan (davdunc/davdunc2) * Rick Elrod (relrod) * Marcelo Mello (mmello) * Michael J. O'Neill (omichael) * Rahul Belokar (be_rahul) * Chris Meyers (cmeyers) * Dominik Wombacher (wombelix) * Patrick Toal (ptoal) * Matthew butch (apple4ever) * Matt Clay (mattclay) * Mark Chappell (tremble / @mchappell) * Alexei Znamensky (russoz) # Archive ## Day 1: * **13:00** (15 min) Welcome and Overview - gundalow * **13:15** (30 min) [Setting up a development environment](#Group-instructor-led-class-in-setting-up-a-development-environment) - tadeboro * **13:45** (30 min) [Self-paced Instruqt](#Self-paced-Instruqt) - ompragash * **14:15** (15 min) break * **14:30** (30 min) [Hackathon overview](#Hackathon) - cybette & team * **15:00** (30 min) [Ask a Maintainer](#Ask-A-Maintainer) - jillr, dmsimard & spotz * **15:30** onwards - hacking, training (Instruqt), Q&A, discussions ## Day 1 (Tuesday, September 28, 2021) ### Overview ### Group instructor-led class in setting up a development environment **Format:** Interactive (with instructions for on-demand self-paced learning at a later time) **Duration:** ~20 minutes for basic setup, then ~10 minutes for Q&A **Host:** tadeboro **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) **About this session** The main purpose of the session is to help you set up a minimalistic but complete Ansible collection development environment. At the end of the class, you will be able to: 1. Clone existing Ansible collection. 2. Run sanity and unit tests from that collection. 3. Use different Ansible versions to check collection compatibility with all stable Ansible releases. Although we will work on an existing Ansible collection during the demo, the instructions presented also work when setting up a new Ansible collection. And if there are questions about that, we can also have a quick look into it if the will permit. **prerequisite** * A computer or a virtual machine with admin access (for installing Docker, git, Python, etc.). * A healthy dose of stubborness ;) **Background reading** * Docker installation instructions: https://docs.docker.com/engine/install/ * Dev guide: https://docs.ansible.com/ansible/devel/dev_guide/index.html * Env setup: https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_general.html#environment-setup * Testing: https://docs.ansible.com/ansible/devel/dev_guide/developing_collections_testing.html **Q&A** - ~~gwmngilfen: should work with podman too, I guess?~~ - answered by felixfontein [link](https://matrix.to/#/!slARxOhTdwmkrkTXzr:ansible.im/$-UBXkkb06Abe8F0Bm10BeED09CX5vKHEYj22umK_P4A) - Honiix: Don't Molecule have replaced Vagrant? :) [link](https://matrix.to/#/!slARxOhTdwmkrkTXzr:ansible.im/$nZESSL6SNeSG1TMLrmr0mh51GefS8KqEeiFiH9X31Qg) - Molecule is targetted towards running integration tests - ~~killergoalieK: So fun question, anyone know when RH is going to move past 2.9?~~ - answered by cidrblock [link](https://matrix.to/#/!slARxOhTdwmkrkTXzr:ansible.im/$00iNX7DD1jbnt5mwafMU5uODpYmW6Tj6XZ0vZEvLFE0) - [Red Hat Ansible Automation Platform Life Cycle ](https://access.redhat.com/support/policy/updates/ansible-automation-platform) - [Red Hat Ansible Tower Life Cycle](https://access.redhat.com/support/policy/updates/ansible-tower) - Honiix: We have multiple way of setup the developper Python interpreter, Same for the controller. What are the options for the targets of the playbook? Can we use venv as ansible_python_interpreter? [link](https://matrix.to/#/!slARxOhTdwmkrkTXzr:ansible.im/$oIwHB0iCY02xYtN7RmH0WxCCz6iKy-Iqr8qpMEFIwCY) - You can use Ansible to setup Python environment on the target node, then in the next role, use that freshly created virtual environment - ~~Josh Corrick: Is the -docker switch for ansible-test using docker, or can you use podman?~~ - answered by felixfontein [link](https://matrix.to/#/!slARxOhTdwmkrkTXzr:ansible.im/$2Lmf34NEBZ98a-FT1mWYPxFKtkn6TxtVSa9p9IHL6nQ) - for ansible-core 2.12.0b1, `--docker` will prefer Docker if available, but will pick podman if it isn't. you can set ANSIBLE_TEST_PREFER_PODMAN=1 to make it first try podman. - Enphuego: where are the setup playbooks used in the example? [link](https://matrix.to/#/!slARxOhTdwmkrkTXzr:ansible.im/$2Lmf34NEBZ98a-FT1mWYPxFKtkn6TxtVSa9p9IHL6nQ) - https://github.com/xlab-steampunk/ansible-dev-env ### Ask A Maintainer **Format:** Interactive, self-paced, etc **Duration:** ~30 minutes **Chairs:** jillr, dmsimard, spotz **Location**: [Main Conference Room](https://matrix.to/#/#summit:ansible.com) or [#ansible-conf](https://web.libera.chat/#ansible-conf) on Libera (same room, bridged) **About this session** This will be an interactive session covering questions from the community about what it means to be/become a maintainer of an open source Ansible project. This includes modules and plugins, roles, playbooks and collections as well as tooling. Some of the topics that are expected to be covered include: * How do open source projects actually work or operate ? * How to do code reviews and maintain CI ? * Who are the different people or what are the roles in a project/community ? * What are the responsibilities of a maintainer ? * When we say we're looking for maintainers for a project, what would that actually mean to a person who wants to pursue that ? **Background reading** * [Ansible collection maintaining guide](https://github.com/ansible/community-docs/blob/main/maintaining.rst) **Q&A** ~~netopsengineer: As someone who is comfortable with creating modules, and collections, at small scale, what type of resources are available for "noobs" for the more advanced developer experience type tools like antsi-bull or collection_prep, and helping learn the developer workflow around those tools? Day 0 turn up you guys have made modules and collections straightforward with the init commands, but the Day 1 and beyond maintenance seems like a steep step for someone new with current documentation around those topics~~. [link](https://matrix.to/#/!slARxOhTdwmkrkTXzr:ansible.im/$3s-BhKlwRgpgwj8uSU8D4zOxU4Rx5mHdH-iicImgqcQ) ~~gwmngilfen: I'll go with "how can I make the maintainers life easier?" because thats the same as "how does my patch get merged quicker"~~ [link](https://matrix.to/#/!slARxOhTdwmkrkTXzr:ansible.im/$yKpwnNk5bMfoUv-xozfK6r3C6tQa2np6dc0z5NZ2-5c) ~~gwmngilfen: I'm also interested in the "non-code contributions" topic too~~ [link](https://matrix.to/#/!slARxOhTdwmkrkTXzr:ansible.im/$NpIulKzL5cTARgMeOyUdtg_g1y3j8M7Aq6NXP7M4I6Y) ~~honiix: Question: What's the better option between 1 big repo for the whole collection or 1 repo per role + meta repo for the collection?~~ [link](https://matrix.to/#/!slARxOhTdwmkrkTXzr:ansible.im/$6xwJsmGwtBmbDpPWPEI8RR2OB5GOUJ2Jcc9tQcA301s) ### Hackathon [Training Room]: https://matrix.to/#/#workshops:ansible.com [#ansible-workshops on Libera]: https://web.libera.chat/#ansible-workshops [AnsibleFest]: https://www.ansible.com/ansiblefest [Ansible Contributor Summit]: https://ansiblecs202109.eventbrite.com/?aff=hackmd [elevator pitches]: https://hackmd.io/@ansible-community/hackathon-202109-pitches [individual schedule]: https://cryptpad.fr/sheet/#/2/sheet/edit/4jve2phOiwiVJqKvD7MgFf61/ [group schedule template]: https://cryptpad.fr/sheet/#/2/sheet/view/YEIEitTTaDIYBGVdzWfYdWdkGrk1m1Tdt0T42UPg1h8/ [Ansible Community Team's schedule]: https://cryptpad.fr/sheet/#/2/sheet/view/Cn3683yt+9Q+dsYIggjbYQZ6cLncqt94vkM-C090yac/ [Ansible Community Instruqt Labs]: https://play.instruqt.com/redhat/topics/ansible-community [Ansible Community Guide]: https://docs.ansible.com/ansible/latest/community/index.html **Format**: Interactive, self-paced, etc **Hosts**: Members of the Ansible Community **Location**: [Training Room] (preferred) or [#ansible-workshops on Libera] (same room, bridged) **About this session**: - **Who?** Anyone with an interest in contributing to Ansible. This includes people that have never contributed and are unsure of how to get started, existing contributors, maintainers, anyone with an interest in contributing in some way to Ansible. - **What?** Hackathon - Contribute to Ansible or your favorite Collection(s). Resources (people, labs, docs, etc) will be available to help people through the entire process. - **Where?** Over an IRC <-> Matrix bridge with impromptu screen sharing provided by Jitsi - **When?** All throughout [AnsibleFest] and [Ansible Contributor Summit] - **Why?** Improve Ansible or your favorite Collection(s) - **How?** Stop by our IRC <-> Matrix bridge (see location above) during [AnsibleFest] and [Ansible Contributor Summit] to get started! **Getting Started**: - **Recommended Prerequisites** - [GitHub](https://github.com/) account - Check out the background reading below (if applicable) - **First Steps** - Browse the list of "[elevator pitches]" - Add yourself to the [individual schedule] to let others know when you're planning to attend - **Did not find what you were looking for in the "[elevator pitches]"? That's ok, you can start your own!** - Copy this [group schedule template] to create your own group schedule (for an example, check out the [Ansible Community Team's schedule]) - Add your schedule and elevator pitch (this can be anything related to Ansible) to the list of [elevator pitches] - **Found what you were looking for in the "[elevator pitches]"? Great!** - Stop by the IRC <-> Matrix bridge to sync up with others - **Check back here for the latest updates / info!** - **Background Reading** - [Ansible Community Instruqt Labs] - [Ansible Community Guide] **Q&A** - *Feel free to add your questions here - Yourname* - ### Self-paced (Instruqt) **Format:** Interactive, self-paced, etc **Hosts:** Ompragash **Location**: [Training Room](https://matrix.to/#/#workshops:ansible.com) **About this session** This is a self-paced training course using the Instruqt platform. The Ansible Community Team (and other students!) will be in the [Training Matrix room](https://matrix.to/#/#workshops:ansible.com) during the day, so please stop by and tell us how you're doing, or ask for help. We suggest the following order for the labs, though each lab is stand alone, so feel to pick what you are interested in. * [Creating your own collection](https://play.instruqt.com/embedv2/redhat/tracks/ansible-community-creating-your-own-collection?token=em_zcnbza2ex66zqptw) * [Testing A Pull Request Locally](https://play.instruqt.com/embedv2/redhat/tracks/ansible-community-testing-pull-request-locally?token=em_6ke967cktu5m9cww) * [How to develop a Ansible module](https://play.instruqt.com/embedv2/redhat/tracks/ansible-community-developing-ansible-module?token=em_W1mnN4dZouYAhFBI) ` * [Adding integration tests to Ansible Collections](https://play.instruqt.com/embedv2/redhat/tracks/adding-integration-tests-to-ansible-collections?token=em_6uMp_ZmBv4Fuug-z) * [Testing Collections](https://play.instruqt.com/embedv2/redhat/tracks/community-fixing-a-bug?token=em_l4flalsa12evd97a) [Start the self-paced labs](https://www.ansible.com/products/ansible-community-training) Please ensure you leave a rating at the end of the course, then provide [feedback](https://github.com/ansible/instruqt/discussions/54) If you'd like how these interactive labs are structured, take a look at the [product labs](https://www.ansible.com/products/ansible-training). **Q&A** timeislerT: Why was curl used to get timezone.py instead of an ansible-galaxy cmd? [link](https://matrix.to/#/!slARxOhTdwmkrkTXzr:ansible.im/$kuiNpqBNDOwCQc-RotqstWP1VELThDVigToU0RQjF-A) **Notes** Instruqt is new (replacing the Katacoda lab from last year), we'd love your feedback to help improve it for the future Please leave your [feedback via GitHub](https://github.com/ansible/instruqt/discussions/54) *We will randomly select some people that leave feedback to send some special swag to.*