Commit graph

255 commits

Author SHA1 Message Date
Wolfgang Walther 6691c568b0
nixosTests.gitlab: fix eval
This was recently turned into a throw.
2025-10-28 18:06:49 +01:00
Wolfgang Walther 90e7159c55
treewide: remove unused rec
Auto-fix by nixf-diagnose.
2025-10-05 10:49:12 +02:00
h7x4 2fb06be29f
nixos/gitlab: use types.port 2025-09-22 16:46:44 +02:00
Wolfgang Walther 5a0711127c
treewide: run nixfmt 1.0.0 2025-07-24 13:55:40 +02:00
Wolfgang Walther 41c5662cbe
nixos/postgresql: move postStart into separate unit
This avoids restarting the postgresql server, when only ensureDatabases
or ensureUsers have been changed. It will also allow to properly wait
for recovery to finish later.

To wait for "postgresql is ready" in other services, we now provide a
postgresql.target.

Resolves #400018

Co-authored-by: Marcel <me@m4rc3l.de>
2025-06-24 15:26:47 +02:00
Yaya ee58f11546
nixos/gitlab: update minimum PostgreSQL version assertion
GitLab 18.0.0 requires at least PostgreSQL 16.

https://docs.gitlab.com/18.0/install/requirements/#postgresql
2025-05-20 13:29:48 +02:00
Leona Maroni a95a530883
nixos/gitlab: add activeRecord key files
GitLab 17.11 started using rails activeRecord encryption for some values.
Introduce new key files. This is breaking for unstable/25.05.

Also add a test to prevent this from happening unnoticed in the future.

For the future there should also be an option to set multiple activeRecord
keys for rotation.
2025-05-07 22:17:02 +02:00
Leona Maroni dd3403a0f5
nixosTests.gitlab: add minimal test for gitlab-container-registry (#390623) 2025-04-21 18:39:17 +02:00
Silvan Mosberger 374e6bcc40 treewide: Format all Nix files
Format all Nix files using the officially approved formatter,
making the CI check introduced in the previous commit succeed:

  nix-build ci -A fmt.check

This is the next step of the of the [implementation](https://github.com/NixOS/nixfmt/issues/153)
of the accepted [RFC 166](https://github.com/NixOS/rfcs/pull/166).

This commit will lead to merge conflicts for a number of PRs,
up to an estimated ~1100 (~33%) among the PRs with activity in the past 2
months, but that should be lower than what it would be without the previous
[partial treewide format](https://github.com/NixOS/nixpkgs/pull/322537).

Merge conflicts caused by this commit can now automatically be resolved while rebasing using the
[auto-rebase script](8616af08d9/maintainers/scripts/auto-rebase).

If you run into any problems regarding any of this, please reach out to the
[formatting team](https://nixos.org/community/teams/formatting/) by
pinging @NixOS/nix-formatting.
2025-04-01 20:10:43 +02:00
Leona Maroni 50fc446be1
nixos/gitlab: convert gitlab-registry-cert.service to oneshot
docker-registry.service has a `After` dependency on gitlab-registry-cert.
On the first start, docker-registry.service fails to start as it already
runs when gitlab-registry-cert.service starts up, and not when it finished.
2025-03-17 09:19:23 +01:00
shelvacu 1a4575f9db
nixos/modules: Add security.pki.caBundle option and make all services use it for CA bundles (#352244)
Previously some modules used `config.environment.etc."ssl/certs/ca-certificates.crt".source`, some used `"/etc/ssl/certs/ca-certificates.crt"`, and some used `"${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"`. These were all bad in one way or another:

- `config.environment.etc."ssl/certs/ca-certificates.crt".source` relies on `source` being set; if `text` is set instead this breaks, introducing a weird undocumented requirement
- `"/etc/ssl/certs/ca-certificates.crt"` is probably okay but very un-nix. It's a magic string, and the path doesn't change when the file changes (and so you can't trigger service reloads, for example, when the contents change in a new system activation)
- `"${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"` silently doesn't include the options from `security.pki`

Co-authored-by: Shelvacu <git@shelvacu.com>
2025-03-08 08:41:08 +00:00
Kirill Radzikhovskyy 469728b042 gitlab: allow to use bundler from nixpkgs, rather than bundler from
Gemfile.lock
2025-02-15 12:55:42 +11:00
dish 44f86c5331 nixos/gitlab: fix documentation link formatting 2025-02-12 21:03:21 +01:00
piegames dd7d5339f7 treewide: Fix incorrect string indentations 2025-01-07 19:49:28 +01:00
Arne Keller de99d3d3e3
nixos/gitlab: Fix registry port (#351496) 2024-12-21 16:56:18 +01:00
Alexander Sieg eebd4c3b01
gitlab: 17.3.7 -> 17.5.2 2024-11-29 17:51:19 +01:00
Matthieu Barthel 6f9c572a0e
nixos/gitlab: Fix registry port
fix #350428
2024-10-26 19:50:53 +02:00
h7x4 dd7a192b4f
nixos/gitlab: add services to systemd slice
Co-authored-by: Bjørn Forsman <bjorn.forsman@gmail.com>
2024-09-28 11:27:05 +02:00
Pogobanane 8ccab48f1c gitlab-shell: rename bin/{install, check} to gitlab-shell-{install, check} 2024-08-08 17:41:20 +02:00
Yaya feeb53a430 nixos/gitlab: Replace git package with bundled git
This commit switches gitaly's git package from `pkgs.git` to the bundled
`git` package in order to maintain compatibility with the supported git
release by gitaly.
2024-07-24 10:51:55 +02:00
Yaya b4d242907c nixos/gitlab: Add missing state folder 2024-06-27 19:52:03 +02:00
Yaya 59583de9d1 nixos/gitlab: Assert PostgreSQL >= 14.9
Support for PostgreSQL 13 has been removed in GitLab 17.0. [1]
Module users should upgrade their database installation to
PostgreSQL >= 14.9.

[1]: https://docs.gitlab.com/ee/update/deprecations.html#postgresql-13-no-longer-supported
2024-06-27 19:52:03 +02:00
Yaya c743d6d617 nixos/gitlab: Add a second database connection
GitLab deprecated single database connections in 15.9. [1]
From GitLab 17.0 onward it will be mandatory to define both `main` and
`ci` sections in the `database.yml`. [2]

This commit updates the module to address the upcoming breaking change.

[1]: https://gitlab.com/gitlab-org/gitlab/-/issues/387898
[2]: https://docs.gitlab.com/16.10/ee/install/installation.html#configure-gitlab-db-settings
2024-04-21 16:59:37 +02:00
Yaya df9bc1f9a7 nixos/gitlab: Rename postgresql port option 2024-04-21 16:58:30 +02:00
stuebinm 6afb255d97 nixos: remove all uses of lib.mdDoc
these changes were generated with nixq 0.0.2, by running

  nixq ">> lib.mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> Inherit >> mdDoc[remove]" --batchmode nixos/**.nix

two mentions of the mdDoc function remain in nixos/, both of which
are inside of comments.

Since lib.mdDoc is already defined as just id, this commit is a no-op as
far as Nix (and the built manual) is concerned.
2024-04-13 10:07:35 -07:00
Yaya dcd0f499c6 nixos/gitlab: Add option sidekiq.concurrency.
This commit adds an option to configure the amount of threads to use
with sidekiq-cluster. The GitLab default is currently set to 20 threads. In
space constrained environments this may become a problem with running
out of memory as a result.
2024-04-02 07:30:12 +02:00
Yaya 774056a4e6 nixos/gitlab: Rename workhorse binary 2024-03-30 12:47:30 +01:00
ajs124 bdabdf0c16 nixos/gitlab: use workhorse package from option in path 2024-03-19 13:47:55 +01:00
ajs124 1bada61543 nixos/gitlab: switch from sidekiq to sidekiq-cluster 2024-03-19 13:47:55 +01:00
Oliver Schmidt 13ba002dd0 nixos/services.gitlab: loosen the coupling between gitlab and postgres/ redis to avoid restarts and races
Gitlab stays running at redis and postgresql restarts as if these
components were on a different host anyways. Handling reconnetctions is
part of the application logic.

Co-authored-by: Kim Lindberger <kim.lindberger@gmail.com>
for formatting fixes and test failure debugging.
2024-02-07 18:19:18 +01:00
Yureka 1a1c53c271
Revert "nixos/gitlab: Add CI database connection for >=15.9" (#280395) 2024-01-12 02:03:23 +01:00
Yureka 29bc446b5c
Revert "nixos/gitlab: fix database config when no passwordfile is defined" (#280392) 2024-01-12 02:00:49 +01:00
Tom Siewert 890ffaa1ae nixos/gitlab: fix database config when no passwordfile is defined
In commit 41ca9c1, the database config got an additional config entry
for a separate CI database connection [1]. Unfortunately, the main connection
must always be the first entry. The fix for this was only applied when
databasePasswordFile has been set.

This commit fixes the order of the config for deployments without a databasePasswordFile.

[1] https://docs.gitlab.com/ee/update/deprecations.html#single-database-connection-is-deprecated
2024-01-10 14:35:57 +01:00
Tom Siewert 838a2b54ed nixos/gitlab: Add CI database connection for >=15.9
Starting with GitLab 15.9, single connections were deprecated [1] and
will be removed in GitLab 17.0.

[1] https://docs.gitlab.com/ee/update/deprecations.html#single-database-connection-is-deprecated
2024-01-08 18:14:06 +01:00
h7x4 0a37316d6c
treewide: use mkPackageOption
This commit replaces a lot of usages of `mkOption` with the package
type, to be `mkPackageOption`, in order to reduce the amount of code.
2023-11-27 01:28:36 +01:00
Yaya 1a22627603 nixos/gitlab: Add a warning message
GitLab instances created or updated between versions [15.11.0, 15.11.2]
have an incorrect database schema. [1] This will become a problem once
upgrading GitLab to >=16.2.0.

A workaround can be found in the GitLab docs: [2]

[1]: https://gitlab.com/gitlab-org/gitlab/-/issues/408835
[2]: https://docs.gitlab.com/ee/update/versions/gitlab_16_changes.html#undefined-column-error-upgrading-to-162-or-later
2023-09-05 13:46:44 +02:00
ajs124 97dfc365e6 gitlab: 16.1.4 -> 16.3.1
https://gitlab.com/gitlab-org/gitlab/-/blob/v16.3.1-ee/CHANGELOG.md

Fixes CVE-2022-4343
Fixes CVE-2023-0120
Fixes CVE-2023-1279
Fixes CVE-2023-1555
Fixes CVE-2023-3205
Fixes CVE-2023-3915
Fixes CVE-2023-3950
Fixes CVE-2023-4018
Fixes CVE-2023-4378
Fixes CVE-2023-4630
Fixes CVE-2023-4638
Fixes CVE-2023-4647

Co-Authored-By: Yaya <github@uwu.is>
2023-09-05 13:46:44 +02:00
Oliver Schmidt ff9296f93e
nixos/gitlab: ensure service started again after dependency restarts (#245240)
When a dependency, like postgresql.service or redis-gitlab.service, had
been stopped and started at switch-to-configuration time, gitlab.service
and its helper units had been stopped but not started again.
`multi-user.target` only has a `Wants` relation to gitlab.target, but
once gitlab.target has been successfully started once and is not stopped/
restarted again, it does not cause all its dependencies to stay activated
the whole time.

This commit fixes this by upgrading the dependy relationship of
gitlab.service towards gitlab.target from a "Wants" to a "Requires". It
should be enough to do this for this single unit part of gitlab.target
only, as all other units wantedBy gitlab.target are pulled in by
gitlab.service as well or have bindsTo relations.
2023-07-30 18:49:54 +02:00
Pol Dellaiera 764472b473
Merge pull request #233091 from yayayayaka/add-team-gitlab
maintainers/team-list: Add team gitlab
2023-07-07 15:19:15 +02:00
Alexander Sieg 8d80108d6d nixos/gitlab: configure elasticsearch indexer path 2023-07-05 15:01:31 +02:00
Alexander Sieg 8934558abf
nixos/gitlab: fix unit test result display (#241322)
After the update to GitLab 16 the puma worker needs `gzip` in it's PATH
in order to junit test results.
2023-07-04 18:57:19 +02:00
Yaya 7d432c1ff9 nixos/gitlab: Add an additional folder to systemd-tmpfiles 2023-06-27 11:39:17 +02:00
Tom Siewert 50d66bcba6
nixos/gitlab: Fix config reference for registry (#235639)
Support for gitlab-container-registry has been added in 014816cbe4.
However, when enabling the registry it will throw an error as it can't
find a `package` attribute.

This commit fixes the registry configuration by adding the missing
`registry` part.
2023-06-04 02:32:35 +02:00
Yaya e9594e6031 nixos/gitlab: Warn users who are still using an external registry
This adds a warning for GitLab >=16.0.0 users who are still using an
external container registry such as `pkgs.docker-distribution`. Support
for external container registries has ended in GitLab 16.0 [1] and is
scheduled for removal in a future release. [2]

[1]: https://gitlab.com/gitlab-org/gitlab/-/issues/376217
[2]: https://gitlab.com/gitlab-org/gitlab/-/issues/403322
2023-05-31 22:14:25 +02:00
Yaya 014816cbe4 nixos/gitlab: Add support for gitlab-container-registry
Support for external container registries (namely
`pkgs.docker-distribution`) has ended in GitLab 16.0 [1] and is
scheduled for removal in a future release. [2]

This commit adds a new registry package option, defaulting to
`pkgs.docker-distribution` and `pkgs.gitlab-container-registry` for
system state versions >= 23.11.

While it is still possible to use the docker container registry, module
users should switch to gitlab's container registry fork soon. A warning
message will be added in a future commit to advise affected users to
back up their state and then switch to the new container registry
package.

[1]: https://gitlab.com/gitlab-org/gitlab/-/issues/376217
[2]: https://gitlab.com/gitlab-org/gitlab/-/issues/403322
2023-05-31 22:14:25 +02:00
Yaya 2a4536952a nixos/gitlab: Require at least postgresql 13.6
https://docs.gitlab.com/16.0/ee/install/requirements.html#postgresql-requirements
2023-05-31 22:14:25 +02:00
Yaya 4321e48b68 nixos/gitlab: Remove procps from gitaly service
From my understanding, procps was added to the gitlay systemd service
path in #58487 to fix gitaly-ruby's internal memory leak detection.

Now that the last ruby remnants have been removed in gitaly 16.0.0,
this should not be necessary anymore.
2023-05-31 22:14:25 +02:00
Yaya 33411f2768 nixos/gitlab: Update redis configuration
Configuring Redis via environment variable is not supported anymore
since [1].

[1] 1242965361
2023-05-31 22:14:25 +02:00
Yaya 6fed71cab2 gitaly: Remove ruby dependencies
Ruby dependencies in gitaly have been removed in the 16.0.0 release. [1]

See GitLab Epic &2862 [2] for more info.

[1]: 689556e70a
[2]: https://gitlab.com/groups/gitlab-org/-/epics/2862
2023-05-31 22:14:25 +02:00
Yaya 27d73b3d46 nixos/gitlab: Add gitlab team members to maintainers 2023-05-20 20:38:49 +00:00