问题描述
我尝试通过Calico Client Go将Calico网络策略应用于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)
}
}
我收到错误消息:Policy(name = init-policy)不支持创建操作
另一种通过Golang代码将Calico网络策略应用于Kubernetes的解决方案。我尝试使用Kube客户端,但未成功。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)