return
}
- _, err := ipsAdapter.Update(name, version)
+ canaryTrafficRatio := c.Query("canary")
+
+ _, err := ipsAdapter.Update(name, version, canaryTrafficRatio)
if err != nil {
utils.WriteError(c.Writer, err)
return
type Command interface {
Deploy(name string, version string) (string, error)
Delete(name string) error
- Update(name string, version string) (string, error)
+ Update(name string, version string, canaryTrafficRatio string) (string, error)
}
type Executor struct {
return
}
-func (Executor) Update(name string, version string) (revision string, err error) {
+func (Executor) Update(name string, version string, canaryTrafficRatio string) (revision string, err error) {
logger.Logging(logger.DEBUG, "IN")
defer logger.Logging(logger.DEBUG, "OUT")
return
}
+ setCanaryTrafficRatio(&values, canaryTrafficRatio)
+
ifsv, err := kserveClient.Get(name)
if err != nil {
return
import (
"os"
"path/filepath"
+ "strconv"
"gopkg.in/yaml.v1"
path = filepath.Join(path, "values.yaml")
return
}
+
+func setCanaryTrafficRatio(values *types.Values, ratio string) {
+ logger.Logging(logger.DEBUG, "IN")
+ defer logger.Logging(logger.DEBUG, "OUT")
+
+ trafficRatio, err := strconv.Atoi(ratio)
+ if err != nil {
+ trafficRatio = -1
+ }
+ values.CanaryTrafficPercent = int64(trafficRatio)
+}