This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/master by this push:
     new e3c750e  Switch to downloaded pgbouncer_exporter (#10759)
e3c750e is described below

commit e3c750e61856682ad30e4f14abafd831bc5ef4b5
Author: Jarek Potiuk <[email protected]>
AuthorDate: Sun Sep 6 10:47:32 2020 +0200

    Switch to downloaded pgbouncer_exporter (#10759)
    
    Fixes #10753
---
 chart/dockerfiles/pgbouncer-exporter/.gitignore    |  1 +
 chart/dockerfiles/pgbouncer-exporter/Dockerfile    | 39 +++++++++
 chart/dockerfiles/pgbouncer-exporter/README.md     | 21 -----
 .../pgbouncer-exporter/build_and_push.sh           | 96 ++++++++++++++++++++++
 4 files changed, 136 insertions(+), 21 deletions(-)

diff --git a/chart/dockerfiles/pgbouncer-exporter/.gitignore 
b/chart/dockerfiles/pgbouncer-exporter/.gitignore
new file mode 100644
index 0000000..e7fc224
--- /dev/null
+++ b/chart/dockerfiles/pgbouncer-exporter/.gitignore
@@ -0,0 +1 @@
+pgbouncer_exporter*
diff --git a/chart/dockerfiles/pgbouncer-exporter/Dockerfile 
b/chart/dockerfiles/pgbouncer-exporter/Dockerfile
new file mode 100644
index 0000000..0efdd2f
--- /dev/null
+++ b/chart/dockerfiles/pgbouncer-exporter/Dockerfile
@@ -0,0 +1,39 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+ARG ALPINE_VERSION="3.12"
+
+FROM alpine:${ALPINE_VERSION} AS builder
+
+ARG PGBOUNCER_EXPORTER_VERSION
+ARG AIRFLOW_PGBOUNCER_EXPORTER_VERSION
+ARG GO_VERSION
+ARG COMMIT_SHA
+
+LABEL org.apache.airflow.component="pgbouncer-exporter"
+LABEL 
org.apache.airflow.pgbouncer_exporter.version="${PGBOUNCER_EXPORTER_VERSION}"
+LABEL org.apache.airflow.go.version="${GO_VERSION}"
+LABEL 
org.apache.airflow.airflow_pgbouncer_exporter.version="${AIRFLOW_PGBOUNCER_EXPORTER_VERSION}"
+LABEL org.apache.airflow.commit_sha="${COMMIT_SHA}"
+LABEL maintainer="Apache Airflow Community <[email protected]>"
+
+# hadolint ignore=DL3018
+RUN apk --no-cache add libressl libressl-dev
+
+COPY pgbouncer_exporter-${PGBOUNCER_EXPORTER_VERSION}/pgbouncer_exporter /bin
+
+HEALTHCHECK CMD ["/bin/pgbouncer_exporter", "health"]
+
+ENTRYPOINT ["/bin/pgbouncer_exporter"]
+CMD ["server"]
diff --git a/chart/dockerfiles/pgbouncer-exporter/README.md 
b/chart/dockerfiles/pgbouncer-exporter/README.md
deleted file mode 100644
index 03614e0..0000000
--- a/chart/dockerfiles/pgbouncer-exporter/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
-
-The dockerfile and build script for pgbouncer-exporter can be found
-in https://github.com/apache/airflow-pgbouncer-exporter
diff --git a/chart/dockerfiles/pgbouncer-exporter/build_and_push.sh 
b/chart/dockerfiles/pgbouncer-exporter/build_and_push.sh
new file mode 100755
index 0000000..4fac8f2
--- /dev/null
+++ b/chart/dockerfiles/pgbouncer-exporter/build_and_push.sh
@@ -0,0 +1,96 @@
+#!/usr/bin/env bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+set -euo pipefail
+DOCKERHUB_USER=${DOCKERHUB_USER:="apache"}
+readonly DOCKERHUB_USER
+DOCKERHUB_REPO=${DOCKERHUB_REPO:="airflow"}
+readonly DOCKERHUB_REPO
+
+PGBOUNCER_EXPORTER_VERSION="0.5.0"
+readonly PGBOUNCER_EXPORTER_VERSION
+
+AIRFLOW_PGBOUNCER_EXPORTER_VERSION="2020.09.05"
+readonly AIRFLOW_PGBOUNCER_EXPORTER_VERSION
+
+EXPECTED_GO_VERSION="1.15.1"
+readonly EXPECTED_GO_VERSION
+
+COMMIT_SHA=$(git rev-parse HEAD)
+readonly COMMIT_SHA
+
+cd "$( dirname "${BASH_SOURCE[0]}" )" || exit 1
+
+current_go_version=$("go${EXPECTED_GO_VERSION}" version 2>/dev/null | awk '{ 
print $3 }' 2>/dev/null || true)
+
+if [[ ${current_go_version} == "" ]]; then
+  current_go_version=$(go version 2>/dev/null | awk '{ print $3 }' 2>/dev/null)
+  GO_BIN=$(command -v go 2>/dev/null || true)
+else
+  GO_BIN=$(command -v go${EXPECTED_GO_VERSION} 2>/dev/null)
+fi
+readonly GO_BIN
+
+if [[ ${current_go_version} == "" ]]; then
+  echo "ERROR! You have no go installed"
+  echo
+  echo "Please install go${EXPECTED_GO_VERSION} to build the package"
+  echo
+  echo "You need to have golang installed. Follow 
https://golang.org/doc/install";
+  echo
+fi
+
+if [[ ${current_go_version} != "go${EXPECTED_GO_VERSION}" ]]; then
+  echo "ERROR! You have unexpected version of go in the path 
${current_go_version}"
+  echo
+  echo "Make sure you have go${EXPECTED_GO_VERSION} installed:"
+  echo
+  echo "   go get golang.org/dl/go${EXPECTED_GO_VERSION}"
+  echo
+  echo "   go${EXPECTED_GO_VERSION} download"
+  echo
+  echo "You might need to add ${HOME}/go/bin to your PATH"
+  echo
+  exit 1
+fi
+
+PGBOUNCER_EXPORTER_DIR="$(pwd)/pgbouncer_exporter-${PGBOUNCER_EXPORTER_VERSION}"
+readonly  PGBOUNCER_EXPORTER_DIR
+
+# Needs to be set for alpine images to run net package of GO
+export CGO_ENABLED=0
+rm -rf "$(pwd)/pgbouncer_exporter*"
+mkdir -pv "${PGBOUNCER_EXPORTER_DIR}"
+
+curl -L 
"https://github.com/jbub/pgbouncer_exporter/archive/v${PGBOUNCER_EXPORTER_VERSION}.tar.gz";
 | tar -zx
+
+cd "${PGBOUNCER_EXPORTER_DIR}"
+
+"${GO_BIN}" get ./...
+"${GO_BIN}" build
+
+tag="${DOCKERHUB_USER}/${DOCKERHUB_REPO}:airflow-pgbouncer-exporter-${AIRFLOW_PGBOUNCER_EXPORTER_VERSION}-${PGBOUNCER_EXPORTER_VERSION}"
+
+docker build . \
+    --pull \
+    --build-arg "PGBOUNCER_EXPORTER_VERSION=${PGBOUNCER_EXPORTER_VERSION}" \
+    --build-arg 
"AIRFLOW_PGBOUNCER_EXPORTER_VERSION=${AIRFLOW_PGBOUNCER_EXPORTER_VERSION}"\
+    --build-arg "COMMIT_SHA=${COMMIT_SHA}" \
+    --build-arg "GO_VERSION=${current_go_version}" \
+    --tag "${tag}"
+
+docker push "${tag}"

Reply via email to