在 Crossplane 中,执行创建或修改资源之前,您可以使用 kubectl 的
diff
命令和 --dry-run
标识来预览即将执行的操作是否符合预期,类似于 Terraform plan
操作。--dry-run 标识
使用
--dry-run=client
标识可以在执行创建或修改资源的命令时进行预览(试运行),而不会实际执行操作,只会打印出命令执行后的结果。例如,在创建 VPC 资源时,您可以在 apply 命令中添加 --dry-run=client
标识,如下所示:❯ kubectl apply -f resource_vpc.yml --dry-run=clientvpc.vpc.tencentcloud.crossplane.io/resource-vpc created (dry run)
diff 命令
在修改某个配置后,可使用
diff
命令,输出变更信息,以便提前确认接下来的操作是否符合预期。例如,下列变更信息中显示,在即将执行的操作中:
vpc.vpc.tencentcloud.crossplane.io/resource-vpc 资源将被配置。
将变更 VPC 的名称。
指定一个新的 tags。
并为该实例指定了一个新的
providerConfigRef
配置tc-config
。❯ k apply -f resource_vpc.yml --dry-run=client # 试运行vpc.vpc.tencentcloud.crossplane.io/resource-vpc configured (dry run)❯ k diff -f resource_vpc.yml # 查看变更信息diff -u -N /var/folders/1q/8ccdcrgx15g12tqnh2xr_6mm0000gn/T/LIVE-3705260406/vpc.tencentcloud.crossplane.io.v1alpha1.VPC..resource-vpc /var/folders/1q/8ccdcrgx15g12tqnh2xr_6mm0000gn/T/MERGED-3222222296/vpc.tencentcloud.crossplane.io.v1alpha1.VPC..resource-vpc--- /var/folders/1q/8ccdcrgx15g12tqnh2xr_6mm0000gn/T/LIVE-3705260406/vpc.tencentcloud.crossplane.io.v1alpha1.VPC..resource-vpc 2024-04-26 15:25:50+++ /var/folders/1q/8ccdcrgx15g12tqnh2xr_6mm0000gn/T/MERGED-3222222296/vpc.tencentcloud.crossplane.io.v1alpha1.VPC..resource-vpc 2024-04-26 15:25:50@@ -5,7 +5,7 @@kubectl.kubernetes.io/last-applied-configuration: |{"apiVersion":"vpc.tencentcloud.crossplane.io/v1alpha1","kind":"VPC","metadata":{"annotations":{},"name":"resource-vpc"},"spec":{"forProvider":{"cidrBlock":"10.1.0.0/16","name":"crossplane-test-vpc"}}}creationTimestamp: "2024-04-26T07:23:08Z"- generation: 1+ generation: 2name: resource-vpcresourceVersion: "11508"uid: 31b5df00-6c00-4010-a056-4b7d3113ac24@@ -13,9 +13,11 @@deletionPolicy: DeleteforProvider:cidrBlock: 10.1.0.0/16- name: crossplane-test-vpc+ name: crossplane-test-vpc-updated+ tags:+ CreateBy: crosspalne-testproviderConfigRef:- name: default+ name: tc-configstatus:atProvider: {}conditions
查看控制台,可以看到本次变更: