diff --git a/content/master/composition/compositions.md b/content/master/composition/compositions.md index ec67327b3..44ba790ff 100644 --- a/content/master/composition/compositions.md +++ b/content/master/composition/compositions.md @@ -344,19 +344,20 @@ learn how to install and use the Crossplane CLI. {{< /hint >}} {{}} -Running `crossplane render` requires [Docker](https://www.docker.com). +Running `crossplane composition render` requires +[Docker](https://www.docker.com). {{< /hint >}} Provide a composite resource, composition and composition functions to render the output locally. ```shell -crossplane render xr.yaml composition.yaml functions.yaml +crossplane composition render xr.yaml composition.yaml functions.yaml ``` -`crossplane render` prints resources as YAML to stdout. It prints the -composite resource first, followed by the resources the composition functions -created. +`crossplane composition render` prints resources as YAML to stdout. It prints +the composite resource first, followed by the resources the composition +functions created. ```yaml --- @@ -387,8 +388,8 @@ spec: {{}} -You can recreate the output below by running `crossplane render` with -these files. +You can recreate the output below by running `crossplane composition render` +with these files. The `xr.yaml` file contains the composite resource to render: @@ -451,7 +452,8 @@ Crossplane CLI runs a function by adding an annotation in `functions.yaml`. Add the `render.crossplane.io/runtime` annotation to a Function to change how it's run. -`crossplane render` supports two `render.crossplane.io/runtime` values: +`crossplane composition render` supports two `render.crossplane.io/runtime` +values: * `Docker` (the default) connects to Docker Engine. It uses Docker to pull and run a function runtime. @@ -482,8 +484,8 @@ Use the `Development` runtime when you function end-to-end. {{}} -`crossplane render` also supports the following Function annotations. These -annotations affect how it runs Functions: +`crossplane composition render` also supports the following Function +annotations. These annotations affect how it runs Functions: * `render.crossplane.io/runtime-docker-cleanup` - When using the `Docker` runtime this annotation specifies whether the CLI should stop the function @@ -497,6 +499,21 @@ the container, and `Orphan`, to leave it running. running at the specified target. It uses [gRPC target syntax](https://github.com/grpc/grpc/blob/v1.59.1/doc/naming.md). +{{}} +The `crossplane composition render` CLI command runs the `crossplane internal +render` command from the Crossplane controller binary. By default, it runs the +latest stable version of Crossplane in a Docker container so that you don't need +to download the controller binary. + +You can use the following flags to render using a different Crossplane version: + +* `--crossplane-version` to run a different Crossplane version in Docker. +* `--crossplane-image` to select an arbitrary Crossplane Docker image (for + example, from a local mirror). +* `--crossplane-binary` to provide an arbitrary Crossplane controller binary + (for example, to test local changes to Crossplane). +{{}} + ## Verify a composition View all available Compositions with `kubectl get composition`. diff --git a/content/master/guides/write-a-composition-function-in-go.md b/content/master/guides/write-a-composition-function-in-go.md index baf261813..f765612c8 100644 --- a/content/master/guides/write-a-composition-function-in-go.md +++ b/content/master/guides/write-a-composition-function-in-go.md @@ -449,8 +449,8 @@ for the SDK. ## Test the function end-to-end -Test your function by adding unit tests, and by using the `crossplane render` -command. +Test your function by adding unit tests, and by using the `crossplane +composition render` command. Go has rich support for unit testing. When you initialize a function from the template it adds some unit tests to `fn_test.go`. These tests follow Go's @@ -617,8 +617,8 @@ Expand the following block to see example files. {{}} -You can recreate the output below using by running `crossplane render` with -these files. +You can recreate the output below using by running `crossplane composition +render` with these files. The `xr.yaml` file contains the composite resource to render: @@ -677,9 +677,9 @@ spec: The Function in `functions.yaml` uses the {{}}Development{{}} -runtime. This tells `crossplane render` that your function is running -locally. It connects to your locally running function instead of using Docker to -pull and run the function. +runtime. This tells `crossplane composition render` that your function is +running locally. It connects to your locally running function instead of using +Docker to pull and run the function. ```yaml {label="development"} apiVersion: pkg.crossplane.io/v1 @@ -702,10 +702,10 @@ to run without encryption or authentication. Only use it during testing and development. {{}} -In a separate terminal, run `crossplane render`. +In a separate terminal, run `crossplane composition render`. ```shell -crossplane render xr.yaml composition.yaml functions.yaml +crossplane composition render xr.yaml composition.yaml functions.yaml ``` This command calls your function. In the terminal where your function is running @@ -717,8 +717,8 @@ go run . --insecure --debug 2023-10-31T16:17:32.159-0700 INFO function-xbuckets/fn.go:125 Added desired buckets {"xr-version": "example.crossplane.io/v1", "xr-kind": "XBuckets", "xr-name": "example-buckets", "region": "us-east-2", "count": 3} ``` -The `crossplane render` command prints the desired resources the function -returns. +The `crossplane composition render` command prints the desired resources the +function returns. ```yaml --- diff --git a/content/master/guides/write-a-composition-function-in-python.md b/content/master/guides/write-a-composition-function-in-python.md index bb4e102c8..ae570b96d 100644 --- a/content/master/guides/write-a-composition-function-in-python.md +++ b/content/master/guides/write-a-composition-function-in-python.md @@ -335,8 +335,8 @@ for further details. ## Test the function end-to-end -Test your function by adding unit tests, and by using the `crossplane render` -command. +Test your function by adding unit tests, and by using the `crossplane +composition render` command. When you initialize a function from the template it adds some unit tests to `tests/test_fn.py`. These tests use the @@ -479,8 +479,8 @@ Expand the following block to see example files. {{}} -You can recreate the output below using by running `crossplane render` with -these files. +You can recreate the output below using by running `crossplane composition +render` with these files. The `xr.yaml` file contains the composite resource to render: @@ -537,11 +537,10 @@ spec: ``` {{}} -The Function in `functions.yaml` uses the -{{}}Development{{}} -runtime. This tells `crossplane render` that your function is running -locally. It connects to your locally running function instead of using Docker to -pull and run the function. +The Function in `functions.yaml` uses the {{}}Development{{}} runtime. This tells `crossplane composition +render` that your function is running locally. It connects to your locally +running function instead of using Docker to pull and run the function. ```yaml {label="development"} apiVersion: pkg.crossplane.io/v1 @@ -563,10 +562,10 @@ hatch run development Only use it during testing and development. {{}} -In a separate terminal, run `crossplane render`. +In a separate terminal, run `crossplane composition render`. ```shell -crossplane render xr.yaml composition.yaml functions.yaml +crossplane composition render xr.yaml composition.yaml functions.yaml ``` This command calls your function. In the terminal where your function is running @@ -578,8 +577,8 @@ hatch run development 2024-01-11T22:12:58.153792Z [info ] Added desired buckets count=3 filename=fn.py lineno=68 region=us-east-2 tag= ``` -The `crossplane render` command prints the desired resources the function -returns. +The `crossplane composition render` command prints the desired resources the +function returns. ```yaml --- diff --git a/content/master/operations/operation.md b/content/master/operations/operation.md index f4a66ed46..c5767387f 100644 --- a/content/master/operations/operation.md +++ b/content/master/operations/operation.md @@ -524,17 +524,23 @@ learn how to install and use the Crossplane CLI. {{< /hint >}} {{}} -Running `crossplane alpha render op` requires [Docker](https://www.docker.com). +The CLI hides alpha commands, including `crossplane operation render`, by +default. Run `crossplane config set features.enableAlpha true` to make it +visible. +{{< /hint >}} + +{{}} +Running `crossplane operation render` requires [Docker](https://www.docker.com). {{< /hint >}} Provide an operation, composition functions, and any required resources to render the output locally. ```shell -crossplane alpha render op operation.yaml functions.yaml --required-resources=ingress.yaml +crossplane operation render operation.yaml functions.yaml --required-resources=ingress.yaml ``` -`crossplane alpha render op` prints the Operation status and any resources the +`crossplane operation render` prints the Operation status and any resources the operation functions created or modified. It shows what would happen if you applied the Operation to a cluster. @@ -578,17 +584,17 @@ need access to. You can specify multiple files or use glob patterns: ```shell # Multiple specific files -crossplane alpha render op operation.yaml functions.yaml \ +crossplane operation render operation.yaml functions.yaml \ --required-resources=deployment.yaml,service.yaml,configmap.yaml # Glob pattern for all YAML files in a directory -crossplane alpha render op operation.yaml functions.yaml \ +crossplane operation render operation.yaml functions.yaml \ --required-resources="resources/*.yaml" ``` {{}} -Use the `crossplane alpha render op` command to test your Operations locally -before deploying them to a cluster. The command helps validate function logic +Use the `crossplane operation render` command to test your Operations locally +before deploying them to a cluster. The command helps validate function logic and required resource access patterns. {{}}