问题描述
我正在尝试创建一个Nginx运算符,该运算符允许您更改要拉取的Image的版本。现在,我有一个正在运行的运算符,可让您更改副本。我尝试添加一些代码(如下所示)以尝试在Kind yaml文件中的“图像”更改时更新pod。
部署已生成,未包含在下面的代码中,我已设置 ImagePullPolicy始终显示,但似乎仍然无法正常工作。
用于创建部署的代码:
found := &appsv1.Deployment{}
err = r.Get(ctx,types.Namespacedname{Name: Nginx.Name,Namespace: Nginx.Namespace},found)
if err != nil && errors.IsNotFound(err) {
// ? Als err niet nul is,en de error is 'IsNotFound' dan maken we een nieuwe deployment
dep := r.CreateDeployment(Nginx)
log.Info("Creating new Deployment")
err = r.Create(ctx,dep)
if err != nil {
log.Error(err,"Error creating new Deployment")
return ctrl.Result{},err
}
return ctrl.Result{Requeue: true},nil
} else if err != nil {
log.Error(err,"Failed... Couldn't get Deployment")
return ctrl.Result{},err
}
version := "Nginx:" + Nginx.Spec.Version
currentVersion := found.Spec.Template.Spec.Containers[0].Image
if currentVersion != version {
currentVersion = version
err = r.Update(ctx,found)
if err != nil {
log.Error(err,"Failed to update Version")
return ctrl.Result{},err
}
// Version Updated
return ctrl.Result{Requeue: true},nil
}
2020-10-19T15:47:31.715+0200 ERROR controller Reconciler error {"reconcilerGroup": "Nginx.example.com","reconcilerKind": "Nginx","controller": "Nginx","name": "Nginx-sample","namespace": "default","error": "Operation cannot be fulfilled on deployments.apps \"Nginx-sample\": the object has been modified; please apply your changes to the latest version and try again"}
尽管我一直收到此错误,但我的操作员仍在运行。 感谢任何帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)