* Update file.sls
add replace
* Update file.sls
update replace
* Update job.sls
Added the opportunity to set a job with a special keyword like '@reboot' or '@hourly'. Quotes must be used, otherwise PyYAML will strip the '@' sign.
https://docs.saltstack.com/en/master/ref/states/all/salt.states.cron.html
* Update README.rst
Added the opportunity to set a job with a special keyword like '@reboot' or '@hourly'. Quotes must be used, otherwise PyYAML will strip the '@' sign.
* Update README.rst
* fix(deprecation): update to new method (#214)
Signed-off-by: Felipe Zipitria <fzipitria@perceptyx.com>
* Allow swap to be completely disabled
* sort repos so they do not change order every run
* allow use of new state syntax for module.run
The new syntax has been supported since ~2017.
From the docs, in case they change:
! New Style
test.random_hash:
module.run:
- test.random_hash:
- size: 42
- hash_type: sha256
! Legacy Style
test.random_hash:
module.run:
- size: 42
- hash_type: sha256
* Update map.jinja
Add support fpr Ubuntu Focal.
* Update file.sls
added possibility to delete files
* Network resolf.conf handling
the handling as the Resolv.conf is generated and adapted, adapted.
previously the Resolv.conf was created and then through
Overwrite "network.system" in the interface.sls again.
With two search servers that should actually be included.
"search example.com. sudomain.example.com"
but it always became that
search ['example.com.', 'sudomain.example.com']
The resolv.conf was first created correctly but then overwritten again in the interface.sls.
The problem only arises if you don't want to have a "Domain:" in resov.conf
* rewrite LVM lv_present
Since salt now also supports LV extend and reduce, the option Force must be used with care.
The changes include that force is only set if the corresponding LV does not yet exist (check via Grains) in order to overwrite any FS signatures (Wiping fs signature).
If the LV already exists (check via Grains), Force is set to False unless this is explicitly set to True in the pillars.
* Network resolf.conf handling (#220) (#8)
* Update file.sls
add replace
* Update file.sls
update replace
* Update job.sls
Added the opportunity to set a job with a special keyword like '@reboot' or '@hourly'. Quotes must be used, otherwise PyYAML will strip the '@' sign.
https://docs.saltstack.com/en/master/ref/states/all/salt.states.cron.html
* Update README.rst
Added the opportunity to set a job with a special keyword like '@reboot' or '@hourly'. Quotes must be used, otherwise PyYAML will strip the '@' sign.
* Update README.rst
* fix(deprecation): update to new method (#214)
Signed-off-by: Felipe Zipitria <fzipitria@perceptyx.com>
* Allow swap to be completely disabled
* sort repos so they do not change order every run
* allow use of new state syntax for module.run
The new syntax has been supported since ~2017.
From the docs, in case they change:
! New Style
test.random_hash:
module.run:
- test.random_hash:
- size: 42
- hash_type: sha256
! Legacy Style
test.random_hash:
module.run:
- size: 42
- hash_type: sha256
* Update map.jinja
Add support fpr Ubuntu Focal.
* Update file.sls
added possibility to delete files
* Network resolf.conf handling
the handling as the Resolv.conf is generated and adapted, adapted.
previously the Resolv.conf was created and then through
Overwrite "network.system" in the interface.sls again.
With two search servers that should actually be included.
"search example.com. sudomain.example.com"
but it always became that
search ['example.com.', 'sudomain.example.com']
The resolv.conf was first created correctly but then overwritten again in the interface.sls.
The problem only arises if you don't want to have a "Domain:" in resov.conf
Co-authored-by: Felipe Zipitría <fzipi@fing.edu.uy>
Co-authored-by: Kyle Gullion <kgullion@gmail.com>
Co-authored-by: Matthew Thode <thode@fsi.io>
Co-authored-by: Matthew Thode <mthode@mthode.org>
Co-authored-by: Felipe Zipitría <fzipi@fing.edu.uy>
Co-authored-by: Kyle Gullion <kgullion@gmail.com>
Co-authored-by: Matthew Thode <thode@fsi.io>
Co-authored-by: Matthew Thode <mthode@mthode.org>
* Network resolf.conf handling (#220) (#9)
* Update file.sls
add replace
* Update file.sls
update replace
* Update job.sls
Added the opportunity to set a job with a special keyword like '@reboot' or '@hourly'. Quotes must be used, otherwise PyYAML will strip the '@' sign.
https://docs.saltstack.com/en/master/ref/states/all/salt.states.cron.html
* Update README.rst
Added the opportunity to set a job with a special keyword like '@reboot' or '@hourly'. Quotes must be used, otherwise PyYAML will strip the '@' sign.
* Update README.rst
* fix(deprecation): update to new method (#214)
Signed-off-by: Felipe Zipitria <fzipitria@perceptyx.com>
* Allow swap to be completely disabled
* sort repos so they do not change order every run
* allow use of new state syntax for module.run
The new syntax has been supported since ~2017.
From the docs, in case they change:
! New Style
test.random_hash:
module.run:
- test.random_hash:
- size: 42
- hash_type: sha256
! Legacy Style
test.random_hash:
module.run:
- size: 42
- hash_type: sha256
* Update map.jinja
Add support fpr Ubuntu Focal.
* Update file.sls
added possibility to delete files
* Network resolf.conf handling
the handling as the Resolv.conf is generated and adapted, adapted.
previously the Resolv.conf was created and then through
Overwrite "network.system" in the interface.sls again.
With two search servers that should actually be included.
"search example.com. sudomain.example.com"
but it always became that
search ['example.com.', 'sudomain.example.com']
The resolv.conf was first created correctly but then overwritten again in the interface.sls.
The problem only arises if you don't want to have a "Domain:" in resov.conf
Co-authored-by: Felipe Zipitría <fzipi@fing.edu.uy>
Co-authored-by: Kyle Gullion <kgullion@gmail.com>
Co-authored-by: Matthew Thode <thode@fsi.io>
Co-authored-by: Matthew Thode <mthode@mthode.org>
Co-authored-by: Felipe Zipitría <fzipi@fing.edu.uy>
Co-authored-by: Kyle Gullion <kgullion@gmail.com>
Co-authored-by: Matthew Thode <thode@fsi.io>
Co-authored-by: Matthew Thode <mthode@mthode.org>
* Update mount.sls
added the possibility to set the dump and pass option
dump
The dump value to be passed into the fstab, Default is 0
pass_num
The pass value to be passed into the fstab, Default is 0
* Update mount.sls
correction, wrong line.
added the possibility to set the dump and pass option
dump
The dump value to be passed into the fstab, Default is 0
pass_num
The pass value to be passed into the fstab, Default is 0
* Add Bind Mount Option
Add Bind Mount Option
* Add support for template defaults/context args
* Add IPv6 Interface Support
Add IPv6 Interface Support
First Version
* Fix warning in salt v3003
The 'gid_from_name' argument in the user.present state has been replaced
with 'usergroup'. Update your SLS file to get rid of this warning.
* Update map.jinja
add Jammy Support
---------
Signed-off-by: Felipe Zipitria <fzipitria@perceptyx.com>
Co-authored-by: Felipe Zipitría <fzipi@fing.edu.uy>
Co-authored-by: Kyle Gullion <kgullion@gmail.com>
Co-authored-by: Matthew Thode <thode@fsi.io>
Co-authored-by: Matthew Thode <mthode@mthode.org>
Co-authored-by: Bruno Binet <bruno.binet@gmail.com>
* Update file.sls
add replace
* Update file.sls
update replace
* Update job.sls
Added the opportunity to set a job with a special keyword like '@reboot' or '@hourly'. Quotes must be used, otherwise PyYAML will strip the '@' sign.
https://docs.saltstack.com/en/master/ref/states/all/salt.states.cron.html
* Update README.rst
Added the opportunity to set a job with a special keyword like '@reboot' or '@hourly'. Quotes must be used, otherwise PyYAML will strip the '@' sign.
* Update README.rst
* fix(deprecation): update to new method (#214)
Signed-off-by: Felipe Zipitria <fzipitria@perceptyx.com>
* Allow swap to be completely disabled
* sort repos so they do not change order every run
* allow use of new state syntax for module.run
The new syntax has been supported since ~2017.
From the docs, in case they change:
! New Style
test.random_hash:
module.run:
- test.random_hash:
- size: 42
- hash_type: sha256
! Legacy Style
test.random_hash:
module.run:
- size: 42
- hash_type: sha256
* Update map.jinja
Add support fpr Ubuntu Focal.
* Update file.sls
added possibility to delete files
* Network resolf.conf handling
the handling as the Resolv.conf is generated and adapted, adapted.
previously the Resolv.conf was created and then through
Overwrite "network.system" in the interface.sls again.
With two search servers that should actually be included.
"search example.com. sudomain.example.com"
but it always became that
search ['example.com.', 'sudomain.example.com']
The resolv.conf was first created correctly but then overwritten again in the interface.sls.
The problem only arises if you don't want to have a "Domain:" in resov.conf
Co-authored-by: Felipe Zipitría <fzipi@fing.edu.uy>
Co-authored-by: Kyle Gullion <kgullion@gmail.com>
Co-authored-by: Matthew Thode <thode@fsi.io>
Co-authored-by: Matthew Thode <mthode@mthode.org>
Linux bridges are automatically set UP when
any parent interface is UP.
But for OVS bridges it doesn't work.
For dpdk and non-dpdk bridges, always create a
config file in /etc/network/interfaces.u/ and
bring the bridge interface up after it is configured,
even if it doesn't have IP address.
Change-Id: I92888ce0d373e412dfb7ed2e2398c0d4d008e301
Closes-Bug: https://mirantis.jira.com/browse/PROD-24343
Issue description:
PXE interfaces, which are used by salt should not be restarted
during salt calls, otherwise communication between salt master and
salt minion would be interrupted.
Therefore it is possible to specify "noifupdown: True" in pillars
for this interface or group of interfaces, which are used for PXE
network.
This pillar structure will remain until one removes it manualy.
It is not possible to remove it during deploy and enforce network
state without touching the model.
It is possible to override pillars from CLI like:
# salt ctl01* state.apply linux.network.interface \
pillar='{"linux":{"network":{"interface":{"ens3":{"noifupdown":True}}}}}'
However it is not easy/possible to predict all interfaces for PXE
network.
Solution:
Provide global noifupdown pillar value check.
If it exists, noifupdown will take effect and not otherwise.
So our deployment would have next steps:
- Execute: linux.network.interface pillar='{"linux":{"network":{"noifupdown":True}}}'
- Reboot node to enable kernel params like hugepages etc.
- Execute: linux.network.interface with no params to ensure PXE.
Pipelines may pass this parameter to control noifupdown behavior.
Change-Id: I8863f972c7805e4bf4f9e104d6c0ddf055c39cb1
The patch makes IP address flush for external network
interface where IP address is assigned automatically
however an IP address from the same IP range is hardcoded in
the model.
Change-Id: I4220a635a96a031ad74dca1034c917e7d87d4b11
Related-PROD: PROD-19504
Issue: First time you configure dpdk ovs switch it would stuck on
answering salt-minion because kernel options, such as
intel_iommu,iommu,isolcpus, are not set and ovs would
exhaust all hugepages and fail to apply options on the fly.
Fix: Configure ovs switch without waiting for an answer and
reboot the node afterall as we do this all the time before
starting automated pipeline.
Change-Id: Ica27a6cc47312bcc0762cddde049a0abf771f9fb
Previously there were no dependency and as result we tried to add port to
non existent bridge.
Change-Id: I69ad6a6faecf399185a72650e8dbeb019b6fbc05
Related-Prod: PROD-18112
Previously, setting up routes did not allow passing 'require_reboot',
so each route change would lead to a networking service restart,
rendering interface configuration options like 'noifupdown' useless.
Allow disabling network restart per-interface using the existing
'noifupdown' option.
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Fixed:
* The udev-rules template is not tested
* Wrong unicode character in the template leads to udev ignoring
the rule completely
* The template is unable to be rendered due to absent import
* udev is not retrigerred with new rules
Change-Id: I134b5e49b883afcc5e34feaaa561d7ca70192796
Closes-Bug: PROD-16649
This workaround is required until salt with the patch [1] is not
used.
- use 'ifenslave' tool to enslave necessary interfaces only if bond
interface has been changed
- install package that provides 'ifenslave' tool
[1] https://github.com/saltstack/salt/pull/39912
Change-Id: I65b607f26cf7319efb60f154951855d1334e1640
Non-destructive patch, won't affect anything because this
option is not used in any model yet.
Official guide for network.managed state provides an example:
bond0:
network.managed:
- type: bond
- slaves: eth2 eth3
- require:
- network: eth2
- network: eth3
...
without parameter: '- use:'
* add a new option 'require_interfaces' that allows to set
'- require:' not only for 'bridge' interfaces
* using 'require_interfaces' allows to fix the order for states
that create bonds (do not try to create bond0 before slave
interfaces are configured!)
* using 'require_interfaces' allows to fix the order for states
that create VLANs (do not try to create tagged interfaces before
parent interface is created, it locks the parent interface
creation!), example: bond0.2516 created before bond0
* using 'require_interfaces' allows to fix the order for states
that depend on OVS interfaces
Change-Id: Id4539a7e24f2c55fb62afe5d47e485effc9a882b
Interface name was hardcoded when checking if peer is set for
ovs interface.
This patch unhardcode interface name.
Change-Id: Id465d5f84751b5516aebc9d80716d21d14e56abc
This patch adds dependency for ovs_port_up_{{ interface_name }} on
linux_interfaces_final_include. This is needed to avoid errors like
"Unknown interface XXX"
Change-Id: I763ff8ae32a170df3802a65a547c6e76959a0137
Change of mtu is not handled by reclass. Example interface:
```
br_ctl:
enabled: true
type: bridge
proto: static
mtu: 1450
address: ${_param:single_address}
gateway: ${_param:ctl_gateway}
netmask: ${_param:control_network_netmask}
use_interfaces:
- ${_param:primary_first_nic}
```
We need to save our manualy managed interfaces to different directory to
workaround salt bug that causes interface deconfiguration in
/etc/network/interfaces for interfaces manualy configured in
/etc/network/interfaces.d
Upstream-Bug: https://github.com/saltstack/salt/issues/40262
Config:
linux:
network:
tap_custom_txqueuelen: 10000
in case of configuration parameter defined will create file:
/etc/udev/rules.d/60-net-txqueue.rules
with content:
KERNEL==”tap[0-9a-z\-]*", RUN+="/sbin/ip link set %k txqueuelen 10000"
Introduce dpdk support for linux OVS configuration.
It configures dpdk interface bind, ovs dpdk ports, bonding,
parameters for dpdk cpu pmd and set multique queues for specific
ovs dpdk interfaces.
Change-Id: I3f38660bab8db0c2b38f03ed8c94eb10b6b3beb9
Epic: PROD-8957
Epic: PROD-8958
"names" makes a separate call to the package management frontend to
install each package, whereas "pkgs" makes just a single call so that it
improves performance.