Skip to content

Flatcar optimize network configuration speed on vmware cloud director#478

Merged
kubermatic-bot merged 3 commits intokubermatic:mainfrom
4ch3los:fix/vcloud-flatcar-boottime
Feb 4, 2026
Merged

Flatcar optimize network configuration speed on vmware cloud director#478
kubermatic-bot merged 3 commits intokubermatic:mainfrom
4ch3los:fix/vcloud-flatcar-boottime

Conversation

@4ch3los
Copy link
Contributor

@4ch3los 4ch3los commented Jul 2, 2025

Dont wait for network when using flatcar on vmware-cloud-director, as bootstrap script configures network. To achieve this, template support for unit files was added. This reduces bootstrapping time alot, as waiting for network times out currently

What this PR does / why we need it:

Which issue(s) this PR fixes:

What type of PR is this?
/kind bug

Special notes for your reviewer:

Does this PR introduce a user-facing change? Then add your Release Note here:

Flatcar Vmware cloud director, bootstrap time improved

Documentation:

NONE

@kubermatic-bot kubermatic-bot added docs/none Denotes a PR that doesn't need documentation (changes). kind/bug Categorizes issue or PR as related to a bug. release-note Denotes a PR that will be considered when it comes time to generate release notes. dco-signoff: yes Denotes that all commits in the pull request have the valid DCO signoff message. sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jul 2, 2025
@kubermatic-bot
Copy link
Contributor

Hi @4ch3los. Thanks for your PR.

I'm waiting for a kubermatic member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

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.

@kubermatic-bot kubermatic-bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Jul 2, 2025
@kubermatic-bot
Copy link
Contributor

Issues go stale after 90d of inactivity.
After a furter 30 days, they will turn rotten.
Mark the issue as fresh with /remove-lifecycle stale.

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

/lifecycle stale

@kubermatic-bot kubermatic-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 30, 2025
@kron4eg
Copy link
Member

kron4eg commented Oct 1, 2025

is this about rendering the whole provision config and sending it as a userdata so that VM can be provisioned right away without fetching its provisioning instructions?

@4ch3los
Copy link
Contributor Author

4ch3los commented Oct 1, 2025

is this about rendering the whole provision config and sending it as a userdata so that VM can be provisioned right away without fetching its provisioning instructions?

Ahh no, the provisioning process doesnt get changed, but for flatcar on vcloud director, the network gets configured by the bootstrap service/script https://github.com/kubermatic/operating-system-manager/blob/main/deploy/osps/default/osp-flatcar.yaml#L192
But the service units is defined to run after the network is available, which wont happen before it runs, so it waits for the timeout and delays the provisioning by about 2 minutes. This pr adds the ability to template the units with go templating, and removes the wait on the bootstrap.unit for flatcar on vcloud :)

@kron4eg kron4eg removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Oct 14, 2025
@kron4eg
Copy link
Member

kron4eg commented Nov 3, 2025

/ok-to-test

@kubermatic-bot kubermatic-bot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Nov 3, 2025
@kubermatic-bot
Copy link
Contributor

Issues go stale after 90d of inactivity.
After a furter 30 days, they will turn rotten.
Mark the issue as fresh with /remove-lifecycle stale.

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

/lifecycle stale

@kubermatic-bot kubermatic-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Feb 2, 2026
@kron4eg
Copy link
Member

kron4eg commented Feb 2, 2026

/ok-to-test
/cc

@kron4eg
Copy link
Member

kron4eg commented Feb 2, 2026

/cc @ahmedwaleedmalik

@ahmedwaleedmalik Can you please provide the original idea why units was not been rendered in the first place?

@4ch3los did you considered using systemd units drop-ins in order to customize that unit? An example would be a file (which is already rendered) in the specific directory.

Comment on lines 347 to 352
{{- if not (eq .CloudProviderName "vmware-cloud-director") }}

[Unit]
Requires=network-online.target
After=network-online.target
{{- end }}
Copy link
Member

Choose a reason for hiding this comment

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

While i'm not against the idea per say but this is a bit of a scope creep if we add template rendering for units just for this one use case. The reason we didn't templatize them was that most, if not all, customizations can be done using drop-ins and there wasn't a use case for this.

Like @kron4eg suggested, we can simply have a drop-in like:

  - path: /etc/systemd/system/bootstrap.service.d/10-no-network-wait.conf              
    content:                                                                           
      inline:                                                                          
        data: |                                                                        
          {{- if eq .CloudProviderName "vmware-cloud-director" }}                      
          [Unit]                                                                       
          Requires=                                                                    
          After=                                                                       
          {{- end }}  

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Totally fair and way easier :) im going to redo the pr

@4ch3los 4ch3los force-pushed the fix/vcloud-flatcar-boottime branch from 8360f1c to 221ed72 Compare February 4, 2026 14:16
@kubermatic-bot kubermatic-bot added size/S Denotes a PR that changes 10-29 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Feb 4, 2026
…ector

Signed-off-by: Kai Fink <kai.fink@yahoo.de>
@4ch3los 4ch3los force-pushed the fix/vcloud-flatcar-boottime branch from 221ed72 to 48bc79b Compare February 4, 2026 14:25
Copy link
Member

@kron4eg kron4eg left a comment

Choose a reason for hiding this comment

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

how to fix the CI

…ded to negate the behaviour as dropins cant clear Requires/After but add to

Signed-off-by: Kai Fink <kai.fink@yahoo.de>
Signed-off-by: Kai Fink <kai.fink@yahoo.de>
@4ch3los
Copy link
Contributor Author

4ch3los commented Feb 4, 2026

@kron4eg hopefully the ci should succeed now, but during testing i discovered that dropins cant clear Requires, so i inverted the behaviour to add the Requires as Dropin, for non vcloud platform

Copy link
Member

@ahmedwaleedmalik ahmedwaleedmalik left a comment

Choose a reason for hiding this comment

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

/approve

@kubermatic-bot kubermatic-bot added the lgtm Indicates that a PR is ready to be merged. label Feb 4, 2026
@kubermatic-bot
Copy link
Contributor

LGTM label has been added.

DetailsGit tree hash: d3f651f97ced6ff4d6b84a38189c3d77f864e39c

@ahmedwaleedmalik
Copy link
Member

/approve

@kubermatic-bot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ahmedwaleedmalik

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

The pull request process is described here

Details 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

@kubermatic-bot kubermatic-bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 4, 2026
@kubermatic-bot kubermatic-bot merged commit a686487 into kubermatic:main Feb 4, 2026
11 checks passed
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. dco-signoff: yes Denotes that all commits in the pull request have the valid DCO signoff message. docs/none Denotes a PR that doesn't need documentation (changes). kind/bug Categorizes issue or PR as related to a bug. lgtm Indicates that a PR is ready to be merged. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. release-note Denotes a PR that will be considered when it comes time to generate release notes. sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants