airshipctl/zuul.d/jobs.yaml
Matt McEuen 0324993d60 Add an m3 host generator function
This PS has a function which constructs a collection of Metal3 BareMetalHost
resources, along with associated configuration Secrets.
It solves for a couple of things:

1. pulling the nitty gritty details for generating BMH into one reusable place,
2. allowing the site-specific details to be filled in via catalogues of values

This function leverages a couple of different plugins in sequence:
The airshipctl Replacement plugin, which pulls the site-specific data from
the catalogue documents into a Templater plugin configuration; and then
the airshipctl Templater plugin, which generates a variable number of
BMHs in a data-driven fashion.

More details can be found in the README.md in this patchset.

Closes: #245

Change-Id: I3ddbd36dc53ea6afbd633098c985f4b28bcbb793
2020-07-17 15:30:26 -05:00

114 lines
3.9 KiB
YAML

# 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.
- job:
name: airship-airshipctl-roles-test
run: tests/ansible/role-test-runner.yaml
nodeset: airship-airshipctl-single-node
- job:
name: airship-airshipctl-golint
pre-run: playbooks/airship-airshipctl-deploy-docker.yaml
run: playbooks/airship-airshipctl-golint.yaml
nodeset: airship-airshipctl-single-node
voting: false
- job:
name: airship-airshipctl-lint-unit
pre-run: playbooks/airship-airshipctl-deploy-docker.yaml
run: playbooks/airship-airshipctl-lint-unit.yaml
nodeset: airship-airshipctl-single-node
- job:
name: airship-airshipctl-update-github-issues
description: Updates and/or closes related issues on Github on merge
run: playbooks/airship-airshipctl-update-github-issues.yaml
nodeset: airship-airshipctl-single-node
secrets:
- name: github_credentials
secret: airship_airshipctl_airshipit_github_username_password
- job:
name: airship-airshipctl-build-image
nodeset: airship-airshipctl-single-node
run: playbooks/airship-airshipctl-build-images.yaml
irrelevant-files:
- ^.*\.md$
- ^docs/.*$
- job:
name: airship-airshipctl-validate-site-docs
pre-run:
- playbooks/airship-airshipctl-deploy-docker.yaml
run: playbooks/airshipctl-gate-runner.yaml
nodeset: airship-airshipctl-single-node
vars:
gate_scripts:
- ./tools/deployment/01_install_kubectl.sh
- ./tools/deployment/21_systemwide_executable.sh
- ./tools/validate_docs
# TODO (dukov) remove this once phases framework is fully implemented
voting: false
- job:
name: airship-airshipctl-functional-existing-k8s
pre-run: playbooks/airship-airshipctl-deploy-existing-k8s.yaml
run: playbooks/airship-airshipctl-functional-existing-k8s.yaml
nodeset: airship-airshipctl-single-node
- job:
name: airship-airshipctl-upload-git-mirror
parent: upload-git-mirror
description: Mirrors airship/airshipctl to airshipit/airshipctl
vars:
git_mirror_repository: airshipit/airshipctl
secrets:
- name: git_mirror_credentials
secret: airship_airshipctl_airshipit_github_secret
pass-to-parent: true
- job:
name: airship-airshipctl-gate-script-runner-test
attempts: 1
timeout: 3600
pre-run:
- playbooks/airship-airshipctl-deploy-docker.yaml
- playbooks/airship-airshipctl-build-gate.yaml
post-run: playbooks/airship-collect-logs.yaml
run: playbooks/airshipctl-gate-runner.yaml
nodeset: airship-airshipctl-single-16GB-bionic-node
vars:
site_name: test-site
gate_scripts:
- ./tools/deployment/01_install_kubectl.sh
# 21_systemwide_executable.sh is run in the build-gate pre-run above
- ./tools/deployment/22_test_configs.sh
- ./tools/deployment/24_build_ephemeral_iso.sh
- ./tools/deployment/25_deploy_ephemeral_node.sh
- ./tools/deployment/26_deploy_metal3_capi_ephemeral_node.sh
- ./tools/deployment/30_deploy_controlplane.sh
serve_dir: /srv/iso
serve_port: 8099
voting: false
- job:
name: airship-airshipctl-publish-image
parent: airship-airshipctl-build-image
post-run: playbooks/airship-airshipctl-publish-images.yaml
secrets:
- name: airshipctl_image_repo_credentials
secret: airshipctl_image_repo_credentials
pass-to-parent: true
vars:
image: quay.io/airshipit/airshipctl
image_repo: https://quay.io/api/v1/