Try   HackMD

Ansible Contributor Summit 2021.03

tags: contributor summit

Date: Tuesday, March 9, 2021
Time: 12:00 - 20:00 UTC (check your local time here)
Register: Eventbrite registration
Location: Google meet https://meet.google.com/wpz-ngdp-ehf
IRC: #ansible-community https://webchat.freenode.net/#ansible-community
Matrix Chat: #freenode_#ansible-community:matrix.org

Code of Conduct: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html

I'd like to speak to someone now

If this is your first Contributor Summit or if you have questions feel free to speak to us

IRC
Channel: #ansible-community
Direct: gundalow, cybette

Email
John "gundalow" Barker, Engineering Manager at Ansible, gundalow@redhat.com
Carol "cybette" Chen, Senior Community Architect, carol@redhat.com

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 at the bottom of 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

Agenda (times in UTC)

  • 12:00 (20 mins cybette) Welcome and introductions
  • 12:20 (5mins gundalow) Staffing update
  • 12:25 (15 mins ompragash) Open by default
    • Steering committee & Proven Packager
    • Using GitHub Discussions for proposals
  • 12:40 mini break
  • 12:45 (15 mins gwmngilfen) Stats update - 1 year on, is Collections achieving it's goals?
  • 13:00 (20 mins dmsimard) Ansible version changing
  • 13:20 longer break
  • 13:40 (20 mins njain) Execution Environments via Ansible Builder
  • 14:00 (20 mins dmsimard) How do we improve the experience of contributors and maintainers
  • 14:20 MUNCH HOUR
  • 15:20 (20 mins cidrblock ganeshrn) Ansible network collections update
  • 15:40 (15 min dericcrago) Help maintaining the Ubuntu PPA
  • 15:55 (15 mins samccann) Docs split (ansible vs ansible-core)
  • 16:10 short break
  • 16:20 (25 mins acozine) Documentation Survey feedback
  • 16:45 (20 mins sivel) Ansible-core 2.11 potential topics
  • 17:05 longer break
  • 17:30 (25 min nitzmahone / awcrosby) Community Galaxy update
  • 17:55 (20 min) Documenting Ansible Collections
  • 18:15 short break
  • 18:30 (10 min jillr) Cloud collections update
  • 18:40 (20 mins abadger) Top n-things we don’t have answers to
  • 19:00 (20 mins abadger) Inclusion of new collections Ansible 3.0.0 and Ansible 4.0.0
  • 19:20 Open floor, wrap up, etc.

Potential Topics

Please add details and $nick if you think this is something we should cover, detail is good.
Vote by doing +YOURNAME (i.e. +gundalow), previous years we did +1, though that's difficult to track.

  • (20 mins dmsimard) How do we improve the experience of contributors and maintainers +cybette +dmsimard +Tassos

    • Retrospective/brainstorm ?
  • (10 min jillr) Cloud collections update +jillr (Later in the day due to TZ)

  • (15 min dericcrago) Help maintaining the Ubuntu PPA +resmo
    +apple4ever wants to help

  • (15min) Top n-thing we don't have answers to (yet)

    • Should the ansible package patch collections that don't respond to fixing CVEs +abadger +samccann +aminvakil +felixfontein
    • Does the community want Long Term Support for the community package (if so, who can help) (later due to TZ) +Tassos
      • We should at least formalize maintenance for N and N-1 (i.e, 3.x maintained until 5.x) +dmsimard +felixfontein +Tassos
  • (15 min Chris Houseknect) All things Ansible Galaxy (update from Chris Houseknect)

    • Plans about current version of galaxy available at galaxy.ansible.com +tadeboro +samccann +dmsimard +acozine +felixfontein
    • Where does galaxy_ng fit into community +tadeboro +dmsimard +acozine +felixfontein
    • Support for non-collection roles in galaxy_ng +tadeboro +felixfontein +Tassos
    • Showing documentation +acozine +sshnaidm +felixfontein
  • (20 min) Documenting Ansible Collections (After Houseknects update)

    • Where to put non-reference materials (scenario guides etc.) +tadeboro +samccann +acozine +felixfontein
    • How to get this documentation to the end users +tadeboro +sshnaidm +felixfontein
      • Quite a few Ansible Collections simply render rST files and place them into the docs folder, which is better than nothing but still requires users to browse GitHub repo. Module links in those documents do not work, which makes browsing next to impossible. And the "official" guidelines currently say that the docs folder should only contain markdown files which are rendered by AH while rST files are not.
  • (?? mins cidrblock ganeshrn) Ansible network collections update +cidrblock +ganeshrn

  • <your proposed topic> +yourname

Meeting summary

Welcome

Staffing update

FIXME List of people, GitHub, Twitter, Locations, areas of responsabilties

Ansible Community Steering Committee

  • Ompragash introduces the new committee which we launched yesterday
  • link to slides
  • See the announcement
  • Process for requesting a new collection to be included in the ansible package is via GitHub Discussion
  • The objective is to increase the number of non-Ansible employees in the group

Call to action

  • Join the #ansible-community channel
  • Subscribe to the Community Meeting agenda
  • Subscribe to The BullHorn (The Ansible Community & Develeopment newsletter)
  • We will help mentor and train anyone that has interest in being more involved in any part of the Ansible Community. FIXME details of what exactly, details of how to get involved

Stats update - 1 year on, is Collections achieving it's goals?

Greg Sutcliffe is the Ansible community Data Scientist, you can find him as gwmngilfen on IRC/Masterdon/Twitter.

Greg's presentation
Greg has more detailed blogs here

Summary: Collections is doing OK, although there is some sign the backlog is growing again. However in throughput of PRs, number of contributors, and time to merge, things are looking successful. It's worth noting that we use 75% for Time to Close. Often people use a mean (ie 50%), though that means that 50% of the community are having a worse time. The 75% time to merge for Ansible Collections is around 8 days (although this includes backports etc). For ansible-core it was around 60 days as of mid-2019.

Next steps: We'll be looking to start nailing down how we critique both an individual collction, and the community of collections as a whole, over the next year. This will likely involve a mix of point-in-time stats (as a trend) as well as forecast-things-and-see-if-we-beat-it-later strategies.

Call to action

Greg is loking for input on these stats. In particular:

  • Maintainers: what would help you do your jobs in terms of understanding the state of your collection(s)
  • At a higher level, thoughts on how we compare-and-contrast collections (so our team can prioritise work) is very welcome. Some ideas have already been raised in the repo (below)

Want to discuss more? Find Greg in IRC/Matrix under @gwmngilfen(:matrix.org)
Want to log some thoughts? https://github.com/ansible-community/stats-collections/issues

Ansible 3.0.0: How we got here and what's next

dmsimard's presentation

dmsimard gives an update on how we got to Ansible 3.0.0 and what's next in terms of version and release cadence.

Call to action

  • Read the blogs
  • Review the ansible and ansible-core roadmaps
  • Sign up to the Bullhorn

Execution Environments via Ansible Builder

Nikhil Jain (Senior Software Engineer at Red Hat)

Call to Action

Impoving contributor experience (dmsimard)

Call to Action

Ansible network collections update and the new ansible.utils collection

cidrblock and ganeshrn Are giving an update on using Ansible for managing your Network infrastructure

2021 Spring Roadmap

Call to Action

  • Try ansible_network_import_modules

    • configured as a connection parameter for network_cli, netconf docs
    • Bypasses the historical module tar & untar process for network modules and should reduce CPU utilization on the control node and improve module speed
    • issues & feedback appreciated in the ansible.netcommon repository
    • available with ansible.netcommon v2.0+
    • compatible with ansible 2.9.10+
  • Try ansible_network_single_user_mode

    • configured as a connection parameter for network_cli, netconf docs
    • enables caching of show command output to reduce the number of commands issues against network devices
    • ideal for environments where only single ansible processes are maintaining network device configurations
    • Reduces playbook run times when using ansible network modules
    • issues & feedback appreciated in the ansible.netcommon repository
    • available with ansible.netcommon v2.0+
    • compatible with ansible 2.9.10+
  • Coming soon: ansible.network collection

    • content free collection
    • convenient as a group installer for network platform collections and their dependancies
    • release date TBD
  • Checkout the ansible.utils collection

    • included with the Ansible 3.0 package
    • compatible with ansible 2.9.10+
    • plugins for data management, manipulation, validation, and transformation
    • review code for action-plugin argspec support, shared code for filter/lookup/test/plugins, subplugin architecture
    • docstrings for all plugins and subplugins
    • Use JSON Schema for validating data structures

Ubuntu Ansible PPA

dericcrago gives an update on the status of the Ubuntu Ansible PPA (which can also be used by Debian) and the ansible (plus ansible-base / ansible-core) packages hosted there.

Status

Current Target
PPA ansible is a user ansible is a team
build process internal Jenkins public GitHub action
PPA versions
  • ansible 2.9
    • ubuntu 14.04
    • ubuntu 16.04
    • ubuntu 18.04
  • ansible-base 2.10
    • ubuntu 18.04
    • ubuntu 19.10
    • ubuntu 20.04
  • ansible <= 2.9
    • ubuntu 14.04
    • ubuntu 16.04
    • ubuntu 18.04
  • ansible >= 2.10
    • ubuntu 18.04
    • ubuntu 20.04
    • ubuntu 20.10

Call to Action

Post Update Updates ;)

Additional Background

If you were to apt update && apt -y install ansible && ansible --version, what would you see?

Distribution Version
debian 8 ansible 1.7.2
debian 9 ansible 2.2.1.0
debian 10 ansible 2.7.7
debian testing ansible 2.9.16
debian sid ansible 2.10.5
ubuntu 14.04 ansible 1.5.4
ubuntu 16.04 ansible 2.0.0.2
ubuntu 18.04 ansible 2.5.1
ubuntu 20.04 ansible 2.9.6
ubuntu 20.10 ansible 2.9.9
ubuntu 21.04 ansible 2.10.5

Doc split (ansible vs ansible-core)

samccann gives an updated on the various changes regarding having different release train for ansible vs ansible-core packages and how we've got separate areas for the documentation

With the release of Ansible 3, we had a need to track two different releases, ansible and ansible-core. To achieve this, we now have:

To clarify - Ansible docs include everything, with the exception of core porting guides (which are included in the Ansible porting guide) and core roadmaps.

The ansible-core docs include only core features. Scenario guides, network guides, and Ansible porting guides/roadmaps are not on ansible-core.

Possible next steps

Call to Action

Documentation Survey feedback

Alica Cozine (acozine) Lead Technical Writer for Ansible gives an update on the recent documentation survey

FIXME Link to Docs Agenda and ICS file

FIXME stats

  • Number of results
  • Most survey results came from people clicking on the docs.ansible.com banner, so we know we reached the right people

What we learned

  • Some questions should have allowed multiple results
  • Need to make it cleared why we asked some questions, such as "Who do you work for"

Call to Action

  • How people can contribute to the docs
    • In particular that newcomers feedback is very useful

Ansible-core Roadmap

ansible-core 2.11

  • Ansible-core 2.11 roadmap
  • Rename ansible-base to ansible-core.
  • Improve UX of ansible-galaxy collection CLI, specifically as it relates to install and upgrade.
  • Add new Role Argument Spec feature that will allow a role to define an argument spec to be used in validating variables used by the role.
  • Bump the minimum Python version requirement for the controller to Python 3.8. There will be no breaking changes to this release, however ansible-core will only be packaged for Python 3.8+. ansible-core==2.12 will include breaking changes requiring at least Python 3.8.
  • Improvements to make it easier to run with (or without!) selinux/yum/dnf/apt libs that tend to be an issue when running out of virtualenvs and stuff like that

ansible-core 2.12

  • The Ansible Core Team is still working on the roadmap. Once decided it will be shared in The Bullhorn
  • Likely to include some internal changes to take advanatage of Python 3
  • Performance improvements due to moving to Python 3 on the Controller
  • the only real pseudo user facing feature is extending action_groups module_defaults to be managed by collections, instead of core having a hardcoded list of the collections that provide action groups and thats more giving collection authors more ability
  • https://github.com/ansible/ansible/pull/72602/files

ansible 2.9

FIXME Detail when Community will stop getting update
When it will stop getting security (CVE) updates

General

  • Hoping to standerdize the the ansible-core package releases to be April & October. This is stil been worked though
  • ansible-core is still considering semver.
    • Even if ansible-core does move to semver then move to ansible-core 3.0.0 wouldn't be a major (backwards incomptable) change like the move from Ansible 1.0 to Ansible 2.0.
    • Some interestin comments in Semver will not save you

Call to action

Community Galaxy update

nitzmahone (Senior Principal Engineer/ ansible-core architect) and awcrosby give an update on what happening with galaxy.ansible.com

Copy of nitzmahone slides

Call to Action

Documenting Ansible Collections

Call to Actions

Cloud collections update

Jillr provides an update on the Cloud Collections (slides)

  • The Engineering team has doubled in size over the past few months (gravesm, alinabuzachis, abikouo)
  • collections list:
    • amazon.aws
    • community.aws
    • kubernetes.core
    • community.okd
    • community.vmware
    • vmware.vmware_rest
  • Amazon is dropping support for Python 2.7 in the boto3 library. This affects both amazon.aws and community.aws FIXME detail which collection and ansible collection that is https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-python-2-7-in-aws-sdk-for-python-and-aws-cli-v1/
  • FIXME Details of moving some modules from community.aws to amazin.aws. This is the first time that any modules have ever been promoted from Community to supported. Lots of technical reviews and updates (do they support checkmode, test coverage, decent documentation and example)

Call to Action

  • FIXME

Top n-things we don’t have answers to

Should the ansible package patch collections?

  • The current Ansible package is modelled after Linux distributions. An aggregation of many upstreams into a single integrated package for end users.

  • Linux distributions are able to modify the upstream content for multiple reasons:

    • To apply changes before upstream.
    • To backport changes to versions unsupported by upstream.
    • To make modifications that are needed to integrate into the distribution but aren't accepted upstream.
  • We currently don't have a method of patching upstream collections for inclusion in Ansible. Do we need to create one?

  • Doing so will require more manpower: Linux distributions essentially have a downstream group of maintainers for their packages in addition to the upstream maintainer group.

  • Linux distributions sometimes struggle to keep their changes moving upstream (so they don't have to maintain them forever). We could have the same problems.

Call to Action

We think there is too much work involved in this, at least at this time. So we'll need to depend on the upstream maintainers to be active in fixing issues, especially security issues.

Toshio (abadger1999) will draft a proposal along these lines for the steering committee to approve.

Long Term Support (maintenance) for the ansible package

  • Ansible 2.9 and earlier supported three concurrent releases (while developing a fourth). (ie: ansible-2.6 received security fixes, ansible-2.7 received critical and security bugfixes, ansible-2.8 received any backwards compatible bugfixes, 2.9 was under development)

  • Thus far, we've said that in 2.10 and later, only the current released ansible will see updates.

  • Do we want to change that? Who wants to do that work?

  • It is important for end users to be able to use the previous version of ansible (migration, preparing for breaking/major changes, avoid early bugs, update fewer times a year)

  • dmsimard volunteers to draft a proposal to maintain one previous version of ansible with reduced updates.

  • dmsimard hopes that improving the release testing and automation means more people can contribute and reduce the time investment in making stable releases.

  • Problems that will need to be addressed:

    • Since we're not patching upstreams, we're at the mercy of upstream collection owners to provide fixed, backwards compatible collection releases.
    • Need to set end user's expectations appropriately: for instance, that there may be security issues left unpatched.
    • How should we position 3.x once 4.x is out considering that not every collection is expected to be shipping stable updates ? Would it encourage users to roll out their deployments with ansible-core and cherry-picked collections instead ?

Call to Action

dmsimard will write up a proposal for releasing updates of the previous major version of ansible. He'll be spearheading that effort if we decide to go that route.

Inclusion of new collections: Ansible 3.0.0 and Ansible 4.0.0

This is a retrospective of how we did at including new collections in Ansible-3.0 and pointing out potential problems for Ansible-4.0 and beyond:

Presentation highlights

Call to Action

  • Scaling of reviewers
    • No promise that all collections will be reviewed for ansible-4.0
    • Collection Review days (similar to PR review days)
    • Please bring more ideas to the #ansible-community channel on IRC.

Retrospective

It's important that we honestly reflect on the Contributors Summit so we can improve future events, be they virtual or in-person.

We aim to run 3 virtual Contributors Summits during 2021

Polls

Letting presentors know in advance that we have the ability to have do polls would be useful.

In advance means Greg can review and tweak the questions if needed

In advance makes it easier for the event host

Chat platform

  • This time there didn't seem to be much chat in IRC, most of the chat was in Google Meet.
  • As the event progressed, the chat panel took increasingly longer to close and re-open (probably because it needed to re-load all the messages), up to Firefox displaying a warning that the page was hanging.
  • We sometimes missed people using the "raise hand" feature

Clarifying who the audience is

Some presenters have said they were confused who the audience of Contributors Summit is. It's likely that some attendees were also unsure.

Suggestion Promotion should include a "You should attend if"

You should attend if you are interested in:
* Understanding how to contribute to ansible-core
* Understanding how to contribute to Collections

Presenters checklist

Set expectations and give guidance for presenters in advance so they understand what we are looking for

  • The aim:
    • Create a sense of community
    • Make people understand there are people behind the community/IRC/GitHub
  • Explain who the audience is
  • It's OK to not know the details
    • It's OK to say "We are thinking X, but we aren't sure"
    • It's OK to say "We have an intention"
  • Explain the purpose
    • Educate
    • Motivate
  • Call to action
    • How & Where can people give feedback
    • How can people get the code and test it
    • How can people contribute
    • We are thinking of doing feature X, what do you think?
  • We can ask polls, tell us in advance
  • We want to publish recordings and slides

Timezones

We need to do something to cover APAC

Breakouts

This time we didn't have any breakouts.
How do people think that went?

How do we increase audience participation

  • Finalise topics in advance, send out to all attendees
  • How can we get people to come with ideas in their mind already
  • Felt that the documentation team update got a good amount of discussion
    • How did they achieve this?
      • Responsive to people on their IRC channel
      • Very communicative of their future plans
      • Always express gratitude for contributions
      • Good about explaining reasons for decisions
      • Ask for input while planning new changes (so contributors have a chance to affect the outcome)
    • Are docs proposals a safe place for (potential) first time contributors to have an opinion on
      • Everyone has used the docs so people feel that they can have an opinion
  • How can we remove the imposter syndrome
  • Can we "pre-seed" the audience?
    • Have some "plants" to contradict us

Calendar invites

  • Should we add to the .ics files in gh/ansible/community
  • Can we include a link to the hackmd

Lightning talk

From first time contributors

  • how did it go
  • What was difficult

Attendees

Please put your name (irc nick) if you are attending

  • Carol Chen (cybette)
  • John Barker (gundalow)
  • Ompragash (ompragash)
  • Sviatoslav Sydorenko (webknjaz)
  • Sorin Sbarnea (zbr)
  • Sandra McCann (samccann)
  • Lydie Mode-Malivert (lmodemal)
  • Alicia Cozine (acozine)
  • Felix Fontein (felixfontein)
  • Tadej Borovšak (tadeboro)
  • David Moreau Simard (dmsimard)
  • Jill Rouleau (jillr)
  • Andrew Klychkov (Andersson007)
  • Deric Crago (dericcrago)
  • Brian Scholer (briantist)
  • Abhijeet Kasurde (Akasurde)
  • Toshio Kuratomi (abadger1999)
  • René Moser (resmo)
  • Jesse Pretorius (odyssey4me)
  • Adam Miller (maxamillion)
  • Greg Sutcliffe (gwmngilfen)
  • Ganesh Nalawade (ganeshrn) (1st half)
  • Nate Case (Qalthos)
  • Matt Davis (nitzmahone)
  • Adrian Likins (alikins)
  • Andrius Benokraitis (andrius)
  • Amin Vakil (aminvakil)
  • Jeff Geerling (geerlingguy)
  • Sagi Shnaidman (sshnaidm)
  • Nikhil Jain (njain)
  • Sandeep Yadav (ysandeep)
  • Brad Thornton (cidrblock)
  • Trishna Guha (trishna)
  • Gagan Deep (pandafy)
  • Anastasios Lisgaras (Tassos)
  • Daniel Schier (daniel-wtd)
  • Aubin Bikouo (abikouo)
  • Jeff Goldschrafe (jgoldschrafe)
  • Tim Appnel (tima)
  • Matthew Butch (apple4ever)