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

[WIP] PoC Hostnetworkless Ironic with VirtualMedia Using MetalLB LoadBalancer #1435

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

mboukhalfa
Copy link
Member

@mboukhalfa mboukhalfa commented Jun 25, 2024

⚠️ Do not merge this is only to demonstrate a PoC

This is a small PoC part of the short focus discussion metal3-io/baremetal-operator#1739. It demonstrate running Ironic without hostNetwork, limited to the virtualMedia use case, using a LoadBalancer service.

Changes Needed

  1. Edit Ironic Deployment:

    • Remove hostNetwork: true.
    • Remove dnsmasq container.
    • Remove keepalived container.
    • Remove security restrictions to allow root access for debugging inside the containers.
  2. Add MetalLB Service:
    Enable MetalLB on Minikube : minikube addons enable metallb
    and install it on the target cluster : kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.5/config/manifests/metallb-native.yaml
    and create an ip pool:

    apiVersion: metallb.io/v1beta1
    kind: IPAddressPool
    metadata:
      name: ironic-pool
      namespace: metallb-system
    spec:
      addresses:
      - 172.22.0.2-172.22.0.2
    ---
    apiVersion: metallb.io/v1beta1
    kind: L2Advertisement
    metadata:
      name: ironic
      namespace: metallb-system
    spec:
      ipAddressPools:
          - ironic-pool
    
  3. Add LoadBalancer Service:

    apiVersion: v1
    kind: Service
    metadata:
     name: ironic
     annotations:
       metallb.universe.tf/loadBalancerIPs: 172.22.0.2
    spec:
     ports:
       - name: ironic
         port: 6385
         targetPort: 6385
       - name: inspector
         port: 5050
         targetPort: 5050
       - name: httpd
         port: 6180
         targetPort: 6180
     selector:
       name: ironic
     type: LoadBalancer
    
  4. Edit Ironic ConfigMap:

    • Remove PROVISIONING_IP so that the runironic script uses the pod's IP from the eth0 interface.
    • Add external Ironic IPs to be published to external components like IPA.
  5. Provisioning Networks:

    • No need to configure the ironicendpoint with 172.22.0.2

/hold

@metal3-io-bot metal3-io-bot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. labels Jun 25, 2024
@metal3-io-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from mboukhalfa. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@metal3-io-bot metal3-io-bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Jun 25, 2024
@mboukhalfa
Copy link
Member Author

/test metal3-dev-env-integration-test-centos-main

@mboukhalfa
Copy link
Member Author

/test metal3-dev-env-integration-test-centos-main

@mboukhalfa
Copy link
Member Author

Quite strange error:

22:07:56  TASK [run_tests : Set fact for NIC names for the first BMH found] **************
22:07:56  An exception occurred during task execution. To see the full traceback, use -vvv. The error was: KeyError: 'status'
22:07:56  task path: /home/metal3ci/tested_repo/tests/roles/run_tests/tasks/generate_templates.yml:9
22:07:56  fatal: [localhost]: FAILED! => {"changed": false}

Retriggering the PR is not changing the templates !

/test metal3-dev-env-integration-test-centos-main

@mboukhalfa
Copy link
Member Author

/test metal3-dev-env-integration-test-centos-main

@mboukhalfa mboukhalfa force-pushed the PoC-lb-ironic/mohammed branch 2 times, most recently from cd9bd5c to bbb9082 Compare June 26, 2024 14:36
@mboukhalfa
Copy link
Member Author

/test metal3-dev-env-integration-test-centos-main

Signed-off-by: Mohammed Boukhalfa <[email protected]>
@mboukhalfa
Copy link
Member Author

/test metal3-dev-env-integration-test-centos-main

1 similar comment
@mboukhalfa
Copy link
Member Author

/test metal3-dev-env-integration-test-centos-main

@mboukhalfa
Copy link
Member Author

Seems the issue seen RETRYING: Wait until no metal3cluster is remaining 132/150 relate to changes here since the issue has not been seen on the other periodic tests or the PR tests

@mboukhalfa
Copy link
Member Author

/test ?

@metal3-io-bot
Copy link
Collaborator

@mboukhalfa: The following commands are available to trigger required jobs:

  • /test markdownlint
  • /test metal3-centos-e2e-integration-test-release-1-7
  • /test metal3-dev-env-integration-test-ubuntu-main
  • /test shellcheck

The following commands are available to trigger optional jobs:

  • /test metal3-bml-integration-test-centos
  • /test metal3-centos-e2e-basic-test-main
  • /test metal3-centos-e2e-basic-test-release-1-6
  • /test metal3-centos-e2e-basic-test-release-1-7
  • /test metal3-centos-e2e-feature-test-main
  • /test metal3-centos-e2e-feature-test-release-1-5
  • /test metal3-centos-e2e-feature-test-release-1-6
  • /test metal3-centos-e2e-feature-test-release-1-7
  • /test metal3-centos-e2e-integration-test-main
  • /test metal3-centos-e2e-integration-test-release-1-5
  • /test metal3-centos-e2e-integration-test-release-1-6
  • /test metal3-dev-env-integration-test-centos-main
  • /test metal3-dev-env-integration-test-centos-release-1-5
  • /test metal3-dev-env-integration-test-centos-release-1-6
  • /test metal3-dev-env-integration-test-centos-release-1-7
  • /test metal3-dev-env-integration-test-ubuntu-release-1-5
  • /test metal3-dev-env-integration-test-ubuntu-release-1-6
  • /test metal3-dev-env-integration-test-ubuntu-release-1-7
  • /test metal3-e2e-1-26-1-27-upgrade-test-main
  • /test metal3-e2e-1-26-1-27-upgrade-test-release-1-5
  • /test metal3-e2e-1-26-1-27-upgrade-test-release-1-6
  • /test metal3-e2e-1-26-1-27-upgrade-test-release-1-7
  • /test metal3-e2e-1-27-1-28-upgrade-test-main
  • /test metal3-e2e-1-27-1-28-upgrade-test-release-1-5
  • /test metal3-e2e-1-27-1-28-upgrade-test-release-1-6
  • /test metal3-e2e-1-27-1-28-upgrade-test-release-1-7
  • /test metal3-e2e-1-28-1-29-upgrade-test-main
  • /test metal3-e2e-1-28-1-29-upgrade-test-release-1-5
  • /test metal3-e2e-1-28-1-29-upgrade-test-release-1-6
  • /test metal3-e2e-1-28-1-29-upgrade-test-release-1-7
  • /test metal3-e2e-clusterctl-upgrade-test-main
  • /test metal3-e2e-clusterctl-upgrade-test-release-1-5
  • /test metal3-e2e-clusterctl-upgrade-test-release-1-6
  • /test metal3-e2e-clusterctl-upgrade-test-release-1-7
  • /test metal3-ubuntu-e2e-basic-test-main
  • /test metal3-ubuntu-e2e-basic-test-release-1-6
  • /test metal3-ubuntu-e2e-basic-test-release-1-7
  • /test metal3-ubuntu-e2e-feature-test-main
  • /test metal3-ubuntu-e2e-feature-test-release-1-5
  • /test metal3-ubuntu-e2e-feature-test-release-1-6
  • /test metal3-ubuntu-e2e-feature-test-release-1-7
  • /test metal3-ubuntu-e2e-integration-test-main
  • /test metal3-ubuntu-e2e-integration-test-release-1-5
  • /test metal3-ubuntu-e2e-integration-test-release-1-6
  • /test metal3-ubuntu-e2e-integration-test-release-1-7

Use /test all to run the following jobs that were automatically triggered:

  • shellcheck

In response to this:

/test ?

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@mboukhalfa
Copy link
Member Author

/test metal3-centos-e2e-basic-test-main

@mboukhalfa
Copy link
Member Author

/test metal3-dev-env-integration-test-centos-main

@mboukhalfa
Copy link
Member Author

The Changes is not implemented to be tested with e2e test
/override metal3-centos-e2e-basic-test-main

@metal3-io-bot
Copy link
Collaborator

@mboukhalfa: Overrode contexts on behalf of mboukhalfa: metal3-centos-e2e-basic-test-main

In response to this:

The Changes is not implemented to be tested with e2e test
/override metal3-centos-e2e-basic-test-main

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants