mirror of https://github.com/crossplane/docs.git
commit
b0b75ce67b
|
|
@ -78,7 +78,7 @@ metadata:
|
||||||
status:
|
status:
|
||||||
bucketRegion: us-east-2
|
bucketRegion: us-east-2
|
||||||
---
|
---
|
||||||
apiVersion: s3.aws.upbound.io/v1beta1
|
apiVersion: s3.aws.m.upbound.io/v1beta1
|
||||||
kind: Bucket
|
kind: Bucket
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
|
|
@ -86,6 +86,7 @@ metadata:
|
||||||
generateName: test-xrender-
|
generateName: test-xrender-
|
||||||
labels:
|
labels:
|
||||||
crossplane.io/composite: test-xrender
|
crossplane.io/composite: test-xrender
|
||||||
|
namespace: default
|
||||||
ownerReferences:
|
ownerReferences:
|
||||||
- apiVersion: nopexample.org/v1
|
- apiVersion: nopexample.org/v1
|
||||||
blockOwnerDeletion: true
|
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
|
For example, to install the latest version of the
|
||||||
[AWS S3 provider](https://github.com/crossplane-contrib/provider-upjet-aws):
|
[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
|
#### Flags
|
||||||
{{< table "table table-sm table-striped">}}
|
{{< table "table table-sm table-striped">}}
|
||||||
|
|
@ -522,7 +523,7 @@ already installed in Crossplane.
|
||||||
For example, to update to the latest version of the
|
For example, to update to the latest version of the
|
||||||
[AWS S3 provider](https://github.com/crossplane-contrib/provider-upjet-aws):
|
[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 -->
|
<!-- vale Google.Headings = NO -->
|
||||||
|
|
@ -746,52 +747,52 @@ Configuration/platform-ref-aws
|
||||||
├─ ConfigurationRevision/platform-ref-aws-9ad7b5db2899 v0.9.0 - True Active HealthyPackageRevision
|
├─ ConfigurationRevision/platform-ref-aws-9ad7b5db2899 v0.9.0 - True Active HealthyPackageRevision
|
||||||
├─ Configuration/upbound-configuration-aws-network v0.7.0 True True - HealthyPackageRevision
|
├─ Configuration/upbound-configuration-aws-network v0.7.0 True True - HealthyPackageRevision
|
||||||
│ ├─ ConfigurationRevision/upbound-configuration-aws-network-97be9100cfe1 v0.7.0 - True Active HealthyPackageRevision
|
│ ├─ ConfigurationRevision/upbound-configuration-aws-network-97be9100cfe1 v0.7.0 - True Active HealthyPackageRevision
|
||||||
│ ├─ Provider/upbound-provider-aws-ec2 v0.47.0 True True - HealthyPackageRevision
|
│ ├─ Provider/upbound-provider-aws-ec2 v2.0.0 True True - HealthyPackageRevision
|
||||||
│ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v0.47.0 - True Active HealthyPackageRevision
|
│ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v2.0.0 - True Active HealthyPackageRevision
|
||||||
│ │ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision
|
│ │ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision
|
||||||
│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active 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
|
│ └─ 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
|
│ └─ FunctionRevision/upbound-function-patch-and-transform-a2f88f8d8715 v0.2.1 - True Active HealthyPackageRevision
|
||||||
├─ Configuration/upbound-configuration-aws-database v0.5.0 True True - HealthyPackageRevision
|
├─ Configuration/upbound-configuration-aws-database v0.5.0 True True - HealthyPackageRevision
|
||||||
│ ├─ ConfigurationRevision/upbound-configuration-aws-database-3112f0a765c5 v0.5.0 - True Active HealthyPackageRevision
|
│ ├─ ConfigurationRevision/upbound-configuration-aws-database-3112f0a765c5 v0.5.0 - True Active HealthyPackageRevision
|
||||||
│ ├─ Provider/upbound-provider-aws-rds v0.47.0 True True - HealthyPackageRevision
|
│ ├─ Provider/upbound-provider-aws-rds v2.0.0 True True - HealthyPackageRevision
|
||||||
│ │ ├─ ProviderRevision/upbound-provider-aws-rds-58f96aa9fc4b v0.47.0 - True Active HealthyPackageRevision
|
│ │ ├─ ProviderRevision/upbound-provider-aws-rds-58f96aa9fc4b v2.0.0 - True Active HealthyPackageRevision
|
||||||
│ │ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision
|
│ │ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision
|
||||||
│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active HealthyPackageRevision
|
│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v2.0.0 - True Active HealthyPackageRevision
|
||||||
│ └─ Configuration/upbound-configuration-aws-network v0.7.0 True True - HealthyPackageRevision
|
│ └─ Configuration/upbound-configuration-aws-network v0.7.0 True True - HealthyPackageRevision
|
||||||
│ ├─ ConfigurationRevision/upbound-configuration-aws-network-97be9100cfe1 v0.7.0 - True Active HealthyPackageRevision
|
│ ├─ ConfigurationRevision/upbound-configuration-aws-network-97be9100cfe1 v0.7.0 - True Active HealthyPackageRevision
|
||||||
│ ├─ Provider/upbound-provider-aws-ec2 v0.47.0 True True - HealthyPackageRevision
|
│ ├─ Provider/upbound-provider-aws-ec2 v2.0.0 True True - HealthyPackageRevision
|
||||||
│ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v0.47.0 - True Active HealthyPackageRevision
|
│ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v2.0.0 - True Active HealthyPackageRevision
|
||||||
│ │ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision
|
│ │ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision
|
||||||
│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active 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
|
│ └─ 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
|
│ └─ FunctionRevision/upbound-function-patch-and-transform-a2f88f8d8715 v0.2.1 - True Active HealthyPackageRevision
|
||||||
├─ Configuration/upbound-configuration-aws-eks v0.5.0 True True - HealthyPackageRevision
|
├─ Configuration/upbound-configuration-aws-eks v0.5.0 True True - HealthyPackageRevision
|
||||||
│ ├─ ConfigurationRevision/upbound-configuration-aws-eks-83c9d65f4a47 v0.5.0 - True Active HealthyPackageRevision
|
│ ├─ ConfigurationRevision/upbound-configuration-aws-eks-83c9d65f4a47 v0.5.0 - True Active HealthyPackageRevision
|
||||||
│ ├─ Configuration/upbound-configuration-aws-network v0.7.0 True True - HealthyPackageRevision
|
│ ├─ Configuration/upbound-configuration-aws-network v0.7.0 True True - HealthyPackageRevision
|
||||||
│ │ ├─ ConfigurationRevision/upbound-configuration-aws-network-97be9100cfe1 v0.7.0 - True Active HealthyPackageRevision
|
│ │ ├─ ConfigurationRevision/upbound-configuration-aws-network-97be9100cfe1 v0.7.0 - True Active HealthyPackageRevision
|
||||||
│ │ ├─ Provider/upbound-provider-aws-ec2 v0.47.0 True True - HealthyPackageRevision
|
│ │ ├─ Provider/upbound-provider-aws-ec2 v2.0.0 True True - HealthyPackageRevision
|
||||||
│ │ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v0.47.0 - True Active HealthyPackageRevision
|
│ │ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v2.0.0 - True Active HealthyPackageRevision
|
||||||
│ │ │ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision
|
│ │ │ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision
|
||||||
│ │ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active 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
|
│ │ └─ 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
|
│ │ └─ FunctionRevision/upbound-function-patch-and-transform-a2f88f8d8715 v0.2.1 - True Active HealthyPackageRevision
|
||||||
│ ├─ Provider/crossplane-contrib-provider-helm v0.16.0 True True - HealthyPackageRevision
|
│ ├─ Provider/crossplane-contrib-provider-helm v0.16.0 True True - HealthyPackageRevision
|
||||||
│ │ └─ ProviderRevision/crossplane-contrib-provider-helm-b4cc4c2c8db3 v0.16.0 - True Active HealthyPackageRevision
|
│ │ └─ ProviderRevision/crossplane-contrib-provider-helm-b4cc4c2c8db3 v0.16.0 - True Active HealthyPackageRevision
|
||||||
│ ├─ Provider/crossplane-contrib-provider-kubernetes v0.10.0 True True - HealthyPackageRevision
|
│ ├─ Provider/crossplane-contrib-provider-kubernetes v0.10.0 True True - HealthyPackageRevision
|
||||||
│ │ └─ ProviderRevision/crossplane-contrib-provider-kubernetes-63506a3443e0 v0.10.0 - True Active HealthyPackageRevision
|
│ │ └─ ProviderRevision/crossplane-contrib-provider-kubernetes-63506a3443e0 v0.10.0 - True Active HealthyPackageRevision
|
||||||
│ ├─ Provider/upbound-provider-aws-ec2 v0.47.0 True True - HealthyPackageRevision
|
│ ├─ Provider/upbound-provider-aws-ec2 v2.0.0 True True - HealthyPackageRevision
|
||||||
│ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v0.47.0 - True Active HealthyPackageRevision
|
│ │ ├─ ProviderRevision/upbound-provider-aws-ec2-cfeb0cd0f1d2 v2.0.0 - True Active HealthyPackageRevision
|
||||||
│ │ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision
|
│ │ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision
|
||||||
│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active HealthyPackageRevision
|
│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v2.0.0 - True Active HealthyPackageRevision
|
||||||
│ ├─ Provider/upbound-provider-aws-eks v0.47.0 True True - HealthyPackageRevision
|
│ ├─ Provider/upbound-provider-aws-eks v2.0.0 True True - HealthyPackageRevision
|
||||||
│ │ ├─ ProviderRevision/upbound-provider-aws-eks-641a096d79d8 v0.47.0 - True Active HealthyPackageRevision
|
│ │ ├─ ProviderRevision/upbound-provider-aws-eks-641a096d79d8 v2.0.0 - True Active HealthyPackageRevision
|
||||||
│ │ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision
|
│ │ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision
|
||||||
│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active HealthyPackageRevision
|
│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v2.0.0 - True Active HealthyPackageRevision
|
||||||
│ ├─ Provider/upbound-provider-aws-iam v0.47.0 True True - HealthyPackageRevision
|
│ ├─ Provider/upbound-provider-aws-iam v2.0.0 True True - HealthyPackageRevision
|
||||||
│ │ ├─ ProviderRevision/upbound-provider-aws-iam-438eac423037 v0.47.0 - True Active HealthyPackageRevision
|
│ │ ├─ ProviderRevision/upbound-provider-aws-iam-438eac423037 v2.0.0 - True Active HealthyPackageRevision
|
||||||
│ │ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision
|
│ │ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision
|
||||||
│ │ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active 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
|
│ └─ 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
|
│ └─ FunctionRevision/upbound-function-patch-and-transform-a2f88f8d8715 v0.2.1 - True Active HealthyPackageRevision
|
||||||
├─ Configuration/upbound-configuration-app v0.2.0 True True - 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
|
├─ ConfigurationRevision/platform-ref-aws-9ad7b5db2899 v0.9.0 - True Active HealthyPackageRevision
|
||||||
├─ Configuration/upbound-configuration-aws-network v0.2.0 True True - HealthyPackageRevision
|
├─ Configuration/upbound-configuration-aws-network v0.2.0 True True - HealthyPackageRevision
|
||||||
│ ├─ ConfigurationRevision/upbound-configuration-aws-network-288fcd1b88dd v0.2.0 - True Active HealthyPackageRevision
|
│ ├─ ConfigurationRevision/upbound-configuration-aws-network-288fcd1b88dd v0.2.0 - True Active HealthyPackageRevision
|
||||||
│ └─ Provider/upbound-provider-aws-ec2 v1.0.0 True True - HealthyPackageRevision
|
│ └─ Provider/upbound-provider-aws-ec2 v2.0.0 True True - HealthyPackageRevision
|
||||||
│ ├─ ProviderRevision/upbound-provider-aws-ec2-5cfd948d082f v1.0.0 - True Active HealthyPackageRevision
|
│ ├─ ProviderRevision/upbound-provider-aws-ec2-5cfd948d082f v2.0.0 - True Active HealthyPackageRevision
|
||||||
│ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision
|
│ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision
|
||||||
│ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v1.0.0 - True Active HealthyPackageRevision
|
│ └─ ProviderRevision/upbound-provider-family-aws-48b3b5ccf964 v2.0.0 - True Active HealthyPackageRevision
|
||||||
# Removed for brevity
|
# Removed for brevity
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -855,8 +856,8 @@ crossplane beta trace configuration platform-ref-aws --show-package-revisions no
|
||||||
NAME VERSION INSTALLED HEALTHY STATE STATUS
|
NAME VERSION INSTALLED HEALTHY STATE STATUS
|
||||||
Configuration/platform-ref-aws v0.9.0 True True - HealthyPackageRevision
|
Configuration/platform-ref-aws v0.9.0 True True - HealthyPackageRevision
|
||||||
├─ Configuration/upbound-configuration-aws-network v0.2.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-aws-ec2 v2.0.0 True True - HealthyPackageRevision
|
||||||
│ └─ Provider/upbound-provider-family-aws v1.0.0 True True - HealthyPackageRevision
|
│ └─ Provider/upbound-provider-family-aws v2.0.0 True True - HealthyPackageRevision
|
||||||
# Removed for brevity
|
# Removed for brevity
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -936,9 +937,9 @@ provider manifests of the resources to validate.
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
kind: Provider
|
kind: Provider
|
||||||
metadata:
|
metadata:
|
||||||
name: provider-aws-iam
|
name: crossplane-contrib-provider-aws-iam
|
||||||
spec:
|
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.
|
Now include the XR or managed resource to validate.
|
||||||
|
|
@ -948,9 +949,10 @@ For example, to validate an
|
||||||
provide a managed resource YAML file.
|
provide a managed resource YAML file.
|
||||||
|
|
||||||
```yaml {label="iamAK"}
|
```yaml {label="iamAK"}
|
||||||
apiVersion: iam.aws.upbound.io/v1beta1
|
apiVersion: iam.aws.m.upbound.io/v1beta1
|
||||||
kind: AccessKey
|
kind: AccessKey
|
||||||
metadata:
|
metadata:
|
||||||
|
namespace: default
|
||||||
name: sample-access-key-0
|
name: sample-access-key-0
|
||||||
spec:
|
spec:
|
||||||
forProvider:
|
forProvider:
|
||||||
|
|
@ -964,7 +966,7 @@ resource YAML files as input.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
crossplane beta validate provider.yaml managedResource.yaml
|
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
|
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 -
|
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 : 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
|
[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.m.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.m.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.m.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=User, test-user-1 validated successfully
|
||||||
Total 5 resources: 0 missing schemas, 4 success cases, 1 failure cases
|
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
|
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] 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.
|
[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.m.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.m.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.m.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=User, test-user-1 validated successfully
|
||||||
Total 5 resources: 0 missing schemas, 4 success cases, 1 failure cases
|
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
|
* 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 [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
|
## 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.
|
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"}
|
```yaml {label="providerconfig",copy-lines="all"}
|
||||||
apiVersion: aws.m.upbound.io/v1beta1
|
apiVersion: aws.m.upbound.io/v1beta1
|
||||||
kind: ProviderConfig
|
kind: ClusterProviderConfig
|
||||||
metadata:
|
metadata:
|
||||||
name: default
|
name: default
|
||||||
spec:
|
spec:
|
||||||
|
|
@ -176,6 +168,15 @@ kubectl apply -f providerconfig.yaml
|
||||||
This tells the provider to load credentials from
|
This tells the provider to load credentials from
|
||||||
[the secret](#save-the-providers-credentials).
|
[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
|
## Use the managed resource
|
||||||
|
|
||||||
{{<hint "note">}}
|
{{<hint "note">}}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ weight: 306
|
||||||
|
|
||||||
If you use the Crossplane CLI to install a `Provider` or
|
If you use the Crossplane CLI to install a `Provider` or
|
||||||
`Configuration` (for example, `crossplane xpkg install provider
|
`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
|
could not find the requested resource` error, more often than not, that's an
|
||||||
indicator that your Crossplane CLI needs updating. In other words
|
indicator that your Crossplane CLI needs updating. In other words
|
||||||
Crossplane graduated some API from alpha to beta or stable and the old
|
Crossplane graduated some API from alpha to beta or stable and the old
|
||||||
|
|
@ -105,9 +105,9 @@ spec:
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
kind: Provider
|
kind: Provider
|
||||||
metadata:
|
metadata:
|
||||||
name: provider-aws
|
name: crossplane-contrib-provider-aws-s3
|
||||||
spec:
|
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:
|
runtimeConfigRef:
|
||||||
apiVersion: pkg.crossplane.io/v1beta1
|
apiVersion: pkg.crossplane.io/v1beta1
|
||||||
kind: DeploymentRuntimeConfig
|
kind: DeploymentRuntimeConfig
|
||||||
|
|
@ -156,9 +156,9 @@ spec:
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
kind: Provider
|
kind: Provider
|
||||||
metadata:
|
metadata:
|
||||||
name: provider-aws
|
name: crossplane-contrib-provider-aws-s3
|
||||||
spec:
|
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:
|
runtimeConfigRef:
|
||||||
apiVersion: pkg.crossplane.io/v1beta1
|
apiVersion: pkg.crossplane.io/v1beta1
|
||||||
kind: DeploymentRuntimeConfig
|
kind: DeploymentRuntimeConfig
|
||||||
|
|
|
||||||
|
|
@ -38,55 +38,55 @@ command may take minutes to return.
|
||||||
```shell {copy-lines="1"}
|
```shell {copy-lines="1"}
|
||||||
kubectl get managed
|
kubectl get managed
|
||||||
NAME READY SYNCED EXTERNAL-NAME AGE
|
NAME READY SYNCED EXTERNAL-NAME AGE
|
||||||
securitygroup.ec2.aws.upbound.io/my-db-7mc7h-j84h8 True True sg-0da6e9c29113596b6 3m1s
|
securitygroup.ec2.aws.m.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-8bhr2-9wsx9 True True sg-02695166f010ec05b 2m26s
|
||||||
|
|
||||||
NAME READY SYNCED EXTERNAL-NAME AGE
|
NAME READY SYNCED EXTERNAL-NAME AGE
|
||||||
route.ec2.aws.upbound.io/my-db-7mc7h-vw985 True True r-rtb-05822b8df433e4e2b1080289494 3m1s
|
route.ec2.aws.m.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-8bhr2-7m2wq False True 2m26s
|
||||||
|
|
||||||
NAME READY SYNCED EXTERNAL-NAME AGE
|
NAME READY SYNCED EXTERNAL-NAME AGE
|
||||||
securitygrouprule.ec2.aws.upbound.io/my-db-7mc7h-mkd9s True True sgrule-778063708 3m1s
|
securitygrouprule.ec2.aws.m.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-8bhr2-lzr89 False True 2m26s
|
||||||
|
|
||||||
NAME READY SYNCED EXTERNAL-NAME AGE
|
NAME READY SYNCED EXTERNAL-NAME AGE
|
||||||
routetable.ec2.aws.upbound.io/my-db-7mc7h-mnqvm True True rtb-05822b8df433e4e2b 3m1s
|
routetable.ec2.aws.m.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-8bhr2-dfhj6 True True rtb-02e875abd25658254 2m26s
|
||||||
|
|
||||||
NAME READY SYNCED EXTERNAL-NAME AGE
|
NAME READY SYNCED EXTERNAL-NAME AGE
|
||||||
subnet.ec2.aws.upbound.io/my-db-7mc7h-7m49d True True subnet-0c1ab32c5ec129dd1 3m2s
|
subnet.ec2.aws.m.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.m.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.m.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.m.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.m.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-8bhr2-t7dpr True True subnet-0080fdcb6e9b70632 2m26s
|
||||||
|
|
||||||
NAME READY SYNCED EXTERNAL-NAME AGE
|
NAME READY SYNCED EXTERNAL-NAME AGE
|
||||||
vpc.ec2.aws.upbound.io/my-db-7mc7h-ktbbh True True vpc-08d7dd84e0c12f33e 3m3s
|
vpc.ec2.aws.m.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-8bhr2-mrh2x True True vpc-06994bf323fc1daea 2m26s
|
||||||
|
|
||||||
NAME READY SYNCED EXTERNAL-NAME AGE
|
NAME READY SYNCED EXTERNAL-NAME AGE
|
||||||
internetgateway.ec2.aws.upbound.io/my-db-7mc7h-s2x4v True True igw-0189c4da07a3142dc 3m1s
|
internetgateway.ec2.aws.m.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-8bhr2-q7dzl True True igw-01bf2a1dbbebf6a27 2m26s
|
||||||
|
|
||||||
NAME READY SYNCED EXTERNAL-NAME AGE
|
NAME READY SYNCED EXTERNAL-NAME AGE
|
||||||
routetableassociation.ec2.aws.upbound.io/my-db-7mc7h-28qb4 True True rtbassoc-0718d680b5a0e68fe 3m1s
|
routetableassociation.ec2.aws.m.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.m.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.m.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.m.upbound.io/my-db-8bhr2-bvgkt False True 2m26s
|
||||||
routetableassociation.ec2.aws.upbound.io/my-db-8bhr2-d9gbg False True 2m26s
|
routetableassociation.ec2.aws.m.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-8bhr2-k6k8m False True 2m26s
|
||||||
|
|
||||||
NAME READY SYNCED EXTERNAL-NAME AGE
|
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.m.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-8bhr2-tx9kf False True my-db-8bhr2-tx9kf 2m26s
|
||||||
|
|
||||||
NAME READY SYNCED EXTERNAL-NAME AGE
|
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.m.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-8bhr2-mc5ps True True my-db-8bhr2-mc5ps 2m27s
|
||||||
|
|
||||||
NAME READY SYNCED EXTERNAL-NAME AGE
|
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
|
crossplane-bucket-867737b10 5m26s
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -121,13 +121,13 @@ Use `kubectl get managed` to view remaining _managed resources_.
|
||||||
```shell {copy-lines="1"}
|
```shell {copy-lines="1"}
|
||||||
kubectl get managed
|
kubectl get managed
|
||||||
NAME READY SYNCED EXTERNAL-NAME AGE
|
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.
|
Use `kubectl delete` to remove the resources.
|
||||||
|
|
||||||
```shell
|
```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 -->
|
<!-- vale Google.Headings = NO -->
|
||||||
|
|
@ -139,7 +139,7 @@ List the installed _providers_ with `kubectl get providers`.
|
||||||
```shell {copy-lines="1"}
|
```shell {copy-lines="1"}
|
||||||
kubectl get providers
|
kubectl get providers
|
||||||
NAME INSTALLED HEALTHY PACKAGE AGE
|
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`.
|
Remove the installed _providers_ with `kubectl delete provider`.
|
||||||
|
|
|
||||||
|
|
@ -275,7 +275,7 @@ import (
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/utils/ptr"
|
"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/errors"
|
||||||
"github.com/crossplane/function-sdk-go/logging"
|
"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:
|
You must get the AWS Provider Go module to use this type:
|
||||||
|
|
||||||
```shell
|
```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
|
Crossplane provides a
|
||||||
|
|
@ -528,7 +528,7 @@ func TestRunFunction(t *testing.T) {
|
||||||
Desired: &fnv1.State{
|
Desired: &fnv1.State{
|
||||||
Resources: map[string]*fnv1.Resource{
|
Resources: map[string]*fnv1.Resource{
|
||||||
"xbuckets-test-bucket-a": {Resource: resource.MustStructJSON(`{
|
"xbuckets-test-bucket-a": {Resource: resource.MustStructJSON(`{
|
||||||
"apiVersion": "s3.aws.upbound.io/v1beta1",
|
"apiVersion": "s3.aws.m.upbound.io/v1beta1",
|
||||||
"kind": "Bucket",
|
"kind": "Bucket",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"annotations": {
|
"annotations": {
|
||||||
|
|
@ -545,7 +545,7 @@ func TestRunFunction(t *testing.T) {
|
||||||
}
|
}
|
||||||
}`)},
|
}`)},
|
||||||
"xbuckets-test-bucket-b": {Resource: resource.MustStructJSON(`{
|
"xbuckets-test-bucket-b": {Resource: resource.MustStructJSON(`{
|
||||||
"apiVersion": "s3.aws.upbound.io/v1beta1",
|
"apiVersion": "s3.aws.m.upbound.io/v1beta1",
|
||||||
"kind": "Bucket",
|
"kind": "Bucket",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"annotations": {
|
"annotations": {
|
||||||
|
|
@ -727,7 +727,7 @@ kind: XBuckets
|
||||||
metadata:
|
metadata:
|
||||||
name: example-buckets
|
name: example-buckets
|
||||||
---
|
---
|
||||||
apiVersion: s3.aws.upbound.io/v1beta1
|
apiVersion: s3.aws.m.upbound.io/v1beta1
|
||||||
kind: Bucket
|
kind: Bucket
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
|
|
@ -742,7 +742,7 @@ spec:
|
||||||
forProvider:
|
forProvider:
|
||||||
region: us-east-2
|
region: us-east-2
|
||||||
---
|
---
|
||||||
apiVersion: s3.aws.upbound.io/v1beta1
|
apiVersion: s3.aws.m.upbound.io/v1beta1
|
||||||
kind: Bucket
|
kind: Bucket
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
|
|
@ -757,7 +757,7 @@ spec:
|
||||||
forProvider:
|
forProvider:
|
||||||
region: us-east-2
|
region: us-east-2
|
||||||
---
|
---
|
||||||
apiVersion: s3.aws.upbound.io/v1beta1
|
apiVersion: s3.aws.m.upbound.io/v1beta1
|
||||||
kind: Bucket
|
kind: Bucket
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
|
|
|
||||||
|
|
@ -187,7 +187,7 @@ async def RunFunction(self, req: fnv1.RunFunctionRequest, _: grpc.aio.ServicerCo
|
||||||
for name in names:
|
for name in names:
|
||||||
rsp.desired.resources[f"xbuckets-{name}"].resource.update(
|
rsp.desired.resources[f"xbuckets-{name}"].resource.update(
|
||||||
{
|
{
|
||||||
"apiVersion": "s3.aws.upbound.io/v1beta1",
|
"apiVersion": "s3.aws.m.upbound.io/v1beta1",
|
||||||
"kind": "Bucket",
|
"kind": "Bucket",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"annotations": {
|
"annotations": {
|
||||||
|
|
@ -261,7 +261,7 @@ class FunctionRunner(grpcv1.FunctionRunnerService):
|
||||||
# https://protobuf.dev/reference/python/python-generated/#map-fields
|
# https://protobuf.dev/reference/python/python-generated/#map-fields
|
||||||
rsp.desired.resources[f"xbuckets-{name}"].resource.update(
|
rsp.desired.resources[f"xbuckets-{name}"].resource.update(
|
||||||
{
|
{
|
||||||
"apiVersion": "s3.aws.upbound.io/v1beta1",
|
"apiVersion": "s3.aws.m.upbound.io/v1beta1",
|
||||||
"kind": "Bucket",
|
"kind": "Bucket",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"annotations": {
|
"annotations": {
|
||||||
|
|
@ -399,7 +399,7 @@ class TestFunctionRunner(unittest.IsolatedAsyncioTestCase):
|
||||||
"xbuckets-test-bucket-a": fnv1.Resource(
|
"xbuckets-test-bucket-a": fnv1.Resource(
|
||||||
resource=resource.dict_to_struct(
|
resource=resource.dict_to_struct(
|
||||||
{
|
{
|
||||||
"apiVersion": "s3.aws.upbound.io/v1beta1",
|
"apiVersion": "s3.aws.m.upbound.io/v1beta1",
|
||||||
"kind": "Bucket",
|
"kind": "Bucket",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"annotations": {
|
"annotations": {
|
||||||
|
|
@ -415,7 +415,7 @@ class TestFunctionRunner(unittest.IsolatedAsyncioTestCase):
|
||||||
"xbuckets-test-bucket-b": fnv1.Resource(
|
"xbuckets-test-bucket-b": fnv1.Resource(
|
||||||
resource=resource.dict_to_struct(
|
resource=resource.dict_to_struct(
|
||||||
{
|
{
|
||||||
"apiVersion": "s3.aws.upbound.io/v1beta1",
|
"apiVersion": "s3.aws.m.upbound.io/v1beta1",
|
||||||
"kind": "Bucket",
|
"kind": "Bucket",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"annotations": {
|
"annotations": {
|
||||||
|
|
@ -588,7 +588,7 @@ kind: XBuckets
|
||||||
metadata:
|
metadata:
|
||||||
name: example-buckets
|
name: example-buckets
|
||||||
---
|
---
|
||||||
apiVersion: s3.aws.upbound.io/v1beta1
|
apiVersion: s3.aws.m.upbound.io/v1beta1
|
||||||
kind: Bucket
|
kind: Bucket
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
|
|
@ -603,7 +603,7 @@ spec:
|
||||||
forProvider:
|
forProvider:
|
||||||
region: us-east-2
|
region: us-east-2
|
||||||
---
|
---
|
||||||
apiVersion: s3.aws.upbound.io/v1beta1
|
apiVersion: s3.aws.m.upbound.io/v1beta1
|
||||||
kind: Bucket
|
kind: Bucket
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
|
|
@ -618,7 +618,7 @@ spec:
|
||||||
forProvider:
|
forProvider:
|
||||||
region: us-east-2
|
region: us-east-2
|
||||||
---
|
---
|
||||||
apiVersion: s3.aws.upbound.io/v1beta1
|
apiVersion: s3.aws.m.upbound.io/v1beta1
|
||||||
kind: Bucket
|
kind: Bucket
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
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).
|
* 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).
|
* 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
|
## 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
|
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
|
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.
|
and recreate the resource.
|
||||||
|
|
||||||
Crossplane allows you to edit the immutable field of a managed resource, but
|
Crossplane allows you to edit the immutable field of a managed resource, but
|
||||||
|
|
@ -281,11 +273,12 @@ spec:
|
||||||
managementPolicies: ["Observe", "Create", "Update", "Delete"]
|
managementPolicies: ["Observe", "Create", "Update", "Delete"]
|
||||||
initProvider:
|
initProvider:
|
||||||
scalingConfig:
|
scalingConfig:
|
||||||
- desiredSize: 1
|
desiredSize: 1
|
||||||
forProvider:
|
forProvider:
|
||||||
region: us-west-1
|
region: us-west-1
|
||||||
|
clusterName: my-cluster
|
||||||
scalingConfig:
|
scalingConfig:
|
||||||
- maxSize: 4
|
maxSize: 4
|
||||||
minSize: 1
|
minSize: 1
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -385,16 +378,22 @@ This matches the {{<hover label="pc" line="4">}}name{{</hover>}} of a ProviderCo
|
||||||
```yaml {label="pcref",copy-lines="none"}}
|
```yaml {label="pcref",copy-lines="none"}}
|
||||||
apiVersion: ec2.aws.m.upbound.io/v1beta1
|
apiVersion: ec2.aws.m.upbound.io/v1beta1
|
||||||
kind: Instance
|
kind: Instance
|
||||||
|
metadata:
|
||||||
|
namespace: default
|
||||||
|
name: my-instance
|
||||||
spec:
|
spec:
|
||||||
forProvider:
|
forProvider:
|
||||||
# Removed for brevity
|
# Removed for brevity
|
||||||
providerConfigRef: user-keys
|
providerConfigRef:
|
||||||
|
name: user-keys
|
||||||
|
kind: ProviderConfig
|
||||||
```
|
```
|
||||||
|
|
||||||
```yaml {label="pc"}
|
```yaml {label="pc"}
|
||||||
apiVersion: aws.m.crossplane.io/v1beta1
|
apiVersion: aws.m.upbound.io/v1beta1
|
||||||
kind: ProviderConfig
|
kind: ProviderConfig
|
||||||
metadata:
|
metadata:
|
||||||
|
namespace: default
|
||||||
name: user-keys
|
name: user-keys
|
||||||
# Removed for brevity
|
# Removed for brevity
|
||||||
```
|
```
|
||||||
|
|
@ -405,6 +404,52 @@ different managed resources to authenticate with different credentials to the
|
||||||
same Provider.
|
same Provider.
|
||||||
{{< /hint >}}
|
{{< /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 -->
|
<!-- vale off -->
|
||||||
### writeConnectionSecretToRef
|
### writeConnectionSecretToRef
|
||||||
<!-- vale on -->
|
<!-- vale on -->
|
||||||
|
|
@ -416,7 +461,7 @@ Crossplane stores these details in a Kubernetes Secret object specified by the
|
||||||
`writeConnectionSecretToRef` values.
|
`writeConnectionSecretToRef` values.
|
||||||
|
|
||||||
For example, when creating an AWS RDS database instance with the Crossplane
|
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
|
generates an endpoint, password, port and username data. The Provider saves
|
||||||
these variables in the Kubernetes secret
|
these variables in the Kubernetes secret
|
||||||
{{<hover label="secretname" line="10" >}}rds-secret{{</hover>}}, referenced by
|
{{<hover label="secretname" line="10" >}}rds-secret{{</hover>}}, referenced by
|
||||||
|
|
@ -425,8 +470,8 @@ the
|
||||||
field.
|
field.
|
||||||
|
|
||||||
```yaml {label="secretname",copy-lines="none"}
|
```yaml {label="secretname",copy-lines="none"}
|
||||||
apiVersion: database.aws.m.crossplane.io/v1beta1
|
apiVersion: rds.aws.m.upbound.io/v1beta1
|
||||||
kind: RDSInstance
|
kind: Instance
|
||||||
metadata:
|
metadata:
|
||||||
namespace: default
|
namespace: default
|
||||||
name: my-rds-instance
|
name: my-rds-instance
|
||||||
|
|
@ -483,15 +528,15 @@ the name `my-rds-instance` as an external resource inside the Provider's
|
||||||
environment.
|
environment.
|
||||||
|
|
||||||
```yaml {label="external-name",copy-lines="none"}
|
```yaml {label="external-name",copy-lines="none"}
|
||||||
apiVersion: database.aws.m.crossplane.io/v1beta1
|
apiVersion: rds.aws.m.upbound.io/v1beta1
|
||||||
kind: RDSInstance
|
kind: Instance
|
||||||
metadata:
|
metadata:
|
||||||
namespace: default
|
namespace: default
|
||||||
name: my-rds-instance
|
name: my-rds-instance
|
||||||
```
|
```
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl get rdsinstance
|
kubectl get instance
|
||||||
NAME READY SYNCED EXTERNAL-NAME AGE
|
NAME READY SYNCED EXTERNAL-NAME AGE
|
||||||
my-rds-instance True True my-rds-instance 11m
|
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.
|
for the external resource inside AWS.
|
||||||
|
|
||||||
```yaml {label="custom-name",copy-lines="none"}
|
```yaml {label="custom-name",copy-lines="none"}
|
||||||
apiVersion: database.aws.m.crossplane.io/v1beta1
|
apiVersion: rds.aws.m.upbound.io/v1beta1
|
||||||
kind: RDSInstance
|
kind: Instance
|
||||||
metadata:
|
metadata:
|
||||||
namespace: default
|
namespace: default
|
||||||
name: my-rds-instance
|
name: my-rds-instance
|
||||||
|
|
@ -516,7 +561,7 @@ metadata:
|
||||||
```
|
```
|
||||||
|
|
||||||
```shell {copy-lines="1"}
|
```shell {copy-lines="1"}
|
||||||
kubectl get rdsinstance
|
kubectl get instance
|
||||||
NAME READY SYNCED EXTERNAL-NAME AGE
|
NAME READY SYNCED EXTERNAL-NAME AGE
|
||||||
my-rds-instance True True my-custom-name 11m
|
my-rds-instance True True my-custom-name 11m
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ metadata:
|
||||||
name: protect-production-database
|
name: protect-production-database
|
||||||
spec:
|
spec:
|
||||||
of:
|
of:
|
||||||
apiVersion: rds.m.aws.m.upbound.io/v1beta1
|
apiVersion: rds.aws.m.upbound.io/v1beta1
|
||||||
kind: Instance
|
kind: Instance
|
||||||
resourceRef:
|
resourceRef:
|
||||||
name: my-database
|
name: my-database
|
||||||
|
|
|
||||||
|
|
@ -210,7 +210,7 @@ metadata:
|
||||||
name: backup-on-deletion
|
name: backup-on-deletion
|
||||||
spec:
|
spec:
|
||||||
watch:
|
watch:
|
||||||
apiVersion: rds.aws.crossplane.io/v1alpha1
|
apiVersion: rds.aws.m.upbound.io/v1beta1
|
||||||
kind: Instance
|
kind: Instance
|
||||||
# Note: Watching for deletion requires function logic
|
# Note: Watching for deletion requires function logic
|
||||||
# to check deletion timestamp
|
# to check deletion timestamp
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ logic for any external resources.
|
||||||
|
|
||||||
Examples of providers include:
|
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 Azure](https://github.com/upbound/provider-azure)
|
||||||
* [Provider GCP](https://github.com/upbound/provider-gcp)
|
* [Provider GCP](https://github.com/upbound/provider-gcp)
|
||||||
* [Provider Kubernetes](https://github.com/crossplane-contrib/provider-kubernetes)
|
* [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 >}}
|
{{< /hint >}}
|
||||||
|
|
||||||
For example, to install the
|
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"}
|
```yaml {label="install"}
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
kind: Provider
|
kind: Provider
|
||||||
metadata:
|
metadata:
|
||||||
name: provider-aws
|
name: crossplane-contrib-provider-aws-s3-s3
|
||||||
spec:
|
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
|
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
|
apiVersion: meta.pkg.crossplane.io/v1
|
||||||
kind: Provider
|
kind: Provider
|
||||||
metadata:
|
metadata:
|
||||||
name: provider-aws
|
name: crossplane-contrib-provider-aws-s3
|
||||||
spec:
|
spec:
|
||||||
# Removed for brevity
|
# Removed for brevity
|
||||||
```
|
```
|
||||||
|
|
@ -105,14 +105,14 @@ Use the
|
||||||
{{<hover label="helm" line="5" >}}--set provider.packages{{</hover >}}
|
{{<hover label="helm" line="5" >}}--set provider.packages{{</hover >}}
|
||||||
argument with `helm install`.
|
argument with `helm install`.
|
||||||
|
|
||||||
For example, to install the AWS Community Provider,
|
For example, to install the AWS S3 Provider,
|
||||||
|
|
||||||
```shell {label="helm"}
|
```shell {label="helm"}
|
||||||
helm install crossplane \
|
helm install crossplane \
|
||||||
crossplane-stable/crossplane \
|
crossplane-stable/crossplane \
|
||||||
--namespace crossplane-system \
|
--namespace crossplane-system \
|
||||||
--create-namespace \
|
--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
|
### Install offline
|
||||||
|
|
@ -137,9 +137,9 @@ and repeatable installations.
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
kind: Provider
|
kind: Provider
|
||||||
metadata:
|
metadata:
|
||||||
name: provider-aws
|
name: crossplane-contrib-provider-aws-s3
|
||||||
spec:
|
spec:
|
||||||
package: xpkg.crossplane.io/crossplane-contrib/provider-aws@sha256:ee6bece46dbb54cc3f0233961f5baac317fa4e4a81b41198bdc72fc472d113d0
|
package: xpkg.crossplane.io/crossplane-contrib/provider-aws-s3@sha256:ee6bece46dbb54cc3f0233961f5baac317fa4e4a81b41198bdc72fc472d113d0
|
||||||
```
|
```
|
||||||
{{< /hint >}}
|
{{< /hint >}}
|
||||||
|
|
||||||
|
|
@ -174,7 +174,7 @@ configuration.
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
kind: Provider
|
kind: Provider
|
||||||
metadata:
|
metadata:
|
||||||
name: provider-aws
|
name: crossplane-contrib-provider-aws-s3
|
||||||
spec:
|
spec:
|
||||||
packagePullPolicy: Always
|
packagePullPolicy: Always
|
||||||
# Removed for brevity
|
# Removed for brevity
|
||||||
|
|
@ -203,7 +203,7 @@ For example, to change the upgrade behavior to require manual upgrades, set
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
kind: Provider
|
kind: Provider
|
||||||
metadata:
|
metadata:
|
||||||
name: provider-aws
|
name: crossplane-contrib-provider-aws-s3
|
||||||
spec:
|
spec:
|
||||||
revisionActivationPolicy: Manual
|
revisionActivationPolicy: Manual
|
||||||
# Removed for brevity
|
# Removed for brevity
|
||||||
|
|
@ -237,7 +237,7 @@ For example, to change the default setting and store 10 revisions use
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
kind: Provider
|
kind: Provider
|
||||||
metadata:
|
metadata:
|
||||||
name: provider-aws
|
name: crossplane-contrib-provider-aws-s3
|
||||||
spec:
|
spec:
|
||||||
revisionHistoryLimit: 10
|
revisionHistoryLimit: 10
|
||||||
# Removed for brevity
|
# Removed for brevity
|
||||||
|
|
@ -268,7 +268,7 @@ For example, to use the secret named
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
kind: Provider
|
kind: Provider
|
||||||
metadata:
|
metadata:
|
||||||
name: provider-aws
|
name: crossplane-contrib-provider-aws-s3
|
||||||
spec:
|
spec:
|
||||||
packagePullSecrets:
|
packagePullSecrets:
|
||||||
- name: example-secret
|
- name: example-secret
|
||||||
|
|
@ -295,7 +295,7 @@ For example, to disable dependency resolution configure
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
kind: Provider
|
kind: Provider
|
||||||
metadata:
|
metadata:
|
||||||
name: provider-aws
|
name: crossplane-contrib-provider-aws-s3
|
||||||
spec:
|
spec:
|
||||||
skipDependencyResolution: true
|
skipDependencyResolution: true
|
||||||
# Removed for brevity
|
# Removed for brevity
|
||||||
|
|
@ -363,7 +363,7 @@ version, configure
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
kind: Provider
|
kind: Provider
|
||||||
metadata:
|
metadata:
|
||||||
name: provider-aws
|
name: crossplane-contrib-provider-aws-s3
|
||||||
spec:
|
spec:
|
||||||
ignoreCrossplaneConstraints: true
|
ignoreCrossplaneConstraints: true
|
||||||
# Removed for brevity
|
# Removed for brevity
|
||||||
|
|
@ -383,7 +383,7 @@ For example, this installation of the Getting Started Configuration is
|
||||||
```shell {copy-lines="1"}
|
```shell {copy-lines="1"}
|
||||||
kubectl get providers
|
kubectl get providers
|
||||||
NAME INSTALLED HEALTHY PACKAGE AGE
|
NAME INSTALLED HEALTHY PACKAGE AGE
|
||||||
provider-aws-s3 True False xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v1.21.1 12s
|
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
|
To see more information on why the Provider isn't `HEALTHY` use
|
||||||
|
|
@ -396,7 +396,7 @@ API Version: pkg.crossplane.io/v1
|
||||||
Kind: ProviderRevision
|
Kind: ProviderRevision
|
||||||
Spec:
|
Spec:
|
||||||
Desired State: Active
|
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
|
Revision: 1
|
||||||
Status:
|
Status:
|
||||||
Conditions:
|
Conditions:
|
||||||
|
|
@ -434,10 +434,10 @@ View the `ProviderRevisions` with
|
||||||
```shell {label="getPR",copy-lines="1"}
|
```shell {label="getPR",copy-lines="1"}
|
||||||
kubectl get providerrevisions
|
kubectl get providerrevisions
|
||||||
NAME HEALTHY REVISION IMAGE STATE DEP-FOUND DEP-INSTALLED AGE
|
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-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
|
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
|
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"}
|
```shell {copy-lines="1"}
|
||||||
kubectl get providers
|
kubectl get providers
|
||||||
NAME INSTALLED HEALTHY PACKAGE AGE
|
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
|
After the Provider install completes and it's ready for use the `HEALTHY` status
|
||||||
|
|
@ -489,7 +489,7 @@ reports `True`.
|
||||||
```shell {copy-lines="1"}
|
```shell {copy-lines="1"}
|
||||||
kubectl get providers
|
kubectl get providers
|
||||||
NAME INSTALLED HEALTHY PACKAGE AGE
|
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" >}}
|
{{<hint "important" >}}
|
||||||
|
|
@ -657,7 +657,7 @@ kind: Provider
|
||||||
metadata:
|
metadata:
|
||||||
name: provider-gcp-iam
|
name: provider-gcp-iam
|
||||||
spec:
|
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:
|
runtimeConfigRef:
|
||||||
name: enable-ess
|
name: enable-ess
|
||||||
---
|
---
|
||||||
|
|
@ -819,9 +819,10 @@ the key named
|
||||||
{{<hover label="providerconfig" line="10" >}}aws-creds{{</hover >}}.
|
{{<hover label="providerconfig" line="10" >}}aws-creds{{</hover >}}.
|
||||||
<!-- vale write-good.Weasel = YES -->
|
<!-- vale write-good.Weasel = YES -->
|
||||||
```yaml {label="providerconfig"}
|
```yaml {label="providerconfig"}
|
||||||
apiVersion: aws.crossplane.io/v1beta1
|
apiVersion: aws.m.upbound.io/v1beta1
|
||||||
kind: ProviderConfig
|
kind: ProviderConfig
|
||||||
metadata:
|
metadata:
|
||||||
|
namespace: default
|
||||||
name: aws-provider
|
name: aws-provider
|
||||||
spec:
|
spec:
|
||||||
credentials:
|
credentials:
|
||||||
|
|
@ -839,6 +840,52 @@ Read the documentation on a specific Provider for instructions on configuring
|
||||||
authentication for that Provider.
|
authentication for that Provider.
|
||||||
{{< /hint >}}
|
{{< /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 -->
|
<!-- vale write-good.TooWordy = NO -->
|
||||||
<!-- allow multiple -->
|
<!-- allow multiple -->
|
||||||
ProviderConfig objects apply to individual Managed Resources. A single
|
ProviderConfig objects apply to individual Managed Resources. A single
|
||||||
|
|
@ -855,9 +902,10 @@ For example, two AWS ProviderConfigs, named
|
||||||
use different Kubernetes secrets.
|
use different Kubernetes secrets.
|
||||||
|
|
||||||
```yaml {label="user"}
|
```yaml {label="user"}
|
||||||
apiVersion: aws.crossplane.io/v1beta1
|
apiVersion: aws.m.upbound.io/v1beta1
|
||||||
kind: ProviderConfig
|
kind: ProviderConfig
|
||||||
metadata:
|
metadata:
|
||||||
|
namespace: default
|
||||||
name: user-keys
|
name: user-keys
|
||||||
spec:
|
spec:
|
||||||
credentials:
|
credentials:
|
||||||
|
|
@ -869,9 +917,10 @@ spec:
|
||||||
```
|
```
|
||||||
|
|
||||||
```yaml {label="admin"}
|
```yaml {label="admin"}
|
||||||
apiVersion: aws.crossplane.io/v1beta1
|
apiVersion: aws.m.upbound.io/v1beta1
|
||||||
kind: ProviderConfig
|
kind: ProviderConfig
|
||||||
metadata:
|
metadata:
|
||||||
|
namespace: default
|
||||||
name: admin-keys
|
name: admin-keys
|
||||||
spec:
|
spec:
|
||||||
credentials:
|
credentials:
|
||||||
|
|
@ -889,15 +938,17 @@ resource using the
|
||||||
{{<hover label="user-bucket" line="9" >}}user-keys{{< /hover >}} ProviderConfig.
|
{{<hover label="user-bucket" line="9" >}}user-keys{{< /hover >}} ProviderConfig.
|
||||||
|
|
||||||
```yaml {label="user-bucket"}
|
```yaml {label="user-bucket"}
|
||||||
apiVersion: s3.aws.upbound.io/v1beta1
|
apiVersion: s3.aws.m.upbound.io/v1beta1
|
||||||
kind: Bucket
|
kind: Bucket
|
||||||
metadata:
|
metadata:
|
||||||
|
namespace: default
|
||||||
name: user-bucket
|
name: user-bucket
|
||||||
spec:
|
spec:
|
||||||
forProvider:
|
forProvider:
|
||||||
region: us-east-2
|
region: us-east-2
|
||||||
providerConfigRef:
|
providerConfigRef:
|
||||||
name: user-keys
|
name: user-keys
|
||||||
|
kind: ProviderConfig
|
||||||
```
|
```
|
||||||
|
|
||||||
This creates a second {{<hover label="admin-bucket" line="2" >}}Bucket{{< /hover >}}
|
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.
|
{{<hover label="admin-bucket" line="9" >}}admin-keys{{< /hover >}} ProviderConfig.
|
||||||
|
|
||||||
```yaml {label="admin-bucket"}
|
```yaml {label="admin-bucket"}
|
||||||
apiVersion: s3.aws.upbound.io/v1beta1
|
apiVersion: s3.aws.m.upbound.io/v1beta1
|
||||||
kind: Bucket
|
kind: Bucket
|
||||||
metadata:
|
metadata:
|
||||||
name: user-bucket
|
namespace: default
|
||||||
|
name: admin-bucket
|
||||||
spec:
|
spec:
|
||||||
forProvider:
|
forProvider:
|
||||||
region: us-east-2
|
region: us-east-2
|
||||||
providerConfigRef:
|
providerConfigRef:
|
||||||
name: admin-keys
|
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">}})
|
Follow [Get Started with Managed Resources]({{<ref "../get-started/get-started-with-managed-resources">}})
|
||||||
to see how managed resources work.
|
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
|
### Operations
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue