Skip to content

feature flags set example is out of date #1098

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions