使用Pulumi+Go部署OpenShift订阅清单时遇模块包不存在错误求助
问题解决思路
1. 修正包导入路径
pulumi-kubernetes v4 SDK中,OLM的Subscription资源属于operators.coreos.com/v1alpha1 API组,对应的Go包路径是github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/operator/v1alpha1,而非你使用的operators包。
修改代码中的导入语句:
import ( "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions" "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/operator/v1alpha1" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" )
2. 调整代码中的类型引用
将原代码中所有operators.前缀的类型替换为v1alpha1.:
operators.NewSubscription→v1alpha1.NewSubscriptionoperators.SubscriptionArgs→v1alpha1.SubscriptionArgsoperators.SubscriptionSpecArgs→v1alpha1.SubscriptionSpecArgs
修改后的核心代码片段:
elasticsearchOperator, err := v1alpha1.NewSubscription(ctx, name, &v1alpha1.SubscriptionArgs{ ApiVersion: pulumi.String("operators.coreos.com/v1alpha1"), Kind: pulumi.String("Subscription"), Metadata: &apiextensions.ObjectMetaArgs{ Name: pulumi.String(name), Namespace: pulumi.String("openshift-operators"), }, Spec: v1alpha1.SubscriptionSpecArgs{ Channel: pulumi.String("stable"), InstallPlanApproval: pulumi.String("Automatic"), Name: pulumi.String("elasticsearch-operator"), Source: pulumi.String("operatorhubio-catalog"), SourceNamespace: pulumi.String("olm"), StartingCsv: pulumi.String("elasticsearch-operator.v2.1.11"), }, }, pulumi.Protect(true))
3. 拉取正确的依赖
执行以下命令安装对应包:
go get github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/operator/v1alpha1
4. 验证版本兼容性
你使用的pulumi-kubernetes v4.9.1版本原生支持operators.coreos.com/v1alpha1 API组,无需调整版本。
内容的提问来源于stack exchange,提问作者Chandra Sekar
相关产品推荐
相关产品推荐

