Skip to content

feature flags set example is out of date #1098

@felipefrocha

Description

@felipefrocha

URL: https://docs.crossplane.io/latest/get-started/install/

The readme page is lead to a non working state.
Using a local kind following the steps in the install:

$ helm repo add crossplane-stable https://charts.crossplane.io/stable
$ helm upgrade --install crossplane \
  --namespace crossplane-system \
  --create-namespace crossplane-stable/crossplane \
  --set args='{"--enable-composition-functions","--enable-composition-webhook-schema-validation"}'
$ k get po -n crossplane-syste

$ docker pull xpkg.crossplane.io/crossplane/crossplane:v2.3.1
$ docker pull xpkg.crossplane.io/crossplane/crossplane:v2.3.1
Image

When removing the wrong flags:

$ helm upgrade --install crossplane \
  --namespace crossplane-system \
  --create-namespace crossplane-stable/crossplane

Release "crossplane" does not exist. Installing it now.
NAME: crossplane
LAST DEPLOYED: Tue May 26 11:12:18 2026
NAMESPACE: crossplane-system
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
NOTES:
Release: crossplane

Chart Name: crossplane
Chart Description: Crossplane is an open source Kubernetes add-on that enables platform teams to assemble infrastructure from multiple vendors, and expose higher level self-service APIs for application teams to consume.
Chart Version: 2.3.1
Chart Application Version: 2.3.1

Kube Version: v1.35.1
$ kgp
NAME                                       READY   STATUS    RESTARTS   AGE
crossplane-5f4c664688-7t4tw                1/1     Running   0          11s
crossplane-rbac-manager-759c79fbb9-r5w2n   1/1     Running   0          11s
$ kl -f crossplane-5f4c664688-7t4tw
Defaulted container "crossplane" out of: crossplane, crossplane-init (init)
{"level":"info","ts":"2026-05-26T15:12:21Z","logger":"crossplane","msg":"Beta feature enabled","flag":"EnableBetaUsages"}
{"level":"info","ts":"2026-05-26T15:12:21Z","logger":"crossplane","msg":"Beta feature enabled","flag":"EnableBetaRealtimeCompositions"}
{"level":"info","ts":"2026-05-26T15:12:21Z","logger":"crossplane","msg":"Beta feature enabled","flag":"EnableBetaCustomToManagedResourceConversion"}
{"level":"info","ts":"2026-05-26T15:12:21Z","logger":"crossplane","msg":"Beta feature enabled","flag":"EnableBetaDeploymentRuntimeConfigs"}
{"level":"info","ts":"2026-05-26T15:12:21Z","logger":"crossplane","msg":"Beta feature enabled","flag":"EnableBetaClaimSSA"}
{"level":"info","ts":"2026-05-26T15:12:21Z","logger":"crossplane","msg":"Package Runtime for Provider: Deployment"}
{"level":"info","ts":"2026-05-26T15:12:21Z","logger":"crossplane","msg":"Package Runtime for Function: Deployment"}
Warning: apiextensions.crossplane.io Usage is deprecated; migrate to protection.crossplane.io Usage or ClusterUsage
Warning: CompositeResourceDefinition v1 is deprecated and will be removed in a future release; consider migrating to v2

last two lines for me are intriguing

Then I had the problem of not having the crds in the example of getting started, without any reference of the CRD installation.

$ cat sample-app.yaml
apiVersion: example.crossplane.io/v1
kind: App
metadata:
  namespace: default
  name: my-app
spec:
  image: nginx
status:
  replicas: 2  # Copied from the Deployment's status
  address: 10.0.0.1  # Copied from the Service's status

$ k apply -f sample-app.yaml
error: resource mapping not found for name: "my-app" namespace: "default" from "sample-app.yaml": no matches for kind "App" in version "example.crossplane.io/v1"
ensure CRDs are installed first

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions