Skip to content

Commit

Permalink
Merge pull request #1945 from Nordix/tuomo/add-bmo-0.8-e2e
Browse files Browse the repository at this point in the history
🌱 Add BMO 0.8 e2e
  • Loading branch information
metal3-io-bot authored Sep 12, 2024
2 parents d1967eb + cd30cfc commit a1cddc9
Show file tree
Hide file tree
Showing 15 changed files with 274 additions and 13 deletions.
26 changes: 26 additions & 0 deletions .github/workflows/e2e-test-optional-periodic-release-0.8.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Periodic E2E Test Optional release-0.8

on:
schedule:
# Run every day at 04:20 UTC (it is recommended to avoid running at the start of the hour)
- cron: '20 4 * * *'

permissions: {}

jobs:
periodic-e2e-test-optional:
if: github.repository == 'metal3-io/baremetal-operator'
strategy:
fail-fast: false
matrix:
bmc-protocol:
- redfish
- redfish-virtualmedia
- ipmi
uses: ./.github/workflows/e2e-test.yml
with:
bmc-protocol: ${{ matrix.bmc-protocol }}
ginkgo-focus: upgrade
ref: release-0.8
permissions:
contents: read
25 changes: 25 additions & 0 deletions .github/workflows/e2e-test-periodic-release-0.8.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Periodic E2E Test release-0.8

on:
schedule:
# Run every day at 02:20 UTC (it is recommended to avoid running at the start of the hour)
- cron: '20 2 * * *'

permissions: {}

jobs:
periodic-e2e-test:
if: github.repository == 'metal3-io/baremetal-operator'
strategy:
fail-fast: false
matrix:
bmc-protocol:
- redfish
- redfish-virtualmedia
- ipmi
uses: ./.github/workflows/e2e-test.yml
with:
bmc-protocol: ${{ matrix.bmc-protocol }}
ref: release-0.8
permissions:
contents: read
3 changes: 3 additions & 0 deletions config/overlays/e2e-release-0.8/ironic.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
DEPLOY_KERNEL_URL=http://192.168.222.199:6180/images/ironic-python-agent.kernel
DEPLOY_RAMDISK_URL=http://192.168.222.199:6180/images/ironic-python-agent.initramfs
IRONIC_ENDPOINT=https://192.168.222.199:6385/v1/
32 changes: 32 additions & 0 deletions config/overlays/e2e-release-0.8/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: baremetal-operator-system
resources:
- https://github.com/metal3-io/baremetal-operator/config/overlays/basic-auth_tls?ref=release-0.8&timeout=120s
configMapGenerator:
- name: ironic
behavior: create
envs:
- ironic.env
patches:
- patch: |
# Don't try to pull again the pre-loaded image
- op: replace
path: /spec/template/spec/containers/0/imagePullPolicy
value: IfNotPresent
target:
kind: Deployment
name: controller-manager
images:
- name: quay.io/metal3-io/baremetal-operator
newTag: release-0.8
# We cannot use suffix hashes since the kustomizations we build on
# cannot be aware of what suffixes we add.
generatorOptions:
disableNameSuffixHash: true
# NOTE: These credentials are generated automatically in hack/ci-e2e.sh
secretGenerator:
- name: ironic-credentials
files:
- username=ironic-username
- password=ironic-password
21 changes: 21 additions & 0 deletions config/overlays/fixture-release-0.8/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/metal3-io/baremetal-operator/config/namespace?ref=release-0.8
- https://github.com/metal3-io/baremetal-operator/config/default?ref=release-0.8
patches:
- patch: |
# Enable test mode (fixture provider instead of ironic)
- op: add
path: /spec/template/spec/containers/0/args/-
value: --test-mode
# Don't try to pull again the pre-loaded image
- op: replace
path: /spec/template/spec/containers/0/imagePullPolicy
value: IfNotPresent
target:
kind: Deployment
name: controller-manager
images:
- name: quay.io/metal3-io/baremetal-operator
newTag: release-0.8
8 changes: 8 additions & 0 deletions docs/releasing.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,14 @@ release!

Some post-release actions are needed if new minor or major branch was created.

### Add BMO e2e test configs

[Prior art](https://github.com/metal3-io/baremetal-operator/pull/1945)

BMO e2e is running as GitHub Actions. We need to add released branch and remove
the non-maintained branches there, along with the suitable configurations with
recently released Ironic-image releases as well in the fixtures.

### Branch protection rules

Branch protection rules need to be applied to the new release branch. Copy the
Expand Down
16 changes: 14 additions & 2 deletions hack/ci-e2e.sh
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,20 @@ export ISO_IMAGE_URL="http://${IP_ADDRESS}/sysrescue-out.iso"
popd

# Generate credentials
BMO_OVERLAYS=("${REPO_ROOT}/config/overlays/e2e" "${REPO_ROOT}/config/overlays/e2e-release-0.4" "${REPO_ROOT}/config/overlays/e2e-release-0.5" "${REPO_ROOT}/config/overlays/e2e-release-0.6")
IRONIC_OVERLAYS=("${REPO_ROOT}/ironic-deployment/overlays/e2e" "${REPO_ROOT}/ironic-deployment/overlays/e2e-with-inspector" "${REPO_ROOT}/ironic-deployment/overlays/e2e-release-24.0-with-inspector" "${REPO_ROOT}/ironic-deployment/overlays/e2e-release-24.1")
BMO_OVERLAYS=(
"${REPO_ROOT}/config/overlays/e2e"
"${REPO_ROOT}/config/overlays/e2e-release-0.5"
"${REPO_ROOT}/config/overlays/e2e-release-0.6"
"${REPO_ROOT}/config/overlays/e2e-release-0.8"
)
IRONIC_OVERLAYS=(
"${REPO_ROOT}/ironic-deployment/overlays/e2e"
"${REPO_ROOT}/ironic-deployment/overlays/e2e-with-inspector"
"${REPO_ROOT}/ironic-deployment/overlays/e2e-release-24.0-with-inspector"
"${REPO_ROOT}/ironic-deployment/overlays/e2e-release-24.1"
"${REPO_ROOT}/ironic-deployment/overlays/e2e-release-25.0"
"${REPO_ROOT}/ironic-deployment/overlays/e2e-release-26.0"
)

IRONIC_USERNAME="$(uuidgen)"
IRONIC_PASSWORD="$(uuidgen)"
Expand Down
10 changes: 10 additions & 0 deletions ironic-deployment/overlays/e2e-release-25.0/ironic-patch.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: ironic
spec:
template:
spec:
containers:
- name: ironic-dnsmasq
$patch: delete
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
HTTP_PORT=6180
PROVISIONING_IP=192.168.222.199
CACHEURL=http://192.168.222.199/images
IRONIC_KERNEL_PARAMS=console=ttyS0
IRONIC_INSPECTOR_VLAN_INTERFACES=all
USE_IRONIC_INSPECTOR=false
45 changes: 45 additions & 0 deletions ironic-deployment/overlays/e2e-release-25.0/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: baremetal-operator-system
resources:
- https://github.com/metal3-io/baremetal-operator/config/namespace?ref=release-0.8&timeout=120s
- https://github.com/metal3-io/baremetal-operator/ironic-deployment/base?ref=release-0.8&timeout=120s

components:
- https://github.com/metal3-io/baremetal-operator/ironic-deployment/components/basic-auth?ref=release-0.8&timeout=120s
- https://github.com/metal3-io/baremetal-operator/ironic-deployment/components/tls?ref=release-0.8&timeout=120s

configMapGenerator:
- envs:
- ironic_bmo_configmap.env
name: ironic-bmo-configmap
behavior: create

patches:
- path: ironic-patch.yaml

images:
- name: quay.io/metal3-io/ironic
newTag: release-25.0

# NOTE: These credentials are generated automatically in hack/ci-e2e.sh
secretGenerator:
- name: ironic-htpasswd
behavior: create
envs:
- ironic-htpasswd

replacements:
# Replace IRONIC_HOST_IP in certificates with the PROVISIONING_IP from the configmap
- source:
kind: ConfigMap
name: ironic-bmo-configmap
fieldPath: .data.PROVISIONING_IP
targets:
- select:
version: v1
group: cert-manager.io
kind: Certificate
name:
fieldPaths:
- .spec.ipAddresses.0
10 changes: 10 additions & 0 deletions ironic-deployment/overlays/e2e-release-26.0/ironic-patch.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: ironic
spec:
template:
spec:
containers:
- name: ironic-dnsmasq
$patch: delete
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
HTTP_PORT=6180
PROVISIONING_IP=192.168.222.199
CACHEURL=http://192.168.222.199/images
IRONIC_KERNEL_PARAMS=console=ttyS0
IRONIC_INSPECTOR_VLAN_INTERFACES=all
USE_IRONIC_INSPECTOR=false
45 changes: 45 additions & 0 deletions ironic-deployment/overlays/e2e-release-26.0/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: baremetal-operator-system
resources:
- https://github.com/metal3-io/baremetal-operator/config/namespace?ref=release-0.8&timeout=120s
- https://github.com/metal3-io/baremetal-operator/ironic-deployment/base?ref=release-0.8&timeout=120s

components:
- https://github.com/metal3-io/baremetal-operator/ironic-deployment/components/basic-auth?ref=release-0.8&timeout=120s
- https://github.com/metal3-io/baremetal-operator/ironic-deployment/components/tls?ref=release-0.8&timeout=120s

configMapGenerator:
- envs:
- ironic_bmo_configmap.env
name: ironic-bmo-configmap
behavior: create

patches:
- path: ironic-patch.yaml

images:
- name: quay.io/metal3-io/ironic
newTag: release-26.0

# NOTE: These credentials are generated automatically in hack/ci-e2e.sh
secretGenerator:
- name: ironic-htpasswd
behavior: create
envs:
- ironic-htpasswd

replacements:
# Replace IRONIC_HOST_IP in certificates with the PROVISIONING_IP from the configmap
- source:
kind: ConfigMap
name: ironic-bmo-configmap
fieldPath: .data.PROVISIONING_IP
targets:
- select:
version: v1
group: cert-manager.io
kind: Certificate
name:
fieldPaths:
- .spec.ipAddresses.0
8 changes: 4 additions & 4 deletions test/e2e/config/fixture.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ images:
- name: quay.io/metal3-io/baremetal-operator:e2e
loadBehavior: tryLoad
# Save some time and network by using cached images if available
- name: quay.io/metal3-io/baremetal-operator:release-0.4
- name: quay.io/metal3-io/baremetal-operator:release-0.8
loadBehavior: tryLoad
- name: quay.io/jetstack/cert-manager-cainjector:v1.13.1
loadBehavior: tryLoad
Expand Down Expand Up @@ -51,16 +51,16 @@ intervals:
bmoIronicUpgradeSpecs:
- deployIronic: false
deployBMO: true
initBMOKustomization: "../../config/overlays/fixture-release-0.4"
initBMOKustomization: "../../config/overlays/fixture-release-0.5"
upgradeEntityKustomization: "../../config/overlays/fixture"
upgradeEntityName: "bmo"
- deployIronic: false
deployBMO: true
initBMOKustomization: "../../config/overlays/fixture-release-0.5"
initBMOKustomization: "../../config/overlays/fixture-release-0.6"
upgradeEntityKustomization: "../../config/overlays/fixture"
upgradeEntityName: "bmo"
- deployIronic: false
deployBMO: true
initBMOKustomization: "../../config/overlays/fixture-release-0.6"
initBMOKustomization: "../../config/overlays/fixture-release-0.8"
upgradeEntityKustomization: "../../config/overlays/fixture"
upgradeEntityName: "bmo"
26 changes: 19 additions & 7 deletions test/e2e/config/ironic.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ images:
- name: quay.io/metal3-io/ironic:e2e
loadBehavior: tryLoad
# Save some time and network by using cached images if available
- name: quay.io/metal3-io/baremetal-operator:release-0.4
- name: quay.io/metal3-io/baremetal-operator:release-0.8
loadBehavior: tryLoad
- name: quay.io/jetstack/cert-manager-cainjector:v1.13.1
loadBehavior: tryLoad
Expand Down Expand Up @@ -56,31 +56,43 @@ intervals:
bmoIronicUpgradeSpecs:
- deployIronic: true
deployBMO: true
initBMOKustomization: "../../config/overlays/e2e-release-0.4"
initIronicKustomization: "../../ironic-deployment/overlays/e2e-with-inspector"
initBMOKustomization: "../../config/overlays/e2e-release-0.5"
initIronicKustomization: "../../ironic-deployment/overlays/e2e"
upgradeEntityKustomization: "../../config/overlays/e2e"
upgradeEntityName: "bmo"
- deployIronic: true
deployBMO: true
initBMOKustomization: "../../config/overlays/e2e-release-0.5"
initBMOKustomization: "../../config/overlays/e2e-release-0.6"
initIronicKustomization: "../../ironic-deployment/overlays/e2e"
upgradeEntityKustomization: "../../config/overlays/e2e"
upgradeEntityName: "bmo"
- deployIronic: true
deployBMO: true
initBMOKustomization: "../../config/overlays/e2e-release-0.6"
initBMOKustomization: "../../config/overlays/e2e-release-0.8"
initIronicKustomization: "../../ironic-deployment/overlays/e2e"
upgradeEntityKustomization: "../../config/overlays/e2e"
upgradeEntityName: "bmo"
- deployIronic: true
deployBMO: true
initBMOKustomization: "../../config/overlays/e2e-release-0.6"
initBMOKustomization: "../../config/overlays/e2e-release-0.8"
initIronicKustomization: "../../ironic-deployment/overlays/e2e-release-24.0-with-inspector"
upgradeEntityKustomization: "../../ironic-deployment/overlays/e2e"
upgradeEntityName: "ironic"
- deployIronic: true
deployBMO: true
initBMOKustomization: "../../config/overlays/e2e-release-0.6"
initBMOKustomization: "../../config/overlays/e2e-release-0.8"
initIronicKustomization: "../../ironic-deployment/overlays/e2e-release-24.1"
upgradeEntityKustomization: "../../ironic-deployment/overlays/e2e"
upgradeEntityName: "ironic"
- deployIronic: true
deployBMO: true
initBMOKustomization: "../../config/overlays/e2e-release-0.8"
initIronicKustomization: "../../ironic-deployment/overlays/e2e-release-25.0"
upgradeEntityKustomization: "../../ironic-deployment/overlays/e2e"
upgradeEntityName: "ironic"
- deployIronic: true
deployBMO: true
initBMOKustomization: "../../config/overlays/e2e-release-0.8"
initIronicKustomization: "../../ironic-deployment/overlays/e2e-release-26.0"
upgradeEntityKustomization: "../../ironic-deployment/overlays/e2e"
upgradeEntityName: "ironic"

0 comments on commit a1cddc9

Please sign in to comment.