Skip to content

Conversation

alexander-demicev
Copy link

This commit rebases the cluster-api openshift patches on top of the kubernetes-sigs/cluster-api master branch after.
There are several commits that we carry on top of the upstream cluster-api and the rebase process allows us to preserve those. Here is a description of the process I used to create this PR.

(replicated @elmiko's process within openshift/kubernetes-autoscaler)

Process

First we need to identify the carry commits that we currently have, this is done against our previous rebase (or fork in this case) to catch new changes. Once identified we will drop commits which have merged upstream and only carry unique commits. (see below for the carried and dropped commits).

Identify carry commits:

git log --oneline --no-merges 3433f7b769b4e7f5cb899b2742a5a8a1a9f51b3e..ocp/master

where b4be01 is the last upstream commit in our fork. This is the
list of commits we will need to apply onto the new upstream version of the
cluster-api. ideally, some of these commits can be dropped.

After identifying the carry commits, the next step is to create the new commit-tree that will be used for the rebase and then cherry pick the carry commits into the new branch. The following commands cover these steps:

$ git remote update # make sure we update our refs
$ git checkout 3433f7b769b4e7f5cb899b2742a5a8a1a9f51b3e # release notes for 1.0.3 in this case
$ git checkout -b merge-tmp # create a temporary branch for our merge commit
$ git checkout ocp/master # we want to be at the tip of the openshift master branch when we run the next command
$ echo 'rebase to v1.1.2' | git commit-tree merge-tmp^{tree} -p HEAD -p merge-tmp -F - # create a new merge commit for our history
deadbeef12345678 # id of new merge commit
$ git branch rebase-upstream-latest deadbeef12345678 # create a new branch for the cherry-pick work
$ git checkout rebase-upstream-latest
$ git cherry-pick <carry commits> # cherry pick the needed commits into the new branch

With the rebase-upstream-latest branch in place, I cherry picked the carry commits which we should carry.

Carried Commits

These commits are integral to our CI platform, or are specific to the releases we create for OpenShift.

beaafaf2f  UPSTREAM: <carry>: Add openshift specific changes
788312762 UPSTREAM: <carry>: Add vendor directory

Changed Commits

---

Dropped Commits

---

k8s-ci-robot and others added 30 commits December 8, 2021 09:13
Add support for using Ignition as the format for bootstrap data. This
allows using Ignition-based distros as the operating system for
workload cluster nodes.

Co-authored-by: Suraj Deshmukh <[email protected]>

Signed-off-by: Mateusz Gozdek <[email protected]>
Signed-off-by: Johanan Liebermann <[email protected]>
As users usually do not create KubeadmConfig directly, but rather create
KubeadmConfigTemplate and now KubeadmConfig has more validation rules,
it's good if users sees those errors directly.

Signed-off-by: Mateusz Gozdek <[email protected]>
Signed-off-by: Johanan Liebermann <[email protected]>
KubeadmConfigSpec has now more validation rules, so we should trigger
them, as KubeadmConfigSpec is embedded in KubeadmControlPlane object.

Signed-off-by: Mateusz Gozdek <[email protected]>
Signed-off-by: Johanan Liebermann <[email protected]>
Allow provisioning CAPD machines using Ignition as an alternative to
cloud-init.

So far, cloud-init has been hardcoded as the only provisioning format
supported by CAPD.

- Add a package called "provisioning" which contains the interfaces and
  common logic for all supported provisioning formats.
- Move the existing cloud-init code under the new package.
- Add a new provisioning implementation for Ignition.

Co-authored-by: Suraj Deshmukh <[email protected]>

Signed-off-by: Johanan Liebermann <[email protected]>
This commit adds the feature gate KubeadmBootstrapFormatIgnition that
will control the usage of field Ignition in KubeadmConfig.

If user provides ignition field then the webhook config rejects the
request with a validation error.

Signed-off-by: Suraj Deshmukh <[email protected]>
Signed-off-by: Johanan Liebermann <[email protected]>
Signed-off-by: Suraj Deshmukh <[email protected]>
Signed-off-by: Johanan Liebermann <[email protected]>
This file tests functions in kubeadmconfig_webhook_test.go.

Signed-off-by: Johanan Liebermann <[email protected]>
Ignition doesn't support the replace_fs filesystem parameter and the
partition filesystem parameter supported by cloud-init. Disallow using
these parameters with Ignition.

Signed-off-by: Johanan Liebermann <[email protected]>
…lakes

🐛 Fix cluster topology and UpdateCoreDNS test flakes
…rclass-doc-fields

🌱 ClusterClass: add documentation fields for patches and variables
…n-support-pr

✨ Add support for generating bootstrap data in Ignition format to CABPK
This builds on the CAPD changes to use the docker API instead of calling
out to the CLI. With those changes, it is now possible to insert a
testing fake and perform unit testing for the code that would normally
call out to Docker.

The test coverage introduced by this change is not extensive, but it
does add coverage where we previously had none at all. With this basic
coverage in place, it should now be easier to add new tests if we find
specific scenarios that we want to reproduce and validate for any new
bug reports.

Signed-off-by: Sean McGinnis <[email protected]>
🌱 Add test coverage for container runtime calls
Signed-off-by: Stefan Büringer [email protected]
…achinepools

🐛 capd: fix MachinePool reconciler
…redundant-kcp-fields

⚠️ Remove redundant/unused KCPTemplate fields
🌱 ClusterClass: clarify that enum works with all types
Signed-off-by: Stefan Büringer [email protected]
Signed-off-by: Stefan Büringer [email protected]
Co-authored-by: Stefan Büringer [email protected]
Signed-off-by: killianmuldoon <[email protected]>
…ne-remediation-flake

🐛  added CleanupAndWait function to reduce flakiness in test
…integrationtests

🌱  add basic integration tests for ClusterClass webhook
…forming-job

🌱 test/e2e: Implement release informing jobs with CC & IPv6
sbueringer and others added 16 commits February 9, 2022 13:36
…llout

🐛 KCP: don't rollout machines when format is defaulted
…ot/cherry-pick-6075-to-release-1.1

✨ [E2E] allow provider specific infra machine template for upgrade tests
…ot/cherry-pick-5919-to-release-1.1

🌱 Support new control plane label and taint
🌱 [release-1.1] ClusterToInfrastructureMapFuncWithExternallyManagedCheck: Remove debugging leftovers
…ot/cherry-pick-6116-to-release-1.1

📖 Update cert-manager links after migration
…ot/cherry-pick-6140-to-release-1.1

✨ Uplift controller runtime to v0.11.1
Signed-off-by: Stefan Büringer [email protected]
…ot/cherry-pick-6144-to-release-1.1

🐛 Fix panics in conversions
…ot/cherry-pick-6137-to-release-1.1

📖 Updated version pattern matching in quick-start
@openshift-ci openshift-ci bot requested review from JoelSpeed and elmiko March 2, 2022 19:45
@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 2, 2022
@elmiko
Copy link

elmiko commented Mar 2, 2022

the commit structure looks generally good to me
/approve

@openshift-ci
Copy link

openshift-ci bot commented Mar 2, 2022

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: alexander-demichev, elmiko

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

The pull request process is described here

Needs approval from an approver in each of these files:
  • OWNERS [alexander-demichev,elmiko]

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

@openshift-ci
Copy link

openshift-ci bot commented Mar 2, 2022

@alexander-demichev: all tests passed!

Full PR test history. Your PR dashboard.

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. I understand the commands that are listed here.

@JoelSpeed
Copy link

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Mar 3, 2022
@openshift-merge-robot openshift-merge-robot merged commit f9c215c into openshift:master Mar 3, 2022
@openshift-bot
Copy link

[ART PR BUILD NOTIFIER]

This PR has been included in build ose-cluster-api-container-v4.12.0-202305022015.p0.gf9c215c.assembly.stream for distgit ose-cluster-api.
All builds following this will include this PR.

@alexander-demicev alexander-demicev deleted the v1.1.2rebase branch January 17, 2024 12:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.