如何使用Calico Client Golanglibcalico-go

问题描述

下面是Calico Client Go的界面。函数LoadClientConfig返回api.CalicoAPIConfig,但为什么函数Client.New使用apiconfig.CalicoAPIConfig。 api.CalicoAPIConfig与apiconfig.CalicoAPIConfig不同。

Calico Client Go Interface

请使用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 (将#修改为@)