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

Bootstrap cluster with ignition #843

Open
mkumatag opened this issue Sep 9, 2022 · 18 comments
Open

Bootstrap cluster with ignition #843

mkumatag opened this issue Sep 9, 2022 · 18 comments
Assignees
Labels
area/provider/ibmcloud Issues or PRs related to ibmcloud provider kind/feature Categorizes issue or PR as related to a new feature. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.
Milestone

Comments

@mkumatag
Copy link
Member

mkumatag commented Sep 9, 2022

/kind feature
/area provider/ibmcloud

Describe the solution you'd like
https://cluster-api.sigs.k8s.io/tasks/experimental-features/ignition.html

Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]

@k8s-ci-robot k8s-ci-robot added kind/feature Categorizes issue or PR as related to a new feature. area/provider/ibmcloud Issues or PRs related to ibmcloud provider labels Sep 9, 2022
@mkumatag mkumatag added this to the Next milestone Sep 9, 2022
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 8, 2022
@mkumatag mkumatag removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 8, 2022
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 8, 2023
@mkumatag
Copy link
Member Author

mkumatag commented Mar 8, 2023

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 8, 2023
@mkumatag
Copy link
Member Author

Fedora CoreOS is still pending for ppc64le, will explore this task once builds are available for the testing.

@mkumatag mkumatag modified the milestones: Next, v0.7 Sep 8, 2023
@Prajyot-Parab
Copy link
Contributor

/assign @Prajyot-Parab
Update - Explore on booting Fedora CoreOS with ignition for CAPIBM PowerVS K8s cluster.

@mkumatag can you please add the reference links/urls for the Fedora CoreOS (ppc64le) builds.

@yussufsh
Copy link
Contributor

@Prajyot-Parab https://fedoraproject.org/coreos/download/?stream=stable&arch=ppc64le#download_section you can download ppc64le stable images from here.

@mkumatag
Copy link
Member Author

@Prajyot-Parab can you document the initial investigation you have done and move this work item to next release.

@Prajyot-Parab
Copy link
Contributor

/milestone Next

@mkumatag mkumatag modified the milestones: v0.7, Next Dec 12, 2023
@Prajyot-Parab
Copy link
Contributor

The default configuration engine for bootstrapping workload cluster machines is cloud-init. Ignition is an alternative engine used by Linux distributions such as Flatcar Container Linux and Fedora CoreOS and therefore should be used when choosing an Ignition-based distribution as the underlying OS for workload clusters.

Note
This initial implementation uses Ignition v2 and was tested with Flatcar Container Linux only. Future releases are expected to add Ignition v3 support and cover more Linux distributions.

@mkumatag as per my initial understanding we will need to build the flatcar stable image for powervs, once we have that we can try the already tested workflow using it.

Not sure how this is going to work with Fedora CoreOS-

  1. We will need some modifications on top of it to make it CAPIBM ready right? If yes, will this be somehow done as part of image builder process or it will be dealt with externally?

@mkumatag need your guidance on this one.

@mkumatag
Copy link
Member Author

Flatcar image is not available for the power, let's explore the experiment with the fedoracore image directly and see what kind of errors we are hitting while running the flow?!

@Prajyot-Parab
Copy link
Contributor

Summary -
We explored with FerdoraCoreOS 39 for Power

  1. The version of ignition inside image is 2.17.0 => 3.x.x spec
  2. The created infra machine was able to fetch the ignition from mentioned URL.
  3. The issue is with config version mismatch while booting above machine via ignition. This is result of ignition file being generated using older spec 2.3.0.
  4. Ignition file is generated while upstream CAPI (which in-turn uses flatcar package), which supports only 2.3.0 and no 3.x.x specs.

This will possibly need more exploration and upstream CAPI contributions to add support for spec 3.x.x ignition versions.

@Prajyot-Parab
Copy link
Contributor

@Karthik-K-N feel free to add more info, if i missed anything.

@mkumatag mkumatag modified the milestones: Next, v0.8 Feb 9, 2024
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label May 9, 2024
@mkumatag
Copy link
Member Author

mkumatag commented May 9, 2024

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label May 9, 2024
@Karthik-K-N
Copy link
Contributor

WIP PR is submitted #1687, Need to complete it.

@mkumatag mkumatag modified the milestones: v0.8, Next May 17, 2024
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Aug 15, 2024
@Karthik-K-N
Copy link
Contributor

Karthik-K-N commented Aug 21, 2024

Currently CAPIBM controllers supports booting machine with ignition with 3.x version which is extensively used in Openshift clusters where the ignition is generated by installer and which has version 3.x.

As a standalone CAPIBM cluster we are yet to support ignition because the CAPI has support for generating ignition with only 2.3 version.

Possible goals?

  1. Should we make changes in CAPIBM to support very old ignition 2.3.X?
    (is it worth to make changes as ignition 3.x flow will always be tested in IPI flow)

Challenges

  1. Many other providers use flatcar which supports ignition and image builder repo also has support for building flatcar image for CAPI, Unfortunately it does not support ppc64le arch.

Alternatives

  1. Use very old rchcos image which has igntion 2.3.x support, make changes in image builder to build CAPI compatible image for this and try with CAPIBM.
  2. Identify and use converter package which converts ignition from 2.3.x to 3.x

Upstream CAPI issues where its currently in planning state to support ignition 3.x version.

  1. Ignition v3.x support cluster-api#9157
  2. Cleaner separation of kubeadm and machine bootstrapping cluster-api#5294

@mkumatag
Copy link
Member Author

@Karthik-K-N can we list down the pro and cons for both the approaches mentioned and debate from there?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/provider/ibmcloud Issues or PRs related to ibmcloud provider kind/feature Categorizes issue or PR as related to a new feature. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.
Projects
None yet
Development

No branches or pull requests

6 participants