954 Commits

Author SHA1 Message Date
Steven Achilles
af17c908cf
Merge pull request #2847 from kkimurak/add-patch-for-preinstall.mjs-relative_url
Add build patch to avoid removing node_modules
2023-11-19 13:29:05 +01:00
massej
e574613c9e
Update assets/runtime/config/gitlabhq/gitlab.yml
Co-authored-by: Kazunori Kimura <33391846+kkimurak@users.noreply.github.com>
2023-10-24 08:23:11 -04:00
massej
0001125859
Update env-defaults 2023-10-24 08:22:08 -04:00
massej
d11ae7b617
Added missing configuration variable OAUTH_ALLOW_BYPASS_TWO_FACTOR. 2023-10-23 22:17:20 -04:00
Steven Achilles
daae8b70d3
Merge pull request #2841 from massej/patch-1
Added - OAuth2 Generic - missing label and scope variables
2023-10-23 22:45:00 +02:00
Kazunori Kimura
da0d78bf5b Add build patch to avoid removing node_modules
note: Only affected if using the relative_url feature

`gitlab/script/frontent/preinstall.mjs` is introduced since v16.4.0.
This script is executed on container startup, if using the relative url.
This script removes `NODE_MODULES` (/home/git/gitlab/node_modules) when
"the folder seems to end up being a corrupted somehow"
See more detail:
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/130938

On sameersbn/gitlab, the folder node_modules is declared as volume.
The volume is always busy so that cannot be removed in the container.
You can see following error reported on container startup
(sameersbn/gitlab:16.4.0 or later).

````
yarn install v1.22.19
$ node ./scripts/frontend/preinstall.mjs
[WARNING] package.json changed significantly. Removing node_modules to be sure there are no problems. node:internal/process/esm_loader:97
    internalBinding('errors').triggerUncaughtException(
                              ^

[Error: EBUSY: resource busy or locked, rmdir '/home/git/gitlab/node_modules'] {
  errno: -16,
  code: 'EBUSY',
  syscall: 'rmdir',
  path: '/home/git/gitlab/node_modules'
}

Node.js v18.17.1
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command. -----
````

This PR add a build time patch to change the behavior of
script/frontend/preinstall.mjs to not to remove node_modules directly,
but empty it instead.
2023-10-21 01:24:39 +09:00
Kazunori Kimura
a2dd4e5ed8 Accept multiple hosts for RACK_ATTACK_WHITELIST
see sameersbn/docker-gitlab#2828

The current setup also accepts multiple hosts,
but the syntax is a bit strange.
The leading/trailing double quotes are embedded
in the configuration file itself,
so users should expect double quotes around the string they set.
In other words, when setting two hosts 0.0.0.0 and 1.1.1.1,
you will set the strings 0.0.0.0","1.1.1.1 in the
environment variables. This is not intuitive.

This commit removes double quote around corresponding config
and set backward compatibility fallback process
to surround whole with [], each host with double quote.
Also, validation script (written in ruby) will be executed during configuration.

Example docker-compose.yml
````yaml
services:
  gitlab:
    image: sameersbn/gitlab:latest
    environment:
    - RACK_ATTACK_WHITELIST='["127.0.0.1","0.0.0.0"]'
````

Co-authored-by: Mikhail Khadarenka <chodorenko@mail.ru>
2023-10-20 22:24:22 +09:00
massej
a903d98290
Update functions 2023-10-01 13:45:02 -04:00
massej
af693c5ecc
Update env-defaults 2023-10-01 13:44:28 -04:00
massej
c8bc43b914
Added missing label and scope variable field. 2023-10-01 13:40:45 -04:00
Steven Achilles
2fb3680976 Remove temporary patch for lfs object URL (see c51770292e) 2023-09-02 08:28:56 +02:00
Steven Achilles
c51770292e Add temporary patch for lfs object URL 2023-08-23 18:57:51 +02:00
Steven Achilles
fbb9a7422b Update puma.rb 2023-06-24 08:40:57 +02:00
Steven Achilles
a63405d433 Add pool option to database.yml 2023-06-18 09:42:35 +02:00
Kazunori Kimura
7140f0342b Fix unused client removal on restarted container
Handle the case where the target does not exist
in the process of deleting unused clients.
Such a situation will not occur in newly launched containers,
but will occur if they are restarted.

During container restarts, container status are preserved.
If the unused database client was deleted in the last run,
grep will not match anything.
It returns non-zero code and the container stops there
because entrypoint sets option `-e`
(exit immediately on non-zero exit code excluding some special cases)

This commit make the uninstall process to handle the case
UNUSED_DB_CLIENTS is empty.
2023-06-02 22:12:29 +09:00
Steven Achilles
230284ebcf Do not copy ruby by installing gitaly 2023-05-25 18:14:23 +02:00
Steven Achilles
5fc732eb3c Add new configuration options for database.yml 2023-05-25 06:44:20 +02:00
Kazunori Kimura
598a666693 Add -y option on uninstalling unused db client
Co-authored-by: Steven Achilles <steven.achilles@googlemail.com>
Co-authored-by: @f-io
2023-05-25 12:44:32 +09:00
Kazunori Kimura
24e2b581fb Use purge instead to uninstall unused db clients
Instead of `remove` that does not remove actual files.

Co-authored-by: @f-io
2023-05-24 20:26:15 +09:00
Kazunori Kimura
b3b700a701 Uninstall unused postgresql-client on startup
Unused clients are determinate by checking ~/.postgresqlrc
Uninstall logs like the following will appear in the docker log:

- Uninstalling unused version(s) of client: postgresql-client-12
2023-05-12 06:58:11 +09:00
Kazunori Kimura
260f548c5b Ship with multiple versions of postgresql-client
It is intended to work even in environments without an internet connection.

- Use latest version of pg_isready on checking database connection
- Switch postgresql-client version checking server on startup
- If the server versions do not match exactly, use the latest installed client
  and warn on docker log

From postgresql documentation:
https://www.postgresql.org/docs/15/app-pgdump.html#PG-DUMP-NOTES

> Also, it is not guaranteed that pg_dump's output can be loaded
> into a server of an older major version — not even if the dump
> was taken from a server of that version.

To switch client version, generate a file ~/.postgresqlrc with content like:

{server side major version} {server hostname}:{server port} {default database}

See detail on:
https://manpages.ubuntu.com/manpages/bionic/man5/postgresqlrc.5.html

Following messages appear on docker log:

- Detected server version: 140007
- Generating /home/git/.postgresqlrc
2023-05-12 06:58:11 +09:00
Kazunori Kimura
029186dc63 Avoid permission error on creating config file
`assets/build/config/database.yml.postgresql` is owned by root:root,
and permission is rwxrw----
so the user `git` (`${GILTAB_USER}`) doesn't have a permission to copy the file.
This raises an error while building.
2023-04-17 16:06:35 +09:00
Steven Achilles
5450187484
Merge pull request #2735 from zimmski/enable-git-protocol-2
Allow SSH clients to explicitly set the Git transfer protocol
2023-04-12 16:17:53 +02:00
Kazunori Kimura
95bc778ee0 Silence "CRIT unixServer" warning from supervisord
Silence the message like below:
  CRIT Server 'unix_http_server' running without any HTTP authentication checking

Reference:
  https://github.com/Supervisor/supervisor/issues/717#issuecomment-176860145
  https://github.com/sameersbn/docker-redmine/commit/0fb84b9
2023-03-31 03:01:19 +09:00
Markus Zimmermann
4bfc8974ba
Allow SSH clients to explicitly set the Git transfer protocol
This allows to the client to explicitly select protocol version 2, which is much more efficient. Without allowing that environment variable it seems that SSH connections are always stuck in version1.  See https://docs.gitlab.com/ee/administration/git_protocol.html on how to check if protocol 2 is used.
2023-03-24 11:55:42 +01:00
Steven Achilles
9e58a673c1
Merge pull request #2716 from kkimurak/increase-default-sidekiq-memory-killer-max-rss
Increase default value for SIDEKIQ_MEMORY_KILLER_MAX_RSS to 2GB
2023-03-13 00:29:03 +01:00
Kazunori Kimura
a1dcfe6eaf Update sidekiq supervisord config; sidekiq v6.0
Sidekiq is updated to v6.0 here (first contained tag: v14.4.0-ee)
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/69655

In Sidekiq 6.0, these options have been marked as "deprecated":
-P (set pid file)
-L (set log file)
See https://github.com/sidekiq/sidekiq/commit/3f5b1c5

Now, we can see error message in {GITLAB_LOGS_DIR}/supervisor/sidekiq.log
like below:

----
ERROR: PID file creation was removed in Sidekiq 6.0, please use a proper process supervisor to start and manage your services
ERROR: Logfile redirection was removed in Sidekiq 6.0, Sidekiq will only log to STDOUT
----

Just stop using this option.
2023-02-22 20:42:51 +09:00
Kazunori Kimura
10a48c1541 Clarify user=root in supervisord.conf
to prevent "Supervisor running as root" warning
2023-02-22 20:42:51 +09:00
Kazunori Kimura
255ec9461a Increase default SIDEKIQ_MEMORY_KILLER_MAX_RSS to 2GB
There are many warnings like below
recorded in {GITLAB_LOG_DIR}/supervisord/sidekiq.log.
This can be avoided by simply increasing SIDEKIQ_MEMORY_KILLER_MAX_RSS.

----
{
  "severity": "WARN",
  "time": "[MASKED]",
  "class": "Gitlab::SidekiqDaemon::MemoryKiller",
  "pid": [MASKED],
  "message": "Sidekiq worker RSS out of range",
  "current_rss": 1009636,
  "soft_limit_rss": 1000000,
  "hard_limit_rss": [MASKED],
  "memory_total_kb": [MASKED],
  "reason": "current_rss(1009636) \u003e soft_limit_rss(1000000)",
  "running_jobs": [],
  "retry": 0
}
----

For sameersbn/gitlab, this parameter have been introduced with
following commit on May 21, 2015 and never updated until today:
e4008cc7ab9efd626511af4c43e52e2a9490d612

On upstream, the default setting documentation is updated here:
  https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/31682
but it is said "the documentation is outdated" at this time.
I could not find out when the value is increased.

At least, In omnibus-gitlab, this have been introduced in MR 2360
(release 11.10.0+ce.0 / 11.10.0+ee.0)
https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/2360
2023-02-22 04:00:45 +09:00
Antt1995
8db9ed8908
Upgrade Go & safe dir 2022-11-23 15:14:40 +00:00
kkkkkks0
f408585d8b
fixes sameersbn#2645 2022-10-20 18:58:03 +08:00
Ivan Baranov
8b9ca622f9 Tested support for azure_activedirectory_v2 2022-09-05 21:46:20 +09:00
Steven Achilles
5c9c5cad1b Temporary remove geo from config/database.yml 2022-07-02 15:49:54 +02:00
Steven Achilles
b34d48af65
Merge pull request #2594 from Syphon83/terraform_state_fix
refs https://github.com/sameersbn/docker-gitlab/issues/2593: fix env default variable for terraform state
2022-07-02 15:47:07 +02:00
Steven Achilles
eba7979564
Merge pull request #2579 from kkimurak/set-upload-object_store-enabled-even-if-disabled
Set `*:object_store:enabled` in gitlab.yml regardless the value
2022-07-02 15:46:54 +02:00
Poppo
7d0739218f fix env default variable 2022-06-24 20:12:32 +02:00
Kazunori Kimura
fbcdd290be fix condition to apply patch during build gitlab
rewrite patch applying with find | while read chain
`if [[ -f ]]` with globbing may not works
2022-06-21 08:46:32 +09:00
Kazunori Kimura
844d57dad2 update *:object_store:enabled regardless of the value
apply for artifact,packages,terraform_state,lfs,uploads
2022-06-21 08:46:05 +09:00
haroldsamuels87
944a638a28
fixed a typo
took me 5 HOURS to find this tiny little typo.
2022-05-12 18:13:55 +04:30
Steven Achilles
0badf7cdd7 Use git instead of git-core 2022-05-05 19:53:52 +02:00
Steven Achilles
64e6256012 transfer build packages from Dockerfile to install.sh 2022-05-03 19:36:22 +02:00
Steven Achilles
889d9c36bf collective deletion of packages 2022-05-03 19:14:50 +02:00
Steven Achilles
a02abdce2d Address inconsistencies when using git (packaged with gitaly). 2022-05-03 17:58:58 +02:00
Paolo Mainardi
21b459216b refs #2549: Install git from gitaly 2022-04-29 17:19:40 +02:00
Steven Achilles
073eb52cb2
Merge pull request #2438 from peter-jozsa/allow-to-config-terraform-state
Allow to configure Terraform State
2022-04-22 16:15:01 +02:00
Steven Achilles
d7a3f1fd47
Merge pull request #2541 from kkimurak/set-bundler-version-based-on-gemfile-lock
Update `bundler` from 2.1.4 to 2.3.6
2022-04-14 16:55:57 +02:00
Kazunori Kimura
464cd644d6 set bundler version based on gitlab's Gemfile.lock
bundler used in gitlab is upgraded from 2.1.4 to 2.3.6
See more detail on : https://gitlab.com/gitlab-org/gitlab/-/merge_requests/79251
first contained tag : v14.8.0
2022-04-14 00:30:26 +09:00
Péter Józsa
82e88ff0ad create terraform state directory based on new configuration variables during datadir initialization
#2501
2022-04-11 12:13:28 +02:00
Péter Józsa
7374743a0f fix wrong footer comment of GCS related terraform state configuration 2022-04-11 12:13:21 +02:00
Péter Józsa
4752be956c Allow to configure terraform state feature 2022-04-11 12:13:09 +02:00