通过Calico客户端Go(libcalico Go)将Calico网络策略应用于Kubernetes

通过Calico客户端Go(libcalico Go)将Calico网络策略应用于Kubernetes,kubernetes,calico,Kubernetes,Calico,我尝试通过Calico客户端Go将印花布网络策略应用于Kubernetes。但我犯了一些错误。下面是我的Golang代码 package main import ( "github.com/projectcalico/libcalico-go/lib/apiconfig" api "github.com/projectcalico/libcalico-go/lib/apis/v1" "github.com/project

我尝试通过Calico客户端Go将印花布网络策略应用于Kubernetes。但我犯了一些错误。下面是我的Golang代码

package main

import (
    "github.com/projectcalico/libcalico-go/lib/apiconfig"
    api "github.com/projectcalico/libcalico-go/lib/apis/v1"
    "github.com/projectcalico/libcalico-go/lib/client"
)

func main() {
    cli, err := client.New(apiconfig.CalicoAPIConfig{
        Spec: apiconfig.CalicoAPIConfigSpec{
            DatastoreType: apiconfig.Kubernetes,
            KubeConfig: apiconfig.KubeConfig{
                Kubeconfig: "conf/kube_config_cluster.yml",
            },
        },
    })
    if err != nil {
        panic(err)
    }

    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)
    }
}
我收到错误:策略(name=init Policy)不支持创建操作

通过Golang代码将印花布网络策略应用于Kubernetes的另一个解决方案是什么。我尝试使用Kube客户端,但没有成功