Try   HackMD

Ansible Contributor Summit 2021.09

tags: contributor summit

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Date: Tuesday, September 28, 2021 and Friday, October 1, 2021
Time: 13:00 - 21:00 UTC (check your local time for Tuesday, Friday)
Register: please register on Eventbrite
Location: We're using Matrix as the event platform. For specific rooms, please see details in the Agenda.
Matrix Chat (preferred): Ansible Social Room, Main Conference Room and Training Room
IRC: #ansible-social, #ansible-conf and #ansible-workshops on Libera Chat (same rooms, bridged)
YouTube live streams: Day 1 and Day 2 (embedded in the Main Conference Room if you're using the Element client for Matrix)

Code of Conduct: Ansible's CoC

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
  2. Put your name further down this HackMD note under "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 (you can select one or both days)
  2. Get a Matrix client, join the Ansible Social Room anytime before or during the event, say hi.
  3. During the presentations, join the Main Conference Room to participate in the discussions.

See this matrix FAQ for details on how to use Matrix.

Agenda

Times in UTC

Day 2:

(Day 1 has been Archived below)

Day 2 (Friday, October 1, 2021)

Location: Main Conference Room or #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 or #ansible-conf on Libera (same room, bridged)

Q&A

  • Feel free to add your questions here - Yourname
  • Would the Plugin to validate network configuration against a predefined rule set 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

Security Team

Chair: Sumit, Craig
Location: Main Conference Room or #ansible-conf on Libera (same room, bridged)

Q&A

  • Feel free to add your questions here - Yourname

Recognizing Contributor (Badges)

Chair: Ompragash
Location: Main Conference Room or #ansible-conf on Libera (same room, bridged)

  • How can we recognise and reward contributors
  • 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 or #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 or #ansible-conf on Libera (same room, bridged)

Discussion: How to make meeting / discussion process more inclusive

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 or #ansible-conf on Libera (same room, bridged)

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 or #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
    • 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
      2. Changes impacting Contributors issue
      3. 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
    • Pinboards
    • 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
  • 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 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
    • 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 or #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]
  • 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 or #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 or #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 or #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 or #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
  • 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) 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 or #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:

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 or #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

Q&A

  • gwmngilfen: should work with podman too, I guess?

    • answered by felixfontein link
  • Honiix: Don't Molecule have replaced Vagrant? :) link

  • 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

    • 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
    • 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

Ask A Maintainer

Format: Interactive, self-paced, etc
Duration: ~30 minutes
Chairs: jillr, dmsimard, spotz
Location: Main Conference Room or #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

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
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
gwmngilfen: I'm also interested in the "non-code contributions" topic too link
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

Hackathon

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:

Q&A

  • Feel free to add your questions here - Yourname

Self-paced (Instruqt)

Format: Interactive, self-paced, etc
Hosts: Ompragash
Location: Training Room

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 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.

Start the self-paced labs

Please ensure you leave a rating at the end of the course, then provide feedback

If you'd like how these interactive labs are structured, take a look at the product labs.

Q&A

timeislerT: Why was curl used to get timezone.py instead of an ansible-galaxy cmd? link

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

We will randomly select some people that leave feedback to send some special swag to.