mirror of https://github.com/crossplane/docs.git
Double check all MR examples (#966)
* Drop note about (only) AWS MRs supporting v2 A few of the other providers like GCP and Azure now do. The rest will fast follow. Also, it's not misleading to say the others don't support v2. That reads like they're incompatible, which they're not. They're just not namespaced yet. Signed-off-by: Nic Cope <nicc@rk0n.org> * Only use modern namespaced provider-upjet-aws MRs * Make sure they're using v2.0.0 providers * Make sure they use m.example.org style API groups * Make sure they're namespaced Signed-off-by: Nic Cope <nicc@rk0n.org> --------- Signed-off-by: Nic Cope <nicc@rk0n.org>
This commit is contained in:
parent
f1a6d852f4
commit
2a39bc9cba
|
|
@ -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 `<package-kind>` 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`
|
||||
|
||||
|
||||
<!-- vale Google.Headings = NO -->
|
||||
|
|
@ -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
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
{{<hint "note">}}
|
||||
AWS managed resources fully support Crossplane v2.
|
||||
|
||||
<!-- vale gitlab.FutureTense = NO -->
|
||||
Maintainers are actively working to update managed resources for other systems including Azure,
|
||||
GCP, Terraform, Helm, GitHub, etc to support Crossplane v2.
|
||||
<!-- vale gitlab.FutureTense = YES -->
|
||||
{{</hint>}}
|
||||
|
||||
## 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).
|
||||
|
||||
{{<hint "note">}}
|
||||
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`]({{<ref "../managed-resources/managed-resources#providerconfigref">}})
|
||||
section in the managed resources docs for more details.
|
||||
{{</hint>}}
|
||||
|
||||
## Use the managed resource
|
||||
|
||||
{{<hint "note">}}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
```
|
||||
|
||||
<!-- vale Google.Headings = NO -->
|
||||
|
|
@ -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`.
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
||||
{{<hint "important">}}
|
||||
AWS managed resources fully support Crossplane v2.
|
||||
|
||||
<!-- vale gitlab.FutureTense = NO -->
|
||||
Maintainers are actively working to update managed resources for other systems including Azure,
|
||||
GCP, Terraform, Helm, GitHub, etc to support Crossplane v2.
|
||||
<!-- vale gitlab.FutureTense = YES -->
|
||||
{{</hint>}}
|
||||
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
<!-- vale off -->
|
||||
|
|
@ -385,16 +378,22 @@ This matches the {{<hover label="pc" line="4">}}name{{</hover>}} 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
|
||||
```
|
||||
|
||||
<!-- vale off -->
|
||||
### writeConnectionSecretToRef
|
||||
<!-- vale on -->
|
||||
|
|
@ -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
|
||||
{{<hover label="secretname" line="10" >}}rds-secret{{</hover>}}, 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 {{<hover label="custom-name" line="5">}}my-custom-name{{</hover >}}
|
|||
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
|
||||
```
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]({{<ref "../guides/po
|
|||
{{< /hint >}}
|
||||
|
||||
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
|
|||
{{<hover label="helm" line="5" >}}--set provider.packages{{</hover >}}
|
||||
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
|
||||
```
|
||||
|
||||
{{<hint "important" >}}
|
||||
|
|
@ -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
|
|||
{{<hover label="providerconfig" line="10" >}}aws-creds{{</hover >}}.
|
||||
<!-- vale write-good.Weasel = YES -->
|
||||
```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
|
||||
```
|
||||
|
||||
<!-- vale write-good.TooWordy = NO -->
|
||||
<!-- allow multiple -->
|
||||
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
|
|||
{{<hover label="user-bucket" line="9" >}}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 {{<hover label="admin-bucket" line="2" >}}Bucket{{< /hover >}}
|
||||
|
|
@ -905,13 +956,15 @@ resource using the
|
|||
{{<hover label="admin-bucket" line="9" >}}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
|
||||
```
|
||||
|
|
|
|||
|
|
@ -215,14 +215,6 @@ watch-rds@{animate: true}
|
|||
Follow [Get Started with Managed Resources]({{<ref "../get-started/get-started-with-managed-resources">}})
|
||||
to see how managed resources work.
|
||||
|
||||
{{<hint "note">}}
|
||||
AWS managed resources fully support Crossplane v2.
|
||||
|
||||
<!-- vale gitlab.FutureTense = NO -->
|
||||
Maintainers are actively working to update managed resources for other systems including Azure,
|
||||
GCP, Terraform, Helm, GitHub, etc to support Crossplane v2.
|
||||
<!-- vale gitlab.FutureTense = YES -->
|
||||
{{</hint>}}
|
||||
|
||||
### Operations
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ Adler32
|
|||
apiGroups
|
||||
clampMax
|
||||
clampMin
|
||||
ClusterProviderConfig
|
||||
ClusterUsages
|
||||
CombineFromComposite
|
||||
CombineFromEnvironment
|
||||
|
|
|
|||
Loading…
Reference in New Issue