Skip to content

Commit 127f5e4

Browse files
authored
Merge pull request #3186 from sachilles/upgrade-postgresql-clients
Maintenance on PostgreSQL clients
2 parents d13dc2e + d5ec98f commit 127f5e4

12 files changed

Lines changed: 49 additions & 19 deletions

Changelog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@ gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md) for the list of chan
55

66
## 19.0.0
77

8+
**Important note:** In GitLab 19.0 and later, [PostgreSQL 17 is the minimum supported version](https://docs.gitlab.com/releases/19/gitlab-19-0-released/#postgresql-17-minimum-requirement).
9+
810
- gitlab: upgrade CE to v19.0.0
911
- gitaly: upgrade to v19.0.0
1012
- gitlab-pages: upgrade to v19.0.0
1113
- gitlab-shell: upgrade to v14.51.0
1214
- rubygems: upgrade to v4.0.12
15+
- postgresql: upgrade to postgresql 17
1316

1417
## 18.11.3
1518

Dockerfile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ ENV GITLAB_VERSION=${VERSION} \
1616
GITLAB_CACHE_DIR="/etc/docker-gitlab" \
1717
RAILS_ENV=production \
1818
NODE_ENV=production \
19-
NO_SOURCEMAPS=true
19+
NO_SOURCEMAPS=true \
20+
# v19.x : minimum = 17.0, maximum = 17.x (currently 17.10, is 170010)
21+
POSTGRESQL_SERVER_REQUIRED_VERSION_MINIMUM=170000 \
22+
POSTGRESQL_SERVER_TESTED_VERSION_MAXIMUM=170010
2023

2124
ENV GITLAB_INSTALL_DIR="${GITLAB_HOME}/gitlab" \
2225
GITLAB_SHELL_INSTALL_DIR="${GITLAB_HOME}/gitlab-shell" \
@@ -50,7 +53,7 @@ RUN set -ex && \
5053
sudo supervisor logrotate locales curl \
5154
meson \
5255
nginx openssh-server redis-tools \
53-
postgresql-client-13 postgresql-client-14 postgresql-client-15 postgresql-client-16 postgresql-client-17 \
56+
postgresql-client-17 postgresql-client-18 \
5457
python3 python3-docutils nodejs yarn gettext-base graphicsmagick \
5558
libpq5 zlib1g libyaml-dev libssl-dev libgdbm-dev libre2-dev \
5659
libreadline-dev libncurses5-dev libffi-dev curl openssh-server libxml2-dev libxslt-dev \

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ quickstart:
2525
@docker run --name=gitlab-postgresql -d \
2626
--env='DB_NAME=gitlabhq_production' \
2727
--env='DB_USER=gitlab' --env='DB_PASS=password' \
28-
sameersbn/postgresql:latest
28+
kkimurak/sameersbn-postgresql:17
2929
@echo "Starting redis container..."
3030
@docker run --name=gitlab-redis -d \
3131
sameersbn/redis:latest

README.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ docker run --name gitlab-postgresql -d \
185185
--env 'DB_USER=gitlab' --env 'DB_PASS=password' \
186186
--env 'DB_EXTENSION=pg_trgm,btree_gist' \
187187
--volume /srv/docker/gitlab/postgresql:/var/lib/postgresql \
188-
kkimurak/sameersbn-postgresql:16
188+
kkimurak/sameersbn-postgresql:17
189189
```
190190

191191
Step 2. Launch a redis container
@@ -276,18 +276,16 @@ Configuring gitlab::database
276276

277277
Please note furthermore, that only compatible versions of the `postgresql-client` to GitLab are shipped with this image. Currently, these belong to
278278

279-
- `postgresql-client-13`,
280-
- `postgresql-client-14`,
281-
- `postgresql-client-15`,
282-
- `postgresql-client-16`,
283-
- and `postgresql-client-17`.
279+
- `postgresql-client-17` and
280+
- `postgresql-client-18` (not officially supported).
284281

285282
***Notes:***
286283

287284
- GitLab CE version 13.7.0 and later requires PostgreSQL version 12.x.
288285
- GitLab CE version 16.0.0 and later requires PostgreSQL version 13.x.
289286
- GitLab CE version 17.0.0 and later requires PostgreSQL version 14.x.
290287
- GitLab CE version 18.0.0 and later requires PostgreSQL version 16.x.
288+
- GitLab CE version 19.0.0 and later requires PostgreSQL version 17.x.
291289

292290
##### External PostgreSQL Server
293291

@@ -325,7 +323,7 @@ To illustrate linking with a postgresql container, we will use the [sameersbn/po
325323
First, let's pull the postgresql image from the docker index.
326324

327325
```bash
328-
docker pull kkimurak/sameersbn-postgresql:16
326+
docker pull kkimurak/sameersbn-postgresql:17
329327
```
330328

331329
For data persistence lets create a store for the postgresql and start the container.
@@ -345,7 +343,7 @@ docker run --name gitlab-postgresql -d \
345343
--env 'DB_USER=gitlab' --env 'DB_PASS=password' \
346344
--env 'DB_EXTENSION=pg_trgm' \
347345
--volume /srv/docker/gitlab/postgresql:/var/lib/postgresql \
348-
kkimurak/sameersbn-postgresql:16
346+
kkimurak/sameersbn-postgresql:17
349347
```
350348

351349
The above command will create a database named `gitlabhq_production` and also create a user named `gitlab` with the password `password` with access to the `gitlabhq_production` database.
@@ -2843,6 +2841,7 @@ Usage when using `docker-compose` can also be found there.
28432841
> - As of version 16.0.0, the required PostgreSQL version is 13.x.
28442842
> - As of version 17.0.0, the required PostgreSQL version is 14.x.
28452843
> - As of version 18.0.0, the required PostgreSQL version is 16.x.
2844+
> - As of version 19.0.0, the required PostgreSQL version is 17.x.
28462845
>
28472846
> If you're using PostgreSQL image other than the above, please review section [Upgrading PostgreSQL](#upgrading-postgresql).
28482847

assets/runtime/functions

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,13 +190,38 @@ gitlab_generate_postgresqlrc() {
190190

191191
echo "- Detected server version: ${DB_SERVER_VERSION}"
192192

193+
# remove leading zero (prior to 10.x it was like "090605" so that cannot treated as number)
194+
DB_SERVER_VERSION="${DB_SERVER_VERSION#0}"
195+
193196
# Anyway, we can get major version (8, 9, 10 and so on) by dividing by 10000.
194197
# DB_SERVER_VERSION_MAJOR=${DB_SERVER_VERSION%%.*}
195198
DB_SERVER_VERSION_MAJOR=$((DB_SERVER_VERSION/10000))
196199
DB_CLIENT_VERSION_PACKAGE_NAME=
197200

201+
# Check version requirement
202+
if [[ "${DB_SERVER_VERSION}" -lt "${POSTGRESQL_SERVER_REQUIRED_VERSION_MINIMUM}" ]]; then
203+
echo " ERROR: Version requirement mismatch for your PostgreSQL server!"
204+
echo
205+
echo " Consider upgrading your PostgreSQL server before running this or later versions"
206+
echo " of this image."
207+
echo
208+
echo " Minimal required version is: ${POSTGRESQL_SERVER_REQUIRED_VERSION_MINIMUM}"
209+
echo " Your provided version is : ${DB_SERVER_VERSION}"
210+
echo
211+
echo " Aborting..."
212+
return 1
213+
fi
214+
215+
if [[ "${DB_SERVER_VERSION}" -gt "${POSTGRESQL_SERVER_TESTED_VERSION_MAXIMUM}" ]]; then
216+
echo " WARNING: Version requirement mismatch for your PostgreSQL server!"
217+
echo
218+
echo " Maximal tested version is: ${POSTGRESQL_SERVER_TESTED_VERSION_MAXIMUM}"
219+
echo " Your provided version is : ${DB_SERVER_VERSION}"
220+
echo
221+
fi
222+
198223
if [[ "${DB_SERVER_VERSION_MAJOR}" -ge 10 ]]; then
199-
# v10 or later: use "rought major version" as version number in package name
224+
# v10 or later: use "rough major version" as version number in package name
200225
DB_CLIENT_VERSION_PACKAGE_NAME=${DB_SERVER_VERSION_MAJOR}
201226
else
202227
# prior to v10: convert

contrib/docker-swarm/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ services:
99

1010
postgresql:
1111
restart: always
12-
image: kkimurak/sameersbn-postgresql:16
12+
image: kkimurak/sameersbn-postgresql:17
1313
volumes:
1414
- /srv/docker/gitlab/postgresql:/var/lib/postgresql:Z
1515
environment:

docker-compose.swarm.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ services:
1111
- node.labels.gitlab.redis-data == true
1212

1313
postgresql:
14-
image: kkimurak/sameersbn-postgresql:16
14+
image: kkimurak/sameersbn-postgresql:17
1515
volumes:
1616
- postgresql-data:/var/lib/postgresql:Z
1717
environment:

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ services:
1010

1111
postgresql:
1212
restart: always
13-
image: kkimurak/sameersbn-postgresql:16
13+
image: kkimurak/sameersbn-postgresql:17
1414
volumes:
1515
- postgresql-data:/var/lib/postgresql:Z
1616
environment:

docs/docker-compose-keycloak.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ services:
99

1010
postgresql:
1111
restart: always
12-
image: kkimurak/sameersbn-postgresql:16
12+
image: kkimurak/sameersbn-postgresql:17
1313
volumes:
1414
- postgresql-data:/var/lib/postgresql:Z
1515
environment:

docs/docker-compose-registry.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ services:
99

1010
postgresql:
1111
restart: always
12-
image: kkimurak/sameersbn-postgresql:16
12+
image: kkimurak/sameersbn-postgresql:17
1313
volumes:
1414
- postgresql:/var/lib/postgresql:Z
1515
environment:

0 commit comments

Comments
 (0)