Skip to content

Commit cce7dbd

Browse files
committed
Merge pull request saltstack#16666 from terminalmage/release-notes-helium
Add new fileserver features to helium release notes
2 parents 287ade4 + 48e81ac commit cce7dbd

File tree

5 files changed

+166
-38
lines changed

5 files changed

+166
-38
lines changed

doc/ref/configuration/master.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1584,9 +1584,9 @@ also be configured on a per-remote basis, see :conf_master:`here
15841584

15851585
Default: ``tags``
15861586

1587-
Path relative to the root of the repository where the tags is located. Can also
1588-
be configured on a per-remote basis, see :conf_master:`here <svnfs_remotes>`
1589-
for more info.
1587+
Path relative to the root of the repository where the tags are located. Can
1588+
also be configured on a per-remote basis, see :conf_master:`here
1589+
<svnfs_remotes>` for more info.
15901590

15911591
.. code-block:: yaml
15921592

doc/ref/configuration/minion.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ able to change these settings. If all minions have the same values and the setup
396396
quite large (several thousand minions), they will still flood the master. The desired
397397
behavior is to have time-frame within all minions try to reconnect.
398398

399-
.. code-block:: ymal
399+
.. code-block:: yaml
400400
401401
recon_randomize: True
402402

doc/topics/releases/2014.7.0.rst

Lines changed: 157 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ features like the ansible roster and fileserver backends to the new pypi
3939
salt-ssh installer to lowered deps and a swath of bugfixes, salt-ssh is
4040
basically reborn!
4141

42-
Pip install salt-ssh
43-
--------------------
42+
Install salt-ssh Using pip
43+
--------------------------
4444

45-
Salt ssh is now pip installable!
45+
salt-ssh is now pip-installable!
4646

4747
https://pypi.python.org/pypi/salt-ssh/
4848

@@ -91,26 +91,28 @@ State System Enhancements
9191
New Imperative State Keyword "Listen"
9292
-------------------------------------
9393

94-
The new listen keyword allows for completely imperative states by calling the
95-
mod_watch routine after all states have run instead of re-ordering the states.
94+
The new ``listen`` keyword allows for completely imperative states by calling
95+
the ``mod_watch()`` routine after all states have run instead of re-ordering
96+
the states.
9697

9798
Mod Aggregate Runtime Manipulator
9899
---------------------------------
99100

100-
The new mod_aggregate system allows for the state system to rewrite the state
101-
data during execution. This allows for state definitions to be aggregated
101+
The new ``mod_aggregate`` system allows for the state system to rewrite the
102+
state data during execution. This allows for state definitions to be aggregated
102103
dynamically at runtime.
103104

104-
The best example is found in the pkg state. If mod_aggregate is turned on,
105-
then when the first pkg state is reached the state system will scan all of the
106-
other running states for pkg states and take all other packages set for install
107-
and install them all at once in the first pkg state.
105+
The best example is found in the :mod:`pkg <salt.states.pkg>` state. If
106+
``mod_aggregate`` is turned on, then when the first pkg state is reached the
107+
state system will scan all of the other running states for pkg states and take
108+
all other packages set for install and install them all at once in the first
109+
pkg state.
108110

109-
These runtime modifications make it easy groups of states together, in future
110-
versions we hope to fill out the mod_aggregate system to build in more and
111-
more optimizations.
111+
These runtime modifications make it easy to run groups of states together. In
112+
future versions, we hope to fill out the ``mod_aggregate`` system to build in
113+
more and more optimizations.
112114

113-
For more documentation on mod_aggregate, see :doc:`the documentation
115+
For more documentation on ``mod_aggregate``, see :doc:`the documentation
114116
</ref/states/aggregate>`.
115117

116118
New Requisites: onchanges and onfail
@@ -162,9 +164,10 @@ like CentOS and Scientific.
162164
Fileserver Backends in salt-call
163165
--------------------------------
164166

165-
Standalone modes just got easier, now fileserver backends like gitfs can be
166-
used without a salt master! Just add the fileserver backend configuration to
167-
the minion config and execute salt-call.
167+
Fileserver backends like gitfs can now be used without a salt master! Just add
168+
the fileserver backend configuration to the minion config and execute
169+
salt-call. This has been a much-requested feature and we are heppy to finally
170+
bring it to our users.
168171

169172
Amazon Execution Modules
170173
------------------------
@@ -234,13 +237,146 @@ Managing Chef with Salt just got even easier!
234237
Fileserver Backend Enhancements
235238
-------------------------------
236239

237-
All of the fileserver backends have been overhauled to be faster, lighter and more reliable
240+
All of the fileserver backends have been overhauled to be faster, lighter and
241+
more reliable. The VCS backends (:mod:`gitfs <salt.fileserver.gitfs>`,
242+
:mod:`hgfs <salt.fileserver.hgfs>`, and :mod:`svnfs <salt.fileserver.svnfs>`)
243+
have also received a **lot** of new features.
244+
245+
Additionally, most config parameters for the VCS backends can now be configured
246+
on a per-remote basis, allowing for global config parameters to be overridden
247+
for a specific gitfs/hgfs/svnfs remote.
248+
249+
250+
New :mod:`gitfs <salt.fileserver.gitfs>` Features
251+
*************************************************
252+
253+
Pygit2 and Dulwich
254+
~~~~~~~~~~~~~~~~~~
255+
256+
In addition to supporting GitPython, support for pygit2_ (0.20.3 and newer) and
257+
dulwich_ have been added. Provided a compatible version of pygit2_ is
258+
installed, it will now be the default provider. The config parameter
259+
:conf_master:`gitfs_provider` has been added to allow one to choose a specific
260+
provider for gitfs.
261+
262+
.. _pygit2: https://github.com/libgit2/pygit2
263+
.. _dulwich: https://www.samba.org/~jelmer/dulwich/
264+
265+
.. _2014.7.0-gitfs-mountpoints:
266+
267+
Mountpoints
268+
~~~~~~~~~~~
269+
270+
Prior to this release, to serve a file from gitfs at a salt fileserver URL of
271+
``salt://foo/bar/baz.txt``, it was necessary to ensure that the parent
272+
directories existed in the repository. A new config parameter
273+
:conf_master:`gitfs_mountpoint` allows gitfs remotes to be exposed starting at
274+
a user-defined ``salt://`` URL.
275+
276+
.. _2014.7.0-gitfs-whitelist-blacklist:
277+
278+
Environment Whitelisting/Blacklisting
279+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
280+
281+
By default, gitfs will expose all branches and tags as Salt fileserver
282+
environments. Two new config parameters, :conf_master:`gitfs_env_whitelist` and
283+
:conf_master:`gitfs_env_blacklist`, allow more control over which branches and
284+
tags are exposed. More detailed information on how these two options work can
285+
be found in the :ref:`Gitfs Walkthrough <gitfs-whitelist-blacklist>`.
286+
287+
Expanded Authentication Support
288+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
289+
290+
As of pygit2_ 0.20.3, both http(s) and SSH key authentication are supported,
291+
and Salt now also supports both authentication methods when using pygit2_. Keep
292+
in mind that pygit2_ 0.20.3 is not yet available on many platforms, so those
293+
who had been using authenticated git repositories with a passphraseless key
294+
should stick to GitPython if a new enough pygit2_ is not yet available for the
295+
platform on which the master is running.
296+
297+
A full explanation of how to use authentication can be found in the :ref:`Gitfs
298+
Walkthrough <gitfs-authentication>`.
299+
300+
301+
New :mod:`hgfs <salt.fileserver.hgfs>` Features
302+
***********************************************
303+
304+
Mountpoints
305+
~~~~~~~~~~~
306+
307+
This feature works exactly like its :ref:`gitfs counterpart
308+
<2014.7.0-gitfs-mountpoints>`. The new config parameter is called
309+
:conf_master:`hgfs_mountpoint`.
310+
311+
Environment Whitelisting/Blacklisting
312+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
313+
314+
This feature works exactly like its :ref:`gitfs counterpart
315+
<2014.7.0-gitfs-whitelist-blacklist>`. The new config parameters are called
316+
:conf_master:`hgfs_env_whitelist` and :conf_master:`hgfs_env_blacklist`.
317+
318+
319+
New :mod:`svnfs <salt.fileserver.svnfs>` Features
320+
*************************************************
321+
322+
Mountpoints
323+
~~~~~~~~~~~
324+
325+
This feature works exactly like its :ref:`gitfs counterpart
326+
<2014.7.0-gitfs-mountpoints>`. The new config parameter is called
327+
:conf_master:`svnfs_mountpoint`.
328+
329+
Environment Whitelisting/Blacklisting
330+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
331+
332+
This feature works exactly like its :ref:`gitfs counterpart
333+
<2014.7.0-gitfs-whitelist-blacklist>`. The new config parameters are called
334+
:conf_master:`svnfs_env_whitelist` and :conf_master:`svnfs_env_blacklist`.
335+
336+
Configurable Trunk/Branches/Tags Paths
337+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
338+
339+
Prior to this release, the paths where trunk, branches, and tags were located
340+
could only be in directores named "trunk", "branches", and "tags" directly
341+
under the root of the repository. Three new config parameters
342+
(:conf_master:`svnfs_trunk`, :conf_master:`svnfs_branches`, and
343+
:conf_master:`svnfs_tags`) allow SVN repositories which are laid out
344+
differently to be used with svnfs.
345+
346+
New :mod:`minionfs <salt.fileserver.minionfs>` Features
347+
*******************************************************
348+
349+
Mountpoint
350+
~~~~~~~~~~
351+
352+
This feature works exactly like its :ref:`gitfs counterpart
353+
<2014.7.0-gitfs-mountpoints>`. The new config parameter is called
354+
:conf_master:`minionfs_mountpoint`. The one major difference is that, as
355+
minionfs doesn't use multiple remotes (it just serves up files pushed to the
356+
master using :mod:`cp.push <salt.modules.cp.push>`) there is no such thing as a
357+
per-remote configuration for :conf_master:`minionfs_mountpoint`.
358+
359+
Changing the Saltenv from Which Files are Served
360+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
361+
362+
A new config parameter (:conf_master:`minionfs_env`) allows minionfs files to
363+
be served from a Salt fileserver environment other than ``base``.
364+
365+
Minion Whitelisting/Blacklisting
366+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
367+
368+
By default, minionfs will expose the pushed files from all minions. Two new
369+
config parameters, :conf_master:`minionfs_whitelist` and
370+
:conf_master:`minionfs_blacklist`, allow minionfs to be restricted to serve
371+
files from only the desired minions.
372+
238373

239374
Pyobjects Renderer
240375
------------------
241376

242-
Salt now ships with with the :mod:`Pyobjects Renderer <salt.renderers.pyobjects>` that
243-
allows for construction of States using pure Python with an idiomatic object interface.
377+
Salt now ships with with the :mod:`Pyobjects Renderer
378+
<salt.renderers.pyobjects>` that allows for construction of States using pure
379+
Python with an idiomatic object interface.
244380

245381
New Modules
246382
===========

doc/topics/tutorials/intro_scale.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ reconnect x: etc.
146146

147147
With a thousand minions this will mean
148148

149-
.. code-block:: math
149+
.. code-block:: text
150150
151151
1000/60 = ~16
152152
@@ -228,7 +228,7 @@ the retention time defined by
228228
229229
keep_jobs: 24
230230
231-
.. code-block:: math
231+
.. code-block:: text
232232
233233
250 jobs/day * 2000 minions returns = 500.000 files a day
234234

salt/fileserver/gitfs.py

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
An optional master config parameter (:conf_master:`gitfs_provider`) can be used
1818
to specify which provider should be used.
1919
20+
More detailed information on how to use gitfs can be found in the :ref:`Gitfs
21+
Walkthrough <tutorial-gitfs>`.
22+
2023
.. note:: Minimum requirements
2124
2225
To use GitPython_ for gitfs requires a minimum GitPython version of 0.3.0,
@@ -32,21 +35,10 @@
3235
To find stale refs, pygit2 additionally requires the git CLI utility to be
3336
installed.
3437
35-
.. warning::
36-
37-
pygit2_ does not yet support supplying passing SSH credentials, so at
38-
this time only ``http://``, ``https://``, and ``file://`` URLs are
39-
supported as valid :conf_master:`gitfs_remotes` entries if pygit2 is being
40-
used.
41-
42-
Additionally, pygit2_ does not yet support passing http/https credentials
43-
via a `.netrc`_ file.
44-
4538
.. _GitPython: https://github.com/gitpython-developers/GitPython
4639
.. _pygit2: https://github.com/libgit2/pygit2
4740
.. _libgit2: https://libgit2.github.com/
4841
.. _dulwich: https://www.samba.org/~jelmer/dulwich/
49-
.. _.netrc: https://www.gnu.org/software/inetutils/manual/html_node/The-_002enetrc-File.html
5042
'''
5143

5244
# Import python libs

0 commit comments

Comments
 (0)