openstack-ansible/playbooks/repo-build.yml
Jesse Pretorius 3e0ef28675 Remove symlinked git cache functionality
Prior to zuul v3 there was a cache of all git repositories
on the host, and this functionality used a bind-mount and
symlinks to pull the cache into the repo server as a way
to cut time taken and reduce errors due to git cloning.

The cache is no longer there, so the functionality which
implements the symlink and bind-mount is being removed.

The ability to make use of a git cache is still available
for deployers to use if they want to, but the cache will
be synchronised into the container instead of using bind
mounts and symlinks which was the ionly method intended
for production use anyway.

This cuts down the complexity of the implementation.

Co-Authored-By: Jean-Philippe Evrard <jean-philippe@evrard.me>
Needed-By: I397c67a4b0166ad9f42a186f5c7137571772693a
Change-Id: Id95ad2f01b52222a07cb0775026d941ab86cd9ab
2017-12-12 16:12:25 +00:00

86 lines
2.7 KiB
YAML

---
# 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: Group repo servers by architecture
hosts: repo_all
# Serial 1 avoids race conditions, and makes sures the repo_servers
# are added in the same order as the repo_all inventory
serial: 1
tasks:
- name: Group repo servers by architecture and os version
group_by:
key: repo_servers_{{ ansible_distribution_version }}_{{ ansible_architecture }}
tags:
- always
- repo-build
# Use the 'add_host' module to create the repo_masters group which consists of a
# single host in each distribution/architecture combination. This ensures that
# the repo build happens per architecture and per distribution, covering the needs
# of each of these combinations when deploying.
- name: Prepare group of master repo servers
hosts: localhost
tasks:
- name: Prepare group of master repo servers
add_host:
name: "{{ groups[item][0] }}"
groups: repo_masters
with_items: "{{ groups | select('match', '^repo_servers_') | list }}"
tags:
- always
- repo-build
- name: Build new repo packages for a given release
hosts: repo_masters
gather_facts: "{{ osa_gather_facts | default(True) }}"
any_errors_fatal: true
user: root
serial: 1
pre_tasks:
- include: common-tasks/set-upper-constraints.yml
- include: common-tasks/set-pip-upstream-url.yml
- name: Load local packages
debug:
msg: "Loading Packages"
with_py_pkgs: "{{ pkg_locations }}"
register: local_packages
tags:
- always
- name: Check if the git cache exists on deployment host
local_action:
module: stat
path: "{{ repo_build_git_cache }}"
register: _local_git_cache
when: repo_build_git_cache is defined
- name: Synchronise the contents of the git cache to the repo server
synchronize:
src: "{{ repo_build_git_cache }}"
dest: "{{ repo_build_git_dir }}"
when:
- _local_git_cache.stat is defined
- _local_git_cache.stat.exists
roles:
- role: "repo_build"
vars_files:
- defaults/repo_packages/openstack_services.yml
environment: "{{ deployment_environment_variables | default({}) }}"
tags:
- repo-build