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

Closed
wants to merge 1 commit into 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 mboukhalfa force-pushed the PoC-lb-ironic/mohammed branch from 7af6e47 to bb61ed6 Compare June 25, 2024 17:05
@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 mboukhalfa force-pushed the PoC-lb-ironic/mohammed branch from bbb9082 to 7674368 Compare June 27, 2024 07:23
@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.

@metal3-io-bot
Copy link
Collaborator

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues will close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@metal3-io-bot metal3-io-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Oct 20, 2024
@mboukhalfa
Copy link
Member Author

/close
Done in #1465

@metal3-io-bot
Copy link
Collaborator

@mboukhalfa: Closed this PR.

In response to this:

/close
Done in #1465

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-sigs/prow 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. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. 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