mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-21 17:55:30 +01:00
Drop build postgresql 9.6 (#17458)
Drop pg9.6, will not support upgrading from pg9.6 to pg13, if you use pg9.6 you can upgrade to 2.5 and upgrade to 2.7 Signed-off-by: Yang Jiao <jiaoya@vmware.com>
This commit is contained in:
parent
b08b5fe617
commit
b44c9d01dd
19
Makefile
19
Makefile
@ -74,8 +74,6 @@ PORTAL_PATH=$(BUILDPATH)/src/portal
|
||||
CHECKENVCMD=checkenv.sh
|
||||
|
||||
# parameters
|
||||
# default is true
|
||||
BUILD_PG96=true
|
||||
REGISTRYSERVER=
|
||||
REGISTRYPROJECTNAME=goharbor
|
||||
DEVFLAG=true
|
||||
@ -438,7 +436,7 @@ build:
|
||||
-e TRIVY_DOWNLOAD_URL=$(TRIVY_DOWNLOAD_URL) -e TRIVY_ADAPTER_DOWNLOAD_URL=$(TRIVY_ADAPTER_DOWNLOAD_URL) \
|
||||
-e PULL_BASE_FROM_DOCKERHUB=$(PULL_BASE_FROM_DOCKERHUB) -e BUILD_BASE=$(BUILD_BASE) \
|
||||
-e REGISTRYUSER=$(REGISTRYUSER) -e REGISTRYPASSWORD=$(REGISTRYPASSWORD) \
|
||||
-e PUSHBASEIMAGE=$(PUSHBASEIMAGE) -e BUILD_PG96=$(BUILD_PG96)
|
||||
-e PUSHBASEIMAGE=$(PUSHBASEIMAGE)
|
||||
|
||||
build_standalone_db_migrator: compile_standalone_db_migrator
|
||||
make -f $(MAKEFILEPATH_PHOTON)/Makefile _build_standalone_db_migrator -e BASEIMAGETAG=$(BASEIMAGETAG) -e VERSIONTAG=$(VERSIONTAG)
|
||||
@ -452,25 +450,12 @@ build_base_docker:
|
||||
@for name in $(BUILDBASETARGET); do \
|
||||
echo $$name ; \
|
||||
sleep 30 ; \
|
||||
if [ $$name == "db" ]; then \
|
||||
make _build_base_db ; \
|
||||
else \
|
||||
$(DOCKERBUILD) --build-arg BUILD_PG96=$(BUILD_PG96) --pull --no-cache -f $(MAKEFILEPATH_PHOTON)/$$name/Dockerfile.base -t $(BASEIMAGENAMESPACE)/harbor-$$name-base:$(BASEIMAGETAG) --label base-build-date=$(date +"%Y%m%d") . ; \
|
||||
fi ; \
|
||||
$(DOCKERBUILD) --pull --no-cache -f $(MAKEFILEPATH_PHOTON)/$$name/Dockerfile.base -t $(BASEIMAGENAMESPACE)/harbor-$$name-base:$(BASEIMAGETAG) --label base-build-date=$(date +"%Y%m%d") . ; \
|
||||
if [ "$(PUSHBASEIMAGE)" != "false" ] ; then \
|
||||
$(PUSHSCRIPTPATH)/$(PUSHSCRIPTNAME) $(BASEIMAGENAMESPACE)/harbor-$$name-base:$(BASEIMAGETAG) $(REGISTRYUSER) $(REGISTRYPASSWORD) || exit 1; \
|
||||
fi ; \
|
||||
done
|
||||
|
||||
_build_base_db:
|
||||
@if [ "$(BUILD_PG96)" = "true" ] ; then \
|
||||
echo "build pg96 rpm package." ; \
|
||||
cd $(MAKEFILEPATH_PHOTON)/db && $(MAKEFILEPATH_PHOTON)/db/rpm_builder.sh && cd - ; \
|
||||
$(DOCKERBUILD) --pull --no-cache -f $(MAKEFILEPATH_PHOTON)/db/Dockerfile.pg96 -t $(BASEIMAGENAMESPACE)/harbor-db-base:$(BASEIMAGETAG) --label base-build-date=$(date +"%Y%m%d") . ; \
|
||||
else \
|
||||
$(DOCKERBUILD) --pull --no-cache -f $(MAKEFILEPATH_PHOTON)/db/Dockerfile.base -t $(BASEIMAGENAMESPACE)/harbor-db-base:$(BASEIMAGETAG) --label base-build-date=$(date +"%Y%m%d") . ; \
|
||||
fi
|
||||
|
||||
pull_base_docker:
|
||||
@for name in $(BUILDBASETARGET); do \
|
||||
echo $$name ; \
|
||||
|
@ -277,13 +277,7 @@ define _build_base
|
||||
else \
|
||||
echo "No docker credentials provided, please be aware of priviledges to access docker hub!" ; \
|
||||
fi ;\
|
||||
if [ "$(1)" = "db" ] && [ "$(BUILD_PG96)" = "true" ]; then \
|
||||
echo "build pg96 rpm package." ; \
|
||||
cd $(DOCKERFILEPATH)/db && $(DOCKERFILEPATH)/db/rpm_builder.sh && cd - ; \
|
||||
$(DOCKERBUILD) --pull --no-cache -f $(DOCKERFILEPATH)/db/Dockerfile.pg96 -t $(BASEIMAGENAMESPACE)/harbor-db-base:$(BASEIMAGETAG) --label base-build-date=$(TIMESTAMP) . ; \
|
||||
else \
|
||||
$(DOCKERBUILD) -f $(2)/Dockerfile.base -t $(BASEIMAGENAMESPACE)/harbor-$(1)-base:$(BASEIMAGETAG) --label base-build-date=$(TIMESTAMP) . ;\
|
||||
fi ;\
|
||||
$(DOCKERBUILD) -f $(2)/Dockerfile.base -t $(BASEIMAGENAMESPACE)/harbor-$(1)-base:$(BASEIMAGETAG) --label base-build-date=$(TIMESTAMP) . ;\
|
||||
if [ "$(PUSHBASEIMAGE)" = "true" ] ; then \
|
||||
$(PUSHSCRIPTPATH)/$(PUSHSCRIPTNAME) $(BASEIMAGENAMESPACE)/harbor-$(1)-base:$(BASEIMAGETAG) $(REGISTRYUSER) $(REGISTRYPASSWORD) docker.io $(PULL_BASE_FROM_DOCKERHUB) || exit 1; \
|
||||
fi ; \
|
||||
|
@ -14,7 +14,7 @@ COPY ./make/photon/db/initial-registry.sql /docker-entrypoint-initdb.d/
|
||||
RUN chown -R postgres:postgres /docker-entrypoint.sh /docker-healthcheck.sh /docker-entrypoint-initdb.d \
|
||||
&& chmod u+x /docker-entrypoint.sh /docker-healthcheck.sh
|
||||
|
||||
ENTRYPOINT ["/docker-entrypoint.sh", "96", "13"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh", "", "13"]
|
||||
HEALTHCHECK CMD ["/docker-healthcheck.sh"]
|
||||
|
||||
USER postgres
|
||||
USER postgres
|
@ -1,23 +0,0 @@
|
||||
FROM photon:4.0
|
||||
|
||||
ENV PGDATA /var/lib/postgresql/data
|
||||
|
||||
COPY ./make/photon/db/postgresql96-libs-9.6.21-1.ph4.x86_64.rpm /pg96/
|
||||
COPY ./make/photon/db/postgresql96-9.6.21-1.ph4.x86_64.rpm /pg96/
|
||||
|
||||
RUN tdnf install -y /pg96/postgresql96-libs-9.6.21-1.ph4.x86_64.rpm /pg96/postgresql96-9.6.21-1.ph4.x86_64.rpm >> /dev/null \
|
||||
&& rm -rf /pg96 \
|
||||
&& tdnf install -y shadow gzip postgresql13 findutils bc >> /dev/null \
|
||||
&& groupadd -r postgres --gid=999 \
|
||||
&& useradd -m -r -g postgres --uid=999 postgres \
|
||||
&& mkdir -p /docker-entrypoint-initdb.d \
|
||||
&& mkdir -p /run/postgresql \
|
||||
&& chown -R postgres:postgres /run/postgresql \
|
||||
&& chmod 2777 /run/postgresql \
|
||||
&& mkdir -p "$PGDATA" && chown -R postgres:postgres "$PGDATA" && chmod 777 "$PGDATA" \
|
||||
&& sed -i "s|#listen_addresses = 'localhost'.*|listen_addresses = '*'|g" /usr/pgsql/13/share/postgresql.conf.sample \
|
||||
&& sed -i "s|#unix_socket_directories = '/tmp'.*|unix_socket_directories = '/run/postgresql'|g" /usr/pgsql/13/share/postgresql.conf.sample \
|
||||
&& ln -s /usr/pgsql/13/bin/* /usr/bin/ \
|
||||
&& tdnf clean all
|
||||
|
||||
RUN tdnf erase -y toybox && tdnf install -y util-linux net-tools
|
@ -7,26 +7,34 @@ CUR=$PWD
|
||||
PG_VERSION_OLD=$1
|
||||
PG_VERSION_NEW=$2
|
||||
|
||||
PGBINOLD="/usr/local/pg${PG_VERSION_OLD}/bin"
|
||||
PGBINOLD="/usr/pgsql/${PG_VERSION_OLD}/bin"
|
||||
|
||||
PGDATAOLD=${PGDATA}/pg${PG_VERSION_OLD}
|
||||
PGDATANEW=${PGDATA}/pg${PG_VERSION_NEW}
|
||||
# to handle the PG 9.6 only
|
||||
|
||||
# We should block the upgrade path from 9.6 directly.
|
||||
if [ -s $PGDATA/PG_VERSION ]; then
|
||||
PGDATAOLD=$PGDATA
|
||||
echo "Upgrading from PostgreSQL 9.6 to PostgreSQL $PG_VERSION_NEW is not supported in the current Harbor release."
|
||||
echo "You should upgrade to previous Harbor firstly, then upgrade to current release."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#
|
||||
# Init DB: $PGDATA is empty.
|
||||
# Upgrade DB: 1, has $PGDATA\PG_VERSION. 2, has pg old version directory with PG_VERSION inside.
|
||||
#
|
||||
if [ "$(ls -A $PGDATA)" ]; then
|
||||
if [ ! -d $PGDATANEW ]; then
|
||||
if [ ! -d $PGDATAOLD ] || [ ! -s $PGDATAOLD/PG_VERSION ]; then
|
||||
echo "incorrect data: $PGDATAOLD, make sure $PGDATAOLD is not empty and with PG_VERSION inside."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Upgrade DB: 1. PG_NEW\PG_VERSION file doesn’t exist and pg_old_parameter is not nil and PG_OLD\PG_VERSION file exist.
|
||||
# For example: ["13", "14"]
|
||||
# In harbor v2.8, Harbor 2.7 was installed before, db version was 13,
|
||||
# It needs to upgrade the database from pg 13 to pg 14,
|
||||
# ["13", "14"] means support for upgrading from pg 13 to pg 14.
|
||||
# Init DB: 1. PG_NEW\PG_VERSION file doesn’t exist and pg_old_parameter is not nil and PG_OLD\PG_VERSION file doesn’t exist.
|
||||
# For example: ["13", "14"]
|
||||
# In harbor v2.8, the first time installation, it needs to init the db for pg 14,
|
||||
# ["13", "14"] means support for upgrading from pg 13 to pg 14.
|
||||
# 2. PG_NEW\PG_VERSION file doesn’t exist and pg_old_parameter is nil.
|
||||
# For example: ["", "14"]
|
||||
# In harbor v2.8, the first time installation, it needs to init the db for pg 14,
|
||||
# ["", "14"] means db upgrade is not supported.
|
||||
if [ ! -s $PGDATANEW/PG_VERSION ]; then
|
||||
if [ ! -z $PG_VERSION_OLD ] && [ -s $PGDATAOLD/PG_VERSION ]; then
|
||||
echo "upgrade DB from $PG_VERSION_OLD to $PG_VERSION_NEW"
|
||||
initPG $PGDATANEW false
|
||||
set +e
|
||||
# In some cases, like helm upgrade, the postgresql may not quit cleanly.
|
||||
@ -39,22 +47,17 @@ if [ "$(ls -A $PGDATA)" ]; then
|
||||
./$CUR/upgrade.sh --old-bindir $PGBINOLD --old-datadir $PGDATAOLD --new-datadir $PGDATANEW
|
||||
# it needs to clean the $PGDATANEW on upgrade failure
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "remove the $PGDATANEW after fail to upgrade"
|
||||
echo "remove the $PGDATANEW after fail to upgrade."
|
||||
rm -rf $PGDATANEW
|
||||
exit 1
|
||||
fi
|
||||
set -e
|
||||
echo "remove the $PGDATAOLD after upgrade success."
|
||||
if [ "$PGDATAOLD" = "$PGDATA" ]; then
|
||||
find $PGDATA/* -prune ! -name pg${PG_VERSION_NEW} -exec rm -rf {} \;
|
||||
else
|
||||
rm -rf $PGDATAOLD
|
||||
fi
|
||||
rm -rf $PGDATAOLD
|
||||
else
|
||||
echo "no need to upgrade postgres, launch it."
|
||||
echo "init DB, DB version:$PG_VERSION_NEW"
|
||||
initPG $PGDATANEW true
|
||||
fi
|
||||
else
|
||||
initPG $PGDATANEW true
|
||||
fi
|
||||
|
||||
POSTGRES_PARAMETER=''
|
||||
|
@ -1,168 +0,0 @@
|
||||
Summary: PostgreSQL database engine
|
||||
Name: postgresql96
|
||||
Version: 9.6.21
|
||||
Release: 1%{?dist}
|
||||
License: PostgreSQL
|
||||
URL: www.postgresql.org
|
||||
Group: Applications/Databases
|
||||
Vendor: VMware, Inc.
|
||||
Distribution: Photon
|
||||
|
||||
Source0: http://ftp.postgresql.org/pub/source/v%{version}/%{name}-%{version}.tar.bz2
|
||||
%define sha1 postgresql=e24333824d361968958613f546ae06011d9d1dfc
|
||||
|
||||
# Customized location of pg96
|
||||
%global pgbaseinstdir /usr/local/pg96
|
||||
|
||||
# Common libraries needed
|
||||
BuildRequires: krb5-devel
|
||||
BuildRequires: libxml2-devel
|
||||
BuildRequires: openldap
|
||||
BuildRequires: perl
|
||||
BuildRequires: readline-devel
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: tzdata
|
||||
BuildRequires: bzip2
|
||||
BuildRequires: sudo
|
||||
Requires: krb5
|
||||
Requires: libxml2
|
||||
Requires: openldap
|
||||
Requires: openssl
|
||||
Requires: readline
|
||||
Requires: zlib
|
||||
Requires: tzdata
|
||||
Requires: bzip2
|
||||
Requires: sudo
|
||||
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
|
||||
%description
|
||||
PostgreSQL is an object-relational database management system.
|
||||
|
||||
%package libs
|
||||
Summary: Libraries for use with PostgreSQL
|
||||
Group: Applications/Databases
|
||||
|
||||
%description libs
|
||||
The postgresql-libs package provides the essential shared libraries for any
|
||||
PostgreSQL client program or interface. You will need to install this package
|
||||
to use any other PostgreSQL package or any clients that need to connect to a
|
||||
PostgreSQL server.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for postgresql.
|
||||
Group: Development/Libraries
|
||||
Requires: postgresql = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
The postgresql-devel package contains libraries and header files for
|
||||
developing applications that use postgresql.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
ls -la
|
||||
sed -i '/DEFAULT_PGSOCKET_DIR/s@/tmp@/run/postgresql@' src/include/pg_config_manual.h &&
|
||||
./configure \
|
||||
--prefix=%{pgbaseinstdir} \
|
||||
--with-includes=%{pgbaseinstdir}/include \
|
||||
--with-libraries=%{pgbaseinstdir}/lib \
|
||||
--datarootdir=%{pgbaseinstdir}/share \
|
||||
--enable-thread-safety \
|
||||
--with-ldap \
|
||||
--with-libxml \
|
||||
--with-openssl \
|
||||
--with-gssapi \
|
||||
--with-readline \
|
||||
--with-system-tzdata=%{_datadir}/zoneinfo \
|
||||
--docdir=%{pgbaseinstdir}/doc/postgresql
|
||||
make %{?_smp_mflags}
|
||||
cd contrib && make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
[ %{buildroot} != "/"] && rm -rf %{buildroot}/*
|
||||
make install DESTDIR=%{buildroot}
|
||||
cd contrib && make install DESTDIR=%{buildroot}
|
||||
|
||||
%{_fixperms} %{buildroot}/*
|
||||
|
||||
%check
|
||||
sed -i '2219s/",/ ; EXIT_STATUS=$? ; sleep 5 ; exit $EXIT_STATUS",/g' src/test/regress/pg_regress.c
|
||||
chown -Rv nobody .
|
||||
sudo -u nobody -s /bin/bash -c "PATH=$PATH make -k check"
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
%postun -p /sbin/ldconfig
|
||||
%clean
|
||||
rm -rf %{buildroot}/*
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%{pgbaseinstdir}/bin/initdb
|
||||
%{pgbaseinstdir}/bin/oid2name
|
||||
%{pgbaseinstdir}/bin/pg_archivecleanup
|
||||
%{pgbaseinstdir}/bin/pg_basebackup
|
||||
%{pgbaseinstdir}/bin/pg_controldata
|
||||
%{pgbaseinstdir}/bin/pg_ctl
|
||||
%{pgbaseinstdir}/bin/pg_receivexlog
|
||||
%{pgbaseinstdir}/bin/pg_recvlogical
|
||||
%{pgbaseinstdir}/bin/pg_resetxlog
|
||||
%{pgbaseinstdir}/bin/pg_rewind
|
||||
%{pgbaseinstdir}/bin/pg_standby
|
||||
%{pgbaseinstdir}/bin/pg_test_fsync
|
||||
%{pgbaseinstdir}/bin/pg_test_timing
|
||||
%{pgbaseinstdir}/bin/pg_upgrade
|
||||
%{pgbaseinstdir}/bin/pg_xlogdump
|
||||
%{pgbaseinstdir}/bin/pgbench
|
||||
%{pgbaseinstdir}/bin/postgres
|
||||
%{pgbaseinstdir}/bin/postmaster
|
||||
%{pgbaseinstdir}/bin/vacuumlo
|
||||
%{pgbaseinstdir}/share/postgresql/*
|
||||
%{pgbaseinstdir}/lib/postgresql/*
|
||||
%{pgbaseinstdir}/doc/postgresql/extension/*.example
|
||||
%exclude %{pgbaseinstdir}/share/postgresql/pg_service.conf.sample
|
||||
%exclude %{pgbaseinstdir}/share/postgresql/psqlrc.sample
|
||||
|
||||
%files libs
|
||||
%{pgbaseinstdir}/bin/clusterdb
|
||||
%{pgbaseinstdir}/bin/createdb
|
||||
%{pgbaseinstdir}/bin/createlang
|
||||
%{pgbaseinstdir}/bin/createuser
|
||||
%{pgbaseinstdir}/bin/dropdb
|
||||
%{pgbaseinstdir}/bin/droplang
|
||||
%{pgbaseinstdir}/bin/dropuser
|
||||
%{pgbaseinstdir}/bin/ecpg
|
||||
%{pgbaseinstdir}/bin/pg_config
|
||||
%{pgbaseinstdir}/bin/pg_dump
|
||||
%{pgbaseinstdir}/bin/pg_dumpall
|
||||
%{pgbaseinstdir}/bin/pg_isready
|
||||
%{pgbaseinstdir}/bin/pg_restore
|
||||
%{pgbaseinstdir}/bin/psql
|
||||
%{pgbaseinstdir}/bin/reindexdb
|
||||
%{pgbaseinstdir}/bin/vacuumdb
|
||||
%{pgbaseinstdir}/lib/libecpg*.so.*
|
||||
%{pgbaseinstdir}/lib/libpgtypes*.so.*
|
||||
%{pgbaseinstdir}/lib/libpq*.so.*
|
||||
%{pgbaseinstdir}/share/postgresql/pg_service.conf.sample
|
||||
%{pgbaseinstdir}/share/postgresql/psqlrc.sample
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
%{pgbaseinstdir}/include/*
|
||||
%{pgbaseinstdir}/lib/pkgconfig/*
|
||||
%{pgbaseinstdir}/lib/libecpg*.so
|
||||
%{pgbaseinstdir}/lib/libpgtypes*.so
|
||||
%{pgbaseinstdir}/lib/libpq*.so
|
||||
%{pgbaseinstdir}/lib/libpgcommon.a
|
||||
%{pgbaseinstdir}/lib/libpgfeutils.a
|
||||
%{pgbaseinstdir}/lib/libpgport.a
|
||||
%{pgbaseinstdir}/lib/libpq.a
|
||||
%{pgbaseinstdir}/lib/libecpg.a
|
||||
%{pgbaseinstdir}/lib/libecpg_compat.a
|
||||
%{pgbaseinstdir}/lib/libpgtypes.a
|
||||
|
||||
%changelog
|
||||
* Yan Wang <wangyan@vmware.com>
|
||||
- Customize postgres 96 from original spec
|
@ -1,43 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
name='postgresql'
|
||||
version='9.6.21'
|
||||
|
||||
function checkdep {
|
||||
if ! wget --version &> /dev/null
|
||||
then
|
||||
echo "Need to install wget first and run this script again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! [ -x "$(command -v bzip2)" ]
|
||||
then
|
||||
echo "Need to install bzip2 first and run this script again."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
checkdep
|
||||
|
||||
cur=$PWD
|
||||
workDir=`mktemp -d ${TMPDIR-/tmp}/$name.XXXXXX`
|
||||
mkdir -p $workDir && cd $workDir
|
||||
|
||||
# step 1: get source code of pg 9.6, and rename the code directory from postgres to postgres96
|
||||
wget http://ftp.postgresql.org/pub/source/v$version/$name-$version.tar.bz2
|
||||
bzip2 -d ./$name-$version.tar.bz2 && tar -xvf ./$name-$version.tar
|
||||
mkdir -p ${name}96-$version && cp -r ./$name-$version/* ./${name}96-$version/ && rm -rf ./$name-$version
|
||||
tar -cvjSf ${name}96-$version.tar.bz2 ${name}96-$version
|
||||
|
||||
# step 2: get spec builder script, and replace version to 4, then to build the pg96 rpm packages
|
||||
wget https://raw.githubusercontent.com/vmware/photon/4.0/tools/scripts/build_spec.sh
|
||||
sed "s|VERSION=3|VERSION=4|g" -i build_spec.sh
|
||||
chmod 655 ./build_spec.sh && cp $cur/postgres.spec .
|
||||
./build_spec.sh ./postgres.spec
|
||||
cp ./stage/RPMS/x86_64/${name}96-libs-$version-1.ph4.x86_64.rpm $cur
|
||||
cp ./stage/RPMS/x86_64/${name}96-$version-1.ph4.x86_64.rpm $cur
|
||||
|
||||
# clean
|
||||
cd $cur && rm -rf $workDir
|
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
PGBINOLD="/usr/local/pg96/bin/"
|
||||
PGBINOLD=""
|
||||
PGBINNEW="/usr/bin"
|
||||
PGDATAOLD=""
|
||||
PGDATANEW=""
|
||||
|
Loading…
Reference in New Issue
Block a user