From 44017890cac5d7eef09e8e95044fb01aee78ce95 Mon Sep 17 00:00:00 2001 From: Gianluca Zuccarelli Date: Thu, 11 Nov 2021 20:03:21 +0000 Subject: [PATCH] containers: mock oauth container Add a mock oauth container to simulate the openshift SSO offline_token --- containers/fauxauth/fauxauth.py | 28 ++++++++++++++++++++++++++++ distribution/Dockerfile-fauxauth | 15 +++++++++++++++ distribution/Dockerfile-worker | 1 + 3 files changed, 44 insertions(+) create mode 100755 containers/fauxauth/fauxauth.py create mode 100644 distribution/Dockerfile-fauxauth diff --git a/containers/fauxauth/fauxauth.py b/containers/fauxauth/fauxauth.py new file mode 100755 index 000000000..6878890c1 --- /dev/null +++ b/containers/fauxauth/fauxauth.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 +import argparse, subprocess + +def launch_server(address, port, certdir): + cmd = [ + "/usr/libexec/osbuild-composer/osbuild-mock-openid-provider", + "-a", str.join(":", [address, port]), + "-rsaPubPem", f"{certdir}/client-crt.pem", + "-rsaPem", f"{certdir}/client-key.pem", + ] + print("Running oath server") + return subprocess.run( + cmd, + cwd="/usr/libexec/osbuild-composer", + stdin=subprocess.DEVNULL, + stderr=subprocess.STDOUT, + ) + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("-a", "--address", help="IP address for the server", type=str, default="localhost") + parser.add_argument("-p", "--port", help="Port for the server", type=str, default="8080") + parser.add_argument("-c", "--certdir", help="The location dir of the certs", type=str, default="/etc/osbuild-composer") + args = parser.parse_args() + launch_server(args.address, args.port, args.certdir) + +if __name__ == "__main__": + main() diff --git a/distribution/Dockerfile-fauxauth b/distribution/Dockerfile-fauxauth new file mode 100644 index 000000000..24337a6c9 --- /dev/null +++ b/distribution/Dockerfile-fauxauth @@ -0,0 +1,15 @@ +FROM registry.access.redhat.com/ubi8/go-toolset:latest AS builder +COPY . . +ENV GOFLAGS=-mod=vendor +RUN go install ./cmd/osbuild-mock-openid-provider/ + +FROM registry.access.redhat.com/ubi8/ubi-minimal:latest +RUN microdnf install python3 +RUN mkdir -p "/usr/libexec/osbuild-composer" +RUN mkdir -p "/etc/osbuild-composer/" + +COPY --from=builder /opt/app-root/src/go/bin/osbuild-mock-openid-provider /usr/libexec/osbuild-composer/ +COPY ./containers/fauxauth/fauxauth.py /opt/fauxauth.py + +EXPOSE 8080 8080 +ENTRYPOINT "/opt/fauxauth.py" diff --git a/distribution/Dockerfile-worker b/distribution/Dockerfile-worker index 663b5f87b..0b0036101 100644 --- a/distribution/Dockerfile-worker +++ b/distribution/Dockerfile-worker @@ -4,6 +4,7 @@ ENV GOFLAGS=-mod=vendor RUN go install ./cmd/osbuild-worker FROM fedora +RUN dnf update -y && dnf upgrade -y RUN dnf install -y qemu-img osbuild osbuild-ostree RUN mkdir -p "/usr/libexec/osbuild-composer" RUN mkdir -p "/etc/osbuild-composer/"