140 lines
6.2 KiB
Makefile
140 lines
6.2 KiB
Makefile
.PHONY: all upgrade-lrzip openstack-yaml
|
|
.DELETE_ON_ERROR: $(UPGRADE_TARBALL_PATH).lrz
|
|
.DELETE_ON_ERROR: $(BUILD_DIR)/upgrade/common-part.tar
|
|
.DELETE_ON_ERROR: $(BUILD_DIR)/upgrade/openstack-part.tar
|
|
.DELETE_ON_ERROR: $(BUILD_DIR)/upgrade/$(SAVE_UPGRADE_PIP_ART)
|
|
.DELETE_ON_ERROR: $(BUILD_DIR)/upgrade/openstack-part.tar
|
|
|
|
all: upgrade-lrzip openstack-yaml
|
|
|
|
upgrade-lrzip: UPGRADERS ?= "host-system docker openstack"
|
|
upgrade-lrzip: $(UPGRADE_TARBALL_PATH).lrz
|
|
|
|
PYTHON_VIRTUALENV_PKGS:=python-devel-2.6.6-52.el6.x86_64.rpm python-virtualenv-1.11.6-1.mira1.noarch.rpm
|
|
|
|
########################
|
|
# UPGRADE LRZIP ARTIFACT
|
|
########################
|
|
$(UPGRADE_TARBALL_PATH).lrz: \
|
|
$(BUILD_DIR)/upgrade/openstack-part.done \
|
|
$(BUILD_DIR)/upgrade/common-part.tar
|
|
mkdir -p $(@D)
|
|
rm -f $(BUILD_DIR)/upgrade/upgrade-lrzip.tar
|
|
tar Af $(BUILD_DIR)/upgrade/upgrade-lrzip.tar $(BUILD_DIR)/upgrade/openstack-part.tar
|
|
tar Af $(BUILD_DIR)/upgrade/upgrade-lrzip.tar $(BUILD_DIR)/upgrade/common-part.tar
|
|
lrzip -L2 -U -D -f $(BUILD_DIR)/upgrade/upgrade-lrzip.tar -o $@
|
|
|
|
########################
|
|
# OPENSTACK_YAML ARTIFACT
|
|
########################
|
|
openstack-yaml: $(ARTS_DIR)/$(OPENSTACK_YAML_ART_NAME)
|
|
|
|
$(ARTS_DIR)/$(OPENSTACK_YAML_ART_NAME): $(BUILD_DIR)/upgrade/$(OPENSTACK_YAML_ART_NAME)
|
|
$(ACTION.COPY)
|
|
|
|
$(BUILD_DIR)/upgrade/$(OPENSTACK_YAML_ART_NAME): $(BUILD_DIR)/repos/fuel-nailgun.done
|
|
mkdir -p $(@D)
|
|
cp $(BUILD_DIR)/repos/fuel-nailgun/nailgun/nailgun/fixtures/openstack.yaml $@
|
|
|
|
########################
|
|
# UPGRADE DEPENDENCIES
|
|
########################
|
|
$(BUILD_DIR)/upgrade/deps.done: \
|
|
$(BUILD_DIR)/repos/fuel-upgrade.done
|
|
mkdir -p $(BUILD_DIR)/upgrade/deps
|
|
virtualenv $(BUILD_DIR)/upgrade/venv
|
|
# Requires virtualenv, pip, python-dev packages
|
|
ifeq ($(USE_UPGRADE_PIP_ART_HTTP_LINK),)
|
|
echo "Using mirror pip-install approach"
|
|
$(BUILD_DIR)/upgrade/venv/bin/pip install -r $(BUILD_DIR)/repos/fuel-upgrade/requirements.txt --download $(BUILD_DIR)/upgrade/deps --no-use-wheel
|
|
else
|
|
echo "Using artifact from $(USE_UPGRADE_PIP_ART_HTTP_LINK) for pip-install"
|
|
wget -v --no-check-certificate $(USE_UPGRADE_PIP_ART_HTTP_LINK) -O $(BUILD_DIR)/upgrade/deps.tar.gz.tmp
|
|
mv $(BUILD_DIR)/upgrade/deps.tar.gz.tmp $(BUILD_DIR)/upgrade/deps.tar.gz
|
|
mkdir -p $(BUILD_DIR)/upgrade/deps/
|
|
tar xvf $(BUILD_DIR)/upgrade/deps.tar.gz --strip-components=1 -C $(BUILD_DIR)/upgrade/deps/
|
|
endif
|
|
cd $(BUILD_DIR)/repos/fuel-upgrade && $(BUILD_DIR)/upgrade/venv/bin/python setup.py sdist --dist-dir $(BUILD_DIR)/upgrade/deps
|
|
$(ACTION.TOUCH)
|
|
|
|
# FIXME: (skulanov)
|
|
# since we don't have python-virtualenv on our release mirror
|
|
# and not going to publish it over updates channel
|
|
# we need to download and install packages manually
|
|
$(addprefix $(BUILD_DIR)/upgrade/,$(PYTHON_VIRTUALENV_PKGS)):
|
|
@mkdir -p $(@D)
|
|
wget -nv -O $@.tmp http://mirror.fuel-infra.org/fwm/6.1/centos/os/x86_64/Packages/$(@F)
|
|
mv $@.tmp $@
|
|
|
|
# Save pip artifact, if needed
|
|
$(BUILD_DIR)/upgrade/$(SAVE_UPGRADE_PIP_ART): $(BUILD_DIR)/upgrade/deps.done
|
|
mkdir -p $(@D)
|
|
rm -f $@
|
|
tar czf $@ -C $(BUILD_DIR)/upgrade deps
|
|
|
|
$(ARTS_DIR)/$(SAVE_UPGRADE_PIP_ART): $(BUILD_DIR)/upgrade/$(SAVE_UPGRADE_PIP_ART)
|
|
$(ACTION.COPY)
|
|
|
|
########################
|
|
# COMMON PART
|
|
########################
|
|
$(BUILD_DIR)/upgrade/common-part.tar: \
|
|
$(ARTS_DIR)/$(VERSION_YAML_ART_NAME) \
|
|
$(BUILD_DIR)/upgrade/deps.done \
|
|
$(addprefix $(BUILD_DIR)/upgrade/,$(PYTHON_VIRTUALENV_PKGS))
|
|
mkdir -p $(@D)
|
|
rm -f $@
|
|
tar rf $@ -C $(BUILD_DIR)/upgrade --xform s:^:upgrade/: $(PYTHON_VIRTUALENV_PKGS)
|
|
tar rf $@ -C $(BUILD_DIR)/upgrade --xform s:^:upgrade/: deps
|
|
sed 's/{{UPGRADERS}}/${UPGRADERS}/g' $(SOURCE_DIR)/upgrade/upgrade_template.sh > $(BUILD_DIR)/upgrade/upgrade.sh
|
|
tar rf $@ --mode=755 -C $(BUILD_DIR)/upgrade upgrade.sh
|
|
tar rf $@ --mode=755 -C $(ARTS_DIR) --xform s:^:upgrade/config/: $(VERSION_YAML_ART_NAME)
|
|
|
|
ifneq ($(SAVE_UPGRADE_PIP_ART),)
|
|
$(BUILD_DIR)/upgrade/common-part.tar: $(ARTS_DIR)/$(SAVE_UPGRADE_PIP_ART)
|
|
endif
|
|
|
|
|
|
########################
|
|
# OPENSTACK PART
|
|
########################
|
|
$(BUILD_DIR)/upgrade/openstack_version: $(ARTS_DIR)/$(OPENSTACK_YAML_ART_NAME)
|
|
python -c "import yaml; print filter(lambda r: r['fields'].get('name'), yaml.load(open('$(ARTS_DIR)/$(OPENSTACK_YAML_ART_NAME)')))[0]['fields']['version']" > $@
|
|
|
|
$(BUILD_DIR)/upgrade/openstack-part.done: CENTOS_REPO_ART=$(CENTOS_REPO_ART_NAME)
|
|
$(BUILD_DIR)/upgrade/openstack-part.done: CENTOS_REPO_ART_TOPDIR=centos-repo
|
|
$(BUILD_DIR)/upgrade/openstack-part.done: UBUNTU_REPO_ART=$(UBUNTU_REPO_ART_NAME)
|
|
$(BUILD_DIR)/upgrade/openstack-part.done: UBUNTU_REPO_ART_TOPDIR=ubuntu-repo
|
|
$(BUILD_DIR)/upgrade/openstack-part.done: $(ARTS_DIR)/$(CENTOS_REPO_ART_NAME)
|
|
$(BUILD_DIR)/upgrade/openstack-part.done: $(ARTS_DIR)/$(UBUNTU_REPO_ART_NAME)
|
|
$(BUILD_DIR)/upgrade/openstack-part.done: BASE=$(BUILD_DIR)/upgrade/openstack-part
|
|
$(BUILD_DIR)/upgrade/openstack-part.done: OPENSTACK_VERSION=$(shell cat $(BUILD_DIR)/upgrade/openstack_version)
|
|
$(BUILD_DIR)/upgrade/openstack-part.done: CENTOS_BASE=$(BASE)/upgrade/repos/$(OPENSTACK_VERSION)/centos/x86_64
|
|
$(BUILD_DIR)/upgrade/openstack-part.done: UBUNTU_BASE=$(BASE)/upgrade/repos/$(OPENSTACK_VERSION)/ubuntu/x86_64
|
|
$(BUILD_DIR)/upgrade/openstack-part.done: RELEASES_BASE=$(BASE)/upgrade/releases
|
|
$(BUILD_DIR)/upgrade/openstack-part.done: RELEASE_VERSIONS_BASE=$(BASE)/upgrade/release_versions
|
|
$(BUILD_DIR)/upgrade/openstack-part.done: \
|
|
$(BUILD_DIR)/upgrade/openstack_version \
|
|
$(ARTS_DIR)/$(OPENSTACK_YAML_ART_NAME) \
|
|
$(ARTS_DIR)/$(VERSION_YAML_ART_NAME)
|
|
rm -f $@
|
|
mkdir -p $(@D)
|
|
# CENTOS REPO
|
|
mkdir -p $(CENTOS_BASE)
|
|
tar xf $(ARTS_DIR)/$(CENTOS_REPO_ART) -C $(CENTOS_BASE) --xform s:^$(CENTOS_REPO_ART_TOPDIR)/::
|
|
# UBUNTU REPO
|
|
mkdir -p $(UBUNTU_BASE)
|
|
tar xf $(ARTS_DIR)/$(UBUNTU_REPO_ART) -C $(UBUNTU_BASE) --xform s:^$(UBUNTU_REPO_ART_TOPDIR)/::
|
|
# OPENSTACK-YAML
|
|
mkdir -p $(RELEASES_BASE)
|
|
cp $(ARTS_DIR)/$(OPENSTACK_YAML_ART_NAME) $(RELEASES_BASE)/$(OPENSTACK_VERSION).yaml
|
|
# VERSION-YAML
|
|
mkdir -p $(RELEASE_VERSIONS_BASE)
|
|
cp $(ARTS_DIR)/$(VERSION_YAML_ART_NAME) $(RELEASE_VERSIONS_BASE)/$(OPENSTACK_VERSION).yaml
|
|
# This is for backward compatibility with upgrade script.
|
|
# It tries to figure out whether a particular update bundle diffirential or not.
|
|
echo "diff_releases: {}" > $(RELEASES_BASE)/metadata.yaml
|
|
# ARCHIVING
|
|
tar rf $(BUILD_DIR)/upgrade/openstack-part.tar -C $(BASE) .
|
|
$(ACTION.TOUCH)
|