Skip to content

[Web Bug] - GCP Quickstart - GCP CRDs not installed and only one provider installed #887

@mattwelke

Description

@mattwelke

I'm having trouble completing the GCP quickstart tutorial. I'm able to make a kind cluster and use Helm to deploy Crossplane to it. I'm also able to run the following command to create a provider in the cluster.

cat <<EOF | kubectl apply -f -
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
  name: provider-gcp-storage
spec:
  package: xpkg.crossplane.io/crossplane-contrib/provider-gcp-storage:v1
EOF

But, when I run kubectl get providers, I only see one provider in that list. The tutorial shows two at this point in the example output and mentions that the first provider is supposed to install the second.

$ k get providers
NAME                   INSTALLED   HEALTHY   PACKAGE                                                         AGE
provider-gcp-storage   False                 xpkg.crossplane.io/crossplane-contrib/provider-gcp-storage:v1   16m

I continued with the tutorial and ran kubectl get crds, expecting to see GCP related CRDs. Instead, I see only Crossplane related CRDs.

$ kubectl get crds
NAME                                                       CREATED AT
compositeresourcedefinitions.apiextensions.crossplane.io   2025-03-05T23:42:05Z
compositionrevisions.apiextensions.crossplane.io           2025-03-05T23:42:05Z
compositions.apiextensions.crossplane.io                   2025-03-05T23:42:05Z
configurationrevisions.pkg.crossplane.io                   2025-03-05T23:42:05Z
configurations.pkg.crossplane.io                           2025-03-05T23:42:05Z
controllerconfigs.pkg.crossplane.io                        2025-03-05T23:42:05Z
deploymentruntimeconfigs.pkg.crossplane.io                 2025-03-05T23:42:06Z
environmentconfigs.apiextensions.crossplane.io             2025-03-05T23:42:05Z
functionrevisions.pkg.crossplane.io                        2025-03-05T23:42:06Z
functions.pkg.crossplane.io                                2025-03-05T23:42:06Z
imageconfigs.pkg.crossplane.io                             2025-03-05T23:42:06Z
locks.pkg.crossplane.io                                    2025-03-05T23:42:06Z
providerrevisions.pkg.crossplane.io                        2025-03-05T23:42:06Z
providers.pkg.crossplane.io                                2025-03-05T23:42:06Z
storeconfigs.secrets.crossplane.io                         2025-03-05T23:42:06Z
usages.apiextensions.crossplane.io                         2025-03-05T23:42:05Z

I proceeded through the step where you create a Kubernetes secret with the contents of the service account key file, and had no problems with that.

But then, when I tried creating the ProviderConfig, it said there was no CRD matched (makes sense).

cat <<EOF | kubectl apply -f -
apiVersion: gcp.upbound.io/v1beta1
kind: ProviderConfig
metadata:
  name: default
spec:
  projectID: crossplane-test-452823 
  credentials:
    source: Secret
    secretRef:
      namespace: crossplane-system
      name: gcp-secret
      key: creds
EOF

So I wasn't able to progress further.

I checked the pod logs of the two pods in the crossplane-system namespace and didn't see anything alarming.

$ k logs crossplane-654d5644f4-4x9cg -n crossplane-system
Defaulted container "crossplane" out of: crossplane, crossplane-init (init)
{"level":"info","ts":"2025-03-05T23:42:10Z","logger":"crossplane","msg":"Beta feature enabled","flag":"EnableBetaCompositionWebhookSchemaValidation"}
{"level":"info","ts":"2025-03-05T23:42:10Z","logger":"crossplane","msg":"Beta feature enabled","flag":"EnableBetaUsages"}
{"level":"info","ts":"2025-03-05T23:42:10Z","logger":"crossplane","msg":"Beta feature enabled","flag":"EnableBetaDeploymentRuntimeConfigs"}
{"level":"info","ts":"2025-03-05T23:42:10Z","logger":"crossplane","msg":"Beta feature enabled","flag":"EnableBetaClaimSSA"}
Warning: ControllerConfig.pkg.crossplane.io/v1alpha1 is deprecated. Use DeploymentRuntimeConfig from pkg.crossplane.io/v1beta1 instead.
$ k logs crossplane-rbac-manager-59d8fcb968-rcqhc -n crossplane-system
Defaulted container "crossplane" out of: crossplane, crossplane-init (init)

Is there a step I missed or some prerequisite I didn't fulfill? Thanks!

More info:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04.2 LTS
Release:        24.04
Codename:       noble
$ kubectl version
Client Version: v1.31.4
Kustomize Version: v5.4.2
Server Version: v1.32.2
$ kind version
kind v0.27.0 go1.23.6 linux/amd64
$ helm version
version.BuildInfo{Version:"v3.17.0", GitCommit:"301108edc7ac2a8ba79e4ebf5701b0b6ce6a31e4", GitTreeState:"clean", GoVersion:"go1.23.4"}

URL: https://docs.crossplane.io/latest/getting-started/provider-gcp/

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions