Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new psmdb version #7384

Merged
merged 1 commit into from
Jan 31, 2020
Merged

Add new psmdb version #7384

merged 1 commit into from
Jan 31, 2020

Conversation

hors
Copy link
Contributor

@hors hors commented Jan 30, 2020

No description provided.

@tianon
Copy link
Member

tianon commented Jan 31, 2020

Diff:
diff --git a/_bashbrew-arches b/_bashbrew-arches
index c1d490e..efef0f7 100644
--- a/_bashbrew-arches
+++ b/_bashbrew-arches
@@ -1,5 +1,6 @@
 percona:latest @ amd64
 percona:psmdb-3.6 @ amd64
 percona:psmdb-4.0 @ amd64
+percona:psmdb-4.2 @ amd64
 percona:ps-5.6 @ amd64
 percona:ps-8 @ amd64
diff --git a/_bashbrew-list b/_bashbrew-list
index 3c50a1a..46d52a0 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -20,6 +20,8 @@ percona:psmdb-3.6
 percona:psmdb-3.6.16
 percona:psmdb-4.0
 percona:psmdb-4.0.14
+percona:psmdb-4.2
+percona:psmdb-4.2.2
 percona:ps-5
 percona:ps-5.6
 percona:ps-5.6.47
diff --git a/percona_psmdb-4.0/Dockerfile b/percona_psmdb-4.2/Dockerfile
similarity index 98%
copy from percona_psmdb-4.0/Dockerfile
copy to percona_psmdb-4.2/Dockerfile
index dbf0594..6e06550 100644
--- a/percona_psmdb-4.0/Dockerfile
+++ b/percona_psmdb-4.2/Dockerfile
@@ -18,7 +18,7 @@ plus additional enterprise-grade functionality."
 LABEL org.opencontainers.image.license="SSPLv1"
 LABEL org.opencontainers.image.authors="info@percona.com"
 
-ENV PSMDB_VERSION 4.0.14-8
+ENV PSMDB_VERSION 4.2.2-3
 LABEL org.label-schema.schema-version=${PSMDB_VERSION}
 LABEL org.opencontainers.image.version=${PSMDB_VERSION}
 
@@ -39,7 +39,7 @@ RUN set -ex; \
     rpm -i /tmp/percona-release.rpm; \
     rm -rf "$GNUPGHOME" /tmp/percona-release.rpm; \
     rpm --import /etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY; \
-    percona-release enable psmdb-40 release
+    percona-release enable psmdb-42 release
 
 # install exact version for repeatability
 ENV OS_VER el7
diff --git a/percona_psmdb-3.6/LICENSE b/percona_psmdb-4.2/LICENSE
similarity index 100%
copy from percona_psmdb-3.6/LICENSE
copy to percona_psmdb-4.2/LICENSE
diff --git a/percona_psmdb-4.0/ps-entry.sh b/percona_psmdb-4.2/ps-entry.sh
similarity index 78%
copy from percona_psmdb-4.0/ps-entry.sh
copy to percona_psmdb-4.2/ps-entry.sh
index d1d2eae..f5e62e3 100755
--- a/percona_psmdb-4.0/ps-entry.sh
+++ b/percona_psmdb-4.2/ps-entry.sh
@@ -136,6 +136,41 @@ _mongod_hack_ensure_arg_val() {
 	mongodHackedArgs+=( "$ensureArg" "$ensureVal" )
 }
 
+# _mongod_hack_rename_arg_save_val '--arg-to-rename' '--arg-to-rename-to' "$@"
+# set -- "${mongodHackedArgs[@]}"
+_mongod_hack_rename_arg_save_val() {
+	local oldArg="$1"; shift
+	local newArg="$1"; shift
+	if ! _mongod_hack_have_arg "$oldArg" "$@"; then
+		return 0
+	fi
+	local val=""
+	mongodHackedArgs=()
+	while [ "$#" -gt 0 ]; do
+		local arg="$1"; shift
+		if [ "$arg" = "$oldArg" ]; then
+			val="$1"; shift
+			continue
+		elif [[ "$arg" =~ "$oldArg"=(.*) ]]; then
+			val=${BASH_REMATCH[1]}
+			continue
+		fi
+		mongodHackedArgs+=("$arg")
+	done
+	mongodHackedArgs+=("$newArg" "$val")
+}
+
+# _mongod_hack_rename_arg'--arg-to-rename' '--arg-to-rename-to' "$@"
+# set -- "${mongodHackedArgs[@]}"
+_mongod_hack_rename_arg() {
+	local oldArg="$1"; shift
+	local newArg="$1"; shift
+	if _mongod_hack_have_arg "$oldArg" "$@"; then
+		_mongod_hack_ensure_no_arg "$oldArg" "$@"
+		_mongod_hack_ensure_arg "$newArg" "${mongodHackedArgs[@]}"
+	fi
+}
+
 # _js_escape 'some "string" value'
 _js_escape() {
 	jq --null-input --arg 'str' "$1" '$str'
@@ -356,6 +391,46 @@ if [ "$originalArgOne" = 'mongod' ]; then
 		fi
 	fi
 
+	_mongod_hack_rename_arg_save_val --sslMode --tlsMode "${mongodHackedArgs[@]}"
+
+	if _mongod_hack_have_arg '--tlsMode' "${mongodHackedArgs[@]}"; then
+		tlsMode="none"
+		if _mongod_hack_have_arg 'allowSSL' "${mongodHackedArgs[@]}"; then
+			tlsMode='allowTLS'
+		elif _mongod_hack_have_arg 'preferSSL' "${mongodHackedArgs[@]}"; then
+			tlsMode='preferTLS'
+		elif _mongod_hack_have_arg 'requireSSL' "${mongodHackedArgs[@]}"; then
+			tlsMode='requireTLS'
+		fi
+
+		if [ "$tlsMode" != "none" ]; then
+			_mongod_hack_ensure_no_arg_val --tlsMode "${mongodHackedArgs[@]}"
+			_mongod_hack_ensure_arg_val --tlsMode "$tlsMode" "${mongodHackedArgs[@]}"
+		fi
+	fi
+
+	_mongod_hack_rename_arg_save_val --sslPEMKeyFile --tlsCertificateKeyFile "${mongodHackedArgs[@]}"
+	if ! _mongod_hack_have_arg '--tlsMode' "${mongodHackedArgs[@]}"; then
+		if _mongod_hack_have_arg '--tlsCertificateKeyFile' "${mongodHackedArgs[@]}"; then
+			_mongod_hack_ensure_arg_val --tlsMode "preferTLS" "${mongodHackedArgs[@]}"
+		fi
+	fi
+	_mongod_hack_rename_arg '--sslAllowInvalidCertificates' '--tlsAllowInvalidCertificates' "${mongodHackedArgs[@]}"
+	_mongod_hack_rename_arg '--sslAllowInvalidHostnames' '--tlsAllowInvalidHostnames' "${mongodHackedArgs[@]}"
+	_mongod_hack_rename_arg '--sslAllowConnectionsWithoutCertificates' '--tlsAllowConnectionsWithoutCertificates' "${mongodHackedArgs[@]}"
+	_mongod_hack_rename_arg '--sslFIPSMode' '--tlsFIPSMode' "${mongodHackedArgs[@]}"
+
+
+	_mongod_hack_rename_arg_save_val --sslPEMKeyPassword --tlsCertificateKeyFilePassword "${mongodHackedArgs[@]}"
+	_mongod_hack_rename_arg_save_val --sslClusterFile --tlsClusterFile "${mongodHackedArgs[@]}"
+	_mongod_hack_rename_arg_save_val --sslCertificateSelector --tlsCertificateSelector "${mongodHackedArgs[@]}"
+	_mongod_hack_rename_arg_save_val --sslClusterCertificateSelector --tlsClusterCertificateSelector "${mongodHackedArgs[@]}"
+	_mongod_hack_rename_arg_save_val --sslClusterPassword --tlsClusterPassword "${mongodHackedArgs[@]}"
+	_mongod_hack_rename_arg_save_val --sslCAFile --tlsCAFile "${mongodHackedArgs[@]}"
+	_mongod_hack_rename_arg_save_val --sslClusterCAFile --tlsClusterCAFile "${mongodHackedArgs[@]}"
+	_mongod_hack_rename_arg_save_val --sslCRLFile --tlsCRLFile "${mongodHackedArgs[@]}"
+	_mongod_hack_rename_arg_save_val --sslDisabledProtocols --tlsDisabledProtocols "${mongodHackedArgs[@]}"
+
 	set -- "${mongodHackedArgs[@]}"
 
 	# MongoDB 3.6+ defaults to localhost-only binding

@tianon
Copy link
Member

tianon commented Jan 31, 2020

LGTM

Build test of #7384; 94f0f9f; amd64 (percona):

$ bashbrew build percona:8.0.18-9-centos
Using bashbrew/cache:87f60dda007e6723e8efcdd7698b0064a890fd4db97c88b48c7180e9868deb09 (percona:8.0.18-9-centos)
Tagging percona:8.0.18-9-centos
Tagging percona:8.0-centos
Tagging percona:8-centos
Tagging percona:8.0.18-9
Tagging percona:8.0
Tagging percona:8
Tagging percona:ps-8.0.18-9
Tagging percona:ps-8.0
Tagging percona:ps-8

$ test/run.sh percona:8.0.18-9-centos
testing percona:8.0.18-9-centos
	'utc' [1/9]...passed
	'cve-2014--shellshock' [2/9]...passed
	'no-hard-coded-passwords' [3/9]...warning: garbage password detected for 'root': 'locked'
passed
	'override-cmd' [4/9]...passed
	'mysql-basics' [5/9]......passed
	'mysql-initdb' [6/9]......passed
	'mysql-log-bin' [7/9].......passed
	'percona-tokudb' [8/9].......passed
	'percona-rocksdb' [9/9].......passed


$ bashbrew build percona:5.7.28-centos
Using bashbrew/cache:946151c81186b41f7a86ecdc4aaee37b35d004ae306a66cd57577d8cbbc59c9d (percona:5.7.28-centos)
Tagging percona:5.7.28-centos
Tagging percona:5.7-centos
Tagging percona:5-centos
Tagging percona:centos
Tagging percona:5.7.28
Tagging percona:5.7
Tagging percona:5
Tagging percona:ps-5.7.28
Tagging percona:ps-5.7
Tagging percona:ps-5
Tagging percona:latest

$ test/run.sh percona:5.7.28-centos
testing percona:5.7.28-centos
	'utc' [1/9]...passed
	'cve-2014--shellshock' [2/9]...passed
	'no-hard-coded-passwords' [3/9]...warning: garbage password detected for 'root': 'locked'
passed
	'override-cmd' [4/9]...passed
	'mysql-basics' [5/9]......passed
	'mysql-initdb' [6/9]......passed
	'mysql-log-bin' [7/9]......passed
	'percona-tokudb' [8/9]......passed
	'percona-rocksdb' [9/9]......passed


$ bashbrew build percona:5.6.47-centos
Using bashbrew/cache:cc020da0fafd3ef3c5148612b89b220a40c23b33a6344db768a120c8ff0d684f (percona:5.6.47-centos)
Tagging percona:5.6.47-centos
Tagging percona:5.6-centos
Tagging percona:5.6.47
Tagging percona:5.6
Tagging percona:ps-5.6.47
Tagging percona:ps-5.6

$ test/run.sh percona:5.6.47-centos
testing percona:5.6.47-centos
	'utc' [1/9]...passed
	'cve-2014--shellshock' [2/9]...passed
	'no-hard-coded-passwords' [3/9]...passed
	'override-cmd' [4/9]...warning: garbage password detected for 'root': 'locked'
passed
	'mysql-basics' [5/9].......passed
	'mysql-initdb' [6/9].......passed
	'mysql-log-bin' [7/9].......passed
	'percona-tokudb' [8/9]........passed
	'percona-rocksdb' [9/9]...passed


$ bashbrew build percona:psmdb-4.2.2
Building bashbrew/cache:f94e33dd7d4b4e0aca4d1d8078f9083015405de5f90e7b541a6be16751a8ab45 (percona:psmdb-4.2.2)
Tagging percona:psmdb-4.2.2
Tagging percona:psmdb-4.2

$ test/run.sh percona:psmdb-4.2.2
testing percona:psmdb-4.2.2
	'utc' [1/8]...passed
	'cve-2014--shellshock' [2/8]...passed
	'no-hard-coded-passwords' [3/8]...warning: garbage password detected for 'root': 'locked'
passed
	'override-cmd' [4/8]...+ exec echo 'Hello world-13730-9791'
passed
	'mongo-basics' [5/8]...passed
	'mongo-auth-basics' [6/8]....passed
	'mongo-tls-basics' [7/8]...passed
	'mongo-tls-auth' [8/8]....passed


$ bashbrew build percona:psmdb-4.0.14
Using bashbrew/cache:12aaefdac950a83da33082ae1c10415c84a9d2a0eedfa45533519714e3db1b99 (percona:psmdb-4.0.14)
Tagging percona:psmdb-4.0.14
Tagging percona:psmdb-4.0

$ test/run.sh percona:psmdb-4.0.14
testing percona:psmdb-4.0.14
	'utc' [1/8]...passed
	'cve-2014--shellshock' [2/8]...passed
	'no-hard-coded-passwords' [3/8]...warning: garbage password detected for 'root': 'locked'
passed
	'override-cmd' [4/8]...+ exec echo 'Hello world-28830-15569'
passed
	'mongo-basics' [5/8]...passed
	'mongo-auth-basics' [6/8]....passed
	'mongo-tls-basics' [7/8]...passed
	'mongo-tls-auth' [8/8]....passed


$ bashbrew build percona:psmdb-3.6.16
Using bashbrew/cache:444c4f8d2f801c02b2df27c6066685bd3f29586e257c847f159ff64bc1dcfb15 (percona:psmdb-3.6.16)
Tagging percona:psmdb-3.6.16
Tagging percona:psmdb-3.6

$ test/run.sh percona:psmdb-3.6.16
testing percona:psmdb-3.6.16
	'utc' [1/8]...passed
	'cve-2014--shellshock' [2/8]...passed
	'no-hard-coded-passwords' [3/8]...warning: garbage password detected for 'root': 'locked'
passed
	'override-cmd' [4/8]...+ exec echo 'Hello world-1037-7986'
passed
	'mongo-basics' [5/8]...passed
	'mongo-auth-basics' [6/8]....passed
	'mongo-tls-basics' [7/8]...passed
	'mongo-tls-auth' [8/8]....passed

@tianon tianon merged commit bc1aef6 into docker-library:master Jan 31, 2020
@hors hors deleted the add-psmdb-42 branch January 31, 2020 19:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants