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

refactor: provider an entrypoint to the infra provider meta handlers #554

Merged
merged 2 commits into from
Apr 25, 2024

Conversation

dkoshkin
Copy link
Contributor

@dkoshkin dkoshkin commented Apr 22, 2024

What problem does this PR solve?:
This aligns the structure to how the lifecycle handlers are created. More importantly it enables us to pass globalOptions to those infra handlers that need it.

The goal of this is to use for the eventual refactor to support a more generic kube-vip implementation. But for that I need to be able to read a ConfigMap from the "default" namespace where all of these CMs are created. Again similar to how its done for the CAAPH addons

values, err := lifecycleutils.RetrieveValuesTemplate(
ctx,
s.client,
s.config.defaultValuesTemplateConfigMapName,
defaultsNamespace,
)

Which issue(s) this PR fixes:
Refactor to support work for https://jira.nutanix.com/browse/D2IQ-100364

How Has This Been Tested?:

Special notes for your reviewer:

@deepakm-ntnx
Copy link
Contributor

Could you please add some sample output of how the options are passed as a test case

@dkoshkin dkoshkin force-pushed the dkoshkin/refactor-provider-handlers branch from 7efb0f7 to b214a11 Compare April 23, 2024 15:45
This aligns the structure to how the lifecycle handlers are created.
More importantly it enables us to pass globalOptions to those infra handlers that need it.
@jimmidyson jimmidyson enabled auto-merge (squash) April 24, 2024 10:51
Copy link
Contributor

@deepakm-ntnx deepakm-ntnx left a comment

Choose a reason for hiding this comment

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

pls see my comment above.

@jimmidyson jimmidyson merged commit db51743 into main Apr 25, 2024
16 checks passed
@jimmidyson jimmidyson deleted the dkoshkin/refactor-provider-handlers branch April 25, 2024 16:05
@github-actions github-actions bot mentioned this pull request Apr 25, 2024
@dkoshkin
Copy link
Contributor Author

Could you please add some sample output of how the options are passed as a test case

There are new unit tests using this in https://github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/pull/558/commits

jimmidyson added a commit that referenced this pull request Apr 26, 2024
**What problem does this PR solve?**:
Stacked on
#554

This PR moves the responsibility of adding the control-plan kube-vip to
CAREN away from infra providers.
This has a big benefit of being able to keep this implementation and the
image version consistent across the different providers.

~Because CAPX is always requires kube-vip to be installed there are no
API changes, but in the future we can add support to disable or change
the provider.~
Added an empty `virtualIP{}` struct to Nutanix `controlPlaneEndpoint`.
```
spec:
  topology:
    variables:
      - name: clusterConfig
        value:
          nutanix:
            controlPlaneEndpoint:
              host: x.x.x.x
              port: 6443
              virtualIP: {}
```


**Which issue(s) this PR fixes**:
Fixes https://jira.nutanix.com/browse/D2IQ-100364

**How Has This Been Tested?**:
<!--
Please describe the tests that you ran to verify your changes.
Provide output from the tests and any manual steps needed to replicate
the tests.
-->
New unit tests, and tested manually too:
```
clusterctl describe cluster $CLUSTER_NAME    
NAME                                                                                              READY  SEVERITY  REASON  SINCE  MESSAGE 
Cluster/dkkonvoy-042324-nutanix-03                                                                True                     76m             
├─ClusterInfrastructure - NutanixCluster/dkkonvoy-042324-nutanix-03-wvv6d                                                                  
├─ControlPlane - KubeadmControlPlane/dkkonvoy-042324-nutanix-03-sv2zb                             True                     76m             
│ └─Machine/dkkonvoy-042324-nutanix-03-sv2zb-ds5mv                                                True                     76m             
│   └─MachineInfrastructure - NutanixMachine/dkkonvoy-042324-nutanix-03-sv2zb-ds5mv                                                        
└─Workers                                                                                                                                  
  └─MachineDeployment/dkkonvoy-042324-nutanix-03-md-0-w6mls                                       True                     74m             
    └─Machine/dkkonvoy-042324-nutanix-03-md-0-w6mls-979mw-c582s                                   True                     74m             
      └─MachineInfrastructure - NutanixMachine/dkkonvoy-042324-nutanix-03-md-0-w6mls-979mw-c582s                                      
```

**Special notes for your reviewer**:
<!--
Use this to provide any additional information to the reviewers.
This may include:
- Best way to review the PR.
- Where the author wants the most review attention on.
- etc.
-->

---------

Co-authored-by: Jimmi Dyson <jimmidyson@gmail.com>
faiq pushed a commit that referenced this pull request Apr 29, 2024
🤖 I have created a release *beep* *boop*
---


## 0.8.0 (2024-04-29)

<!-- Release notes generated using configuration in .github/release.yaml
at main -->

## What's Changed
### Exciting New Features 🎉
* feat: give mutators a clusterGetter function by @faiq in
https://github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/pull/514it was unintelliga
* feat: get default sans via cluster object in patch handler for docker
by @faiq in
#519
* feat: adds nutanix SANs via patchHandler by @faiq in
#522
* feat: nutanix csi driver 3.0 by @faiq in
#531
* feat: Add additionalCategories field to Nutanix machine details patch
by @dlipovetsky in
#525
* feat: support setting Nutanix project on machines by @dkoshkin in
#535
* feat: Upgrade to CAPI v1.7.0 by @jimmidyson in
#555
* feat: CAPI v1.7.1 by @jimmidyson in
#560
* feat: Preserve user-managed fields when applying resources by
@dlipovetsky in
#556
* feat: Preserve user-managed fields when creating namespace by
@dlipovetsky in
#557
* feat: Added e2e test for capx cluster by @deepakm-ntnx in
#523
* feat: add kube-vip static Pod in a Nutanix handler by @dkoshkin in
#558
* feat: AWS CCM for Kubernetes v1.29 by @dkoshkin in
#564
### Fixes 🔧
* fix: updated the capx version used by @deepakm-ntnx in
#513
* fix: add omitempty to CCM Credentials struct by @dkoshkin in
#524
* fix: Add specific descriptions to Nutanix machine details fields by
@dlipovetsky in
#532
* refactor: setting ownership references to Nutanix CSI Helm Chart
Proxies by @dlipovetsky in
#565
### Other Changes
* build: Specify go1.22.2 as toolchain to fix govulncheck issues by
@jimmidyson in
#517
* build: Add metadata for latest v0.7.0 release by @jimmidyson in
#515
* refactor: Consistently import CAPI v1beta1 package as clusterv1 alias
by @jimmidyson in
#518
* build: Fix image tags in release manifests by @jimmidyson in
#516
* test(e2e): Use same versions of providers from module dependencies by
@jimmidyson in
#521
* build: update aws credentials on kind bootstrap cluster by @supershal
in
#507
* refactor: standardize the code for getting Helm values by @dkoshkin in
#500
* build: Use latest k8s for dev and test management cluster by
@jimmidyson in
#526
* docs: Add how to release doc by @jimmidyson in
#530
* build: adds a .envrc.local file for local development for dotenv by
@faiq in
#538
* refactor: create storage classes directly instead of using CRS by
@faiq in
#539
* refactor: Move API to caren.nutanix.com group by @jimmidyson in
#534
* build: Add Kubernetes v1.30.0 option for bootstrap and Docker provider
by @jimmidyson in
#541
* build: create .envrc.e2e file from caren e2e config by @supershal in
#540
* build: Only allow patch updates to k8s libs by @jimmidyson in
#551
* build: Generate CRD YAML by @jimmidyson in
#536
* build: Minor golangci-lint config updates for recent versions by
@jimmidyson in
#552
* build: generated CRDs yamls by @dkoshkin in
#553
* refactor: Use separate types for provider cluster configs by
@jimmidyson in
#537
* docs: Remove additionalCategories from required fields by @dlipovetsky
in
#543
* build: Upgrade tooling, notably go to v1.22.2 by @jimmidyson in
#561
* refactor: provider an entrypoint to the infra provider meta handlers
by @dkoshkin in
#554
* test(e2e): Add self-hosted e2e test by @jimmidyson in
#439
* build: Bundle k8s.io/* back in with sigs.k8s.io/* dependencies by
@jimmidyson in
#583
* build: Add envtest setup to e2e envrc by @jimmidyson in
#563

## New Contributors
* @deepakm-ntnx made their first contribution in
#513

**Full Changelog**:
v0.7.0...v0.8.0

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

3 participants