Commit graph

393 commits

Author SHA1 Message Date
Patrik Lundin dc180c10b0
Fix so systemd file is named sunet-cdn-l4lb
Not sunet-sunet-cdn-l4lb
2024-08-20 12:38:06 +02:00
Patrik Lundin dd0493f869
Fix volume declarations
Did not expect to create anonymous volumes, see
https://stackoverflow.com/questions/46166304/docker-compose-volumes-without-colon
for more details. Now the host directories should be mounted. While here
try setting :ro to the paths we are not expecting to modify. The
/lib/modules :ro flag is based on
3cbd8258eb/cilium-lb.yaml (L143-L145)
2024-08-20 12:31:42 +02:00
Patrik Lundin 79f2018d1b
Fix path to template 2024-08-20 12:10:29 +02:00
Patrik Lundin 4755886ea9
Move manifest to expected location 2024-08-20 12:06:35 +02:00
Patrik Lundin f4cd10a970
Add mifr key, imported from platform-ops
Need to trust commits to puppet-sunet stable branch
2024-08-20 12:00:57 +02:00
Patrik Lundin 9991bef58d
Assign new cdn::l4lb class to machine 2024-08-20 11:27:26 +02:00
Patrik Lundin 6057c62f47
Initial commit of running cilium l4lb via compose 2024-08-20 11:25:15 +02:00
Patrik Lundin b014b4fdcc
Add sunet::dockerhost2 to cdn-prod-l4lb
While here fix indentation.
2024-08-15 09:21:02 +02:00
Patrik Lundin ac83234433
Merge remote-tracking branch 'multiverse/main' 2024-07-05 10:59:29 +02:00
Patrik Lundin 94a65a31e0
Fix problems with outdated sunet puppet modules
Problem seen:
```
Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Unknown variable: '::osfamily'. (file: /etc/puppet/cosmos-modules/augeas/manifests/params.pp, line: 7, column: 8) on node example-1.sunet.se
```

This way we run modules installed from upstream apt packages instead.
Solution to delete keys to use local pacakges from pahol.

While here fix pylint issue with not importing platform module at
beginning of file.
2024-07-04 14:42:34 +02:00
Patrik Lundin 3d0413b450
Disable ntpd management for now
The current ntp puppet manifest does not support 24.04, and we need to
figure out if the future means timesyncd or chrony.
2024-07-04 13:32:23 +02:00
Patrik Lundin 770a5ca3cc
Merge pull request #55 from SUNET/patlu-fleetlock-lock-timeouts
fleetlock: configurable lock/unlock timeout
2024-07-04 13:07:34 +02:00
Patrik Lundin 74fb420946
Add initial cosmos-rules 2024-07-04 08:48:58 +02:00
Patrik Lundin c417b1e296
Trust pahol key
Needed for puppet module
2024-07-03 17:27:23 +02:00
Patrik Lundin 4aa5e530f9
Trust jocar key
Needed for some puppet modules
2024-07-03 17:23:43 +02:00
Patrik Lundin 0b82213811
Add my GPG key 2024-07-03 15:56:09 +02:00
Patrik Lundin a0e4319c0a
cdn-prod-l4lb-1.sunet.se added 2024-07-03 15:54:05 +02:00
Patrik Lundin 65169f1d9b
Make addhost happy
Fixes:
```
./addhost: repo not set in cosmos.conf and no git remote named 'ro' found
```
2024-07-03 14:51:54 +02:00
Patrik Lundin a49e9cfd24
Add init.pp
Based on geteduroam-ops
2024-07-03 14:48:52 +02:00
Patrik Lundin aa88795ee0
sunet-fleetlock: also handle ReadTimeout
Turns out this was not caught by ConnectionError.
2024-07-03 14:13:22 +02:00
Patrik Lundin 01768129f0
fleetlock: configurable lock/unlock timeout
While we already support setting a healthcheck timeout it probably
makes sense to be able to control how long we wait for a
fleetlock_lock() or fleetlock_unlock() call. This becomes important if
only running cosmos once a night or something like that. In that case we
you probably want to give a physical machine more than than 1 minute to
complete a reboot etc.

This can now be controlled by setting fleetlock_lock_timeout and
fleetlock_unlock_timeout in /etc/run-cosmos-fleetlock-conf. Keep in mind
that while it can make sense to increase the time for taking a lock,
releasing a lock should always be fast (either you have it and release
it, or you dont have it and it is a no-op) so setting a long unlock
timeout should probably never be done.

Since we also potentially wait the unlock timeout at boot (if the
fleetlock server is broken etc) that is another reason to keep it
short. The default 1m is probably OK for most uses.
2024-07-03 13:27:52 +02:00
Patrik Lundin 443611dd3f
Merge pull request #49 from SUNET/john-permissions-fix
Enforce more strict permissions for files in Cosmos
2024-07-03 11:36:21 +02:00
Patrik Lundin dfda322939
Add setup_cosmos_modules 2024-07-01 11:16:15 +02:00
Patrik Lundin 3b3d24a346
Use tag name based on repo name 2024-07-01 10:23:20 +02:00
Johan Wassberg 5518048d79
Merge pull request #54 from SUNET/pahol-ubuntu24
Ubuntu-24 fixes
2024-06-19 15:07:17 +02:00
Patrik Holmqvist 4231b4ac1d
Migrate from legacy fact
This did not work on modern puppet in ubuntu24:
Warning: Interpolation failed with '::lsbdistcodename', but compilation continuing;
New syntax inspiration from:
https://www.puppet.com/docs/puppet/8/hiera_config_yaml_5#configuring_hiera
2024-06-19 14:07:13 +02:00
Patrik Holmqvist bc9d1dc960
Use upstream puppet modules for ubuntu24+.
This is how we do it in modern debian so it
makes sense to do it on modern ubuntu as well.
2024-06-19 14:02:24 +02:00
Patrik Lundin 5d88e66379
Merge pull request #53 from SUNET/patlu-fleetlock-error-handling
sunet-fleetlock: handle connection errors
2024-06-17 13:27:11 +02:00
Patrik Lundin e315282bc5
Use more strict exception checking
This is probably wide enough and we do not need weird extra handling of
our own execption etc.

Thanks to @mickenordin for keeping me honest :).
2024-06-17 12:40:12 +02:00
Patrik Lundin 4b8b8887f6
sunet-fleetlock: handle connection errors
In order to handle upgrades of the fleetlock server when running only
one server we need to handle connection errors like connection refused
or timed out errors gracefully.

Because there are several different ways the connection can fail and it
is hard to keep track of them all, just catch everything. We then also
need special handling of our own timeout execption so we are not
accidentally stuck retrying forever.

Also fix so we actually use the request_timeout arg for individual HTTP
requests instead of the global timeout.

While here run isort to keep imports tidy.
2024-06-17 12:07:22 +02:00
Johan Wassberg 646c40daf1
Merge pull request #52 from SUNET/jocar-allow-empty-hosts
Allow empty hosts
2024-04-15 11:43:21 +02:00
Johan Wassberg c72f5ccd86
Allow for hosts without class(s) 2024-04-12 15:32:40 +02:00
Micke Nordin b39960484f
Merge pull request #51 from SUNET/patlu-run-cosmos-fleetlock
run-cosmos: support fleetlock unlocking at reboot
2024-01-25 13:23:27 +01:00
Patrik Lundin df5558befb
Fix another indentation mismatch 2024-01-24 15:36:52 +01:00
Patrik Lundin 4b93d9c426
run-cosmos: support fleetlock unlocking at boot
This extends run-cosmos with a new argument that calls the unlock
function already included in the script as well as using the already
existing lock() function to make sure there is no race between the
bootup process and cron starting a normal run-cosmos process at the same
time.

The oexit() function is added to support exiting with a OK exit value
the same way eexit() is used to signal something is wrong.

This change also adds the systemd unit file that runs run-cosmos with the
new fleetlock-unlock argument at boot if fleetlock is configured.

While here fix indentation that was mixed between 3 and 4 spaces: it is
now 4 spaces everywhere.
2024-01-24 15:36:34 +01:00
Micke Nordin cacb97a22c
Allow running of bumptag with out signed commits or tags
By setting ALLOW_UNSIGNED_COMMITS_WITHOUT_TAGS you can bootstrap bumptag
on first startup of new repo
2023-12-04 14:24:34 +01:00
Johan Wassberg ecedda68e3
Merge pull request #50 from SUNET/kano-sshproxyjump
PREPARE/ADDHOST: allow the ues of proxyjump with ip address
2023-11-29 12:53:05 +01:00
Micke Nordin 71e112e009
PREPARE/ADDHOST: allow the ues of proxyjump with ip address
With this patch you can specify a ProxyJump for prepare-iaas-ubuntu,
prepare-iaas-debian and addhost. Example:

./prepare-iaas-debian 89.47.191.7 hj
./addhost -b -n node1.extern.drive.test.sunet.se -p hj -- 89.47.191.7

where hj is a host defined in my .ssh/config suitable for a proxyjump
to the host in question.

This makes it easier to use ip addresses for these scripts which might
be neccessary if dns takes a while to propagate.
2023-11-29 12:10:34 +01:00
John Van de Meulebrouck Brendgard 8d4ce2d1b7
Make sure that COSMOS_BASE is only readable
by root since it's possible that the directory
can contain files that after applying the
overlay to / only should be read or writable
by root.
2023-11-17 15:03:47 +01:00
John Van de Meulebrouck Brendgard 75e566ab61
Make sure that /root in overlay is owned by root
as well as that /root/.ssh and its content is
only owned and readable by root. This is redundant
if the previous permissions were properly applied
and no other changes have been made by the user
or something else, but is added for good measure
as a layered defense.
2023-11-17 14:58:51 +01:00
John Van de Meulebrouck Brendgard ca353ed406
Set same permissions for /root/.ssh/authorized_keys
in post-tasks.d/010fix-ssh-perms as is done by
Puppet with sunet::ssh_keys.
2023-11-17 13:50:02 +01:00
Micke Nordin 1bd6524ad3
Merge pull request #48 from SUNET/john-bump-tag-from-nunoc-ops
Merge of improved bump-tag from nunoc-ops
2023-11-16 13:55:49 +01:00
John Van de Meulebrouck Brendgard 21c0cad8a0
Consistently use [[ for if statements. 2023-11-16 12:12:36 +01:00
John Van de Meulebrouck Brendgard dc1df6671c
Shellcheck needs to have the PAGER quoted
in order to correctly interpret the meaning
according to it's wiki.
2023-11-16 12:11:09 +01:00
John Van de Meulebrouck Brendgard fd4523308f
Replaced 'egrep' that is now deprecated. 2023-11-16 12:09:02 +01:00
John Van de Meulebrouck Brendgard cb9e1f8670
Added shellcheck exceptions for misplaced warning. 2023-11-16 12:07:10 +01:00
John Van de Meulebrouck Brendgard 5a47b1a3f7
Readded this_branch=$(git rev-parse --abbrev-ref HEAD)
since it wasn't included in change to check
against the current branch instead of master
2023-11-16 12:04:30 +01:00
John Van de Meulebrouck Brendgard 826b8edf82
Changed from [[ ! -z ... to [[ -n ... 2023-11-16 11:59:33 +01:00
John Van de Meulebrouck Brendgard 53c58b413e
Changed from if [[ ${?} ]] to if cmd 2023-11-16 11:56:49 +01:00
John Van de Meulebrouck Brendgard 8a7c85dcf0
Added bump-tag from nunoc-ops that has
multiple improvements and checks for
signed commits, makes sure that important
script are not tampered with and much more.
2023-11-15 14:02:49 +01:00