maas CAPI struggle

I’m having difficulty finding success with these instructions: https://documentation.ubuntu.com/canonical-kubernetes/capi/tutorial/getting-started/

root@k8s-vm:~# clusterctl init --bootstrap canonical-kubernetes --control-plane canonical-kubernetes -i maas:v0.6.1 -v 6
Using configuration file="/root/.cluster-api/clusterctl.yaml"
Fetching providers
Potential override file searchFile="/root/.config/cluster-api/overrides/cluster-api/v1.11.0/core-components.yaml" provider="cluster-api" version="v1.11.0"
Fetching file="core-components.yaml" provider="cluster-api" type="CoreProvider" version="v1.11.0"
Potential override file searchFile="/root/.config/cluster-api/overrides/bootstrap-canonical-kubernetes/v0.4.2/bootstrap-components.yaml" provider="bootstrap-canonical-kubernetes" version="v0.4.2"
Fetching file="bootstrap-components.yaml" provider="canonical-kubernetes" type="BootstrapProvider" version="v0.4.2"
Potential override file searchFile="/root/.config/cluster-api/overrides/control-plane-canonical-kubernetes/v0.4.2/control-plane-components.yaml" provider="control-plane-canonical-kubernetes" version="v0.4.2"
Fetching file="control-plane-components.yaml" provider="canonical-kubernetes" type="ControlPlaneProvider" version="v0.4.2"
error using httpGet to get file from GitHub releases, falling back to github client: 404 Not Found owner="spectrocloud" repository="cluster-api-provider-maas" version="v1.9.4" path="metadata.yaml"
Potential override file searchFile="/root/.config/cluster-api/overrides/infrastructure-maas/v0.6.1/infrastructure-components.yaml" provider="infrastructure-maas" version="v0.6.1"
Fetching file="infrastructure-components.yaml" provider="maas" type="InfrastructureProvider" version="v0.6.1"
Potential override file searchFile="/root/.config/cluster-api/overrides/cluster-api/v1.11.0/metadata.yaml" provider="cluster-api" version="v1.11.0"
Fetching file="metadata.yaml" provider="cluster-api" type="CoreProvider" version="v1.11.0"
Potential override file searchFile="/root/.config/cluster-api/overrides/bootstrap-canonical-kubernetes/v0.4.2/metadata.yaml" provider="bootstrap-canonical-kubernetes" version="v0.4.2"
Fetching file="metadata.yaml" provider="canonical-kubernetes" type="BootstrapProvider" version="v0.4.2"
Potential override file searchFile="/root/.config/cluster-api/overrides/control-plane-canonical-kubernetes/v0.4.2/metadata.yaml" provider="control-plane-canonical-kubernetes" version="v0.4.2"
Fetching file="metadata.yaml" provider="canonical-kubernetes" type="ControlPlaneProvider" version="v0.4.2"
error using httpGet to get file from GitHub releases, falling back to github client: 404 Not Found owner="spectrocloud" repository="cluster-api-provider-maas" version="v1.9.4" path="metadata.yaml"
Potential override file searchFile="/root/.config/cluster-api/overrides/infrastructure-maas/v0.6.1/metadata.yaml" provider="infrastructure-maas" version="v0.6.1"
Fetching file="metadata.yaml" provider="maas" type="InfrastructureProvider" version="v0.6.1"
Error: failed to fetch metadata for provider "infrastructure-maas" (version v0.6.1). Check that the release tag exists and the repository URL is correct — the project may have moved or the tag may be missing metadata.yaml: invalid provider metadata: unexpected kind "" for provider infrastructure-maas (expected "Metadata")
sigs.k8s.io/cluster-api/cmd/clusterctl/client/cluster.(*providerInstaller).getProviderContract
        sigs.k8s.io/cluster-api/cmd/clusterctl/client/cluster/installer.go:317
sigs.k8s.io/cluster-api/cmd/clusterctl/client/cluster.(*providerInstaller).Validate
        sigs.k8s.io/cluster-api/cmd/clusterctl/client/cluster/installer.go:214
sigs.k8s.io/cluster-api/cmd/clusterctl/client.(*clusterctlClient).Init
        sigs.k8s.io/cluster-api/cmd/clusterctl/client/init.go:136
sigs.k8s.io/cluster-api/cmd/clusterctl/cmd.runInit
        sigs.k8s.io/cluster-api/cmd/clusterctl/cmd/init.go:149
sigs.k8s.io/cluster-api/cmd/clusterctl/cmd.init.func13
        sigs.k8s.io/cluster-api/cmd/clusterctl/cmd/init.go:89
github.com/spf13/cobra.(*Command).execute
        github.com/spf13/cobra@v1.9.1/command.go:1015
github.com/spf13/cobra.(*Command).ExecuteC
        github.com/spf13/cobra@v1.9.1/command.go:1148
github.com/spf13/cobra.(*Command).Execute
        github.com/spf13/cobra@v1.9.1/command.go:1071
sigs.k8s.io/cluster-api/cmd/clusterctl/cmd.Execute
        sigs.k8s.io/cluster-api/cmd/clusterctl/cmd/root.go:113
main.main
        sigs.k8s.io/cluster-api/cmd/clusterctl/main.go:27
runtime.main
        runtime/proc.go:283
runtime.goexit
        runtime/asm_amd64.s:1700

I’ve even tried adding the infrastructure provider to clusterctl.yaml:

providers:
  - name: "maas"
    url: "https://github.com/spectrocloud/cluster-api-provider-maas/releases/download/v0.6.1/infrastructure-components.yaml"
    type: "InfrastructureProvider"

I don’t think it’s a networking issue since this works just fine:

root@k8s-vm:~# wget https://github.com/spectrocloud/cluster-api-provider-maas/releases/download/v0.6.1/infrastructure-components.yaml

What am I doing wrong here?

I was doing a few things wrong here.

First, I was using clusterclt v1.11.0 (because I like using the latest…) which wasn’t the one listed in the tutorial → v1.9.3. That might have had something to do with it.

Secondly, SpectroCloud’s MaaS infra provider is on v0.6.1 but it looks like they didn’t publish an amd64 image for it. Their GitHub tutorial says to use v0.5.0, which works.

I’m currently a lot further down the road, but still do not have a working k8s deployment because cluster-api keeps hitting 401 forbidden when hitting some of the MaaS API endpoints. I don’t think this is a cluster api issue, since I confirmed this with an admin API key and hitting the endpoints with curl.

Very frustrating user experience.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.