Open Hour 2023-FEB-2
Watch the video recording of the Salt Community Open Hour for February 2, 2023. In this open hour, Pedro explains how the new GitHub Actions pipelines work and we explain the new release strategy.
- General updates and announcements
- Salt Project user group meetups
- Community forum updates
- Salt docs working group update
- Overview of the GitHub Actions pipeline
- Updated Salt LTS/STS release plan
- Q&A plus discussion
General updates and announcements
- Open Hours are held every 1st and 3rd Thursday from 10a.m. to 11a.m. Pacific.
- Our next Open Hour will be February 16.
- Join a Salt Project working group!
- Wayne Werner is no longer with VMware. Thank you to Wayne for his contributions to the Salt Project and to the community.
Salt Project user group meetups
Nicholas Hughes is working on a community-led effort to host some more in-person Salt events. These would be:
- Single-day events.
- Within a reasonable distance.
- Speakers giving sessions that are possibly recorded so that people who can’t attend in person can still participate.
- And of course: food and chances to do some social networking.
Go to spugm.com to join a mailing list for updates and let us know you are interested.
Community forums update
Today’s issue: what running a state.apply does:
- First, the master puts the command on the event bus.
- Each minion looks at the target to see if the command is meant for them or not. If not, they do not run the command.
- If they do pick it up, they will create a connection with the master and will request the top.sls and render it. Typically, they will render Jinja/YAML into a Python datastructure. Then, the minion will process the Python data structure in order. It will rendering it into Python, merging the data into the highstate. At that point, it will translate that highstate into a lowstate, then run through the lowstate for each. After that the requisites are processed.
- This description is a bit of an oversimplification. But there are also a few conditional steps. For example, when running a full highstate, the minion will ask for new pillars and refresh grains. The minion also checks if there is a master tops. Be aware that most people don’t use the master tops. It is a a top that the master programmatically pushes and it functions similar to Ansible’s Foreman. QubesOS also uses master tops.
- Most people have problems with the rendering problems. You might have a problem in Jinja, YAML, or a state file. It’s sometimes difficult to figure out where the problem is. Try using the slsutil.renderer or debug output in salt-call to see the rendered YAML.
Salt docs working group
Bennett Charles is working on a long-term project to improve the Salt module documentation. Right now, he’s working to improve the file state and remote execution module docs as part of a larger project to improve the module docs.
The goal is to provide the file modules as an example of high-quality module documentation. To help with this project, Bennett would like some involvement from the community in identifying use cases for some of the functions.
He’d love some examples of use cases for:
To help, join the
#module-docs channel or respond to requests from Bennett in
GitHub Actions pipeline overview
Pedro has been making significant improvements to the GitHub Actions pipeline to the Salt repository.
The goal with these pipeline improvements are to improve the test suite and make it easier to release at the push of a button. We’re working to resolve any blocking problems right now, but here’s a lot of work to do to make the pipeline better over time after we use the new pipeline.
This will work nightly so that we’ll be able to provide nightly builds of Salt and will eventually be available in the package repository in the dev folder.
- You can watch the video of the recording for a full explanation of each step in the pipeline. You can also view the pipeline yourself at: https://github.com/saltstack/salt/actions
- You can also look at the artifacts in the .github folder in the root project repository.
Updated LTS/STS release plan
The Salt Project is moving to an LTS release strategy per this Salt Enhancement Proposal (SEP).
One of the goals here is to have more predictable releases and make it easier to release Salt.
Salt will have one LTS release per year and will have active support for a year, then critical fixes for an additional year. Then, every quarter we’ll have regular releases.
- GA in March
- 3006.1 in April
- 3006.2 in July
- 3006.3 in October
Last time we presented this release plan, we didn’t have a CVE plan in place for STS releases, but that should be there now.
For the RC1, we might not have everything automated but we will have everything automated in time for the GA release.
Feel free to ask questions about this strategy on the community Slack workspace.
Q&A plus discussion
Q: I’m curious about the logistics of how the long term support and short term support will work in the repository. Are there going to be branches or tags? How will it work?
- A: There will be a branch for whatever the current branch is and then the short-term release. What we want to avoid is a situation where we do a lot of merge forwards. Some of this process will get solidified as we actually start using it. The core team will help people open the PRs against the right branches if needed.
Q: Is it likely that onedir packaging is going to stop changing after 3006? I don’t know really anything about onedir but was told that it will be changing from 3005 to 3006 and that I should wait for 3006 before transitioning.
- A: The onedir methodology will be stable from 3006 and forward. 3005 was using pyinstaller, but 3006 is using relenv, which should make things cleaner and easier to use. Everything is being tested very
Q: How useful is relenv for non-Salt projects?
- A: You can kind of think of it like a virtual environment with Python. You can set up an environment, zip it, and install it.
Q: The Salt Formulas working group meeting ID appears to be invalid. Is this working group still ongoing?
- A: We’ll definitely look into that and see who’s running it and get it sorted out.
- A community member mentioned that the Formulas group is on hiatus, but should be resuming soon.
Q: Salt defaults to YAML, but can you use TOML?
- A: We don’t have support for that today, but it could in theory be done. If someone wants to add that support and write the tests, we would welcome it.
Q: We just upgraded our Salt infrastructure to 3005.1 onedir and gitfs on our syndics has died. Is that a known issue?
- A: There is a known issue on syndics, but we’re not sure if it’s around gitfs. Go ahead and open a bug report to see if it’s a new issue or related to that one.
- There was also a long discussion about some of the nice ways that onedir has solved problems for one team.
Q: I haven’t checked; did the onedir option get documented in the bootstrap script? Will the option still be “onedir” for 3006?
- A: For 3006, the onedir option will still be there, but we’ll transition to installing the onedir option by default because that will be the only one available for 3006. The stable option will install onedir packages. We’ll keep the onedir option around in case people are using it but will eventually.
Q: With the GitHub actions, if you wanted to re-run a failed test suite, you could re-run it. Is there a way to do that in the new GitHub Actions?
- A: The GitHub UI should have that option. However, be aware that it only shows up at the very end of the run. However, it does present the option to only re-run what has failed, which will be nice.
Q: I have a question about who is maintaining pepper (Salt API). The current maintainer can no longer work on it. Can we get that handed off to someone else, including the pypi package access? It’s used very heavily by our group.
- A: Gareth will help to ensure that maintainers are set up. We do have future plans to make the pepper functionality to the CLI.
Feel free to tell us what you think about Open Hour on the Salt Project Community Slack.