腾讯云 Crossplane Provider 基于 Terraform Provider 开发。您可以通过以下配置来获取 Terraform 日志。
您可以通过 ControllerConfig 来设置开启对应的日志。
1. 在 Provider 配置 spec 中添加 controllerConfigRef,示例配置如下:
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-tencentcloud
spec:
package: xpkg.upbound.io/crossplane-contrib/provider-tencentcloud:v0.7.1
controllerConfigRef:
name: debug-config
2. 设置 ControllerConfig,示例配置如下:
apiVersion: pkg.crossplane.io/v1alpha1
kind: ControllerConfig
metadata:
name: debug-config
spec:
args:
- --debug
env:
- name: TF_LOG
value: TRACE
- name: TF_LOG_PATH
value: /tmp/terraform-trace.log
TF_LOG_PATH 用于设置日志路径。配置生效后,将在 tmp 目录下,生成对应的日志。
由于 Crossplane 使用的是 Kubernetes 容器,日志将存放在运行 Provider 的 pod 上。
执行如下命令,获取当前集群下的 pod:
kubectl get pods -n crossplane-system
输出如下:
NAME READY STATUS RESTARTS AGE
crossplane-6494656b8b-qr62x 1/1 Running 1 (3h35m ago) 6d4h
crossplane-rbac-manager-8458557cdd-lfn8q 1/1 Running 1 (3d ago) 6d4h
provider-tencentcloud-13db077a7bf0-66567f785-clb7g 1/1 Running 0 43m
找到以 “provider-tencentcloud-” 开头且状态为 “Running” 的 pod。然后,您可以使用 kubectl exec 命令进入容器中:
kubectl exec -it provider-tencentcloud-13db077a7bf0-66567f785-clb7g /bin/bash -n crossplane-system
使用 vi 命令查看对应的日志:
kubectl exec -it provider-tencentcloud-13db077a7bf0-66567f785-clb7g /bin/bash -n crossplane-system
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.bash-5.1$ vi /tmp/terraform-trace.log