Skip to content

Conversation

@guettli
Copy link
Collaborator

@guettli guettli commented Dec 12, 2025

v1.2.x with APIVersion v1beta2

This PR will update CAPH to support beta2 of CAPI.

Previous PR: #1775

TODO

todo: The Caph Compatibility Table is duplicated:

In introduction.md (visible on syself.com)

https://syself.com/docs/caph/getting-started/introduction#compatibility-with-cluster-api-and-kubernetes-versions

source

In README.md (visible on Github)

README.md

todo: Check docs about upgrade, and table with supported versions (v1.0.x -- capi-versions, v1.1.x -- capi-versions)


@guettli guettli changed the base branch from main to v1.1.x-v1beta1 December 12, 2025 11:00
@guettli guettli changed the base branch from v1.1.x-v1beta1 to tg/v1.1.x--tooling-update December 23, 2025 10:34
@guettli guettli self-assigned this Dec 23, 2025
This PR exists, so that the v1.2.x-v1beta2 PR does not contain the changes
in the vendor directory. Otherwise the PR is so big, that it using
the Github UI is almost not possible.

This PR was created to keep v1.2.x-v1beta2 PR small.
@guettli guettli changed the base branch from tg/v1.1.x--tooling-update to v1.2.x-v1beta2-vendor-dir December 23, 2025 13:58
@guettli guettli force-pushed the v1.2.x-v1beta2-vendor-dir branch from ca33cb7 to a276fe8 Compare December 23, 2025 14:16
return sts.IPv4
}

// HasFatalError returns true, if the corresponding capi machine should get deleted.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

TODO

HCloudBootStateBootingToRealOS HCloudBootState = "BootingToRealOS"

// HCloudBootStateOperatingSystemRunning indicates that the server is successfully running.
HCloudBootStateOperatingSystemRunning HCloudBootState = "OperatingSystemRunning"
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

ProvisioningFailed is missing.

event := eventList.Items[i]
if event.Reason == reason &&
event.InvolvedObject.Name == involvedObjectName &&
strings.Contains(event.Message, message) {
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

TODO

if c != nil && c.Status == metav1.ConditionFalse {
// This hcloud machine will be removed soon.
log.Info("hcloudmachine: ProvisioningFailed. Not reconciling this machine.")
log.Info("hcloudmachine has DeleteMachineSucceededCondition. Not reconciling this machine.")
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

TODO

It("should delete machine if SetErrorAndRemediate() was called", func() {
By("Creating Server")

By("Checking Environment")
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

remove

}).Should(Succeed())

By("Call SetRemediateMachineAnnotationToDeleteMachine")
By("Call SetErrorAndRemediateMachine")
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

todo

return ctrl.Result{RequeueAfter: 30 * time.Second}, nil
}

// Mirror DeleteMachineSucceededCondition from hbmm to hbmh.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

todo

return r.reconcileDelete(ctx, machineScope)
}

deleteConditionOfHbmm := conditions.Get(hbmMachine, infrav1.DeleteMachineSucceededCondition)
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

todo

secretManager := secretutil.NewSecretManager(clusterScope.Logger, r.Client, r.APIReader)
// Remove finalizer of secret
if err := secretManager.ReleaseSecret(ctx, clusterScope.HetznerSecret(), clusterScope.HetznerCluster); err != nil {
if apierrors.IsConflict(err) {
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

todo

make kustomize
fi

hack/ensure-ssh-key-in-hcloud.py
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

todo

@@ -1,120 +0,0 @@
#!/usr/bin/env python3
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

todo

# See `crane ls ghcr.io/fluxcd/kindest/node` for available versions
K8S_VERSION=v1.33.0

REPO_ROOT=$(git rev-parse --show-toplevel)
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

todo

//
// Background: the hbmm/hbmh controller has no permission to delete a capi machine. That's why this
// extra step (via remediate-machine annotation) is needed.
func (m *BareMetalMachineScope) SetRemediateMachineAnnotationToDeleteMachine(ctx context.Context, message string) error {
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

todo

conditions.MarkTrue(s.scope.BareMetalMachine, infrav1.HostAssociateSucceededCondition)

// update the machine
host, err := s.update(ctx)
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

todo

return checkForRequeueError(err, "failed to update machine")
}

if host.Spec.Status.HasFatalError() {
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

todo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants