Merge "Build utility image for using osc"

This commit is contained in:
Zuul 2020-03-16 21:09:01 +00:00 committed by Gerrit Code Review
commit 8c4ecbe35d
3 changed files with 117 additions and 0 deletions

View File

@ -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

26
Dockerfile Normal file
View File

@ -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"]

33
examples/openstack.sh Executable file
View File

@ -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 $@