Retire openstack-ansible-repo_build role
As repo_build role has been succesfully replaced with python_venv_build role, we have no need in it's futher maintaining and releasing. Change-Id: Iaf1d6da8192afbbd18c64e2b58d54fa5804fe43c
This commit is contained in:
parent
1bf48763f2
commit
b93b125692
|
@ -1,69 +0,0 @@
|
|||
# Add patterns in here to exclude files created by tools integrated with this
|
||||
# repository, such as test frameworks from the project's recommended workflow,
|
||||
# rendered documentation and package builds.
|
||||
#
|
||||
# Don't add patterns to exclude files created by preferred personal tools
|
||||
# (editors, IDEs, your operating system itself even). These should instead be
|
||||
# maintained outside the repository, for example in a ~/.gitignore file added
|
||||
# with:
|
||||
#
|
||||
# git config --global core.excludesfile '~/.gitignore'
|
||||
|
||||
# Compiled source #
|
||||
###################
|
||||
*.com
|
||||
*.class
|
||||
*.dll
|
||||
*.exe
|
||||
*.o
|
||||
*.so
|
||||
*.pyc
|
||||
build/
|
||||
dist/
|
||||
doc/build/
|
||||
|
||||
# Packages #
|
||||
############
|
||||
# it's better to unpack these files and commit the raw source
|
||||
# git has its own built in compression methods
|
||||
*.7z
|
||||
*.dmg
|
||||
*.gz
|
||||
*.iso
|
||||
*.jar
|
||||
*.rar
|
||||
*.tar
|
||||
*.zip
|
||||
|
||||
# Logs and databases #
|
||||
######################
|
||||
*.log
|
||||
*.sql
|
||||
*.sqlite
|
||||
logs/*
|
||||
|
||||
# OS generated files #
|
||||
######################
|
||||
._*
|
||||
.tox
|
||||
*.egg-info
|
||||
.eggs
|
||||
|
||||
# Generated by pbr while building docs
|
||||
######################################
|
||||
AUTHORS
|
||||
ChangeLog
|
||||
|
||||
# Files created by releasenotes build
|
||||
releasenotes/build
|
||||
|
||||
# Test temp files
|
||||
tests/common
|
||||
tests/*.retry
|
||||
|
||||
# Vagrant artifacts
|
||||
.vagrant
|
||||
|
||||
# Git clones
|
||||
openstack-ansible-ops
|
||||
previous
|
|
@ -1,81 +0,0 @@
|
|||
===================================================
|
||||
OpenStack-Ansible repo_build contributor guidelines
|
||||
===================================================
|
||||
|
||||
Filing bugs
|
||||
~~~~~~~~~~~
|
||||
|
||||
Bugs should be filed on Launchpad, not GitHub: "https://bugs.launchpad.net/openstack-ansible"
|
||||
|
||||
|
||||
When submitting a bug, or working on a bug, please ensure the following criteria are met:
|
||||
* The description clearly states or describes the original problem or root cause of the problem.
|
||||
* Include historical information on how the problem was identified.
|
||||
* Any relevant logs are included.
|
||||
* The provided information should be totally self-contained. External access to web services/sites should not be needed.
|
||||
* Steps to reproduce the problem if possible.
|
||||
|
||||
|
||||
Submitting code
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Changes to the project should be submitted for review via the Gerrit tool, following
|
||||
the workflow documented at: "http://docs.openstack.org/infra/manual/developers.html#development-workflow"
|
||||
|
||||
Pull requests submitted through GitHub will be ignored and closed without regard.
|
||||
|
||||
|
||||
Extra
|
||||
~~~~~
|
||||
|
||||
Tags:
|
||||
If it's a bug that needs fixing in a branch in addition to Master, add a '\<release\>-backport-potential' tag (eg ``juno-backport-potential``). There are predefined tags that will autocomplete.
|
||||
|
||||
Status:
|
||||
Please leave this alone, it should be New till someone triages the issue.
|
||||
|
||||
Importance:
|
||||
Should only be touched if it is a Blocker/Gating issue. If it is, please set to High, and only use Critical if you have found a bug that can take down whole infrastructures.
|
||||
|
||||
|
||||
Style guide
|
||||
~~~~~~~~~~~
|
||||
|
||||
When creating tasks and other roles for use in Ansible please create them using the YAML dictionary format.
|
||||
|
||||
Example YAML dictionary format:
|
||||
.. code-block:: yaml
|
||||
|
||||
- name: The name of the tasks
|
||||
module_name:
|
||||
thing1: "some-stuff"
|
||||
thing2: "some-other-stuff"
|
||||
tags:
|
||||
- some-tag
|
||||
- some-other-tag
|
||||
|
||||
|
||||
Example **NOT** in YAML dictionary format:
|
||||
.. code-block:: yaml
|
||||
|
||||
- name: The name of the tasks
|
||||
module_name: thing1="some-stuff" thing2="some-other-stuff"
|
||||
tags:
|
||||
- some-tag
|
||||
- some-other-tag
|
||||
|
||||
|
||||
Usage of the ">" and "|" operators should be limited to Ansible conditionals and command modules such as the ansible ``shell`` module.
|
||||
|
||||
|
||||
Issues
|
||||
~~~~~~
|
||||
|
||||
When submitting an issue, or working on an issue please ensure the following criteria are met:
|
||||
* The description clearly states or describes the original problem or root cause of the problem.
|
||||
* Include historical information on how the problem was identified.
|
||||
* Any relevant logs are included.
|
||||
* If the issue is a bug that needs fixing in a branch other than Master, add the 'backport potential' tag TO THE ISSUE (not the PR).
|
||||
* The provided information should be totally self-contained. External access to web services/sites should not be needed.
|
||||
* If the issue is needed for a hotfix release, add the 'expedite' label.
|
||||
* Steps to reproduce the problem if possible.
|
34
README.rst
34
README.rst
|
@ -1,30 +1,8 @@
|
|||
========================
|
||||
Team and repository tags
|
||||
========================
|
||||
This project is no longer maintained.
|
||||
|
||||
.. image:: https://governance.openstack.org/tc/badges/openstack-ansible-repo_build.svg
|
||||
:target: https://governance.openstack.org/tc/reference/tags/index.html
|
||||
The contents of this repository are still available in the Git source code
|
||||
management system. To see the contents of this repository before it reached its
|
||||
end of life, please check out the previous commit with "git checkout HEAD^1".
|
||||
|
||||
.. Change things from this point on
|
||||
|
||||
============================
|
||||
OpenStack-Ansible repo_build
|
||||
============================
|
||||
|
||||
Ansible role that builds a repository of Git repositories, Python
|
||||
wheels, and virtualenvs.
|
||||
|
||||
Documentation for the project can be found at:
|
||||
https://docs.openstack.org/openstack-ansible-repo_build/latest/
|
||||
|
||||
Release notes for the project can be found at:
|
||||
https://docs.openstack.org/releasenotes/openstack-ansible-repo_build/
|
||||
|
||||
The project source code repository is located at:
|
||||
https://opendev.org/openstack/openstack-ansible-repo_build/
|
||||
|
||||
The project home is at:
|
||||
https://launchpad.net/openstack-ansible
|
||||
|
||||
The project bug tracker is located at:
|
||||
https://bugs.launchpad.net/openstack-ansible/
|
||||
For any further questions, please email openstack-discuss@lists.openstack.org with
|
||||
[openstack-ansible] tag or join #openstack-ansible on Freenode.
|
||||
|
|
|
@ -1,62 +0,0 @@
|
|||
# Note:
|
||||
# This file is maintained in the openstack-ansible-tests repository.
|
||||
# https://opendev.org/openstack/openstack-ansible-tests/src/Vagrantfile
|
||||
#
|
||||
# If you need to perform any change on it, you should modify the central file,
|
||||
# then, an OpenStack CI job will propagate your changes to every OSA repository
|
||||
# since every repo uses the same Vagrantfile
|
||||
|
||||
# Verify whether required plugins are installed.
|
||||
required_plugins = [ "vagrant-disksize" ]
|
||||
required_plugins.each do |plugin|
|
||||
if not Vagrant.has_plugin?(plugin)
|
||||
raise "The vagrant plugin #{plugin} is required. Please run `vagrant plugin install #{plugin}`"
|
||||
end
|
||||
end
|
||||
|
||||
Vagrant.configure(2) do |config|
|
||||
config.vm.provider "virtualbox" do |v|
|
||||
v.memory = 6144
|
||||
v.cpus = 2
|
||||
# https://github.com/hashicorp/vagrant/issues/9524
|
||||
v.customize ["modifyvm", :id, "--audio", "none"]
|
||||
end
|
||||
|
||||
config.vm.synced_folder ".", "/vagrant", type: "rsync"
|
||||
|
||||
config.vm.provision "shell",
|
||||
privileged: false,
|
||||
inline: <<-SHELL
|
||||
cd /vagrant
|
||||
./run_tests.sh
|
||||
SHELL
|
||||
|
||||
config.vm.define "centos7" do |centos7|
|
||||
centos7.vm.box = "centos/7"
|
||||
end
|
||||
|
||||
config.vm.define "debian8" do |debian8|
|
||||
debian8.vm.box = "debian/jessie64"
|
||||
end
|
||||
|
||||
config.vm.define "debian9" do |debian9|
|
||||
debian9.vm.box = "debian/stretch64"
|
||||
end
|
||||
|
||||
config.vm.define "gentoo" do |gentoo|
|
||||
gentoo.vm.box = "generic/gentoo"
|
||||
end
|
||||
|
||||
config.vm.define "opensuse150" do |leap150|
|
||||
leap150.vm.box = "opensuse/openSUSE-15.0-x86_64"
|
||||
end
|
||||
|
||||
config.vm.define "opensuse151" do |leap151|
|
||||
leap151.vm.box = "opensuse/openSUSE-15.1-x86_64"
|
||||
end
|
||||
|
||||
config.vm.define "ubuntu1804" do |bionic|
|
||||
bionic.disksize.size = "40GB"
|
||||
bionic.vm.box = "ubuntu/bionic64"
|
||||
end
|
||||
end
|
55
bindep.txt
55
bindep.txt
|
@ -1,55 +0,0 @@
|
|||
# This file facilitates OpenStack-CI package installation
|
||||
# before the execution of any tests.
|
||||
#
|
||||
# See the following for details:
|
||||
# - https://docs.openstack.org/infra/bindep/
|
||||
# - https://opendev.org/openstack-infra/bindep
|
||||
#
|
||||
# Even if the role does not make use of this facility, it
|
||||
# is better to have this file empty, otherwise OpenStack-CI
|
||||
# will fall back to installing its default packages which
|
||||
# will potentially be detrimental to the tests executed.
|
||||
#
|
||||
# Note:
|
||||
# This file is maintained in the openstack-ansible-tests repository.
|
||||
# https://opendev.org/openstack/openstack-ansible-tests/src/bindep.txt
|
||||
# If you need to remove or add extra dependencies, you should modify
|
||||
# the central file instead and once your change is accepted then update
|
||||
# this file as well. The purpose of this file is to ensure that Python and
|
||||
# Ansible have all their necessary binary requirements on the test host before
|
||||
# tox executes. Any binary requirements needed by services/roles should be
|
||||
# installed by those roles in their applicable package install tasks, not through
|
||||
# using this file.
|
||||
#
|
||||
|
||||
# The gcc compiler
|
||||
gcc
|
||||
|
||||
# Base requirements for Ubuntu
|
||||
git-core [platform:dpkg platform:suse]
|
||||
libssl-dev [platform:dpkg]
|
||||
libffi-dev [platform:dpkg]
|
||||
python2.7 [platform:dpkg]
|
||||
python-apt [platform:dpkg]
|
||||
python-dev [platform:dpkg]
|
||||
python3 [platform:dpkg]
|
||||
python3-apt [platform:dpkg]
|
||||
python3-dev [platform:dpkg]
|
||||
|
||||
# Base requirements for RPM distros
|
||||
gcc-c++ [platform:rpm]
|
||||
git [platform:rpm !platform:suse]
|
||||
libffi-devel [platform:rpm]
|
||||
openssl-devel [platform:rpm]
|
||||
python-devel [platform:rpm]
|
||||
python2-dnf [platform:fedora]
|
||||
|
||||
# Base requirements for Gentoo
|
||||
git [platform:gentoo]
|
||||
|
||||
# For SELinux
|
||||
libselinux-python [platform:redhat]
|
||||
libsemanage-python [platform:redhat]
|
||||
|
||||
# Required for compressing collected log files in CI
|
||||
gzip
|
|
@ -1,93 +0,0 @@
|
|||
---
|
||||
# Copyright 2015, Rackspace US, 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.
|
||||
|
||||
# Additional options passed to pip during package installation.
|
||||
# A common use is with the '--cert' argument for internally signed
|
||||
# SSL certificates.
|
||||
pip_install_options: ""
|
||||
|
||||
# Set the package install state for distribution and pip packages
|
||||
# Options are 'present' and 'latest'
|
||||
repo_build_package_state: "latest"
|
||||
repo_build_pip_package_state: "latest"
|
||||
|
||||
# Use OpenStack's upper-constraints
|
||||
repo_build_use_upper_constraints: true
|
||||
|
||||
# A list of overrides to apply to OpenStack's upper constraints
|
||||
# Use these with caution as you're implementing a change to the
|
||||
# package set which OpenStack has tested its releases with!
|
||||
repo_build_upper_constraints_overrides: []
|
||||
|
||||
repo_build_service_user_name: "nginx"
|
||||
repo_build_service_group_name: "www-data"
|
||||
repo_build_base_path: "/var/www/repo"
|
||||
|
||||
# NOTE(hwoarang): ansible_distribution may return a string with spaces
|
||||
# such as "openSUSE Leap" so we need to replace the space with underscore
|
||||
# in order to create a more sensible repo name for the distro.
|
||||
repo_build_os_distro_version: "{{ (ansible_distribution | lower) | replace(' ', '_') }}-{{ ansible_distribution_version.split('.')[:2] | join('.') }}-{{ ansible_architecture | lower }}"
|
||||
|
||||
repo_build_release_tag: "untagged"
|
||||
repo_build_global_links_path: "{{ repo_build_base_path }}/links/{{ repo_build_os_distro_version }}"
|
||||
repo_build_release_version_path: "os-releases/{{ repo_build_release_tag }}"
|
||||
repo_build_release_path: "{{ repo_build_base_path }}/{{ repo_build_release_version_path }}/{{ repo_build_os_distro_version }}"
|
||||
repo_build_dir: "/tmp/openstack-builder"
|
||||
repo_build_output: "/tmp/openstack-wheel-output"
|
||||
repo_build_git_dir: "{{ repo_build_base_path }}/openstackgit"
|
||||
repo_build_pool_dir: "{{ repo_build_base_path }}/pools/{{ repo_build_os_distro_version }}"
|
||||
|
||||
# Toggle whether git repositories should be cloned selectively or not
|
||||
repo_build_git_selective: "{{ repo_build_wheel_selective | bool }}"
|
||||
|
||||
# Toggle whether a git clone should be forced
|
||||
repo_build_git_reclone: no
|
||||
|
||||
# Toggle the git clone depth
|
||||
repo_build_git_depth: 1
|
||||
|
||||
# Toggle whether wheels should be built selectively or not
|
||||
repo_build_wheel_selective: yes
|
||||
|
||||
# Toggle whether a wheel rebuild should be forced
|
||||
repo_build_wheel_rebuild: no
|
||||
|
||||
# Optionally set this to change the default index from pypi to an alternative
|
||||
repo_build_pip_default_index: "https://pypi.python.org/simple"
|
||||
|
||||
# Optionally set this to a list of extra indexes to be used when building wheels
|
||||
#repo_build_pip_extra_indexes:
|
||||
# - "https://pypi.python.org/simple"
|
||||
|
||||
# Optionally set this to a list of packages which must always have the wheel
|
||||
# compiled from source. This will ensure that a pre-compiled wheel is not
|
||||
# downloaded from any of the indexes.
|
||||
#repo_build_pip_no_binary:
|
||||
# - libvirt-python
|
||||
|
||||
repo_build_timeout: 120
|
||||
|
||||
# Path to the repo build venv binaries
|
||||
repo_build_bin: "/openstack/venvs/repo-build-{{ repo_build_release_tag }}/bin"
|
||||
|
||||
# Python packages to install into the repo build venv
|
||||
repo_pip_packages:
|
||||
- cython
|
||||
- pbr
|
||||
- requests
|
||||
- urllib3
|
||||
- wheel
|
||||
|
||||
repo_build_store_pip_sources: false
|
195
doc/Makefile
195
doc/Makefile
|
@ -1,195 +0,0 @@
|
|||
# Makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXBUILD = sphinx-build
|
||||
PAPER =
|
||||
BUILDDIR = build
|
||||
|
||||
# User-friendly check for sphinx-build
|
||||
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
endif
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
|
||||
|
||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html to make standalone HTML files"
|
||||
@echo " dirhtml to make HTML files named index.html in directories"
|
||||
@echo " singlehtml to make a single large HTML file"
|
||||
@echo " pickle to make pickle files"
|
||||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " applehelp to make an Apple Help Book"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
||||
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
|
||||
@echo " text to make text files"
|
||||
@echo " man to make manual pages"
|
||||
@echo " texinfo to make Texinfo files"
|
||||
@echo " info to make Texinfo files and run them through makeinfo"
|
||||
@echo " gettext to make PO message catalogs"
|
||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
||||
@echo " xml to make Docutils-native XML files"
|
||||
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
@echo " coverage to run coverage check of the documentation (if enabled)"
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)/*
|
||||
|
||||
html:
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||
|
||||
dirhtml:
|
||||
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
||||
|
||||
singlehtml:
|
||||
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
||||
|
||||
pickle:
|
||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
||||
@echo
|
||||
@echo "Build finished; now you can process the pickle files."
|
||||
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
|
||||
htmlhelp:
|
||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
||||
|
||||
qthelp:
|
||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/openstack-ansible-repo_build.qhcp"
|
||||
@echo "To view the help file:"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/openstack-ansible-repo_build.qhc"
|
||||
|
||||
applehelp:
|
||||
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
|
||||
@echo
|
||||
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
|
||||
@echo "N.B. You won't be able to view it unless you put it in" \
|
||||
"~/Library/Documentation/Help or install it in your application" \
|
||||
"bundle."
|
||||
|
||||
devhelp:
|
||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
||||
@echo
|
||||
@echo "Build finished."
|
||||
@echo "To view the help file:"
|
||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/openstack-ansible-repo_build"
|
||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/openstack-ansible-repo_build"
|
||||
@echo "# devhelp"
|
||||
|
||||
epub:
|
||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||
@echo
|
||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||
"(use \`make latexpdf' here to do that automatically)."
|
||||
|
||||
latexpdf:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through pdflatex..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
latexpdfja:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through platex and dvipdfmx..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
text:
|
||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
||||
@echo
|
||||
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
||||
|
||||
man:
|
||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
||||
@echo
|
||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
||||
|
||||
texinfo:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo
|
||||
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
||||
@echo "Run \`make' in that directory to run these through makeinfo" \
|
||||
"(use \`make info' here to do that automatically)."
|
||||
|
||||
info:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
make -C $(BUILDDIR)/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
||||
|
||||
gettext:
|
||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
||||
@echo
|
||||
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
||||
|
||||
changes:
|
||||
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
||||
@echo
|
||||
@echo "The overview file is in $(BUILDDIR)/changes."
|
||||
|
||||
linkcheck:
|
||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
||||
@echo
|
||||
@echo "Link check complete; look for any errors in the above output " \
|
||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
||||
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
|
||||
coverage:
|
||||
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
|
||||
@echo "Testing of coverage in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/coverage/python.txt."
|
||||
|
||||
xml:
|
||||
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
||||
@echo
|
||||
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
|
||||
|
||||
pseudoxml:
|
||||
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
|
||||
@echo
|
||||
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
|
||||
|
||||
livehtml: html
|
||||
sphinx-autobuild -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
|
@ -1,17 +0,0 @@
|
|||
# The order of packages is significant, because pip processes them in the order
|
||||
# of appearance. Changing the order has an impact on the overall integration
|
||||
# process, which may cause wedges in the gate later.
|
||||
|
||||
# WARNING:
|
||||
# This file is maintained in the openstack-ansible-tests repository.
|
||||
# https://opendev.org/openstack/openstack-ansible-tests/src/branch/master/sync/doc/requirements.txt
|
||||
# If you need to modify this file, update the one in the
|
||||
# openstack-ansible-tests repository. Once it merges there, the changes will
|
||||
# automatically be proposed to all the repositories which use it.
|
||||
|
||||
sphinx>=1.8.0,<2.0.0;python_version=='2.7' # BSD
|
||||
sphinx>=1.8.0,!=2.1.0;python_version>='3.4' # BSD
|
||||
sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD
|
||||
openstackdocstheme>=1.20.0 # Apache-2.0
|
||||
reno>=2.5.0 # Apache-2.0
|
||||
doc8>=0.6.0 # Apache-2.0
|
|
@ -1,312 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
# 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 file is execfile()d with the current directory set to its
|
||||
# containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import pbr.version
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
# sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
# needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
'openstackdocstheme',
|
||||
'sphinx.ext.autodoc',
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix(es) of source filenames.
|
||||
# You can specify multiple suffix as a list of string:
|
||||
# source_suffix = ['.rst', '.md']
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
# source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
author = 'OpenStack-Ansible Contributors'
|
||||
category = 'Miscellaneous'
|
||||
copyright = '2014-2016, OpenStack-Ansible Contributors'
|
||||
description = 'OpenStack-Ansible deploys OpenStack environments using Ansible.'
|
||||
project = 'OpenStack-Ansible'
|
||||
role_name = 'repo_build'
|
||||
target_name = 'openstack-ansible-' + role_name
|
||||
title = 'OpenStack-Ansible Documentation: ' + role_name + 'role'
|
||||
|
||||
# The link to the browsable source code (for the left hand menu)
|
||||
oslosphinx_cgit_link = (
|
||||
"https://git.openstack.org/cgit/openstack/{}".format(target_name)
|
||||
)
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version_info = pbr.version.VersionInfo(target_name)
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = version_info.version_string_with_vcs()
|
||||
# The short X.Y version.
|
||||
version = version_info.canonical_version_string()
|
||||
|
||||
# openstackdocstheme options
|
||||
repository_name = 'openstack/' + target_name
|
||||
bug_project = project.lower()
|
||||
bug_tag = ''
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#
|
||||
# This is also used if you do content translation via gettext catalogs.
|
||||
# Usually you set "language" from the command line for these cases.
|
||||
language = None
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
# today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
# today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = []
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all
|
||||
# documents.
|
||||
# default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
# add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
# add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
# show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
# modindex_common_prefix = []
|
||||
|
||||
# If true, keep warnings as "system message" paragraphs in the built documents.
|
||||
# keep_warnings = False
|
||||
|
||||
# If true, `todo` and `todoList` produce output, else they produce nothing.
|
||||
todo_include_todos = False
|
||||
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'openstackdocs'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
# html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
# html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
# html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
# html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
# html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
# html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
|
||||
# Add any extra paths that contain custom files (such as robots.txt or
|
||||
# .htaccess) here, relative to this directory. These files are copied
|
||||
# directly to the root of the documentation.
|
||||
# html_extra_path = []
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
html_last_updated_fmt = '%Y-%m-%d %H:%M'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
# html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
# html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
# html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
# html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
# html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
# html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
# html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
# html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
# html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
# html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
# html_file_suffix = None
|
||||
|
||||
# Language to be used for generating the HTML full-text search index.
|
||||
# Sphinx supports the following languages:
|
||||
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja'
|
||||
# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr'
|
||||
# html_search_language = 'en'
|
||||
|
||||
# A dictionary with options for the search language support, empty by default.
|
||||
# Now only 'ja' uses this config value
|
||||
# html_search_options = {'type': 'default'}
|
||||
|
||||
# The name of a javascript file (relative to the configuration directory) that
|
||||
# implements a search results scorer. If empty, the default will be used.
|
||||
# html_search_scorer = 'scorer.js'
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = target_name + '-docs'
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
# 'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
# 'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
# 'preamble': '',
|
||||
|
||||
# Latex figure (float) alignment
|
||||
# 'figure_align': 'htbp',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, target_name + '.tex',
|
||||
title, author, 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
# latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
# latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
# latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
# latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
# latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
# latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output ---------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
(master_doc, target_name,
|
||||
title, [author], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
# man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output -------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
(master_doc, target_name,
|
||||
title, author, project,
|
||||
description, category),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
# texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
# texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
# texinfo_show_urls = 'footnote'
|
||||
|
||||
# If true, do not generate a @detailmenu in the "Top" node's menu.
|
||||
# texinfo_no_detailmenu = False
|
|
@ -1,27 +0,0 @@
|
|||
============================
|
||||
OpenStack-Ansible repo_build
|
||||
============================
|
||||
|
||||
Ansible role that builds a repository of Git repositories, Python
|
||||
wheels, and virtualenvs.
|
||||
|
||||
To clone or view the source code for this repository, visit the role repository
|
||||
for `repo_build <https://github.com/openstack/openstack-ansible-repo_build>`_.
|
||||
|
||||
Default variables
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. literalinclude:: ../../defaults/main.yml
|
||||
:language: yaml
|
||||
:start-after: under the License.
|
||||
|
||||
Required variables
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
None.
|
||||
|
||||
Example playbook
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
.. literalinclude:: ../../examples/playbook.yml
|
||||
:language: yaml
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
- name: Set up repo builds
|
||||
hosts: repo_all
|
||||
user: root
|
||||
roles:
|
||||
- { role: "repo_build", tags: [ "repo-build" ] }
|
|
@ -1,33 +0,0 @@
|
|||
export VIRTUAL_ENV=$(pwd)
|
||||
export ANSIBLE_HOST_KEY_CHECKING=False
|
||||
export ANSIBLE_SSH_CONTROL_PATH=/tmp/%%h-%%r
|
||||
|
||||
# TODO (odyssey4me) These are only here as they are non-standard folder
|
||||
# names for Ansible 1.9.x. We are using the standard folder names for
|
||||
# Ansible v2.x. We can remove this when we move to Ansible 2.x.
|
||||
export ANSIBLE_ACTION_PLUGINS=${HOME}/.ansible/plugins/action
|
||||
export ANSIBLE_CALLBACK_PLUGINS=${HOME}/.ansible/plugins/callback
|
||||
export ANSIBLE_FILTER_PLUGINS=${HOME}/.ansible/plugins/filter
|
||||
export ANSIBLE_LOOKUP_PLUGINS=${HOME}/.ansible/plugins/lookup
|
||||
|
||||
# This is required as the default is the current path or a path specified
|
||||
# in ansible.cfg
|
||||
export ANSIBLE_LIBRARY=${HOME}/.ansible/plugins/library
|
||||
|
||||
# This is required as the default is '/etc/ansible/roles' or a path
|
||||
# specified in ansible.cfg
|
||||
export ANSIBLE_ROLES_PATH=${HOME}/.ansible/roles:$(pwd)/..
|
||||
|
||||
export ANSIBLE_SSH_ARGS="-o ControlMaster=no \
|
||||
-o UserKnownHostsFile=/dev/null \
|
||||
-o StrictHostKeyChecking=no \
|
||||
-o ServerAliveInterval=64 \
|
||||
-o ServerAliveCountMax=1024 \
|
||||
-o Compression=no \
|
||||
-o TCPKeepAlive=yes \
|
||||
-o VerifyHostKeyDNS=no \
|
||||
-o ForwardX11=no \
|
||||
-o ForwardAgent=yes"
|
||||
|
||||
echo "Run manual functional tests by executing the following:"
|
||||
echo "# ./.tox/functional/bin/ansible-playbook -i tests/inventory tests/test.yml"
|
|
@ -1,44 +0,0 @@
|
|||
---
|
||||
# Copyright 2015, Rackspace US, 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.
|
||||
|
||||
galaxy_info:
|
||||
author: rcbops
|
||||
description: Install package repo build
|
||||
company: Rackspace
|
||||
license: Apache2
|
||||
min_ansible_version: 2.2
|
||||
platforms:
|
||||
- name: Debian
|
||||
versions:
|
||||
- stretch
|
||||
- name: Ubuntu
|
||||
versions:
|
||||
- xenial
|
||||
- bionic
|
||||
- name: EL
|
||||
versions:
|
||||
- 7
|
||||
- name: opensuse
|
||||
versions:
|
||||
- all
|
||||
categories:
|
||||
- cloud
|
||||
- python
|
||||
- development
|
||||
- openstack
|
||||
dependencies:
|
||||
- role: apt_package_pinning
|
||||
when:
|
||||
- ansible_pkg_mgr == 'apt'
|
|
@ -1,20 +0,0 @@
|
|||
---
|
||||
# Copyright 2017, Rackspace US, 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.
|
||||
#
|
||||
# (c) 2017, Jean-Philippe Evrard <jean-philippe.evrard@rackspace.co.uk>
|
||||
|
||||
maturity_info:
|
||||
status: complete
|
||||
created_during: mitaka
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- The filename of the apt source for the ubuntu
|
||||
cloud archive can now be defined with the
|
||||
variable ``uca_apt_source_list_filename``.
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- The option ``repo_venv_default_pip_packages`` has been added which will
|
||||
allow deployers to insert any packages into a service venv as needed.
|
||||
The option expects a list of strings which are valid python package names as
|
||||
found on PYPI.
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
fixes:
|
||||
- The pip_install_options variable is now honored during repo
|
||||
building. This variable allows deployers to specify trusted
|
||||
CA certificates by setting the variable to "--cert
|
||||
/etc/ssl/certs/ca-certificates.crt"
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- The repo build process is now able to make use of a pre-staged git cache.
|
||||
If the ``/var/www/repo/openstackgit`` folder on the repo server is found
|
||||
to contain existing git clones then they will be updated if they do not
|
||||
already contain the required SHA for the build.
|
|
@ -1,22 +0,0 @@
|
|||
---
|
||||
upgrade:
|
||||
- The entire repo build process is now idempotent. From now on when
|
||||
the repo build is re-run, it will only fetch updated git
|
||||
repositories and rebuild the wheels/venvs if the requirements
|
||||
have changed, or a new release is being deployed.
|
||||
- The git clone part of the repo build process now only happens when
|
||||
the requirements change. A git reclone can be forced by using the
|
||||
boolean variable ``repo_build_git_reclone``.
|
||||
- The python wheel build process now only happens when requirements
|
||||
change. A wheel rebuild may be forced by using the boolean variable
|
||||
``repo_build_wheel_rebuild``.
|
||||
- The python venv build process now only happens when requirements
|
||||
change. A venv rebuild may be forced by using the boolean variable
|
||||
``repo_build_venv_rebuild``.
|
||||
- The repo build process now only has the following tags, providing
|
||||
a clear path for each deliverable. The tag ``repo-build-install``
|
||||
completes the installation of required packages. The tag
|
||||
``repo-build-wheels`` completes the wheel build process. The tag
|
||||
``repo-build-venvs`` completes the venv build process. Finally, the
|
||||
tag ``repo-build-index`` completes the manifest preparation and
|
||||
indexing of the os-releases and links folders.
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- The repo build process is now able to support building and synchronizing
|
||||
artifacts for multiple CPU architectures. Build artifacts are now tagged
|
||||
with the appropriate CPU architecture by default, and synchronization of
|
||||
build artifacts from secondary, architecture-specific repo servers back
|
||||
to the primary repo server is supported.
|
|
@ -1,9 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- The repo server file system structure has been updated to
|
||||
allow for multiple Operating systems running multiple
|
||||
architectures to be run at the same time and served from
|
||||
a single server without impacting pools, venvs, wheel
|
||||
archives, and manifests. The new structure follows the
|
||||
following pattern `$RELEASE/$OS_TYPE-$ARCH` and has been
|
||||
applied to *os-releases*, *venvs*, and *pools*.
|
|
@ -1,13 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- The repo_build role now supports the ability to configure whether
|
||||
apt/yum tasks install the latest available package, or just ensure
|
||||
that the package is present. The default action is to ensure that
|
||||
the latest package is present. The action taken may be changed to
|
||||
only ensure that the package is present by setting
|
||||
``repo_build_package_state`` to ``present``.
|
||||
upgrade:
|
||||
- The repo_build role always checks whether the latest package is
|
||||
installed when executed. If a deployer wishes to change the check to
|
||||
only validate the presence of the package, the option
|
||||
``repo_build_package_state`` should be set to ``present``.
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
deprecations:
|
||||
- The variable ``repo_build_pip_extra_index`` has been removed.
|
||||
The replacement list variable ``repo_build_pip_extra_indexes``
|
||||
should be used instead.
|
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- The repo build process now has the ability to store the pip
|
||||
sources within the build archive. This ability is useful when
|
||||
deploying environments that are "multi-architecture",
|
||||
"multi-distro", or "multi-interpreter" where specific pre-build
|
||||
wheels may not be enough to support all of the deployment.
|
||||
To enable the ability to store the python source code within a
|
||||
given release, set the new option ``repo_build_store_pip_sources``
|
||||
to ``true``.
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
other:
|
||||
- From now on, external repo management (in use for
|
||||
RDO/UCA for example) will be done inside the
|
||||
pip-install role, not in the repo_build role.
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
upgrade:
|
||||
- The ``repo_build_apt_packages`` variable has been renamed.
|
||||
``repo_build_distro_packages`` should be used instead to
|
||||
override packages required to build Python wheels and venvs.
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
fixes:
|
||||
- The ``repo_build`` role now correctly applies OpenStack requirements
|
||||
upper-constraints when building Python wheels. This resolves
|
||||
https://bugs.launchpad.net/openstack-ansible/+bug/1605846
|
|
@ -1,4 +0,0 @@
|
|||
---
|
||||
upgrade:
|
||||
- The ``repo_build`` role now makes use of Ubuntu Cloud Archive by default.
|
||||
This can be disabled by setting ``repo_build_uca_enable`` to ``False``.
|
|
@ -1,21 +0,0 @@
|
|||
---
|
||||
deprecations:
|
||||
- |
|
||||
The repo build process no longer builds packaged venvs. Instead, the venvs
|
||||
are created on the target hosts as the install process for each service
|
||||
needs to. This opens up the opportunity for roles to be capable of creating
|
||||
multiple venvs, and for any role to create venvs - neither of these options
|
||||
were possible in previous releases.
|
||||
|
||||
The following variables therefore have been removed.
|
||||
|
||||
* ``repo_build_venv_selective``
|
||||
* ``repo_build_venv_rebuild``
|
||||
* ``repo_build_venv_timeout``
|
||||
* ``repo_build_concurrency``
|
||||
* ``repo_build_venv_build_dir``
|
||||
* ``repo_build_venv_dir``
|
||||
* ``repo_build_venv_pip_install_options``
|
||||
* ``repo_build_venv_command_options``
|
||||
* ``repo_venv_default_pip_packages``
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- The repo build process now selectively clones git repositories
|
||||
based on whether each OpenStack service group has any hosts in
|
||||
it. If there are no hosts in the group, the git repo for the
|
||||
service will not be cloned. This behaviour can be optionally
|
||||
changed to force all git repositories to be cloned by setting
|
||||
``repo_build_git_selective`` to ``no``.
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- The repo build process now selectively builds venvs based on
|
||||
whether each OpenStack service group has any hosts in it. If
|
||||
there are no hosts in the group, the venv will not be built.
|
||||
This behaviour can be optionally changed to force all venvs
|
||||
to be built by setting ``repo_build_venv_selective`` to
|
||||
``yes``.
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- The repo build process now selectively builds python packages
|
||||
based on whether each OpenStack service group has any hosts in
|
||||
it. If there are no hosts in the group, the list of python
|
||||
packages for the service will not be built. This behaviour can
|
||||
be optionally changed to force all python packages to be built
|
||||
by setting ``repo_build_wheel_selective`` to ``no``.
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
fixes:
|
||||
- The repo_build play now correctly evaluates environment
|
||||
variables configured in /etc/environment. This enables
|
||||
deployments in an environment with http proxies.
|
|
@ -1,9 +0,0 @@
|
|||
---
|
||||
features:
|
||||
- The ``repo_build`` role now provides the ability to override the
|
||||
upper-constraints applied which are sourced from OpenStack and
|
||||
from the global-requirements-pins.txt file. The variable
|
||||
``repo_build_upper_constraints_overrides`` can be populated with
|
||||
a list of upper constraints. This list will take the highest
|
||||
precedence in the constraints process, with the exception of
|
||||
the pins set in the git source SHAs.
|
|
@ -1,285 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
# 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 file is execfile()d with the current directory set to its
|
||||
# containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
# sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
# needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
'openstackdocstheme',
|
||||
'reno.sphinxext',
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
# source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
author = 'OpenStack-Ansible Contributors'
|
||||
category = 'Miscellaneous'
|
||||
copyright = '2014-2016, OpenStack-Ansible Contributors'
|
||||
description = 'OpenStack-Ansible deploys OpenStack environments using Ansible.'
|
||||
project = 'OpenStack-Ansible'
|
||||
role_name = 'repo_build'
|
||||
target_name = 'openstack-ansible-' + role_name
|
||||
title = 'OpenStack-Ansible Release Notes: ' + role_name + 'role'
|
||||
|
||||
# The link to the browsable source code (for the left hand menu)
|
||||
oslosphinx_cgit_link = (
|
||||
"https://git.openstack.org/cgit/openstack/{}".format(target_name)
|
||||
)
|
||||
|
||||
# Release notes do not need a version number in the title, they
|
||||
# cover multiple releases.
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = ''
|
||||
# The short X.Y version.
|
||||
version = ''
|
||||
|
||||
# openstackdocstheme options
|
||||
repository_name = 'openstack/' + target_name
|
||||
bug_project = project.lower()
|
||||
bug_tag = ''
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
# language = None
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
# today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
# today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = []
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all
|
||||
# documents.
|
||||
# default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
# add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
# add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
# show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
# modindex_common_prefix = []
|
||||
|
||||
# If true, keep warnings as "system message" paragraphs in the built documents.
|
||||
# keep_warnings = False
|
||||
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'openstackdocs'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
# html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
# html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
# html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
# html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
# html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
# html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
|
||||
# Add any extra paths that contain custom files (such as robots.txt or
|
||||
# .htaccess) here, relative to this directory. These files are copied
|
||||
# directly to the root of the documentation.
|
||||
# html_extra_path = []
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
html_last_updated_fmt = '%Y-%m-%d %H:%M'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
# html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
# html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
# html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
# html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
# html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
# html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
# html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
# html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
# html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
# html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
# html_file_suffix = None
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = target_name + '-docs'
|
||||
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
# 'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
# 'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
# 'preamble': '',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, target_name + '.tex',
|
||||
title, author, 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
# latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
# latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
# latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
# latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
# latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
# latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output ---------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
(master_doc, target_name,
|
||||
title, [author], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
# man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output -------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
(master_doc, target_name,
|
||||
title, author, project,
|
||||
description, category),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
# texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
# texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
# texinfo_show_urls = 'footnote'
|
||||
|
||||
# If true, do not generate a @detailmenu in the "Top" node's menu.
|
||||
# texinfo_no_detailmenu = False
|
||||
|
||||
# -- Options for Internationalization output ------------------------------
|
||||
locale_dirs = ['locale/']
|
|
@ -1,16 +0,0 @@
|
|||
==========================================
|
||||
OpenStack-Ansible repo_build release notes
|
||||
==========================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
unreleased
|
||||
train
|
||||
stein
|
||||
rocky
|
||||
queens
|
||||
pike
|
||||
ocata
|
||||
newton
|
||||
mitaka
|
|
@ -1,6 +0,0 @@
|
|||
===========================
|
||||
Mitaka series release notes
|
||||
===========================
|
||||
|
||||
.. release-notes::
|
||||
:branch: origin/stable/mitaka
|
|
@ -1,6 +0,0 @@
|
|||
===================================
|
||||
Newton Series Release Notes
|
||||
===================================
|
||||
|
||||
.. release-notes::
|
||||
:branch: origin/stable/newton
|
|
@ -1,6 +0,0 @@
|
|||
===================================
|
||||
Ocata Series Release Notes
|
||||
===================================
|
||||
|
||||
.. release-notes::
|
||||
:branch: origin/stable/ocata
|
|
@ -1,6 +0,0 @@
|
|||
===================================
|
||||
Pike Series Release Notes
|
||||
===================================
|
||||
|
||||
.. release-notes::
|
||||
:branch: stable/pike
|
|
@ -1,6 +0,0 @@
|
|||
===================================
|
||||
Queens Series Release Notes
|
||||
===================================
|
||||
|
||||
.. release-notes::
|
||||
:branch: stable/queens
|
|
@ -1,6 +0,0 @@
|
|||
===================================
|
||||
Rocky Series Release Notes
|
||||
===================================
|
||||
|
||||
.. release-notes::
|
||||
:branch: stable/rocky
|
|
@ -1,6 +0,0 @@
|
|||
===================================
|
||||
Stein Series Release Notes
|
||||
===================================
|
||||
|
||||
.. release-notes::
|
||||
:branch: stable/stein
|
|
@ -1,6 +0,0 @@
|
|||
==========================
|
||||
Train Series Release Notes
|
||||
==========================
|
||||
|
||||
.. release-notes::
|
||||
:branch: stable/train
|
|
@ -1,5 +0,0 @@
|
|||
============================
|
||||
Current series release notes
|
||||
============================
|
||||
|
||||
.. release-notes::
|
|
@ -12,13 +12,9 @@ classifier =
|
|||
License :: OSI Approved :: Apache Software License
|
||||
Operating System :: POSIX :: Linux
|
||||
|
||||
[build_sphinx]
|
||||
all_files = 1
|
||||
build-dir = doc/build
|
||||
source-dir = doc/source
|
||||
|
||||
[pbr]
|
||||
warnerrors = True
|
||||
|
||||
[wheel]
|
||||
universal = 1
|
||||
universal = 1
|
|
@ -1,54 +0,0 @@
|
|||
---
|
||||
# Copyright 2015, Rackspace US, 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.
|
||||
|
||||
- name: Gather variables for each operating system
|
||||
include_vars: "{{ item }}"
|
||||
with_first_found:
|
||||
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml"
|
||||
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
|
||||
- "{{ ansible_os_family | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
|
||||
- "{{ ansible_distribution | lower }}.yml"
|
||||
- "{{ ansible_os_family | lower }}.yml"
|
||||
tags:
|
||||
- always
|
||||
|
||||
- include_tasks: repo_build_install.yml
|
||||
tags:
|
||||
- repo-build-install
|
||||
|
||||
- include_tasks: repo_build_prepare.yml
|
||||
tags:
|
||||
- always
|
||||
|
||||
- name: refresh local facts
|
||||
setup:
|
||||
filter: ansible_local
|
||||
gather_subset: "!all"
|
||||
tags:
|
||||
- always
|
||||
|
||||
- include_tasks: repo_build_wheels.yml
|
||||
when:
|
||||
- ansible_local['openstack_ansible']['repo_build']['need_wheel_build'] | bool
|
||||
tags:
|
||||
- repo-build-wheels
|
||||
|
||||
- include_tasks: repo_build_index.yml
|
||||
tags:
|
||||
- repo-build-index
|
||||
|
||||
# Synchronize all built packages back to the repo master
|
||||
- include_tasks: repo_package_sync.yml
|
||||
when: inventory_hostname != groups['repo_all'][0]
|
|
@ -1,39 +0,0 @@
|
|||
---
|
||||
# Copyright 2017, Rackspace US, 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.
|
||||
|
||||
- name: Index all os-releases/venvs files
|
||||
find:
|
||||
file_type: any
|
||||
paths:
|
||||
- "{{ repo_build_release_path }}"
|
||||
register: manifest_items
|
||||
tags:
|
||||
- repo-create-release-manifest
|
||||
|
||||
- name: Index all openstackgit directories
|
||||
find:
|
||||
file_type: directory
|
||||
paths:
|
||||
- "{{ repo_build_git_dir }}"
|
||||
register: manifest_git_items
|
||||
tags:
|
||||
- repo-create-release-manifest
|
||||
|
||||
- name: Create release manifest
|
||||
template:
|
||||
src: "manifest.in.j2"
|
||||
dest: "{{ repo_build_release_path }}/MANIFEST.in"
|
||||
tags:
|
||||
- repo-create-release-manifest
|
|
@ -1,52 +0,0 @@
|
|||
---
|
||||
# Copyright 2016, Rackspace US, 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.
|
||||
|
||||
- name: Install EPEL gpg keys
|
||||
rpm_key:
|
||||
key: "http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7"
|
||||
state: present
|
||||
when:
|
||||
- ansible_pkg_mgr in ['yum', 'dnf']
|
||||
register: _add_yum_keys
|
||||
until: _add_yum_keys is success
|
||||
retries: 5
|
||||
delay: 2
|
||||
|
||||
- name: Install the EPEL repository
|
||||
yum_repository:
|
||||
name: epel-repo_build
|
||||
baseurl: "{{ (centos_epel_mirror | default ('http://download.fedoraproject.org/pub/epel')) ~ '/' ~ ansible_distribution_major_version ~ '/' ~ ansible_architecture }}"
|
||||
description: 'Extra Packages for Enterprise Linux 7 - $basearch'
|
||||
gpgcheck: yes
|
||||
enabled: yes
|
||||
state: present
|
||||
includepkgs: 'moreutils perl-Time-Duration'
|
||||
when:
|
||||
- ansible_pkg_mgr in ['yum', 'dnf']
|
||||
register: install_epel_repo
|
||||
until: install_epel_repo is success
|
||||
retries: 5
|
||||
delay: 2
|
||||
|
||||
- name: Install packages
|
||||
package:
|
||||
name: "{{ repo_build_distro_packages }}"
|
||||
state: "{{ repo_build_package_state }}"
|
||||
update_cache: "{{ (ansible_pkg_mgr == 'apt' or ansible_pkg_mgr == 'zypper') | ternary('yes', omit) }}"
|
||||
cache_valid_time: "{{ (ansible_pkg_mgr == 'apt') | ternary(cache_timeout, omit) }}"
|
||||
register: install_packages
|
||||
until: install_packages is success
|
||||
retries: 5
|
||||
delay: 2
|
|
@ -1,159 +0,0 @@
|
|||
---
|
||||
# Copyright 2015, Rackspace US, 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.
|
||||
|
||||
- name: Initialize local facts
|
||||
ini_file:
|
||||
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
|
||||
section: repo_build
|
||||
option: "need_wheel_build"
|
||||
value: False
|
||||
when:
|
||||
- "(ansible_local is not defined) or
|
||||
('openstack_ansible' not in ansible_local) or
|
||||
('repo_build' not in ansible_local['openstack_ansible']) or
|
||||
('need_wheel_build' not in ansible_local['openstack_ansible']['repo_build'])"
|
||||
|
||||
- name: Create package directories
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
owner: "{{ repo_build_service_user_name }}"
|
||||
with_items:
|
||||
- "{{ repo_build_release_path }}"
|
||||
- "{{ repo_build_global_links_path }}"
|
||||
|
||||
- name: Build package requirements file
|
||||
template:
|
||||
src: "requirements.txt.j2"
|
||||
dest: "{{ repo_build_release_path }}/requirements.txt"
|
||||
register: _wheel_build_requirements
|
||||
|
||||
- include_tasks: repo_clone_git.yml
|
||||
when:
|
||||
- (repo_build_git_reclone | bool) or
|
||||
(_wheel_build_requirements is changed)
|
||||
tags:
|
||||
- repo-clone-repos
|
||||
|
||||
- name: Retrieve upper constraints content
|
||||
slurp:
|
||||
src: "{{ repo_build_git_dir }}/requirements/upper-constraints.txt"
|
||||
register: slurp_upper_constraints
|
||||
|
||||
- name: Decode the upper constraints content
|
||||
set_fact:
|
||||
upper_constraints: "{{ slurp_upper_constraints.content | b64decode | splitlines }}"
|
||||
|
||||
- name: Build package constraints file
|
||||
template:
|
||||
src: "requirements_constraints.txt.j2"
|
||||
dest: "{{ repo_build_release_path }}/requirements_constraints.txt"
|
||||
register: _wheel_build_constraints
|
||||
|
||||
- name: Record whether a wheel build is required
|
||||
ini_file:
|
||||
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
|
||||
section: repo_build
|
||||
option: "need_wheel_build"
|
||||
value: True
|
||||
when:
|
||||
- (_wheel_build_requirements | changed) or
|
||||
(_wheel_build_constraints | changed) or
|
||||
(repo_build_wheel_rebuild | bool)
|
||||
|
||||
- name: Create the virtualenv (if it does not exist)
|
||||
command: "virtualenv --never-download --no-site-packages {{ repo_build_bin | dirname }}"
|
||||
args:
|
||||
creates: "{{ repo_build_bin }}/activate"
|
||||
|
||||
# Note(odyssey4me):
|
||||
# To cater for a situation where the pip packages are changing, but the repo
|
||||
# does not yet have the package built, we need to ensure that this task can
|
||||
# fetch from pypi. To do this we try the local repo first, then fall back to
|
||||
# using pypi.
|
||||
- name: Try installing from the repo first, then fall back to using pypi
|
||||
tags:
|
||||
- repo-build-install
|
||||
block:
|
||||
- name: Upgrade pip/setuptools/wheel to the versions we want (from repo)
|
||||
pip:
|
||||
name:
|
||||
- pip
|
||||
- setuptools
|
||||
- wheel
|
||||
state: "{{ repo_build_pip_package_state }}"
|
||||
virtualenv: "{{ repo_build_bin | dirname }}"
|
||||
virtualenv_site_packages: "no"
|
||||
extra_args: >-
|
||||
--constraint {{ repo_build_release_path }}/requirements_constraints.txt
|
||||
{{ pip_install_options | default('') }}
|
||||
register: install_packages
|
||||
until: install_packages is success
|
||||
retries: 5
|
||||
delay: 2
|
||||
|
||||
- name: Install pip packages (from repo)
|
||||
pip:
|
||||
name: "{{ repo_pip_packages }}"
|
||||
state: "{{ repo_build_pip_package_state }}"
|
||||
virtualenv: "{{ repo_build_bin | dirname }}"
|
||||
virtualenv_site_packages: "no"
|
||||
extra_args: >-
|
||||
--constraint {{ repo_build_release_path }}/requirements_constraints.txt
|
||||
{{ pip_install_options | default('') }}
|
||||
register: install_packages
|
||||
until: install_packages is success
|
||||
retries: 5
|
||||
delay: 5
|
||||
rescue:
|
||||
- name: Upgrade pip/setuptools/wheel to the versions we want (from pypi mirror)
|
||||
pip:
|
||||
name:
|
||||
- pip
|
||||
- setuptools
|
||||
- wheel
|
||||
state: "{{ repo_build_pip_package_state }}"
|
||||
virtualenv: "{{ repo_build_bin | dirname }}"
|
||||
virtualenv_site_packages: "no"
|
||||
extra_args: >-
|
||||
--index-url {{ repo_build_pip_default_index }}
|
||||
--trusted-host {{ repo_build_pip_default_index | urlsplit('hostname') }}
|
||||
--constraint {{ repo_build_release_path }}/requirements_constraints.txt
|
||||
{{ pip_install_options | default('') }}
|
||||
register: install_packages
|
||||
until: install_packages is success
|
||||
retries: 5
|
||||
delay: 2
|
||||
|
||||
- name: Install pip packages (from pypi mirror)
|
||||
pip:
|
||||
name: "{{ repo_pip_packages }}"
|
||||
state: "{{ repo_build_pip_package_state }}"
|
||||
virtualenv: "{{ repo_build_bin | dirname }}"
|
||||
virtualenv_site_packages: "no"
|
||||
extra_args: >-
|
||||
--index-url {{ repo_build_pip_default_index }}
|
||||
--trusted-host {{ repo_build_pip_default_index | urlsplit('hostname') }}
|
||||
--constraint {{ repo_build_release_path }}/requirements_constraints.txt
|
||||
{{ pip_install_options | default('') }}
|
||||
register: install_packages
|
||||
until: install_packages is success
|
||||
retries: 5
|
||||
delay: 5
|
||||
|
||||
- name: Create repo log directory
|
||||
file:
|
||||
path: /var/log/repo
|
||||
state: directory
|
|
@ -1,144 +0,0 @@
|
|||
---
|
||||
# Copyright 2015, Rackspace US, 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.
|
||||
|
||||
- name: Ensure that temporary folders from previous build failures are absent
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: "absent"
|
||||
with_items:
|
||||
- "{{ repo_build_dir }}"
|
||||
- "{{ repo_build_output }}"
|
||||
|
||||
- name: Create temporary folders
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
owner: "{{ repo_build_service_user_name }}"
|
||||
with_items:
|
||||
- "{{ repo_build_dir }}"
|
||||
- "{{ repo_build_output }}"
|
||||
|
||||
- name: Create distutils configuration file with index mirror
|
||||
ini_file:
|
||||
dest: "~/.pydistutils.cfg"
|
||||
section: easy_install
|
||||
option: index_url
|
||||
value: "{{ repo_build_pip_default_index }}"
|
||||
when: repo_build_pip_default_index is defined
|
||||
|
||||
- name: Download requirement pip sources
|
||||
shell: >-
|
||||
set -o pipefail;
|
||||
yes i | {{ repo_build_bin }}/pip install
|
||||
--timeout {{ repo_build_timeout }}
|
||||
--download {{ repo_build_output }}
|
||||
--no-binary :all:
|
||||
--constraint {{ repo_build_release_path }}/requirements_constraints.txt
|
||||
--index-url {{ repo_build_pip_default_index }}
|
||||
--trusted-host {{ repo_build_pip_default_index | urlsplit('hostname') }}
|
||||
{% if repo_build_pip_extra_indexes is defined %}
|
||||
--extra-index-url {{ repo_build_pip_extra_indexes | join(' --extra-index-url ') }}
|
||||
--trusted-host {{ repo_build_pip_extra_indexes | map('urlsplit', 'hostname') | join(' --trusted-host ') }}
|
||||
{% endif %}
|
||||
--requirement {{ repo_build_release_path }}/requirements.txt
|
||||
{{ pip_install_options }}
|
||||
2>&1 | ts > /var/log/repo/source_download.log
|
||||
args:
|
||||
executable: "/bin/bash"
|
||||
when: repo_build_store_pip_sources | bool
|
||||
|
||||
- name: Create OpenStack-Ansible requirement wheels
|
||||
shell: >-
|
||||
set -o pipefail;
|
||||
{{ repo_build_bin }}/pip wheel
|
||||
--timeout {{ repo_build_timeout }}
|
||||
--wheel-dir {{ repo_build_output }}
|
||||
--find-links {{ repo_build_global_links_path }}
|
||||
--find-links {{ repo_build_output }}
|
||||
--constraint {{ repo_build_release_path }}/requirements_constraints.txt
|
||||
{% if repo_build_pip_no_binary is defined %}
|
||||
--no-binary {{ repo_build_pip_no_binary | join(' --no-binary ') }}
|
||||
{% endif %}
|
||||
--index-url {{ repo_build_pip_default_index }}
|
||||
--trusted-host {{ repo_build_pip_default_index | urlsplit('hostname') }}
|
||||
{% if repo_build_pip_extra_indexes is defined %}
|
||||
--extra-index-url {{ repo_build_pip_extra_indexes | join(' --extra-index-url ') }}
|
||||
--trusted-host {{ repo_build_pip_extra_indexes | map('urlsplit', 'hostname') | join(' --trusted-host ') }}
|
||||
{% endif %}
|
||||
--build {{ repo_build_dir }}
|
||||
--requirement {{ repo_build_release_path }}/requirements.txt
|
||||
{{ pip_install_options }}
|
||||
2>&1 | ts > /var/log/repo/wheel_build.log
|
||||
args:
|
||||
executable: "/bin/bash"
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: Register os-release files
|
||||
find:
|
||||
file_type: any
|
||||
paths: "{{ repo_build_release_path }}"
|
||||
patterns:
|
||||
- "*{{ ansible_architecture | lower }}.whl"
|
||||
- "*none-any.whl"
|
||||
register: os_release_files
|
||||
|
||||
- name: Ensure os-release files are cleaned up
|
||||
file:
|
||||
path: "{{ item['path'] }}"
|
||||
state: "absent"
|
||||
with_items: "{{ os_release_files.files }}"
|
||||
|
||||
- name: Index built wheels
|
||||
find:
|
||||
paths: "{{ repo_build_output }}"
|
||||
register: built_wheels
|
||||
|
||||
- name: Create release process script
|
||||
template:
|
||||
src: "op-release-script.sh.j2"
|
||||
dest: "/opt/op-release-script.sh"
|
||||
mode: "0755"
|
||||
|
||||
- name: Run release process script
|
||||
shell: "/opt/op-release-script.sh"
|
||||
args:
|
||||
executable: "/bin/bash"
|
||||
changed_when: false
|
||||
# This task requires the use of the shell module, so we skip lint
|
||||
# to avoid:
|
||||
# ANSIBLE0013 Use shell only when shell functionality is required
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: Create absolute requirements
|
||||
template:
|
||||
src: "requirements_absolute_requirements.txt.j2"
|
||||
dest: "{{ repo_build_release_path }}/requirements_absolute_requirements.txt"
|
||||
|
||||
- name: Clean up temporary build folders to save space
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: "absent"
|
||||
with_items:
|
||||
- "{{ repo_build_dir }}"
|
||||
- "{{ repo_build_output }}"
|
||||
|
||||
- name: Disable the wheel build requirement now that it is complete
|
||||
ini_file:
|
||||
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
|
||||
section: repo_build
|
||||
option: need_wheel_build
|
||||
value: False
|
|
@ -1,57 +0,0 @@
|
|||
---
|
||||
# Copyright 2015, Rackspace US, 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.
|
||||
|
||||
- name: Check if the git folder exists already
|
||||
stat:
|
||||
path: "{{ repo_build_git_dir }}"
|
||||
register: _git_folder
|
||||
|
||||
- name: Git service data folder setup
|
||||
file:
|
||||
path: "{{ (_git_folder.stat.exists and _git_folder.stat.islnk) | ternary(_git_folder.stat.lnk_source, repo_build_git_dir) }}"
|
||||
state: "directory"
|
||||
owner: "{{ repo_build_service_user_name }}"
|
||||
group: "{{ repo_build_service_group_name }}"
|
||||
recurse: true
|
||||
|
||||
- name: Retrieve requirements content
|
||||
slurp:
|
||||
src: "{{ repo_build_release_path }}/requirements.txt"
|
||||
register: slurp_requirements
|
||||
|
||||
- name: Build filtered list of repos to clone
|
||||
set_fact:
|
||||
_repo_build_git_clone_list: "{{ _repo_build_git_clone_list | default([]) + [ item ] }}"
|
||||
with_items: "{{ local_packages.results.0.item.remote_package_parts }}"
|
||||
when: >
|
||||
(not repo_build_git_selective | bool) or
|
||||
(item['name'] in slurp_requirements.content | b64decode | splitlines) or
|
||||
((groups[item['project_group']] is defined) and (groups[item['project_group']] | length > 0))
|
||||
|
||||
- name: Clone git repositories
|
||||
become: yes
|
||||
become_user: "{{ repo_build_service_user_name }}"
|
||||
environment: "{{ global_environment_variables | default({}) }}"
|
||||
git:
|
||||
repo: "{{ item['url'] }}"
|
||||
dest: "{{ repo_build_git_dir }}/{{ item['name'] }}"
|
||||
version: "{{ item['version'] }}"
|
||||
depth: "{{ repo_build_git_depth }}"
|
||||
force: yes
|
||||
with_items: "{{ _repo_build_git_clone_list }}"
|
||||
register: _git_clone
|
||||
until: _git_clone is success
|
||||
delay: 5
|
||||
retries: 10
|
|
@ -1,38 +0,0 @@
|
|||
---
|
||||
# Copyright 2016, IBM.
|
||||
#
|
||||
# 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.
|
||||
|
||||
# Ansible synchronize module not used here due to remote user setting not
|
||||
# working on the delegated host (as of ansible 2.1)
|
||||
- name: Synchronize and Copy repo files
|
||||
command: >
|
||||
rsync
|
||||
--delay-updates -F --compress --archive
|
||||
--rsh 'ssh -l {{ repo_build_service_user_name }} -o stricthostkeychecking=no'
|
||||
--out-format='<<CHANGED>>%i %n%L'
|
||||
--rsync-path='mkdir -p {{ item.dest }} && rsync'
|
||||
{{ item.src }}
|
||||
{{ repo_build_service_user_name }}@{{ hostvars[groups['repo_all'][0]]['ansible_host'] }}:{{ item.dest }}
|
||||
with_items:
|
||||
- src: "{{ repo_build_release_path }}"
|
||||
dest: "{{ repo_build_base_path }}/{{ repo_build_release_version_path }}"
|
||||
- src: "{{ repo_build_pool_dir }}"
|
||||
dest: "{{ repo_build_base_path }}/pools"
|
||||
become: true
|
||||
become_user: "{{ repo_build_service_user_name }}"
|
||||
register: _sync_files
|
||||
changed_when: _sync_files.stdout
|
||||
tags:
|
||||
# don't trigger ANSIBLE0006. remove when synchronize module is used
|
||||
- skip_ansible_lint
|
|
@ -1,13 +0,0 @@
|
|||
{% for item in manifest_items['files'] %}
|
||||
{% set item_cleaned = item['path'] | regex_replace(repo_build_base_path ~ "/", '') %}
|
||||
{% set item_basename = item_cleaned | basename %}
|
||||
{% if item_cleaned is match(repo_build_release_version_path + "/.*/.*\.whl") %}
|
||||
{{ repo_build_pool_dir | regex_replace(repo_build_base_path ~ "/", '') }}/{{ item_basename.split('-')[0] }}/{{ item_basename | lower }}
|
||||
{{ item_cleaned | lower }}
|
||||
{% else %}
|
||||
{{ item_cleaned }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% for item in manifest_git_items['files'] %}
|
||||
{{ item['path'] | regex_replace(repo_build_base_path ~ "/", '') }}
|
||||
{% endfor %}
|
|
@ -1,9 +0,0 @@
|
|||
# {{ ansible_managed }}
|
||||
|
||||
pre-start script
|
||||
echo "pass"
|
||||
end script
|
||||
|
||||
post-stop script
|
||||
echo "pass"
|
||||
end script
|
|
@ -1,64 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
|
||||
function build_repo {
|
||||
PKG_DIRECTORY="$1"
|
||||
PKG_LOWER="$2"
|
||||
RAW_PKG="$3"
|
||||
|
||||
# If the target PKG_DIRECTORY does not exist, create it
|
||||
[[ ! -d "${PKG_DIRECTORY}" ]] && mkdir -p "${PKG_DIRECTORY}"
|
||||
|
||||
# Make sure the repo service user owns the PKG_DIRECTORY
|
||||
chown "{{ repo_build_service_user_name }}" "${PKG_DIRECTORY}"
|
||||
|
||||
# If the target wheel PKG_DIRECTORY has an index.html file in it, remove it. This is
|
||||
# in support of older archives that may have been created in the early liberty/kilo
|
||||
# timeframe.
|
||||
[[ -f "${PKG_DIRECTORY}/index.html" ]] && rm "${PKG_DIRECTORY}/index.html"
|
||||
|
||||
# Move the built wheel into place if it does not exist or is different from one
|
||||
# already found that is using the same name.
|
||||
if [ ! -f "${PKG_DIRECTORY}/${PKG_LOWER}" ];then
|
||||
mv "{{ repo_build_output }}/${RAW_PKG}" "${PKG_DIRECTORY}/${PKG_LOWER}"
|
||||
elif ! diff "{{ repo_build_output }}/${RAW_PKG}" "${PKG_DIRECTORY}/${PKG_LOWER}" > /dev/null;then
|
||||
mv "{{ repo_build_output }}/${RAW_PKG}" "${PKG_DIRECTORY}/${PKG_LOWER}"
|
||||
fi
|
||||
|
||||
# Make sure the repo service user owns the package
|
||||
chown "{{ repo_build_service_user_name }}" "${PKG_DIRECTORY}/${PKG_LOWER}"
|
||||
|
||||
# link the built package to the release reference
|
||||
ln -sf "${PKG_DIRECTORY}/${PKG_LOWER}" "{{ repo_build_release_path }}/${PKG_LOWER}"
|
||||
|
||||
# Make sure the repo service user owns the link
|
||||
chown -h "{{ repo_build_service_user_name }}" "{{ repo_build_release_path }}/${PKG_LOWER}"
|
||||
|
||||
# link the built package to the global links reference
|
||||
ln -sf "${PKG_DIRECTORY}/${PKG_LOWER}" "{{ repo_build_global_links_path }}/${PKG_LOWER}"
|
||||
|
||||
# Make sure the repo service user owns the link
|
||||
chown -h "{{ repo_build_service_user_name }}" "{{ repo_build_global_links_path }}/${PKG_LOWER}"
|
||||
}
|
||||
|
||||
|
||||
# Loop through all built wheels.
|
||||
{% for file_data in built_wheels['files'] %}
|
||||
{% set file_name = file_data['path'] | basename %}
|
||||
|
||||
# Set the PKG_DIRECTORY variable normalizing the name
|
||||
# Set the package name variable normalizing the name
|
||||
DIRECTORY="{{ repo_build_pool_dir }}/{{ file_name.split('-')[0] | lower }}"
|
||||
NAME_LOWER="{{ file_name | lower }}"
|
||||
RAW_NAME="{{ file_name }}"
|
||||
|
||||
echo -n "Moving ${RAW_NAME} to repo..."
|
||||
build_repo "${DIRECTORY}" "${NAME_LOWER}" "${RAW_NAME}"
|
||||
echo "done"
|
||||
|
||||
unset PKG_DIRECTORY
|
||||
unset PKG_LOWER
|
||||
|
||||
{% endfor %}
|
||||
|
|
@ -1,105 +0,0 @@
|
|||
# This is a unique, sorted list of requirements compiled by the repo
|
||||
# build process. The requirements are compiled from all the roles
|
||||
# using their *_pip_packages lists, the global-requirements-pins,
|
||||
# and the git sources provided.
|
||||
# Where a package is found to be provided from a git source, the
|
||||
# designated git repository SHA is added as a comment.
|
||||
|
||||
{# #}
|
||||
{# To make it easier to add the comment for each git sourced package #}
|
||||
{# when compiling the all_requirements list, we need to put together #}
|
||||
{# a map of the package names to the version based on the git data #}
|
||||
{# provided by the py_pkgs lookup. #}
|
||||
{# #}
|
||||
{% set git_packages = {} %}
|
||||
{% for clone_item in local_packages.results.0.item.remote_package_parts %}
|
||||
{% if 'ignorerequirements=true' not in clone_item['original'] %}
|
||||
{% set name_normalized = clone_item['name'] | replace('-', '_') | lower %}
|
||||
{% set _ = git_packages.update({name_normalized: clone_item['version']}) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{# #}
|
||||
{# The list provided by the py_pkgs lookup is a raw set which needs #}
|
||||
{# some normalization. We also want to add the SHA/version as a #}
|
||||
{# comment to anything provided from a git source to make it simple #}
|
||||
{# for the git cloning and wheel building process to be idempotent. #}
|
||||
{# #}
|
||||
{% set all_requirements={} %}
|
||||
{% for requirement_raw in local_packages.results.0.item.packages %}
|
||||
{% set name = requirement_raw | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') %}
|
||||
{% set data = requirement_raw | regex_replace(name,'') %}
|
||||
{% set name_normalized = name | replace('-', '_') | lower %}
|
||||
{% if name_normalized in git_packages %}
|
||||
{% set requirement_normalized = name_normalized ~ data ~ ' # ' ~ git_packages[name_normalized] %}
|
||||
{% else %}
|
||||
{% set requirement_normalized = name_normalized ~ data %}
|
||||
{% endif %}
|
||||
{% set _ = all_requirements.update({name_normalized: requirement_normalized}) %}
|
||||
{% endfor %}
|
||||
{# #}
|
||||
{# Now we have a complete, normalised and commented reference set #}
|
||||
{# to work with. Now, for a non-selective wheel build, we simply #}
|
||||
{# output the resulting list. #}
|
||||
{# #}
|
||||
{% if not repo_build_wheel_selective | bool %}
|
||||
{% for requirement_name, requirement in all_requirements.items() | sort %}
|
||||
{{ requirement }}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
{# #}
|
||||
{# For a selective wheel build, we now need to build a set of the #}
|
||||
{# packages we actually want to build. This list of packages must #}
|
||||
{# be a unique set (or pip wheel will fail). We will use a #}
|
||||
{# key:value mechanism to compile the set. #}
|
||||
{# #}
|
||||
{% set selected_requirements={} %}
|
||||
{# #}
|
||||
{# These are files which are in the root repo requirements and must #}
|
||||
{# always be built. #}
|
||||
{# #}
|
||||
{% for requirement_raw in local_packages.results.0.item.role_requirement_files.default.txt_file_packages %}
|
||||
{% set name = requirement_raw | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') %}
|
||||
{% set name_normalized = name | replace('-', '_') | lower %}
|
||||
{% set requirement_normalized = all_requirements[name_normalized] %}
|
||||
{% set _ = selected_requirements.update({name_normalized: requirement_normalized}) %}
|
||||
{% endfor %}
|
||||
{# #}
|
||||
{# These are files which are in the roles. We only select them if #}
|
||||
{# their project_groups are populated. #}
|
||||
{# #}
|
||||
{% for role_name, role_data in local_packages.results.0.item.role_requirements.items() %}
|
||||
{% set _host_group = role_data['project_group'] %}
|
||||
{% if ((groups[_host_group] is defined) and (groups[_host_group] | length > 0)) %}
|
||||
{% set _build_wheel = True %}
|
||||
{% else %}
|
||||
{% set _build_wheel = False %}
|
||||
{% endif %}
|
||||
{% if (_build_wheel | bool) %}
|
||||
{% for requirement_key, requirement_data in role_data.items() %}
|
||||
{# #}
|
||||
{# We only want to iterate through the '_pip_packages' lists #}
|
||||
{# as there may be other data structures in the role_data. #}
|
||||
{# We must also make sure we're skipping the properietary #}
|
||||
{# packages as they're not available for the repo server to #}
|
||||
{# download/build. #}
|
||||
{# #}
|
||||
{% if '_pip_packages' in requirement_key and 'proprietary' not in requirement_key %}
|
||||
{% for requirement_raw in requirement_data %}
|
||||
{% set name = requirement_raw | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') %}
|
||||
{% set name_normalized = name | replace('-', '_') | lower %}
|
||||
{% if name_normalized in all_requirements %}
|
||||
{% set requirement_normalized = all_requirements[name_normalized] %}
|
||||
{% set _ = selected_requirements.update({name_normalized: requirement_normalized}) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{# #}
|
||||
{# Now that we have a complete set of requirements, we output them. #}
|
||||
{# #}
|
||||
{% for requirement_name, requirement in selected_requirements.items() | sort %}
|
||||
{{ requirement }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
|
@ -1,4 +0,0 @@
|
|||
{% for file_data in built_wheels['files'] %}
|
||||
{% set file_name = file_data['path'] | basename %}
|
||||
{{ file_name.split('-')[0] | lower }}=={{ (file_name.split('-')[1].split('_')) | join('.post') | lower }}
|
||||
{% endfor %}
|
|
@ -1,47 +0,0 @@
|
|||
#
|
||||
# Constraints set by SHA's in the git sources
|
||||
#
|
||||
{% set constraint_pkgs = [] %}
|
||||
{% for clone_item in local_packages.results.0.item.remote_package_parts %}
|
||||
{% if 'ignorerequirements=true' not in clone_item['original'] %}
|
||||
{{ clone_item['original'] | replace(clone_item['url'], 'file://' + repo_build_git_dir + '/' + clone_item['name'] ) }}
|
||||
{% set _ = constraint_pkgs.append(clone_item['name'] | replace('-', '_') | lower) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
#
|
||||
# User-provided constraints set through a variable
|
||||
#
|
||||
{% set override_packages = [] %}
|
||||
{% for constraint_override_item in repo_build_upper_constraints_overrides %}
|
||||
{% set constraint_override_name = constraint_override_item | regex_replace('(>=|<=|>|<|==|~=|!=).*$','') %}
|
||||
{% set _ = override_packages.append(constraint_override_name) %}
|
||||
{{ constraint_override_item }}
|
||||
{% endfor %}
|
||||
#
|
||||
# Global pins set through the file global-requirement-pins.txt
|
||||
#
|
||||
{% set global_pin_packages = [] %}
|
||||
{% for global_pin in local_packages.results.0.item.role_requirement_files.global_pins.pinned_packages %}
|
||||
{% set global_pin_package_name = global_pin | regex_replace('(<=|<|==).*$','') %}
|
||||
{% set _ = global_pin_packages.append(global_pin_package_name) %}
|
||||
{# we want to ensure that repo_build_upper_constraints_overrides take the highest precedence #}
|
||||
{% if global_pin_package_name not in repo_build_upper_constraints_overrides %}
|
||||
{{ global_pin }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{# we don't bother applying OpenStack upper-constraints if the deployer has opted not to #}
|
||||
{% if repo_build_use_upper_constraints | bool %}
|
||||
#
|
||||
# Upper constraints from the OpenStack requirements repo
|
||||
#
|
||||
{% for constraint_item in upper_constraints %}
|
||||
{% set constraint_name = constraint_item | regex_replace('===.*', '') %}
|
||||
{% set constraint_data = constraint_item | regex_replace('.*===', '') %}
|
||||
{# The name has to be normalised to comply with PEP standards #}
|
||||
{% set constraint_name_normalized = constraint_name | replace('-', '_') | lower %}
|
||||
{% set constraint = constraint_name_normalized + '<=' + constraint_data %}
|
||||
{% if (constraint_name_normalized not in constraint_pkgs) and (constraint_name_normalized not in override_packages) and (constraint_name_normalized not in global_pin_packages) %}
|
||||
{{ constraint }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
|
@ -1,29 +0,0 @@
|
|||
---
|
||||
- name: apt_package_pinning
|
||||
src: https://opendev.org/openstack/openstack-ansible-apt_package_pinning
|
||||
scm: git
|
||||
version: master
|
||||
- name: pip_install
|
||||
src: https://opendev.org/openstack/openstack-ansible-pip_install
|
||||
scm: git
|
||||
version: master
|
||||
- name: galera_client
|
||||
src: https://opendev.org/openstack/openstack-ansible-galera_client
|
||||
scm: git
|
||||
version: master
|
||||
- name: openstack_hosts
|
||||
src: https://opendev.org/openstack/openstack-ansible-openstack_hosts
|
||||
scm: git
|
||||
version: master
|
||||
- name: lxc_hosts
|
||||
src: https://opendev.org/openstack/openstack-ansible-lxc_hosts
|
||||
scm: git
|
||||
version: master
|
||||
- name: lxc_container_create
|
||||
src: https://opendev.org/openstack/openstack-ansible-lxc_container_create
|
||||
scm: git
|
||||
version: master
|
||||
- name: repo_server
|
||||
src: https://opendev.org/openstack/openstack-ansible-repo_server
|
||||
scm: git
|
||||
version: master
|
|
@ -1,25 +0,0 @@
|
|||
---
|
||||
# Copyright 2016, Rackspace US, 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.
|
||||
|
||||
container_networks:
|
||||
management_address:
|
||||
address: "{{ ansible_host }}"
|
||||
bridge: "br-mgmt"
|
||||
interface: "eth1"
|
||||
netmask: "255.255.255.0"
|
||||
type: "veth"
|
||||
physical_host: localhost
|
||||
properties:
|
||||
service_name: "{{ inventory_hostname }}"
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
ansible_host: 10.100.100.2
|
||||
ansible_become: True
|
||||
ansible_user: root
|
||||
container_name: container1
|
|
@ -1,19 +0,0 @@
|
|||
---
|
||||
# Copyright 2016, Rackspace US, 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.
|
||||
|
||||
bridges:
|
||||
- "br-mgmt"
|
||||
|
||||
ansible_python_interpreter: "/usr/bin/python2"
|
|
@ -1,46 +1,2 @@
|
|||
[all]
|
||||
localhost
|
||||
container1
|
||||
|
||||
[repo_all]
|
||||
container1
|
||||
|
||||
[all_containers:children]
|
||||
repo_all
|
||||
|
||||
# This is here to validate selectively building with
|
||||
# requirements like "aodh[mysql]"
|
||||
[aodh_all]
|
||||
container1
|
||||
|
||||
# This is here to validate the venv build inclusion
|
||||
[keystone_all]
|
||||
container1
|
||||
|
||||
# This is here to validate the venv build inclusion
|
||||
[utility_all]
|
||||
container1
|
||||
|
||||
# This is here to validate the git clone exclusion
|
||||
[nova_all]
|
||||
|
||||
# This is here to validate the git clone exclusion
|
||||
[cinder_all]
|
||||
|
||||
# This is here to validate the git clone exclusion
|
||||
[ceilometer_all]
|
||||
|
||||
# This is here to validate the git clone exclusion
|
||||
[glance_all]
|
||||
|
||||
# This is here to validate the git clone exclusion
|
||||
[heat_all]
|
||||
|
||||
# This is here to validate the git clone exclusion
|
||||
[horizon_all]
|
||||
|
||||
# This is here to validate the git clone exclusion
|
||||
[neutron_all]
|
||||
|
||||
# This is here to validate the git clone exclusion
|
||||
[swift_all]
|
||||
localhost
|
1328
tests/test-data.yml
1328
tests/test-data.yml
File diff suppressed because it is too large
Load Diff
|
@ -1,69 +0,0 @@
|
|||
---
|
||||
# Copyright 2016, Rackspace US, 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.
|
||||
|
||||
- name: Install repo server
|
||||
hosts: repo_all
|
||||
user: root
|
||||
roles:
|
||||
- "repo_server"
|
||||
post_tasks:
|
||||
- name: Check if the git cache exists on deployment host
|
||||
local_action:
|
||||
module: stat
|
||||
path: "/opt/git/opendev.org/openstack"
|
||||
register: _local_git_cache
|
||||
|
||||
- name: Pre-cache the keystone git repository (from git cache)
|
||||
synchronize:
|
||||
src: "/opt/git/opendev.org/openstack/keystone/"
|
||||
dest: "/var/www/repo/openstackgit/keystone"
|
||||
when:
|
||||
- _local_git_cache.stat is defined
|
||||
- _local_git_cache.stat.exists
|
||||
|
||||
- name: Pre-cache the keystone git repository (from git source)
|
||||
git:
|
||||
repo: "https://opendev.org/openstack/keystone"
|
||||
dest: "/var/www/repo/openstackgit/keystone"
|
||||
clone: yes
|
||||
update: yes
|
||||
become: yes
|
||||
become_user: "{{ repo_build_service_user_name }}"
|
||||
when:
|
||||
- _local_git_cache.stat is defined
|
||||
- not _local_git_cache.stat.exists
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: Pre-cache the tempest git repository (from git source)
|
||||
git:
|
||||
repo: "https://opendev.org/openstack/tempest"
|
||||
dest: "/var/www/repo/openstackgit/tempest"
|
||||
clone: yes
|
||||
update: yes
|
||||
become: yes
|
||||
become_user: "{{ repo_build_service_user_name }}"
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: Intentionally set the keystone repo remote origin to github
|
||||
command: "git remote set-url origin https://github.com/openstack/keystone.git"
|
||||
args:
|
||||
chdir: "/var/www/repo/openstackgit/keystone"
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
vars_files:
|
||||
- test-vars.yml
|
|
@ -1,161 +0,0 @@
|
|||
---
|
||||
# Copyright 2016, Rackspace US, 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.
|
||||
|
||||
- name: Build repo
|
||||
hosts: repo_all
|
||||
user: root
|
||||
vars:
|
||||
test_data_file_path: "{{ lookup('env', 'WORKING_DIR') }}/tests/test-data.yml"
|
||||
vars_files:
|
||||
- test-vars.yml
|
||||
pre_tasks:
|
||||
# Test data output from the py_pkgs lookup
|
||||
# To produce a fresh version of this, execute:
|
||||
# /opt/ansible-runtime/bin/python /etc/ansible/roles/plugins/lookup/py_pkgs.py \
|
||||
# /opt/openstack-ansible /etc/ansible/roles /etc/openstack_deploy | \
|
||||
# /opt/ansible-runtime/bin/python -c 'import sys, yaml, json; yaml.safe_dump(json.load(sys.stdin), sys.stdout, default_flow_style=False)'
|
||||
# then perform the final minor adjustment of the top-end structure to fit the current structure
|
||||
- name: Import the test data
|
||||
set_fact:
|
||||
local_packages:
|
||||
results:
|
||||
-
|
||||
item:
|
||||
"{{ (lookup('file', test_data_file_path) | from_yaml)[0] }}"
|
||||
|
||||
- name: Check if this is an OpenStack-CI nodepool instance
|
||||
stat:
|
||||
path: /etc/nodepool/provider
|
||||
register: nodepool
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Determine the existing Ubuntu repo URL (only on OpenStack-CI)
|
||||
shell: 'awk "/^deb .*ubuntu\/? {{ ansible_distribution_release }} main/ {print \$2; exit}" /etc/apt/sources.list'
|
||||
register: ubuntu_repo_url
|
||||
changed_when: false
|
||||
when:
|
||||
- ansible_pkg_mgr == 'apt'
|
||||
- nodepool.stat.exists | bool
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Set Ubuntu Cloud Archive repo URL based on discovered information
|
||||
set_fact:
|
||||
uca_apt_repo_url: "{{ ubuntu_repo_url.stdout | urlsplit('scheme') ~ '://' ~ urlsplit('netloc') }}/ubuntu-cloud-archive"
|
||||
when:
|
||||
- ansible_pkg_mgr == 'apt'
|
||||
- nodepool.stat.exists | bool
|
||||
roles:
|
||||
- "repo_build"
|
||||
post_tasks:
|
||||
- name: List the files in the git folder
|
||||
command: ls -1 /var/www/repo/openstackgit/
|
||||
register: git_folder_content
|
||||
changed_when: false
|
||||
|
||||
- name: Ensure that the keystone git repo is present
|
||||
assert:
|
||||
that: "'keystone' in git_folder_content.stdout"
|
||||
|
||||
- name: Ensure that the tempest git repo is present
|
||||
assert:
|
||||
that: "'tempest' in git_folder_content.stdout"
|
||||
|
||||
- name: Ensure that the requirements git repo is present
|
||||
assert:
|
||||
that: "'requirements' in git_folder_content.stdout"
|
||||
|
||||
- name: Ensure that the nova git repo is NOT present
|
||||
assert:
|
||||
that: "'nova' not in git_folder_content.stdout"
|
||||
|
||||
- name: Slurp upper constraints
|
||||
slurp:
|
||||
src: "{{ repo_build_git_dir }}/requirements/upper-constraints.txt"
|
||||
register: slurp_upper_constraints
|
||||
|
||||
- name: Slurp requirements constraints
|
||||
slurp:
|
||||
src: "{{ repo_build_release_path }}/requirements_constraints.txt"
|
||||
register: slurp_requirements_constraints
|
||||
|
||||
- name: Set fact for requirements constraints content
|
||||
set_fact:
|
||||
requirements_constraints_content: "{{ slurp_requirements_constraints.content | b64decode }}"
|
||||
|
||||
- name: Set fact for upper constraints content
|
||||
set_fact:
|
||||
upper_constraints_list: >
|
||||
{%- set constraints = [] %}
|
||||
{%- for constraint_raw in slurp_upper_constraints.content | b64decode | splitlines %}
|
||||
{%- set constraint_name = constraint_raw | regex_replace('===.*', '') %}
|
||||
{%- set constraint_data = constraint_raw | regex_replace('.*===', '') %}
|
||||
{%- set constraint_name_normalized = constraint_name | replace('-', '_') | lower %}
|
||||
{%- set constraint = constraint_name_normalized + '<=' + constraint_data %}
|
||||
{%- set _ = constraints.append(constraint) %}
|
||||
{%- endfor %}
|
||||
{{- constraints -}}
|
||||
|
||||
- name: Set fact for upper constraints override
|
||||
set_fact:
|
||||
upper_constraints_override_list: >
|
||||
{%- set override_packages = [] %}
|
||||
{%- for override in repo_build_upper_constraints_overrides %}
|
||||
{%- set name = override | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') %}
|
||||
{%- set name_normalized = name | replace('-', '_') | lower %}
|
||||
{%- set _ = override_packages.append(name_normalized) %}
|
||||
{%- endfor %}
|
||||
{{- override_packages -}}
|
||||
|
||||
- name: Set fact for global pins
|
||||
set_fact:
|
||||
global_pins_list: >
|
||||
{%- set global_pins = [] %}
|
||||
{%- for pin in local_packages.results.0.item.role_requirement_files.global_pins.pinned_packages %}
|
||||
{%- set name = pin | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') %}
|
||||
{%- set name_normalized = name | replace('-', '_') | lower %}
|
||||
{%- set _ = global_pins.append(name_normalized) %}
|
||||
{%- endfor %}
|
||||
{{- global_pins -}}
|
||||
|
||||
- name: Set facts for packages built from git sources
|
||||
set_fact:
|
||||
git_package_list: >
|
||||
{%- set git_packages = [] %}
|
||||
{%- for remote_package_part in local_packages.results.0.item.remote_package_parts %}
|
||||
{%- set _ = git_packages.append(remote_package_part['egg_name']) %}
|
||||
{%- endfor %}
|
||||
{{- git_packages -}}
|
||||
|
||||
- name: Ensure that upper constraints from the OpenStack requirements repo are complete
|
||||
assert:
|
||||
that: item in requirements_constraints_content
|
||||
with_items: "{{ upper_constraints_list }}"
|
||||
when:
|
||||
- repo_build_use_upper_constraints | bool
|
||||
- item | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') not in upper_constraints_override_list
|
||||
- item | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') not in global_pins_list
|
||||
- item | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') not in git_package_list
|
||||
|
||||
- name: Ensure that global pins have been applied
|
||||
assert:
|
||||
that: item in requirements_constraints_content
|
||||
with_items: "{{ local_packages.results.0.item.role_requirement_files.global_pins.pinned_packages }}"
|
||||
when:
|
||||
- item | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') not in upper_constraints_override_list
|
||||
|
||||
- name: Ensure that upper constraints overrides are applied
|
||||
assert:
|
||||
that: item in requirements_constraints_content
|
||||
with_items: "{{ repo_build_upper_constraints_overrides }}"
|
|
@ -1,23 +0,0 @@
|
|||
---
|
||||
# Copyright 2016, @WalmartLabs
|
||||
#
|
||||
# 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.
|
||||
|
||||
openstack_release: testing
|
||||
repo_build_release_tag: "{{ openstack_release }}"
|
||||
|
||||
repo_build_service_user_name: "nginx"
|
||||
|
||||
# Test data input for upper constraints validation
|
||||
repo_build_upper_constraints_overrides:
|
||||
- elasticsearch<2.1.0
|
|
@ -1,23 +1,5 @@
|
|||
---
|
||||
# Copyright 2016, Rackspace US, 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.
|
||||
|
||||
# Prepare the host
|
||||
- import_playbook: common/test-setup-host.yml
|
||||
|
||||
# Install repo server
|
||||
- import_playbook: test-install-server.yml
|
||||
|
||||
# Build repo
|
||||
- import_playbook: test-repo-build.yml
|
||||
- hosts: all
|
||||
tasks:
|
||||
- debug:
|
||||
msg: ""
|
||||
|
|
33
tox.ini
33
tox.ini
|
@ -32,34 +32,6 @@ setenv =
|
|||
WORKING_DIR={toxinidir}
|
||||
|
||||
|
||||
[testenv:docs]
|
||||
basepython = python3
|
||||
deps = -r{toxinidir}/doc/requirements.txt
|
||||
commands=
|
||||
bash -c "rm -rf doc/build"
|
||||
doc8 doc
|
||||
sphinx-build -b html doc/source doc/build/html
|
||||
|
||||
|
||||
[doc8]
|
||||
# Settings for doc8:
|
||||
extensions = .rst
|
||||
|
||||
|
||||
[testenv:releasenotes]
|
||||
basepython = python3
|
||||
deps = -r{toxinidir}/doc/requirements.txt
|
||||
commands =
|
||||
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
||||
|
||||
|
||||
# environment used by the -infra templated docs job
|
||||
[testenv:venv]
|
||||
basepython = python3
|
||||
commands =
|
||||
{posargs}
|
||||
|
||||
|
||||
[testenv:pep8]
|
||||
basepython = python3
|
||||
commands =
|
||||
|
@ -91,11 +63,6 @@ commands =
|
|||
bash -c "{toxinidir}/tests/common/test-ansible-lint.sh"
|
||||
|
||||
|
||||
[testenv:functional]
|
||||
commands =
|
||||
bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
|
||||
|
||||
|
||||
[testenv:linters]
|
||||
basepython = python3
|
||||
commands =
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
---
|
||||
# Copyright 2016, Rackspace US, 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.
|
||||
|
||||
## APT Cache options
|
||||
cache_timeout: 600
|
||||
|
||||
repo_build_distro_packages:
|
||||
- build-essential
|
||||
- cmake
|
||||
- git
|
||||
- liberasurecode-dev # required to build pyeclib
|
||||
- libffi-dev # required to build xattr
|
||||
- libjpeg-dev # required to build pillow
|
||||
- libkrb5-dev # required to build pykerberos
|
||||
- libldap2-dev # required to build python-ldap
|
||||
- libpcre3-dev # required to build uwsgi
|
||||
- libpq-dev # required to build psycopg2
|
||||
- librados-dev # required to build cradox
|
||||
- libsasl2-dev # required to build python-ldap
|
||||
- libsqlite3-dev # required to build pysqlite
|
||||
- libssl-dev # required to build cryptography
|
||||
- libvirt-dev # required to build libvirt-python
|
||||
- libxslt1-dev # required to build lxml
|
||||
- libxml2-dev # required to build lxml
|
||||
- libsystemd-dev # required to build systemd-python
|
||||
- moreutils # provides `ts` command to timestamp pip logs
|
||||
- pkg-config
|
||||
- python-dev
|
||||
- swig
|
|
@ -1,37 +0,0 @@
|
|||
---
|
||||
# Copyright 2017, Rackspace US, 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.
|
||||
|
||||
# The following rules are applied in order to determine the filtered list
|
||||
# of roles to be processed for producing venvs.
|
||||
#
|
||||
# 1. The role name must be named 'os_*'. We only want the OpenStack
|
||||
# services to be compiled into venvs.
|
||||
# 2. If repo_build_venv_selective is disabled, then all the roles
|
||||
# which pass rule 1 will have venvs built.
|
||||
# 3. If the 'project_group' for the role is defined and is populated
|
||||
# then the venv will be built.
|
||||
#
|
||||
filtered_venv_role_python_requirements: |-
|
||||
{%- set filtered_role_list = [] %}
|
||||
{%- for role_name, role_data in local_packages.results.0.item.role_requirements.items() %}
|
||||
{%- if ("os_" in role_name) %}
|
||||
{%- set project_group = role_data['project_group'] %}
|
||||
{%- if (not repo_build_venv_selective | bool) or
|
||||
((groups[project_group] is defined) and (groups[project_group] | length > 0)) %}
|
||||
{%- set _ = filtered_role_list.append({'role_name': role_name, 'role_data': role_data}) %}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
{{- filtered_role_list }}
|
|
@ -1,37 +0,0 @@
|
|||
---
|
||||
# Copyright 2016, @WalmartLabs
|
||||
#
|
||||
# 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.
|
||||
|
||||
repo_build_distro_packages:
|
||||
- cmake
|
||||
- gcc
|
||||
- git
|
||||
- krb5-devel # required to build pykerberos
|
||||
- liberasurecode-devel # required to build pyeclib
|
||||
- libffi-devel # required to build xattr
|
||||
- libjpeg-turbo-devel # required to build pillow
|
||||
- librados2-devel # required to build cradox
|
||||
- libvirt-devel # required to build libvirt-python
|
||||
- libxslt-devel # required to build lxml
|
||||
- moreutils # provides `ts` command to timestamp pip logs
|
||||
- openldap-devel # required to build python-ldap
|
||||
- pcre-devel # required to build uwsgi
|
||||
- postgresql-devel # required to build psycopg2
|
||||
- python2-devel
|
||||
- openssl-devel # required to build cryptography
|
||||
- systemd-devel # required to build systemd-python
|
||||
- sqlite-devel # required to build pysqlite
|
||||
- swig
|
||||
- which
|
||||
- tar # required for /opt/op-venv-script.sh
|
|
@ -1,40 +0,0 @@
|
|||
---
|
||||
# Copyright 2016, @WalmartLabs
|
||||
# Copyright 2017, SUSE LINUX GmbH.
|
||||
#
|
||||
# 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.
|
||||
|
||||
repo_build_distro_packages:
|
||||
- gcc
|
||||
- cmake
|
||||
- git-core
|
||||
- krb5-devel # required to build pykerberos
|
||||
- liberasurecode-devel # required to build pyeclib
|
||||
- libffi-devel # required to build xattr
|
||||
- libjpeg8-devel # required to build pillow
|
||||
- librados-devel # required to build cradox
|
||||
- libvirt-devel # required to build libvirt-python
|
||||
- libxslt1
|
||||
- libxslt-devel # required to build lxml
|
||||
- moreutils # provides `ts` command to timestamp pip logs
|
||||
- cyrus-sasl-devel # required to build python-ldap
|
||||
- openldap2-devel # required to build python-ldap
|
||||
- postgresql-devel # required to build psycopg2
|
||||
- pcre-devel # required to build uwsgi
|
||||
- python-devel
|
||||
- libopenssl-devel # required to build cryptography
|
||||
- systemd-devel # required to build systemd-python
|
||||
- sqlite-devel # required to build pysqlite
|
||||
- swig
|
||||
- which
|
||||
- tar # required for /opt/op-venv-script.sh
|
|
@ -1,21 +1,3 @@
|
|||
---
|
||||
# Copyright 2017, Rackspace US, 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.
|
||||
|
||||
- project:
|
||||
templates:
|
||||
- openstack-ansible-role-jobs
|
||||
- check-requirements
|
||||
- publish-openstack-docs-pti
|
||||
- release-notes-jobs-python3
|
||||
- openstack-ansible-linters
|
||||
|
|
Loading…
Reference in New Issue