Skip to content

Commit

Permalink
Add BMO 0.8 e2e
Browse files Browse the repository at this point in the history
Add BMO 0.8 e2e and drop BMO 0.4. Add ironic 25.0 and 26.0 to
overlays.

Signed-off-by: Tuomo Tanskanen <[email protected]>
  • Loading branch information
tuminoid committed Sep 10, 2024
1 parent b20ee44 commit a2f9a61
Show file tree
Hide file tree
Showing 15 changed files with 280 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.5
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"
32 changes: 25 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.5
loadBehavior: tryLoad
- name: quay.io/jetstack/cert-manager-cainjector:v1.13.1
loadBehavior: tryLoad
Expand Down Expand Up @@ -54,12 +54,6 @@ intervals:
default/wait-connect-ssh: ["2m", "10s"]

bmoIronicUpgradeSpecs:
- deployIronic: true
deployBMO: true
initBMOKustomization: "../../config/overlays/e2e-release-0.4"
initIronicKustomization: "../../ironic-deployment/overlays/e2e-with-inspector"
upgradeEntityKustomization: "../../config/overlays/e2e"
upgradeEntityName: "bmo"
- deployIronic: true
deployBMO: true
initBMOKustomization: "../../config/overlays/e2e-release-0.5"
Expand All @@ -84,3 +78,27 @@ bmoIronicUpgradeSpecs:
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"
upgradeEntityKustomization: "../../config/overlays/e2e"
upgradeEntityName: "bmo"
- deployIronic: true
deployBMO: true
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 a2f9a61

Please sign in to comment.