问题描述
下面是Calico Client Go的界面。函数LoadClientConfig返回api.CalicoAPIConfig,但为什么函数Client.New使用apiconfig.CalicoAPIConfig。 api.CalicoAPIConfig与apiconfig.CalicoAPIConfig不同。
请使用Calico Client Go帮助我。我找不到这个例子。
我使用文件config kube_config_cluster.yml,然后将DATASTORE_TYPE = kubernetes KUBECONfig = kube_config_cluster.yml calicoctl调用到Kubernetes服务器成功。
但是我使用此配置文件,通过Calico Client Go的呼叫失败。下面是我初始化Calico Client Go的代码。
cli,err := client.New(apiconfig.CalicoAPIConfig{
Spec: apiconfig.CalicoAPIConfigSpec{
DatastoreType: apiconfig.Kubernetes,KubeConfig: apiconfig.KubeConfig{
Kubeconfig: "conf/kube_config_cluster.yml",},})
然后我制定政策:
policies := cli.Policies()
_,err = policies.Apply(&api.Policy{
Metadata: api.PolicyMetadata{
Name: "init-policy",Spec: api.PolicySpec{
Types: []api.PolicyType{
api.PolicyTypeIngress,api.PolicyTypeEgress,IngressRules: []api.Rule{
{
Action: "allow",Source: api.EntityRule{
Selector: "app == 'hello-node-0'",EgressRules: []api.Rule{
{
Action: "allow",Destination: api.EntityRule{
Selector: "app == 'hello-node-1'",})
if err != nil {
panic(err)
}
错误返回为“ Policy(name = init-policy)不支持操作创建”
我使用了最新版本的libcalico-go v3.17.0-0dev和v1.7.2-0.20200427180741-f197f7370140。而且我遇到了同样的错误。我无法使用libcalico-go v1.7.3和其他版本,因为出现错误:
../../../ go/pkg/mod/github.com/projectcalico/libcalico-go@v1.7.3/lib/backend/k8s/k8s.go:41:2: 找到模块k8s.io/client-go@latest(v11.0.0 +不兼容),但确实 不包含软件包k8s.io/client-go/pkg/api ../../../go/pkg/mod/github.com/projectcalico/libcalico-go@v1.7.3/lib/backend/k8s/resources/client.go:20:2: 找到模块k8s.io/client-go@latest(v11.0.0 +不兼容),但确实 不包含软件包k8s.io/client-go/pkg/api/v1
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)