Skip to content

success

success #8

Workflow file for this run

---
# This reusable workflow deploys a multi-node test cluster on a cloud using
# Terraform, then deploys OpenStack via Kayobe. Tempest is then used to test
# the cloud.
name: Multinode
on:
push:
workflow_call:
inputs:
multinode_name:
description: Multinode cluster name
type: string
required: true
multinode_controller_count:
description: Controller count
type: number
default: 3
multinode_compute_count:
description: Compute count
type: number
default: 2
multinode_storage_count:
description: Storage count
type: number
default: 3
os_distribution:
description: Host OS distribution
type: string
default: rocky
os_release:
description: Host OS release
type: string
default: '9'
ssh_username:
description: User for terraform to access the Multinode hosts
type: string
default: cloud-user
neutron_plugin:
description: Neutron ML2 plugin
type: string
default: ovn
stackhpc_kayobe_config_version:
description: stackhpc-kayobe-config version
type: string
required: true
stackhpc_kayobe_config_previous_version:
description: stackhpc-kayobe-config previous version
type: string
terraform_kayobe_multinode_version:
description: terraform-kayobe-multinode version
type: string
default: main
upgrade:
description: Whether to perform an upgrade
type: boolean
default: false
break_on:
# Supported values: 'always', 'never', 'failure', 'success'
description: When to break execution for manual interaction
type: string
default: never
break_duration:
description: How long to break execution for (minutes)
type: number
default: 60
ssh_key:
description: SSH public key to authorise on Ansible control host
type: string
secrets:
KAYOBE_VAULT_PASSWORD_CI_MULTINODE:
required: true
CLOUDS_YAML:
required: true
OS_APPLICATION_CREDENTIAL_ID:
required: true
OS_APPLICATION_CREDENTIAL_SECRET:
required: true
jobs:
multinode:
name: Multinode
runs-on: ubuntu-latest
environment: Leafcloud
permissions: {}
env:
ANSIBLE_FORCE_COLOR: True
KAYOBE_ENVIRONMENT: ci-multinode
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD_CI_MULTINODE }}
break_on: success
break_duration: 1
steps:
- name: Generate a VXLAN VNI
id: vxlan_vni
run: |
# VXLAN VNI is 24 bits
max_vni=$(((2 << (24 - 1)) - 1))
timestamp=$(date +%s)
vni=$(((timestamp % max_vni) + 1))
echo vxlan_vni=$vni >> $GITHUB_OUTPUT
- name: Debug VNI
run: echo ${{ steps.vxlan_vni.outputs.vxlan_vni }}
- name: Break on failure
run: |
sleep ${{ env.break_duration }}m
if: ${{ failure() && contains(fromJSON('["failure", "always"]'), env.break_on) }}
- name: Break on success
run: |
sleep ${{ env.break_duration }}m
if: ${{ contains(fromJSON('["success", "always"]'), env.break_on) }}