spectrocloud / cluster-api-provider-maas Goto Github PK
View Code? Open in Web Editor NEWCluster API Provider for MAAS (https://maas.io/)
License: Apache License 2.0
Cluster API Provider for MAAS (https://maas.io/)
License: Apache License 2.0
Need to block deletion of MaasCluster until all MaasMachine/Machine's are deleted.
If the the "MaasCluster" CR is deleted first, then MaasMachine deletion is hung.
Maybe something like this: https://github.com/kubernetes-sigs/cluster-api-provider-vsphere/blob/master/controllers/vspherecluster_controller.go#L220-L229
The infrastructure components uses cert-manager/v1alpha2
API version for Cert Manager, whereas cert-manager/v1
should be used instead.
$ clusterctl init -i maas:v0.4.0 -b microk8s -c microk8s
Fetching providers
Installing cert-manager Version="v1.12.3"
Waiting for cert-manager to be available...
Installing Provider="cluster-api" Version="v1.5.2" TargetNamespace="capi-system"
Installing Provider="bootstrap-microk8s" Version="v0.6.2" TargetNamespace="capi-microk8s-bootstrap-system"
Installing Provider="control-plane-microk8s" Version="v0.6.2" TargetNamespace="capi-microk8s-control-plane-system"
Installing Provider="infrastructure-maas" Version="v0.4.0" TargetNamespace="capmaas-system"
Error: action failed after 10 attempts: failed to get current provider object: failed to get API group resources: unable to retrieve the complete list of server APIs: cert-manager.io/v1alpha2: the server could not find the requested resource
Version
cluster-api-provider-maas: v0.4.0
MaaS: 3.2.8
The Problem To Be Solved
Implement a node reuse feature in the Cluster API MaaS provider to enable the reuse of existing nodes, specifically storage nodes, during system OS and Kubernetes updates, as well as configuration changes.
Clusterctl has built-in support for other infrastructure providers:
$ clusterctl config repositories
NAME TYPE URL FILE
cluster-api CoreProvider https://github.com/kubernetes-sigs/cluster-api/releases/latest/ core-components.yaml
aws-eks BootstrapProvider https://github.com/kubernetes-sigs/cluster-api-provider-aws/releases/latest/ eks-bootstrap-components.yaml
kubeadm BootstrapProvider https://github.com/kubernetes-sigs/cluster-api/releases/latest/ bootstrap-components.yaml
talos BootstrapProvider https://github.com/talos-systems/cluster-api-bootstrap-provider-talos/releases/latest/ bootstrap-components.yaml
aws-eks ControlPlaneProvider https://github.com/kubernetes-sigs/cluster-api-provider-aws/releases/latest/ eks-controlplane-components.yaml
kubeadm ControlPlaneProvider https://github.com/kubernetes-sigs/cluster-api/releases/latest/ control-plane-components.yaml
nested ControlPlaneProvider https://github.com/kubernetes-sigs/cluster-api-provider-nested/releases/latest/ control-plane-components.yaml
talos ControlPlaneProvider https://github.com/talos-systems/cluster-api-control-plane-provider-talos/releases/latest/ control-plane-components.yaml
aws InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-aws/releases/latest/ infrastructure-components.yaml
azure InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-azure/releases/latest/ infrastructure-components.yaml
digitalocean InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-digitalocean/releases/latest/ infrastructure-components.yaml
docker InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api/releases/latest/ infrastructure-components-development.yaml
gcp InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-gcp/releases/latest/ infrastructure-components.yaml
metal3 InfrastructureProvider https://github.com/metal3-io/cluster-api-provider-metal3/releases/latest/ infrastructure-components.yaml
nested InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-nested/releases/latest/ infrastructure-components.yaml
openstack InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-openstack/releases/latest/ infrastructure-components.yaml
packet InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-packet/releases/latest/ infrastructure-components.yaml
sidero InfrastructureProvider https://github.com/talos-systems/sidero/releases/latest/ infrastructure-components.yaml
vsphere InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-vsphere/releases/latest/ infrastructure-components.yaml
Is it possible for the current maas provider to also be added as an OOB option with clusterctl
?
In this PR #70, I see there are new image built with ubuntu 22.04 and newer k8s versions. However, the content still points out to a very stale branch in this repo: https://github.com/spectrocloud/cluster-api-provider-maas/blob/main/image-generation/Dockerfile#L10C29-L10C90
Is it possible to share what is the current packer configs to generate those ubuntu 22.04 images?
Hello, has this provider become unmantained?
If yes, I might suggest setting the repository as "archived" for clarity or adding a note to the README.
Hello,
I'm forcing issue with retrieving DNS resources over API:
E0119 15:14:32.063206 1 maascluster_controller.go:242] controllers/MaasCluster "msg"="failed to reconcile load balancer" "error"="error retrieving dns resources \"maas1-k8s-dev-547d29.default\": parse \"http://maas-example.com:5240/MAAS\\n/api/2.0/dnsresources/\": net/url: invalid control character in URL" "maascluster"="maas1-k8s-dev-infra"
E0119 15:14:32.063703 1 controller.go:317] controller/maascluster "msg"="Reconciler error" "error"="error retrieving dns resources \"maas1-k8s-dev-infra-547d29.default\": parse \"http://maas-example.com:5240/MAAS\\n/api/2.0/dnsresources/\": net/url: invalid control character in URL" "name"="maas1-k8s-dev-infra" "namespace"="maas1-k8s-dev-infra" "reconciler group"="infrastructure.cluster.x-k8s.io" "reconciler kind"="MaasCluster"
I have only this in endpoint var:
MAAS_ENDPOINT=http://maas-example.com:5240/MAAS
Rest of URL is added automatically: \\n/api/2.0/dnsresources/\
and that newline sign could be the problem.
I'm using v0.5.0.
There are some typos in the README. We can fix those and improve the whole README file for better readability and understandability.
Version
cluster-api-provider-maas: v0.4.0
MaaS: 3.2.8
The Problem To Be Solved
In our current setup, the MaaS infrastructure is managed by a separate team who handles the provisioning and configuration of machines for our users. However, during the deployment process in the Cluster API MaaS provider, the operator attempts to update the machine configuration (disabling swap), which is not allowed due to our limited permissions.
Possible Solution
Implement a bypass mechanism to allow the Cluster API MaaS provider operator to proceed with the deployment process without performing machine configuration updates.
From Go 1.17, installing executables with go get is deprecated. go install may be used instead.
In Go 1.18, go get will no longer build packages; it will only be used to add, update, or remove dependencies in go.mod.
Ref. - (https://go.dev/doc/go-get-install-deprecation)
We should stop using go get to install hack/tools and instead rely on go install.
From the CAPI meeting, I noticed the link to this project and followed it, but I'm still clueless as to what's here after digesting the README.
It would be helpful if the term "MaaS" were explicitly defined once at the top of the README.md file. Also, please include a sentence or two explaining specifically what the project is, such as "Spectro Cloud provider for the Canonical Metal-as-a-Service interface." Links to more info are also helpful.
The MAAS provider is not working with the latest clusterctl version 1.0.3. We get the following error while using clusterctl
Fetching providers
Error: current version of clusterctl is only compatible with v1beta1 providers, detected v1alpha4 for provider infrastructure-maas
DO we plan to support MAAS provider for the latest version of clusterctl?
Version
cluster-api-provider-maas: v0.4.0
MaaS: 3.2.8
The Problem To Be Solved
In our current setup, the provisioning and configuration of machines in the MaaS infrastructure are managed by a separate team. However, during the deployment process in the Cluster API MaaS provider, the operator tries to update MaaS' DNS, which is restricted due to our limited permissions
Possible Solution
Implement a solution to avoid using the MaaS DNS for exposing the Kubernetes API and instead utilize a Virtual IP (VIP) approach for improved flexibility and high availability. The VIP can be configured using KeepAlived in the bootstrap.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.