From c7e15c3c7ce72470c0d87d32f8223a82f7d8ab2a Mon Sep 17 00:00:00 2001
From: kevinrizza <krizza@redhat.com>
Date: Fri, 24 Apr 2020 20:10:55 -0400
Subject: [PATCH] (fix) Use opm builder image for opm indexes

Revert the upstream-builder changes since they break compatibility with
a number of workflows. Instead, just point the dockerfile generator to
new opm-builder image for upstream.

Additionally, update existing docs and dockerfile examples to point to
/bin instead of /build/bin for registry examples
---
 configmap-registry.Dockerfile                  |  4 ++--
 docs/design/opm-tooling.md                     |  2 +-
 opm-example.Dockerfile                         |  4 ++--
 pkg/containertools/dockerfilegenerator.go      |  2 +-
 pkg/containertools/dockerfilegenerator_test.go |  2 +-
 upstream-builder.Dockerfile                    | 15 ++++++---------
 6 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/configmap-registry.Dockerfile b/configmap-registry.Dockerfile
index 825956fec..fc6d840c4 100644
--- a/configmap-registry.Dockerfile
+++ b/configmap-registry.Dockerfile
@@ -2,8 +2,8 @@ FROM quay.io/operator-framework/upstream-registry-builder:latest as builder
 FROM busybox as userspace
 
 FROM scratch
-COPY --from=builder /build/bin/configmap-server /bin/configmap-server
-COPY --from=builder /build/bin/opm /bin/opm
+COPY --from=builder /bin/configmap-server /bin/configmap-server
+COPY --from=builder /bin/opm /bin/opm
 COPY --from=userspace /bin/cp /bin/cp
 COPY --from=builder /bin/grpc_health_probe /bin/grpc_health_probe
 EXPOSE 50051
diff --git a/docs/design/opm-tooling.md b/docs/design/opm-tooling.md
index 2e1c730e1..5825a71c3 100644
--- a/docs/design/opm-tooling.md
+++ b/docs/design/opm-tooling.md
@@ -66,7 +66,7 @@ FROM quay.io/operator-framework/upstream-registry-builder AS builder
 FROM scratch
 LABEL operators.operatorframework.io.index.database.v1=./index.db
 COPY database ./
-COPY --from=builder /build/bin/opm /opm
+COPY --from=builder /bin/opm /opm
 COPY --from=builder /bin/grpc_health_probe /bin/grpc_health_probe
 EXPOSE 50051
 ENTRYPOINT ["/opm"]
diff --git a/opm-example.Dockerfile b/opm-example.Dockerfile
index 4d5cc1992..38c927f48 100644
--- a/opm-example.Dockerfile
+++ b/opm-example.Dockerfile
@@ -1,9 +1,9 @@
-FROM quay.io/operator-framework/upstream-registry-builder AS builder
+FROM quay.io/operator-framework/upstream-opm-builder AS builder
 
 FROM scratch
 LABEL operators.operatorframework.io.index.database.v1=./index.db
 COPY database ./
-COPY --from=builder /build/bin/opm /opm
+COPY --from=builder /bin/opm /opm
 COPY --from=builder /bin/grpc_health_probe /bin/grpc_health_probe
 EXPOSE 50051
 ENTRYPOINT ["/opm"]
diff --git a/pkg/containertools/dockerfilegenerator.go b/pkg/containertools/dockerfilegenerator.go
index 0d989e372..4e1a21d40 100644
--- a/pkg/containertools/dockerfilegenerator.go
+++ b/pkg/containertools/dockerfilegenerator.go
@@ -8,7 +8,7 @@ import (
 )
 
 const (
-	defaultBinarySourceImage = "quay.io/operator-framework/upstream-registry-builder"
+	defaultBinarySourceImage = "quay.io/operator-framework/upstream-opm-builder"
 	DefaultDbLocation        = "/database/index.db"
 	DbLocationLabel          = "operators.operatorframework.io.index.database.v1"
 )
diff --git a/pkg/containertools/dockerfilegenerator_test.go b/pkg/containertools/dockerfilegenerator_test.go
index 69741fe60..634397466 100644
--- a/pkg/containertools/dockerfilegenerator_test.go
+++ b/pkg/containertools/dockerfilegenerator_test.go
@@ -39,7 +39,7 @@ func TestGenerateDockerfile_EmptyBaseImage(t *testing.T) {
 	defer controller.Finish()
 
 	databasePath := "database/index.db"
-	expectedDockerfile := `FROM quay.io/operator-framework/upstream-registry-builder
+	expectedDockerfile := `FROM quay.io/operator-framework/upstream-opm-builder
 LABEL operators.operatorframework.io.index.database.v1=/database/index.db
 ADD database/index.db /database/index.db
 EXPOSE 50051
diff --git a/upstream-builder.Dockerfile b/upstream-builder.Dockerfile
index 3d457fbbd..4b426c5bb 100644
--- a/upstream-builder.Dockerfile
+++ b/upstream-builder.Dockerfile
@@ -1,4 +1,4 @@
-FROM golang:1.13-alpine AS builder
+FROM golang:1.13-alpine
 
 RUN apk update && apk add sqlite build-base git mercurial bash
 WORKDIR /build
@@ -12,11 +12,8 @@ RUN make static
 RUN GRPC_HEALTH_PROBE_VERSION=v0.2.1 && \
     wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-$(go env GOARCH) && \
     chmod +x /bin/grpc_health_probe
-
-FROM scratch
-COPY --from=builder /build/bin/opm /bin/opm
-COPY --from=builder /build/bin/initializer /bin/initializer
-COPY --from=builder /build/bin/appregistry-server /bin/appregistry-server
-COPY --from=builder /build/bin/configmap-server /bin/configmap-server
-COPY --from=builder /build/bin/registry-server /bin/registry-server
-COPY --from=builder /bin/grpc_health_probe /bin/grpc_health_probe
+RUN cp /build/bin/opm /bin/opm && \
+    cp /build/bin/initializer /bin/initializer && \
+    cp /build/bin/appregistry-server /bin/appregistry-server && \
+    cp /build/bin/configmap-server /bin/configmap-server && \
+    cp /build/bin/registry-server /bin/registry-server