Open Hour 2020-OCT-22

January 23, 2021 - slangadmin


YouTube Video PDF of Slide Deck

  • General updates a.k.a housekeeping
  • Docs Clinic today
  • SaltConf 20 Virtual
  • Existing SEPs
  • Discussion and Q&A


Salt news, updates, and SaltConf 20 Virtual

Magnesium release 3002 is live!

SaltStack is giving more access in GitHub: Outside Contributors

  • Changing Members to Outside Contributors
  • Private repos save your forks
  • ~2 weeks after 2020-NOV-05
  • Questions: Contact Sage Robins on Community Slack/keybase/element sagetherage

The Documentation Group, and Docs Clinics


SaltConf20 Virtually Everywhere will be the 7th annual SaltStack user conference. This event will be accessible globally on our virtual platform on October 29, 2020 from 9am to 6pm U.S. Mountain Time.

  • Fully virtual, attendance is free
  • Register for SaltConf20 here!
  • Checkout the SaltConf20 Agenda here!
  • We’ll be having some special guests from VMware, and also an appearance from one of the co-creators of Kubernetes: Joe Beda!
  • Thomas Hatch will be giving several presentations during this multi-track conference
  • All presentations will be recorded, and will be available for view after the conference

Don’t forget, anyone can also access content from SaltConf19, too!

Existing SEPs

All PRs in the SEPs repo represent open discussions on Salt Enhancement Proposals.

Open community discussion & questions

The rest of the open hour was dedicated to Q&A.

Windows issue: Getting no response from minions

When creating a series of calls against Windows systems, and converting commands over into execution modules, there seems to be a problem with using the file execution module calls.

file.copy seems to work, but file.get_hash seems to either never respond or not work.

Adding -t 30 to the salt command can increase the Windows timeout, but also the salt minion configuration has an option for extending timeout of a minion by default.

Working with salt-api and timeouts:

Timeout customization

Often, Windows salt minions need an extended timeout added to their calls in order to properly retrieve the results from a salt-minion.

# Run pkg.refresh_db against Windows salt minions,
#  but increase the timeout in order to see the response
salt -v -G 'os:Windows' pkg.refresh_db -t 100

When using the salt-api, using timeout in an example (as seen in the rest_cherrpy / salt-api docs):

	"client": "local",
	"tgt": "*",
	"fun": "test.sleep",
	"kwarg": {"length": 30},
	"timeout": 60

This can also be set within the master configuration, which will increase the default timeout value for calls made against all minions. Minions will still immediately send their responses as usual, but additional minion responses that previously may have never returned (due to too short a timeout) will have more time to respond.

# Set the default timeout for the salt command and api (in seconds)
# Default: 5
timeout: 30

For more help:

Where should people open issues related to salt packages?

Current guidance is to open issues within the main salt repository, and triage will take care of whether issues need to also be moved or opened elsewhere, such as in salt-pkg. This includes issues experienced as a result of trying out the new, beta tiamat-builds of salt:

  • salt-pkg repo, which contains directions on installing/testing Tiamat builds

Wow, there are a ton of PRs and issues open on GitHub! What’s up with that?

Salt is a very large community, and with it comes a large amount of contributions in the form of PRs and in the form of issues/tickets.

We have been using code jams to bring down the PR count, with many of the PRs being related to ports from other branches (mostly develop). We are looking at having another code jam and docs jam during the next release cycle.

Many PRs do not have tests, or are failing existing tests (related to pre-commit other existing tests in the test suite). All contributions and help are welcome!

Salt’s test suite guidance:

Also a good read: SaltStack Blog: PyTest – A Journey of Three Years

Working groups, community calendar, and general community

Checkout the SaltStack community Google calendar for upcoming events and streams.

Do you want to get more involved in salt and the SaltStack community? Get involved:

Archive extracting execution and state module

What should someone use to replace an existing state? For example, if wanting to replace functions within the salt.states.archive module?

The best way to go about it is to submit a PR:

Follow-up question: What about idem tools, and new state/execution modules?

The current plan is that POP projects are made for brand-new modules and functionality, with salt being able to make calls to idem projects if wanting to extend salt to support them.

Current modules already existing within salt aren’t going to be extracted/replaced unless several preliminary steps and decisions are made, as we do not want to break existing Salt states. The decisions around this have yet to be made.

If wanting to use salt-cloud, though, it is highly suggested that people make use of idem-cloud packages instead due to active development:

POP projects

Outside of salt, SaltStack also open-sourced a new way of creating Python-packages via Plugin Oriented Programming (POP). New execution modules and states that currently don’t exist within the salt project may find a better home as newly created idem projects.

POP links:

Tiamat and Salt SEP

Because Tiamat packages its own version of isolated Python and pip, it means that the functionality around pip packages install calls from Salt will have changed default behavior. An execution or state module call to install Python packages from pip would need to specify the system-level Python/pip if it wants to install packages that become available to system-level/third-party Python tools and applications outside of salt.

Pedro will be responding to questions, comments, and concerns around this in the SEP on Tiamat packaging for Salt.