Compare commits

...

4 commits

12 changed files with 201 additions and 10 deletions

View file

@ -89,7 +89,6 @@ ipv4_import=
if [ -f "${__object:?}"/parameter/ipv4-import ];
then
ipv4_import="$(cat "${__object:?}"/parameter/ipv4-import)"
echo "FOO" >&2
fi
export ipv4_import

View file

@ -15,12 +15,17 @@ autoconfigure IPv6 hosts, this type is a rudimentary implementation to generate
configuration for Bird to do so.
REQUIRED MULTIPLE PARAMETERS
----------------------------
REQUIRED PARAMETERS
-------------------
interface
The interfaces to activate the protocol on. RAs will be sent using the
prefixes configured on these interfaces.
OPTIONAL PARAMETERS
-------------------
mtu
An optional MTU setting to include in the router advertisements.
OPTIONAL MULTIPLE PARAMETERS
----------------------------
@ -41,6 +46,7 @@ EXAMPLES
__bird_radv datacenter \
--interface eth1 \
--mtu 9000 \
--route ::/0 \
--ns 2001:DB8:cafe::4 \
--ns 2001:DB8:cafe::14 \

View file

@ -55,6 +55,12 @@ then
DNSSL=$(sed -e 's/^/\tdnssl "/' -e 's/$/";/' "${__object:?}/parameter/dnssl")
fi
MTU=
if [ -f "${__object:?}/parameter/mtu" ];
then
MTU="link mtu $(cat "${__object:?}/parameter/mtu")"
fi
__file "${confdir:?}/radv-${__object_id:?}.conf" \
--mode 0640 --owner root --group bird \
--source - << EOF
@ -71,7 +77,9 @@ protocol radv ${__object_id:?} {
propagate routes ${have_routes:?};
ipv6 { table radv_routes; export all; };
$(sed -e 's/^/\tinterface "/' -e 's/$/";/' "${__object:?}/parameter/interface")
interface "$(cat "${__object:?}/parameter/interface")" {
$MTU
};
$RDNS

View file

@ -0,0 +1 @@
mtu

View file

@ -1,5 +1,5 @@
cdist-type__matrix_synapse(7)
======================
=============================
NAME
----
@ -8,7 +8,7 @@ cdist-type__matrix_synapse - Install and configure Synapse, a Matrix homeserver
DESCRIPTION
-----------
This type install and configure the Synapse Matrix homeserver. This is a
This type installs and configures the Synapse Matrix homeserver. This is a
signleton type.
@ -52,13 +52,13 @@ ldap-base-dn
Base DN of your LDAP tree.
ldap-uid-attribute
LDAP attriute mapping to Synapse's uid field, default to uid.
LDAP attribute mapping to Synapse's uid field, default to uid.
ldap-mail-attribute
LDAP attriute mapping to Synapse's mail field, default to mail.
LDAP attribute mapping to Synapse's mail field, default to mail.
ldap-name-attribute
LDAP attriute mapping to Synapse's name field, default to givenName.
LDAP attribute mapping to Synapse's name field, default to givenName.
ldap-bind-dn
User used to authenticate against your LDAP server in 'search' mode.
@ -81,7 +81,7 @@ smtp-host
The hostname of the outgoing SMTP server to use. Defaults to 'localhost'.
smtp-port
# The port on the mail server for outgoing SMTP. Defaults to 25.
The port on the mail server for outgoing SMTP. Defaults to 25.
smtp-user
Username for authentication to the SMTP server. By

View file

@ -0,0 +1,20 @@
#!/bin/sh -e
#
# 2022 Joachim Desroches (joachim.desroches@epfl.ch)
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
echo "systemctl enable systemd-networkd"

View file

@ -0,0 +1,68 @@
cdist-type__systemd-network(7)
==============================
NAME
----
cdist-type__systemd-network - Configure systemd.network(5) file.
DESCRIPTION
-----------
This type allows you to configure network interfaces by generating a
systemd.network(5) file. It will enable systemd-networkd, so be sure to remove
any conflicting network configuration tool if appropriate!
Note that the systemd.network(5) system is very complete, and this type does
not aim at providing every possible option. Are currently available only the
most common options: feel free to add anything you need to this type which
hopefully will grow over time.
REQUIRED PARAMETERS
-------------------
None.
OPTIONAL PARAMETERS
-------------------
description
A text field used when displaying details about this network.
OPTIONAL MULTIPLE PARAMETERS
----------------------------
match-name
A text field that will be set in the `Name` option of the `[Match]` section.
BOOLEAN PARAMETERS
------------------
ipv6ra-usedomains
Set the `UseDomains` option of the `[IPv6AcceptRA]` section to `True`.
EXAMPLES
--------
.. code-block:: sh
# TODO
__systemd-network
SEE ALSO
--------
`cdist-type_systemd-resolved`\ (7)
`systemd.network`\ (5)
AUTHORS
-------
Joachim Desroches <joachim.desroches@epfl.ch>
COPYING
-------
Copyright \(C) 2022 Joachim Desroches. You can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

86
type/__systemd_network/manifest Executable file
View file

@ -0,0 +1,86 @@
#!/bin/sh -e
#
# 2022 Joachim Desroches (joachim.desroches@epfl.ch)
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
os=$(cat "${__global:?}/explorer/os")
case "$os" in
'debian' | 'ubuntu' | 'archlinux')
:
;;
*)
printf "Your operating system (%s) is currently not supported by systemd-network\n" "$os" >&2
printf "Please contribute an implementation for it if you can.\n" >&2
exit 1
;;
esac
# XXX: Please keep the option parsing organized in order per-section, with
# sections in the same order as they are in the manpage. This will make hacking
# and maintaining this type much easier.
mkdir "${__object:?}/files"
output_file="${__object:?}/files/${__object_id:?}.network"
cat << EOF > "$output_file"
# This file is managed by cdist. Do not edit by hand!
EOF
# Match section
# Ensure section is needed, OR existence of optional params.
if [ -f "${__object:?}/parameter/match-name" ];
then
printf "\n[Match]\n" >> "$output_file"
if [ -f "${__object:?}/parameter/match-name" ];
then
sed -e 's/^/Name=/' \
"${__object:?}/parameter/match-name" >> "$output_file"
fi
fi
# Network section
# Ensure section is needed, OR existence of optional params.
if [ -f "${__object:?}/parameter/description" ];
then
printf "\n[Network]\n" >> "$output_file"
if [ -f "${__object:?}/parameter/description" ];
then
sed -e 's/^/Description=/' \
"${__object:?}/parameter/description" >> "$output_file"
fi
fi
# IPv6AcceptRA section
# Ensure section is needed, OR existence of optional params.
if [ -f "${__object:?}/parameter/ipv6ra-usedomains" ];
then
printf "\n[IPv6AcceptRA]\n" >> "$output_file"
if [ -f "${__object:?}/parameter/ipv6ra-usedomains" ];
then
printf "UseDomains=True\n" >> "$output_file"
fi
fi
__file "/etc/systemd/network/${__object_id:?}.network" \
--source "$output_file" \
--mode 0644

View file

@ -0,0 +1 @@
ipv6ra-usedomains

View file

@ -0,0 +1 @@
description

View file

@ -0,0 +1 @@
match-name