diff --git a/content/master/cli/command-reference.md b/content/master/cli/command-reference.md index 8a9258d3..e621a0c5 100644 --- a/content/master/cli/command-reference.md +++ b/content/master/cli/command-reference.md @@ -78,7 +78,7 @@ metadata: status: bucketRegion: us-east-2 --- -apiVersion: s3.aws.upbound.io/v1beta1 +apiVersion: s3.aws.m.upbound.io/v1beta1 kind: Bucket metadata: annotations: @@ -86,6 +86,7 @@ metadata: generateName: test-xrender- labels: crossplane.io/composite: test-xrender + namespace: default ownerReferences: - apiVersion: nopexample.org/v1 blockOwnerDeletion: true @@ -343,7 +344,7 @@ The `` is either a `configuration`, `function` or `provider`. For example, to install the latest version of the [AWS S3 provider](https://github.com/crossplane-contrib/provider-upjet-aws): -`crossplane xpkg install provider xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v1.21.1` +`crossplane xpkg install provider xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0` #### Flags {{< table "table table-sm table-striped">}} @@ -522,7 +523,7 @@ already installed in Crossplane. For example, to update to the latest version of the [AWS S3 provider](https://github.com/crossplane-contrib/provider-upjet-aws): -`crossplane xpkg update provider xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v1.21.1` +`crossplane xpkg update provider xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0` @@ -746,52 +747,52 @@ Configuration/platform-ref-aws ├─ ConfigurationRevision/platform-ref-aws-9ad7b5db2899 v0.9.0 - True Active HealthyPackageRevision ├─ Configuration/upbound-configuration-aws-network v0.7.0 True True - HealthyPackageRevision │ ├─ ConfigurationRevision/upbound-configuration-aws-network-97be9100cfe1 v0.7.0 - True Active HealthyPackageRevision -│ ├─ Provider/upbound-provider-aws-ec2 v0.47.0 True True - HealthyPackageRevision -│ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v0.47.0 - True Active HealthyPackageRevision -│ │ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision -│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active HealthyPackageRevision +│ ├─ Provider/upbound-provider-aws-ec2 v2.0.0 True True - HealthyPackageRevision +│ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v2.0.0 - True Active HealthyPackageRevision +│ │ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision +│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v2.0.0 - True Active HealthyPackageRevision │ └─ Function/upbound-function-patch-and-transform v0.2.1 True True - HealthyPackageRevision │ └─ FunctionRevision/upbound-function-patch-and-transform-a2f88f8d8715 v0.2.1 - True Active HealthyPackageRevision ├─ Configuration/upbound-configuration-aws-database v0.5.0 True True - HealthyPackageRevision │ ├─ ConfigurationRevision/upbound-configuration-aws-database-3112f0a765c5 v0.5.0 - True Active HealthyPackageRevision -│ ├─ Provider/upbound-provider-aws-rds v0.47.0 True True - HealthyPackageRevision -│ │ ├─ ProviderRevision/upbound-provider-aws-rds-58f96aa9fc4b v0.47.0 - True Active HealthyPackageRevision -│ │ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision -│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active HealthyPackageRevision +│ ├─ Provider/upbound-provider-aws-rds v2.0.0 True True - HealthyPackageRevision +│ │ ├─ ProviderRevision/upbound-provider-aws-rds-58f96aa9fc4b v2.0.0 - True Active HealthyPackageRevision +│ │ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision +│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v2.0.0 - True Active HealthyPackageRevision │ └─ Configuration/upbound-configuration-aws-network v0.7.0 True True - HealthyPackageRevision │ ├─ ConfigurationRevision/upbound-configuration-aws-network-97be9100cfe1 v0.7.0 - True Active HealthyPackageRevision -│ ├─ Provider/upbound-provider-aws-ec2 v0.47.0 True True - HealthyPackageRevision -│ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v0.47.0 - True Active HealthyPackageRevision -│ │ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision -│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active HealthyPackageRevision +│ ├─ Provider/upbound-provider-aws-ec2 v2.0.0 True True - HealthyPackageRevision +│ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v2.0.0 - True Active HealthyPackageRevision +│ │ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision +│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v2.0.0 - True Active HealthyPackageRevision │ └─ Function/upbound-function-patch-and-transform v0.2.1 True True - HealthyPackageRevision │ └─ FunctionRevision/upbound-function-patch-and-transform-a2f88f8d8715 v0.2.1 - True Active HealthyPackageRevision ├─ Configuration/upbound-configuration-aws-eks v0.5.0 True True - HealthyPackageRevision │ ├─ ConfigurationRevision/upbound-configuration-aws-eks-83c9d65f4a47 v0.5.0 - True Active HealthyPackageRevision │ ├─ Configuration/upbound-configuration-aws-network v0.7.0 True True - HealthyPackageRevision │ │ ├─ ConfigurationRevision/upbound-configuration-aws-network-97be9100cfe1 v0.7.0 - True Active HealthyPackageRevision -│ │ ├─ Provider/upbound-provider-aws-ec2 v0.47.0 True True - HealthyPackageRevision -│ │ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v0.47.0 - True Active HealthyPackageRevision -│ │ │ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision -│ │ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active HealthyPackageRevision +│ │ ├─ Provider/upbound-provider-aws-ec2 v2.0.0 True True - HealthyPackageRevision +│ │ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v2.0.0 - True Active HealthyPackageRevision +│ │ │ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision +│ │ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v2.0.0 - True Active HealthyPackageRevision │ │ └─ Function/upbound-function-patch-and-transform v0.2.1 True True - HealthyPackageRevision │ │ └─ FunctionRevision/upbound-function-patch-and-transform-a2f88f8d8715 v0.2.1 - True Active HealthyPackageRevision │ ├─ Provider/crossplane-contrib-provider-helm v0.16.0 True True - HealthyPackageRevision │ │ └─ ProviderRevision/crossplane-contrib-provider-helm-b4cc4c2c8db3 v0.16.0 - True Active HealthyPackageRevision │ ├─ Provider/crossplane-contrib-provider-kubernetes v0.10.0 True True - HealthyPackageRevision │ │ └─ ProviderRevision/crossplane-contrib-provider-kubernetes-63506a3443e0 v0.10.0 - True Active HealthyPackageRevision -│ ├─ Provider/upbound-provider-aws-ec2 v0.47.0 True True - HealthyPackageRevision -│ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v0.47.0 - True Active HealthyPackageRevision -│ │ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision -│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active HealthyPackageRevision -│ ├─ Provider/upbound-provider-aws-eks v0.47.0 True True - HealthyPackageRevision -│ │ ├─ ProviderRevision/upbound-provider-aws-eks-641a096d79d8 v0.47.0 - True Active HealthyPackageRevision -│ │ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision -│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active HealthyPackageRevision -│ ├─ Provider/upbound-provider-aws-iam v0.47.0 True True - HealthyPackageRevision -│ │ ├─ ProviderRevision/upbound-provider-aws-iam-438eac423037 v0.47.0 - True Active HealthyPackageRevision -│ │ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision -│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active HealthyPackageRevision +│ ├─ Provider/upbound-provider-aws-ec2 v2.0.0 True True - HealthyPackageRevision +│ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v2.0.0 - True Active HealthyPackageRevision +│ │ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision +│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v2.0.0 - True Active HealthyPackageRevision +│ ├─ Provider/upbound-provider-aws-eks v2.0.0 True True - HealthyPackageRevision +│ │ ├─ ProviderRevision/upbound-provider-aws-eks-641a096d79d8 v2.0.0 - True Active HealthyPackageRevision +│ │ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision +│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v2.0.0 - True Active HealthyPackageRevision +│ ├─ Provider/upbound-provider-aws-iam v2.0.0 True True - HealthyPackageRevision +│ │ ├─ ProviderRevision/upbound-provider-aws-iam-438eac423037 v2.0.0 - True Active HealthyPackageRevision +│ │ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision +│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v2.0.0 - True Active HealthyPackageRevision │ └─ Function/upbound-function-patch-and-transform v0.2.1 True True - HealthyPackageRevision │ └─ FunctionRevision/upbound-function-patch-and-transform-a2f88f8d8715 v0.2.1 - True Active HealthyPackageRevision ├─ Configuration/upbound-configuration-app v0.2.0 True True - HealthyPackageRevision @@ -841,10 +842,10 @@ Configuration/platform-ref-aws ├─ ConfigurationRevision/platform-ref-aws-9ad7b5db2899 v0.9.0 - True Active HealthyPackageRevision ├─ Configuration/upbound-configuration-aws-network v0.2.0 True True - HealthyPackageRevision │ ├─ ConfigurationRevision/upbound-configuration-aws-network-288fcd1b88dd v0.2.0 - True Active HealthyPackageRevision -│ └─ Provider/upbound-provider-aws-ec2 v1.0.0 True True - HealthyPackageRevision -│ ├─ ProviderRevision/upbound-provider-aws-ec2-5cfd948d082f v1.0.0 - True Active HealthyPackageRevision -│ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision -│ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active HealthyPackageRevision +│ └─ Provider/upbound-provider-aws-ec2 v2.0.0 True True - HealthyPackageRevision +│ ├─ ProviderRevision/upbound-provider-aws-ec2-5cfd948d082f v2.0.0 - True Active HealthyPackageRevision +│ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision +│ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v2.0.0 - True Active HealthyPackageRevision # Removed for brevity ``` @@ -855,8 +856,8 @@ crossplane beta trace configuration platform-ref-aws --show-package-revisions no NAME VERSION INSTALLED HEALTHY STATE STATUS Configuration/platform-ref-aws v0.9.0 True True - HealthyPackageRevision ├─ Configuration/upbound-configuration-aws-network v0.2.0 True True - HealthyPackageRevision -│ └─ Provider/upbound-provider-aws-ec2 v1.0.0 True True - HealthyPackageRevision -│ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision +│ └─ Provider/upbound-provider-aws-ec2 v2.0.0 True True - HealthyPackageRevision +│ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision # Removed for brevity ``` @@ -936,9 +937,9 @@ provider manifests of the resources to validate. apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: - name: provider-aws-iam + name: crossplane-contrib-provider-aws-iam spec: - package: xpkg.crossplane.io/crossplane-contrib/provider-aws-iam:v1.21.1 + package: xpkg.crossplane.io/crossplane-contrib/provider-aws-iam:v2.0.0 ``` Now include the XR or managed resource to validate. @@ -948,9 +949,10 @@ For example, to validate an provide a managed resource YAML file. ```yaml {label="iamAK"} -apiVersion: iam.aws.upbound.io/v1beta1 +apiVersion: iam.aws.m.upbound.io/v1beta1 kind: AccessKey metadata: + namespace: default name: sample-access-key-0 spec: forProvider: @@ -964,7 +966,7 @@ resource YAML files as input. ```shell crossplane beta validate provider.yaml managedResource.yaml -[✓] iam.aws.upbound.io/v1beta1, Kind=AccessKey, sample-access-key-0 validated successfully +[✓] iam.aws.m.upbound.io/v1beta1, Kind=AccessKey, sample-access-key-0 validated successfully Total 1 resources: 0 missing schemas, 1 success case, 0 failure cases ``` @@ -982,10 +984,10 @@ option with `crossplane beta validate` to pipe the output from crossplane render xr.yaml composition.yaml function.yaml --include-full-xr | crossplane beta validate schemas.yaml - [x] schema validation error example.crossplane.io/v1beta1, Kind=XR, example : status.conditions[0].lastTransitionTime: Invalid value: "null": status.conditions[0].lastTransitionTime in body must be of type string: "null" [x] schema validation error example.crossplane.io/v1beta1, Kind=XR, example : spec: Required value -[✓] iam.aws.upbound.io/v1beta1, Kind=AccessKey, sample-access-key-0 validated successfully -[✓] iam.aws.upbound.io/v1beta1, Kind=AccessKey, sample-access-key-1 validated successfully -[✓] iam.aws.upbound.io/v1beta1, Kind=User, test-user-0 validated successfully -[✓] iam.aws.upbound.io/v1beta1, Kind=User, test-user-1 validated successfully +[✓] iam.aws.m.upbound.io/v1beta1, Kind=AccessKey, sample-access-key-0 validated successfully +[✓] iam.aws.m.upbound.io/v1beta1, Kind=AccessKey, sample-access-key-1 validated successfully +[✓] iam.aws.m.upbound.io/v1beta1, Kind=User, test-user-0 validated successfully +[✓] iam.aws.m.upbound.io/v1beta1, Kind=User, test-user-1 validated successfully Total 5 resources: 0 missing schemas, 4 success cases, 1 failure cases ``` @@ -1082,10 +1084,10 @@ Provide the directory name and a resource YAML file to the crossplane beta validate schema resources.yaml [x] schema validation error example.crossplane.io/v1beta1, Kind=XR, example : status.conditions[0].lastTransitionTime: Invalid value: "null": status.conditions[0].lastTransitionTime in body must be of type string: "null" [x] CEL validation error example.crossplane.io/v1beta1, Kind=XR, example : spec: Invalid value: "object": no such key: minReplicas evaluating rule: replicas should be greater than or equal to minReplicas. -[✓] iam.aws.upbound.io/v1beta1, Kind=AccessKey, sample-access-key-0 validated successfully -[✓] iam.aws.upbound.io/v1beta1, Kind=AccessKey, sample-access-key-1 validated successfully -[✓] iam.aws.upbound.io/v1beta1, Kind=User, test-user-0 validated successfully -[✓] iam.aws.upbound.io/v1beta1, Kind=User, test-user-1 validated successfully +[✓] iam.aws.m.upbound.io/v1beta1, Kind=AccessKey, sample-access-key-0 validated successfully +[✓] iam.aws.m.upbound.io/v1beta1, Kind=AccessKey, sample-access-key-1 validated successfully +[✓] iam.aws.m.upbound.io/v1beta1, Kind=User, test-user-0 validated successfully +[✓] iam.aws.m.upbound.io/v1beta1, Kind=User, test-user-1 validated successfully Total 5 resources: 0 missing schemas, 4 success cases, 1 failure cases ``` diff --git a/content/master/get-started/get-started-with-managed-resources.md b/content/master/get-started/get-started-with-managed-resources.md index 40c3f9f4..5f18d35b 100644 --- a/content/master/get-started/get-started-with-managed-resources.md +++ b/content/master/get-started/get-started-with-managed-resources.md @@ -36,14 +36,6 @@ This guide requires: * An AWS account with permissions to create an S3 storage bucket * AWS [access keys](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds) -{{}} -AWS managed resources fully support Crossplane v2. - - -Maintainers are actively working to update managed resources for other systems including Azure, -GCP, Terraform, Helm, GitHub, etc to support Crossplane v2. - -{{}} ## Install support for the managed resource @@ -151,11 +143,11 @@ customizes the settings of the AWS Provider. All providers need a configuration to tell them where to load credentials. -Create this provider configuration: +Create this cluster-wide provider configuration: ```yaml {label="providerconfig",copy-lines="all"} -apiVersion: aws.upbound.io/v1beta1 -kind: ProviderConfig +apiVersion: aws.m.upbound.io/v1beta1 +kind: ClusterProviderConfig metadata: name: default spec: @@ -176,6 +168,15 @@ kubectl apply -f providerconfig.yaml This tells the provider to load credentials from [the secret](#save-the-providers-credentials). +{{}} +This example uses a `ClusterProviderConfig` that applies to managed resources +across all namespaces. + +You can also use a namespaced `ProviderConfig` that only applies to managed +resources in a specific namespace. See the [`providerConfigRef`]({{}}) +section in the managed resources docs for more details. +{{}} + ## Use the managed resource {{}} diff --git a/content/master/guides/troubleshoot-crossplane.md b/content/master/guides/troubleshoot-crossplane.md index 62c3ad06..f36f9623 100644 --- a/content/master/guides/troubleshoot-crossplane.md +++ b/content/master/guides/troubleshoot-crossplane.md @@ -6,7 +6,7 @@ weight: 306 If you use the Crossplane CLI to install a `Provider` or `Configuration` (for example, `crossplane xpkg install provider -xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v1.21.1`) and get `the server +xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0`) and get `the server could not find the requested resource` error, more often than not, that's an indicator that your Crossplane CLI needs updating. In other words Crossplane graduated some API from alpha to beta or stable and the old @@ -105,9 +105,9 @@ spec: apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: - name: provider-aws + name: crossplane-contrib-provider-aws-s3 spec: - package: xpkg.crossplane.io/crossplane-contrib/provider-aws:v0.33.0 + package: xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0 runtimeConfigRef: apiVersion: pkg.crossplane.io/v1beta1 kind: DeploymentRuntimeConfig @@ -156,9 +156,9 @@ spec: apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: - name: provider-aws + name: crossplane-contrib-provider-aws-s3 spec: - package: xpkg.crossplane.io/crossplane-contrib/provider-aws:v0.33.0 + package: xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0 runtimeConfigRef: apiVersion: pkg.crossplane.io/v1beta1 kind: DeploymentRuntimeConfig diff --git a/content/master/guides/uninstall-crossplane.md b/content/master/guides/uninstall-crossplane.md index 79a8a3e5..e4d17769 100644 --- a/content/master/guides/uninstall-crossplane.md +++ b/content/master/guides/uninstall-crossplane.md @@ -38,55 +38,55 @@ command may take minutes to return. ```shell {copy-lines="1"} kubectl get managed NAME READY SYNCED EXTERNAL-NAME AGE -securitygroup.ec2.aws.upbound.io/my-db-7mc7h-j84h8 True True sg-0da6e9c29113596b6 3m1s -securitygroup.ec2.aws.upbound.io/my-db-8bhr2-9wsx9 True True sg-02695166f010ec05b 2m26s +securitygroup.ec2.aws.m.upbound.io/my-db-7mc7h-j84h8 True True sg-0da6e9c29113596b6 3m1s +securitygroup.ec2.aws.m.upbound.io/my-db-8bhr2-9wsx9 True True sg-02695166f010ec05b 2m26s NAME READY SYNCED EXTERNAL-NAME AGE -route.ec2.aws.upbound.io/my-db-7mc7h-vw985 True True r-rtb-05822b8df433e4e2b1080289494 3m1s -route.ec2.aws.upbound.io/my-db-8bhr2-7m2wq False True 2m26s +route.ec2.aws.m.upbound.io/my-db-7mc7h-vw985 True True r-rtb-05822b8df433e4e2b1080289494 3m1s +route.ec2.aws.m.upbound.io/my-db-8bhr2-7m2wq False True 2m26s NAME READY SYNCED EXTERNAL-NAME AGE -securitygrouprule.ec2.aws.upbound.io/my-db-7mc7h-mkd9s True True sgrule-778063708 3m1s -securitygrouprule.ec2.aws.upbound.io/my-db-8bhr2-lzr89 False True 2m26s +securitygrouprule.ec2.aws.m.upbound.io/my-db-7mc7h-mkd9s True True sgrule-778063708 3m1s +securitygrouprule.ec2.aws.m.upbound.io/my-db-8bhr2-lzr89 False True 2m26s NAME READY SYNCED EXTERNAL-NAME AGE -routetable.ec2.aws.upbound.io/my-db-7mc7h-mnqvm True True rtb-05822b8df433e4e2b 3m1s -routetable.ec2.aws.upbound.io/my-db-8bhr2-dfhj6 True True rtb-02e875abd25658254 2m26s +routetable.ec2.aws.m.upbound.io/my-db-7mc7h-mnqvm True True rtb-05822b8df433e4e2b 3m1s +routetable.ec2.aws.m.upbound.io/my-db-8bhr2-dfhj6 True True rtb-02e875abd25658254 2m26s NAME READY SYNCED EXTERNAL-NAME AGE -subnet.ec2.aws.upbound.io/my-db-7mc7h-7m49d True True subnet-0c1ab32c5ec129dd1 3m2s -subnet.ec2.aws.upbound.io/my-db-7mc7h-9t64t True True subnet-07075c17c7a72f79e 3m2s -subnet.ec2.aws.upbound.io/my-db-7mc7h-rs8t8 True True subnet-08e88e826a42e55b4 3m2s -subnet.ec2.aws.upbound.io/my-db-8bhr2-9sjpx True True subnet-05d21c7b52f7ac8ca 2m26s -subnet.ec2.aws.upbound.io/my-db-8bhr2-dvrxf True True subnet-0432310376b5d09de 2m26s -subnet.ec2.aws.upbound.io/my-db-8bhr2-t7dpr True True subnet-0080fdcb6e9b70632 2m26s +subnet.ec2.aws.m.upbound.io/my-db-7mc7h-7m49d True True subnet-0c1ab32c5ec129dd1 3m2s +subnet.ec2.aws.m.upbound.io/my-db-7mc7h-9t64t True True subnet-07075c17c7a72f79e 3m2s +subnet.ec2.aws.m.upbound.io/my-db-7mc7h-rs8t8 True True subnet-08e88e826a42e55b4 3m2s +subnet.ec2.aws.m.upbound.io/my-db-8bhr2-9sjpx True True subnet-05d21c7b52f7ac8ca 2m26s +subnet.ec2.aws.m.upbound.io/my-db-8bhr2-dvrxf True True subnet-0432310376b5d09de 2m26s +subnet.ec2.aws.m.upbound.io/my-db-8bhr2-t7dpr True True subnet-0080fdcb6e9b70632 2m26s NAME READY SYNCED EXTERNAL-NAME AGE -vpc.ec2.aws.upbound.io/my-db-7mc7h-ktbbh True True vpc-08d7dd84e0c12f33e 3m3s -vpc.ec2.aws.upbound.io/my-db-8bhr2-mrh2x True True vpc-06994bf323fc1daea 2m26s +vpc.ec2.aws.m.upbound.io/my-db-7mc7h-ktbbh True True vpc-08d7dd84e0c12f33e 3m3s +vpc.ec2.aws.m.upbound.io/my-db-8bhr2-mrh2x True True vpc-06994bf323fc1daea 2m26s NAME READY SYNCED EXTERNAL-NAME AGE -internetgateway.ec2.aws.upbound.io/my-db-7mc7h-s2x4v True True igw-0189c4da07a3142dc 3m1s -internetgateway.ec2.aws.upbound.io/my-db-8bhr2-q7dzl True True igw-01bf2a1dbbebf6a27 2m26s +internetgateway.ec2.aws.m.upbound.io/my-db-7mc7h-s2x4v True True igw-0189c4da07a3142dc 3m1s +internetgateway.ec2.aws.m.upbound.io/my-db-8bhr2-q7dzl True True igw-01bf2a1dbbebf6a27 2m26s NAME READY SYNCED EXTERNAL-NAME AGE -routetableassociation.ec2.aws.upbound.io/my-db-7mc7h-28qb4 True True rtbassoc-0718d680b5a0e68fe 3m1s -routetableassociation.ec2.aws.upbound.io/my-db-7mc7h-9hdlr True True rtbassoc-0faaedb88c6e1518c 3m1s -routetableassociation.ec2.aws.upbound.io/my-db-7mc7h-txhmz True True rtbassoc-0e5010724ca027864 3m1s -routetableassociation.ec2.aws.upbound.io/my-db-8bhr2-bvgkt False True 2m26s -routetableassociation.ec2.aws.upbound.io/my-db-8bhr2-d9gbg False True 2m26s -routetableassociation.ec2.aws.upbound.io/my-db-8bhr2-k6k8m False True 2m26s +routetableassociation.ec2.aws.m.upbound.io/my-db-7mc7h-28qb4 True True rtbassoc-0718d680b5a0e68fe 3m1s +routetableassociation.ec2.aws.m.upbound.io/my-db-7mc7h-9hdlr True True rtbassoc-0faaedb88c6e1518c 3m1s +routetableassociation.ec2.aws.m.upbound.io/my-db-7mc7h-txhmz True True rtbassoc-0e5010724ca027864 3m1s +routetableassociation.ec2.aws.m.upbound.io/my-db-8bhr2-bvgkt False True 2m26s +routetableassociation.ec2.aws.m.upbound.io/my-db-8bhr2-d9gbg False True 2m26s +routetableassociation.ec2.aws.m.upbound.io/my-db-8bhr2-k6k8m False True 2m26s NAME READY SYNCED EXTERNAL-NAME AGE -instance.rds.aws.upbound.io/my-db-7mc7h-5d6w4 False True my-db-7mc7h-5d6w4 3m1s -instance.rds.aws.upbound.io/my-db-8bhr2-tx9kf False True my-db-8bhr2-tx9kf 2m26s +instance.rds.aws.m.upbound.io/my-db-7mc7h-5d6w4 False True my-db-7mc7h-5d6w4 3m1s +instance.rds.aws.m.upbound.io/my-db-8bhr2-tx9kf False True my-db-8bhr2-tx9kf 2m26s NAME READY SYNCED EXTERNAL-NAME AGE -subnetgroup.rds.aws.upbound.io/my-db-7mc7h-8c8n9 True True my-db-7mc7h-8c8n9 3m2s -subnetgroup.rds.aws.upbound.io/my-db-8bhr2-mc5ps True True my-db-8bhr2-mc5ps 2m27s +subnetgroup.rds.aws.m.upbound.io/my-db-7mc7h-8c8n9 True True my-db-7mc7h-8c8n9 3m2s +subnetgroup.rds.aws.m.upbound.io/my-db-8bhr2-mc5ps True True my-db-8bhr2-mc5ps 2m27s NAME READY SYNCED EXTERNAL-NAME AGE -bucket.s3.aws.upbound.io/crossplane-bucket-867737b10 True True +bucket.s3.aws.m.upbound.io/crossplane-bucket-867737b10 True True crossplane-bucket-867737b10 5m26s ``` @@ -121,13 +121,13 @@ Use `kubectl get managed` to view remaining _managed resources_. ```shell {copy-lines="1"} kubectl get managed NAME READY SYNCED EXTERNAL-NAME AGE -bucket.s3.aws.upbound.io/crossplane-bucket-867737b10 True True crossplane-bucket-867737b10 8h +bucket.s3.aws.m.upbound.io/crossplane-bucket-867737b10 True True crossplane-bucket-867737b10 8h ``` Use `kubectl delete` to remove the resources. ```shell -kubectl delete bucket.s3.aws.upbound.io/crossplane-bucket-867737b10 +kubectl delete bucket.s3.aws.m.upbound.io/crossplane-bucket-867737b10 ``` @@ -139,7 +139,7 @@ List the installed _providers_ with `kubectl get providers`. ```shell {copy-lines="1"} kubectl get providers NAME INSTALLED HEALTHY PACKAGE AGE -crossplane-contrib-provider-aws True True xpkg.crossplane.io/crossplane-contrib/provider-aws:v1.21.1 8h +crossplane-contrib-provider-aws-s3 True True xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0 8h ``` Remove the installed _providers_ with `kubectl delete provider`. 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 77055fac..c40e415b 100644 --- a/content/master/guides/write-a-composition-function-in-go.md +++ b/content/master/guides/write-a-composition-function-in-go.md @@ -275,7 +275,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/utils/ptr" - "github.com/upbound/provider-aws/apis/s3/v1beta1" + "github.com/crossplane-contrib/provider-upjet-aws/apis/s3/v1beta1" "github.com/crossplane/function-sdk-go/errors" "github.com/crossplane/function-sdk-go/logging" @@ -432,7 +432,7 @@ using the same strongly typed structs Crossplane uses in its providers. You must get the AWS Provider Go module to use this type: ```shell -go get github.com/upbound/provider-aws@v1.14.0 +go get github.com/crossplane-contrib/provider-upjet-aws@v2.0.0 ``` Crossplane provides a @@ -528,7 +528,7 @@ func TestRunFunction(t *testing.T) { Desired: &fnv1.State{ Resources: map[string]*fnv1.Resource{ "xbuckets-test-bucket-a": {Resource: resource.MustStructJSON(`{ - "apiVersion": "s3.aws.upbound.io/v1beta1", + "apiVersion": "s3.aws.m.upbound.io/v1beta1", "kind": "Bucket", "metadata": { "annotations": { @@ -545,7 +545,7 @@ func TestRunFunction(t *testing.T) { } }`)}, "xbuckets-test-bucket-b": {Resource: resource.MustStructJSON(`{ - "apiVersion": "s3.aws.upbound.io/v1beta1", + "apiVersion": "s3.aws.m.upbound.io/v1beta1", "kind": "Bucket", "metadata": { "annotations": { @@ -727,7 +727,7 @@ kind: XBuckets metadata: name: example-buckets --- -apiVersion: s3.aws.upbound.io/v1beta1 +apiVersion: s3.aws.m.upbound.io/v1beta1 kind: Bucket metadata: annotations: @@ -742,7 +742,7 @@ spec: forProvider: region: us-east-2 --- -apiVersion: s3.aws.upbound.io/v1beta1 +apiVersion: s3.aws.m.upbound.io/v1beta1 kind: Bucket metadata: annotations: @@ -757,7 +757,7 @@ spec: forProvider: region: us-east-2 --- -apiVersion: s3.aws.upbound.io/v1beta1 +apiVersion: s3.aws.m.upbound.io/v1beta1 kind: Bucket metadata: annotations: 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 1d424a32..81b55876 100644 --- a/content/master/guides/write-a-composition-function-in-python.md +++ b/content/master/guides/write-a-composition-function-in-python.md @@ -187,7 +187,7 @@ async def RunFunction(self, req: fnv1.RunFunctionRequest, _: grpc.aio.ServicerCo for name in names: rsp.desired.resources[f"xbuckets-{name}"].resource.update( { - "apiVersion": "s3.aws.upbound.io/v1beta1", + "apiVersion": "s3.aws.m.upbound.io/v1beta1", "kind": "Bucket", "metadata": { "annotations": { @@ -261,7 +261,7 @@ class FunctionRunner(grpcv1.FunctionRunnerService): # https://protobuf.dev/reference/python/python-generated/#map-fields rsp.desired.resources[f"xbuckets-{name}"].resource.update( { - "apiVersion": "s3.aws.upbound.io/v1beta1", + "apiVersion": "s3.aws.m.upbound.io/v1beta1", "kind": "Bucket", "metadata": { "annotations": { @@ -399,7 +399,7 @@ class TestFunctionRunner(unittest.IsolatedAsyncioTestCase): "xbuckets-test-bucket-a": fnv1.Resource( resource=resource.dict_to_struct( { - "apiVersion": "s3.aws.upbound.io/v1beta1", + "apiVersion": "s3.aws.m.upbound.io/v1beta1", "kind": "Bucket", "metadata": { "annotations": { @@ -415,7 +415,7 @@ class TestFunctionRunner(unittest.IsolatedAsyncioTestCase): "xbuckets-test-bucket-b": fnv1.Resource( resource=resource.dict_to_struct( { - "apiVersion": "s3.aws.upbound.io/v1beta1", + "apiVersion": "s3.aws.m.upbound.io/v1beta1", "kind": "Bucket", "metadata": { "annotations": { @@ -588,7 +588,7 @@ kind: XBuckets metadata: name: example-buckets --- -apiVersion: s3.aws.upbound.io/v1beta1 +apiVersion: s3.aws.m.upbound.io/v1beta1 kind: Bucket metadata: annotations: @@ -603,7 +603,7 @@ spec: forProvider: region: us-east-2 --- -apiVersion: s3.aws.upbound.io/v1beta1 +apiVersion: s3.aws.m.upbound.io/v1beta1 kind: Bucket metadata: annotations: @@ -618,7 +618,7 @@ spec: forProvider: region: us-east-2 --- -apiVersion: s3.aws.upbound.io/v1beta1 +apiVersion: s3.aws.m.upbound.io/v1beta1 kind: Bucket metadata: annotations: diff --git a/content/master/managed-resources/managed-resources.md b/content/master/managed-resources/managed-resources.md index a6d8d520..cb797fe9 100644 --- a/content/master/managed-resources/managed-resources.md +++ b/content/master/managed-resources/managed-resources.md @@ -19,14 +19,6 @@ Examples of managed resources include: * Google Cloud GKE `Cluster` defined in [provider-upjet-gcp](https://github.com/crossplane-contrib/provider-upjet-gcp). * Microsoft Azure PostgreSQL `Database` defined in [provider-upjet-azure](https://github.com/crossplane-contrib/provider-upjet-azure). -{{}} -AWS managed resources fully support Crossplane v2. - - -Maintainers are actively working to update managed resources for other systems including Azure, -GCP, Terraform, Helm, GitHub, etc to support Crossplane v2. - -{{}} ## Managed resource fields @@ -194,7 +186,7 @@ resource that created the `InternetGateway`. Some providers don't support changing the fields of some managed resources after creation. For example, you can't change the `region` of an Amazon AWS -`RDSInstance`. These fields are _immutable fields_. Amazon requires you delete +RDS `Instance`. These fields are _immutable fields_. Amazon requires you delete and recreate the resource. Crossplane allows you to edit the immutable field of a managed resource, but @@ -281,12 +273,13 @@ spec: managementPolicies: ["Observe", "Create", "Update", "Delete"] initProvider: scalingConfig: - - desiredSize: 1 + desiredSize: 1 forProvider: region: us-west-1 + clusterName: my-cluster scalingConfig: - - maxSize: 4 - minSize: 1 + maxSize: 4 + minSize: 1 ``` @@ -385,16 +378,22 @@ This matches the {{}}name{{}} of a ProviderCo ```yaml {label="pcref",copy-lines="none"}} apiVersion: ec2.aws.m.upbound.io/v1beta1 kind: Instance +metadata: + namespace: default + name: my-instance spec: forProvider: # Removed for brevity - providerConfigRef: user-keys + providerConfigRef: + name: user-keys + kind: ProviderConfig ``` ```yaml {label="pc"} -apiVersion: aws.m.crossplane.io/v1beta1 +apiVersion: aws.m.upbound.io/v1beta1 kind: ProviderConfig metadata: + namespace: default name: user-keys # Removed for brevity ``` @@ -405,6 +404,52 @@ different managed resources to authenticate with different credentials to the same Provider. {{< /hint >}} +#### ProviderConfig types + +The AWS provider supports two types of ProviderConfig resources: + +**ProviderConfig** (namespace-scoped): +```yaml +# ProviderConfig - only applies to MRs in same namespace +apiVersion: aws.m.upbound.io/v1beta1 +kind: ProviderConfig +metadata: + namespace: default + name: my-config +``` + +**ClusterProviderConfig** (cluster-wide): +```yaml +# ClusterProviderConfig - applies to MRs across all namespaces +apiVersion: aws.m.upbound.io/v1beta1 +kind: ClusterProviderConfig +metadata: + name: my-cluster-config +``` + +When referencing any ProviderConfig, managed resources must specify both `name` and `kind`: +```yaml +spec: + providerConfigRef: + name: my-cluster-config + kind: ClusterProviderConfig +``` + +```yaml +spec: + providerConfigRef: + name: my-config + kind: ProviderConfig # References namespaced ProviderConfig +``` + +If you omit `providerConfigRef` entirely, it defaults to: +```yaml +spec: + providerConfigRef: + name: default + kind: ClusterProviderConfig +``` + ### writeConnectionSecretToRef @@ -416,7 +461,7 @@ Crossplane stores these details in a Kubernetes Secret object specified by the `writeConnectionSecretToRef` values. For example, when creating an AWS RDS database instance with the Crossplane -[community AWS provider](https://github.com/crossplane-contrib/provider-aws) +[AWS provider](https://github.com/crossplane-contrib/provider-upjet-aws) generates an endpoint, password, port and username data. The Provider saves these variables in the Kubernetes secret {{}}rds-secret{{}}, referenced by @@ -425,8 +470,8 @@ the field. ```yaml {label="secretname",copy-lines="none"} -apiVersion: database.aws.m.crossplane.io/v1beta1 -kind: RDSInstance +apiVersion: rds.aws.m.upbound.io/v1beta1 +kind: Instance metadata: namespace: default name: my-rds-instance @@ -483,15 +528,15 @@ the name `my-rds-instance` as an external resource inside the Provider's environment. ```yaml {label="external-name",copy-lines="none"} -apiVersion: database.aws.m.crossplane.io/v1beta1 -kind: RDSInstance +apiVersion: rds.aws.m.upbound.io/v1beta1 +kind: Instance metadata: namespace: default name: my-rds-instance ``` ```shell -kubectl get rdsinstance +kubectl get instance NAME READY SYNCED EXTERNAL-NAME AGE my-rds-instance True True my-rds-instance 11m ``` @@ -506,8 +551,8 @@ the name {{}}my-custom-name{{}} for the external resource inside AWS. ```yaml {label="custom-name",copy-lines="none"} -apiVersion: database.aws.m.crossplane.io/v1beta1 -kind: RDSInstance +apiVersion: rds.aws.m.upbound.io/v1beta1 +kind: Instance metadata: namespace: default name: my-rds-instance @@ -516,7 +561,7 @@ metadata: ``` ```shell {copy-lines="1"} -kubectl get rdsinstance +kubectl get instance NAME READY SYNCED EXTERNAL-NAME AGE my-rds-instance True True my-custom-name 11m ``` diff --git a/content/master/managed-resources/usages.md b/content/master/managed-resources/usages.md index 5e2acc70..c2944cb6 100644 --- a/content/master/managed-resources/usages.md +++ b/content/master/managed-resources/usages.md @@ -82,7 +82,7 @@ metadata: name: protect-production-database spec: of: - apiVersion: rds.m.aws.m.upbound.io/v1beta1 + apiVersion: rds.aws.m.upbound.io/v1beta1 kind: Instance resourceRef: name: my-database diff --git a/content/master/operations/watchoperation.md b/content/master/operations/watchoperation.md index 539530c1..1e8a651b 100644 --- a/content/master/operations/watchoperation.md +++ b/content/master/operations/watchoperation.md @@ -210,7 +210,7 @@ metadata: name: backup-on-deletion spec: watch: - apiVersion: rds.aws.crossplane.io/v1alpha1 + apiVersion: rds.aws.m.upbound.io/v1beta1 kind: Instance # Note: Watching for deletion requires function logic # to check deletion timestamp diff --git a/content/master/packages/providers.md b/content/master/packages/providers.md index 6814434f..32409b6f 100644 --- a/content/master/packages/providers.md +++ b/content/master/packages/providers.md @@ -16,7 +16,7 @@ logic for any external resources. Examples of providers include: -* [Provider AWS](https://github.com/upbound/provider-aws) +* [Provider AWS](https://github.com/crossplane-contrib/provider-upjet-aws) * [Provider Azure](https://github.com/upbound/provider-azure) * [Provider GCP](https://github.com/upbound/provider-gcp) * [Provider Kubernetes](https://github.com/crossplane-contrib/provider-kubernetes) @@ -52,15 +52,15 @@ registry with the `--registry` flag on the [Crossplane pod]({{}} For example, to install the -[AWS Community Provider](https://github.com/crossplane-contrib/provider-aws), +[AWS Provider](https://github.com/crossplane-contrib/provider-upjet-aws), ```yaml {label="install"} apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: - name: provider-aws + name: crossplane-contrib-provider-aws-s3-s3 spec: - package: xpkg.crossplane.io/crossplane-contrib/provider-aws:v0.39.0 + package: xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0 ``` By default, the Provider pod installs in the same namespace as Crossplane @@ -86,7 +86,7 @@ For information on the specification of Provider packages read the apiVersion: meta.pkg.crossplane.io/v1 kind: Provider metadata: - name: provider-aws + name: crossplane-contrib-provider-aws-s3 spec: # Removed for brevity ``` @@ -105,14 +105,14 @@ Use the {{}}--set provider.packages{{}} argument with `helm install`. -For example, to install the AWS Community Provider, +For example, to install the AWS S3 Provider, ```shell {label="helm"} helm install crossplane \ crossplane-stable/crossplane \ --namespace crossplane-system \ --create-namespace \ ---set provider.packages='{xpkg.crossplane.io/crossplane-contrib/provider-aws:v0.39.0}' +--set provider.packages='{xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0}' ``` ### Install offline @@ -137,9 +137,9 @@ and repeatable installations. apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: - name: provider-aws + name: crossplane-contrib-provider-aws-s3 spec: - package: xpkg.crossplane.io/crossplane-contrib/provider-aws@sha256:ee6bece46dbb54cc3f0233961f5baac317fa4e4a81b41198bdc72fc472d113d0 + package: xpkg.crossplane.io/crossplane-contrib/provider-aws-s3@sha256:ee6bece46dbb54cc3f0233961f5baac317fa4e4a81b41198bdc72fc472d113d0 ``` {{< /hint >}} @@ -174,7 +174,7 @@ configuration. apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: - name: provider-aws + name: crossplane-contrib-provider-aws-s3 spec: packagePullPolicy: Always # Removed for brevity @@ -203,7 +203,7 @@ For example, to change the upgrade behavior to require manual upgrades, set apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: - name: provider-aws + name: crossplane-contrib-provider-aws-s3 spec: revisionActivationPolicy: Manual # Removed for brevity @@ -237,7 +237,7 @@ For example, to change the default setting and store 10 revisions use apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: - name: provider-aws + name: crossplane-contrib-provider-aws-s3 spec: revisionHistoryLimit: 10 # Removed for brevity @@ -268,7 +268,7 @@ For example, to use the secret named apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: - name: provider-aws + name: crossplane-contrib-provider-aws-s3 spec: packagePullSecrets: - name: example-secret @@ -295,7 +295,7 @@ For example, to disable dependency resolution configure apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: - name: provider-aws + name: crossplane-contrib-provider-aws-s3 spec: skipDependencyResolution: true # Removed for brevity @@ -363,7 +363,7 @@ version, configure apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: - name: provider-aws + name: crossplane-contrib-provider-aws-s3 spec: ignoreCrossplaneConstraints: true # Removed for brevity @@ -382,8 +382,8 @@ For example, this installation of the Getting Started Configuration is ```shell {copy-lines="1"} kubectl get providers -NAME INSTALLED HEALTHY PACKAGE AGE -provider-aws-s3 True False xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v1.21.1 12s +NAME INSTALLED HEALTHY PACKAGE AGE +crossplane-contrib-provider-aws-s3 True False xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0 12s ``` To see more information on why the Provider isn't `HEALTHY` use @@ -396,7 +396,7 @@ API Version: pkg.crossplane.io/v1 Kind: ProviderRevision Spec: Desired State: Active - Image: xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v1.21.1 + Image: xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0 Revision: 1 Status: Conditions: @@ -434,10 +434,10 @@ View the `ProviderRevisions` with ```shell {label="getPR",copy-lines="1"} kubectl get providerrevisions NAME HEALTHY REVISION IMAGE STATE DEP-FOUND DEP-INSTALLED AGE -provider-aws-s3-dbc7f981d81f True 1 xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v1.21.1 Active 1 1 10d +provider-aws-s3-dbc7f981d81f True 1 xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0 Active 1 1 10d provider-nop-552a394a8acc True 2 xpkg.crossplane.io/crossplane-contrib/provider-nop:v0.3.0 Active 11d provider-nop-7e62d2a1a709 True 1 xpkg.crossplane.io/crossplane-contrib/provider-nop:v0.2.0 Inactive 13d -crossplane-contrib-provider-family-aws-710d8cfe9f53 True 1 xpkg.crossplane.io/crossplane-contrib/provider-family-aws:v1.21.1 Active 10d +crossplane-contrib-provider-family-aws-710d8cfe9f53 True 1 xpkg.crossplane.io/crossplane-contrib/provider-family-aws:v2.0.0 Active 10d ``` By default Crossplane keeps a single @@ -480,7 +480,7 @@ During the install a Provider report `INSTALLED` as `True` and `HEALTHY` as ```shell {copy-lines="1"} kubectl get providers NAME INSTALLED HEALTHY PACKAGE AGE -crossplane-contrib-provider-aws True Unknown xpkg.crossplane.io/crossplane-contrib/provider-aws:v0.39.0 63s +crossplane-contrib-provider-aws-s3 True Unknown xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0 63s ``` After the Provider install completes and it's ready for use the `HEALTHY` status @@ -489,7 +489,7 @@ reports `True`. ```shell {copy-lines="1"} kubectl get providers NAME INSTALLED HEALTHY PACKAGE AGE -crossplane-contrib-provider-aws True True xpkg.crossplane.io/crossplane-contrib/provider-aws:v0.39.0 88s +crossplane-contrib-provider-aws-s3 True True xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0 88s ``` {{}} @@ -657,7 +657,7 @@ kind: Provider metadata: name: provider-gcp-iam spec: - package: xpkg.crossplane.io/crossplane-contrib/provider-gcp-iam:v1.12.1 + package: xpkg.crossplane.io/crossplane-contrib/provider-gcp-iam:v2.0.0 runtimeConfigRef: name: enable-ess --- @@ -819,9 +819,10 @@ the key named {{}}aws-creds{{}}. ```yaml {label="providerconfig"} -apiVersion: aws.crossplane.io/v1beta1 +apiVersion: aws.m.upbound.io/v1beta1 kind: ProviderConfig metadata: + namespace: default name: aws-provider spec: credentials: @@ -839,6 +840,52 @@ Read the documentation on a specific Provider for instructions on configuring authentication for that Provider. {{< /hint >}} +#### ProviderConfig types + +The AWS provider supports two types of ProviderConfig resources: + +**ProviderConfig** (namespace-scoped): +```yaml +apiVersion: aws.m.upbound.io/v1beta1 +kind: ProviderConfig +metadata: + namespace: default + name: my-config +# Applies only to MRs in the same namespace +``` + +**ClusterProviderConfig** (cluster-wide): +```yaml +apiVersion: aws.m.upbound.io/v1beta1 +kind: ClusterProviderConfig +metadata: + name: my-cluster-config +# Applies to MRs across all namespaces +``` + +When referencing any ProviderConfig, managed resources must specify both `name` and `kind`: +```yaml +spec: + providerConfigRef: + name: my-cluster-config + kind: ClusterProviderConfig +``` + +```yaml +spec: + providerConfigRef: + name: my-config + kind: ProviderConfig # References namespaced ProviderConfig +``` + +If you omit `providerConfigRef` entirely, it defaults to: +```yaml +spec: + providerConfigRef: + name: default + kind: ClusterProviderConfig +``` + ProviderConfig objects apply to individual Managed Resources. A single @@ -855,9 +902,10 @@ For example, two AWS ProviderConfigs, named use different Kubernetes secrets. ```yaml {label="user"} -apiVersion: aws.crossplane.io/v1beta1 +apiVersion: aws.m.upbound.io/v1beta1 kind: ProviderConfig metadata: + namespace: default name: user-keys spec: credentials: @@ -869,9 +917,10 @@ spec: ``` ```yaml {label="admin"} -apiVersion: aws.crossplane.io/v1beta1 +apiVersion: aws.m.upbound.io/v1beta1 kind: ProviderConfig metadata: + namespace: default name: admin-keys spec: credentials: @@ -889,15 +938,17 @@ resource using the {{}}user-keys{{< /hover >}} ProviderConfig. ```yaml {label="user-bucket"} -apiVersion: s3.aws.upbound.io/v1beta1 +apiVersion: s3.aws.m.upbound.io/v1beta1 kind: Bucket metadata: + namespace: default name: user-bucket spec: forProvider: region: us-east-2 providerConfigRef: name: user-keys + kind: ProviderConfig ``` This creates a second {{}}Bucket{{< /hover >}} @@ -905,13 +956,15 @@ resource using the {{}}admin-keys{{< /hover >}} ProviderConfig. ```yaml {label="admin-bucket"} -apiVersion: s3.aws.upbound.io/v1beta1 +apiVersion: s3.aws.m.upbound.io/v1beta1 kind: Bucket metadata: - name: user-bucket + namespace: default + name: admin-bucket spec: forProvider: region: us-east-2 providerConfigRef: name: admin-keys + kind: ProviderConfig ``` diff --git a/content/master/whats-crossplane/_index.md b/content/master/whats-crossplane/_index.md index 518ea85d..18f4b16f 100644 --- a/content/master/whats-crossplane/_index.md +++ b/content/master/whats-crossplane/_index.md @@ -215,14 +215,6 @@ watch-rds@{animate: true} Follow [Get Started with Managed Resources]({{}}) to see how managed resources work. -{{}} -AWS managed resources fully support Crossplane v2. - - -Maintainers are actively working to update managed resources for other systems including Azure, -GCP, Terraform, Helm, GitHub, etc to support Crossplane v2. - -{{}} ### Operations diff --git a/utils/vale/styles/Crossplane/crossplane-words.txt b/utils/vale/styles/Crossplane/crossplane-words.txt index 17e5a390..7317d5c1 100644 --- a/utils/vale/styles/Crossplane/crossplane-words.txt +++ b/utils/vale/styles/Crossplane/crossplane-words.txt @@ -3,6 +3,7 @@ Adler32 apiGroups clampMax clampMin +ClusterProviderConfig ClusterUsages CombineFromComposite CombineFromEnvironment