github.com/cilium/cilium@v1.16.2/pkg/client/config.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package client 5 6 import ( 7 "github.com/cilium/cilium/api/v1/client/daemon" 8 "github.com/cilium/cilium/api/v1/models" 9 "github.com/cilium/cilium/pkg/api" 10 ) 11 12 // ConfigGet returns a daemon configuration. 13 func (c *Client) ConfigGet() (*models.DaemonConfiguration, error) { 14 resp, err := c.Daemon.GetConfig(nil) 15 if err != nil { 16 return nil, Hint(err) 17 } 18 return resp.Payload, nil 19 } 20 21 // ConfigPatch modifies the daemon configuration. 22 func (c *Client) ConfigPatch(cfg models.DaemonConfigurationSpec) error { 23 fullCfg, err := c.ConfigGet() 24 if err != nil { 25 return err 26 } 27 28 for opt, value := range cfg.Options { 29 fullCfg.Spec.Options[opt] = value 30 } 31 if cfg.PolicyEnforcement != "" { 32 fullCfg.Spec.PolicyEnforcement = cfg.PolicyEnforcement 33 } 34 35 params := daemon.NewPatchConfigParams().WithConfiguration(fullCfg.Spec).WithTimeout(api.ClientTimeout) 36 _, err = c.Daemon.PatchConfig(params) 37 return Hint(err) 38 }