summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-03-16 21:09:01 +0000
committerGerrit Code Review <review@openstack.org>2020-03-16 21:09:01 +0000
commit8c4ecbe35dbf95ab91e693caff85132d9b881044 (patch)
tree6647ca43db12a66051f971f69d18659cc8241bf7
parentbf2beb9e868175adb775ec253ef4a929ac557975 (diff)
parent8c47b67e8337c05a6e14d717452a4438aa17167f (diff)
downloadpython-openstackclient-8c4ecbe35dbf95ab91e693caff85132d9b881044.tar.gz
Merge "Build utility image for using osc"
-rw-r--r--.zuul.yaml58
-rw-r--r--Dockerfile26
-rwxr-xr-xexamples/openstack.sh33
3 files changed, 117 insertions, 0 deletions
diff --git a/.zuul.yaml b/.zuul.yaml
index 15f719c3..26ca146f 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -152,6 +152,59 @@
tox_envlist: functional
tox_install_siblings: true
+- secret:
+ name: osc-dockerhub
+ data:
+ username: osclientzuul
+ password: !encrypted/pkcs1-oaep
+ - qQ0O7bXUWBhkygjSKcPHogWvR2ax67EgHZcYd27zgg6KvpdK9GsNTRTIeD5yeBb9Dzr/K
+ RcAf+0pQT3fRIsKyEx2odHNevGpePjmUZENd5vHTIvTuZWq+X5ehpXgkEYvw3jwYJg78F
+ ids1igEaHsE86OMHjWauyc1QUzYfwkf+ziK7TIOZ6RpVRHgq5Bf9S+Hz/QnVdxOLaIlO0
+ VC/bchKX/36vOQKd20KkNhBQAnUlDBQWMnZocvZKZYtkDs2w2vqlnUPRlzEppBWm5Yae6
+ 5acyIHEEAIbECd/wC/OT8YndoeOUiqOZY0uSWtv4JgEKl6AexP+54VxPrsz7LayRMDJ4B
+ jVCZK6y1sss9mF6mNXvZipPEVgklGcGM76GfGdqTeuQ3i8CqaKmCTBo1IKlEmcslXR/5T
+ vjibWzvNHPpFcpYEEM6GLGg2K6nja1MCE1s/L76pN3FtxCZHdl8rZXU+mJH37uQk9zvdR
+ Y6qtWJ+3o5sbgYfjgdp/nPs1xXMUvuG83qykuzYgtOYvlEw51eqwd2SPXd3op/KApAhKR
+ Zlu8fBUkm/FyXToOpCl0s/eR4w1d+Spv0A+UhrS5pmV18+NlpNs0Krj5wS9KWMUIec0ae
+ opgPkQrFfj/zD45rrIUJRzT+alZlZeK+WQfeNOXt2i6MLtOPesHMukTc6ksXtA=
+
+- job:
+ name: osc-build-image
+ parent: opendev-build-docker-image
+ description: Build Docker images.
+ allowed-projects: openstack/python-openstackclient
+ requires:
+ - python-builder-container-image
+ - python-base-container-image
+ provides: osc-container-image
+ vars: &osc_image_vars
+ docker_images:
+ - context: .
+ repository: osclient/python-openstackclient
+
+- job:
+ name: osc-upload-image
+ parent: opendev-upload-docker-image
+ description: Build Docker images and upload to Docker Hub.
+ allowed-projects: openstack/python-openstackclient
+ requires:
+ - python-builder-container-image
+ - python-base-container-image
+ provides: osc-container-image
+ vars: *osc_image_vars
+ secrets: &osc_image_secrets
+ - name: docker_credentials
+ secret: osc-dockerhub
+ pass-to-parent: true
+
+- job:
+ name: osc-promote-image
+ parent: opendev-promote-docker-image
+ allowed-projects: openstack/python-openstackclient
+ description: Promote previously uploaded Docker images.
+ vars: *osc_image_vars
+ secrets: *osc_image_secrets
+
- project-template:
name: osc-tox-unit-tips
check:
@@ -174,6 +227,7 @@
- lib-forward-testing-python3
check:
jobs:
+ - osc-build-image
- osc-functional-devstack
# - osc-functional-devstack-n-net:
# voting: false
@@ -187,4 +241,8 @@
branches: ^(?!stable)
gate:
jobs:
+ - osc-upload-image
- osc-functional-devstack
+ promote:
+ jobs:
+ - osc-promote-image
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 00000000..9ff8084c
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,26 @@
+# Copyright (c) 2020 Red Hat, Inc.
+#
+# Licensed 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.
+
+FROM docker.io/opendevorg/python-builder as builder
+
+COPY . /tmp/src
+RUN assemble
+
+FROM docker.io/opendevorg/python-base
+
+COPY --from=builder /output/ /output
+RUN /output/install-from-bindep
+
+CMD ["/usr/local/bin/openstack"]
diff --git a/examples/openstack.sh b/examples/openstack.sh
new file mode 100755
index 00000000..aa35acfe
--- /dev/null
+++ b/examples/openstack.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+# Copyright (c) 2020 Red Hat, Inc.
+#
+# Licensed 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.
+
+# This is an example script that can be installed somewhere, such as
+# /usr/local/bin/openstack, that will allow using python-openstackclient
+# via the container image instead of via a direct installation. It
+# bind-mounts in clouds.yaml files, so it should behave like a directly
+# installed osc.
+
+if type podman 2>/dev/null ; then
+ RUNTIME=podman
+else
+ RUNTIME=docker
+fi
+
+exec $RUNTIME run -it --rm \
+ -v/etc/openstack:/etc/openstack \
+ -v$HOME/.config/openstack:/root/.config/openstack \
+ osclient/openstackclient \
+ openstack $@