Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🌱 Add BMO 0.8 e2e #1945

Merged
merged 1 commit into from
Sep 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

from release-0.4 to release-0.8 ? Why the jump? Were we doing things wrongly before?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is preloading images. We don't use 0.4 anymore, and I guess forgot to bump it. I figured 0.8 is most used, so preloading it helps the most?

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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same question here

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above

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"