diff --git a/api/v1beta1/spec.go b/api/v1beta1/spec.go index 97012594..2410c343 100644 --- a/api/v1beta1/spec.go +++ b/api/v1beta1/spec.go @@ -250,12 +250,12 @@ type HelmInstallOptions struct { // Create the release namespace if not present. Defaults to true // +kubebuilder:default:=true // +optional - CreateNamespace bool `json:"createNamespace,omitempty"` + CreateNamespace *bool `json:"createNamespace,omitempty"` // Replaces if set indicates to replace an older release with this one // +kubebuilder:default:=true // +optional - Replace bool `json:"replace,omitempty"` + Replace *bool `json:"replace,omitempty"` // prevent hooks from running during install. If set to true, overrides // DisableHooks in HelmOptions. Use this one when you want to selective diff --git a/api/v1beta1/zz_generated.deepcopy.go b/api/v1beta1/zz_generated.deepcopy.go index 4a747b6e..39a311bd 100644 --- a/api/v1beta1/zz_generated.deepcopy.go +++ b/api/v1beta1/zz_generated.deepcopy.go @@ -21,12 +21,11 @@ limitations under the License. package v1beta1 import ( + apiv1beta1 "github.com/projectsveltos/libsveltos/api/v1beta1" corev1 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - - apiv1beta1 "github.com/projectsveltos/libsveltos/api/v1beta1" ) // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. @@ -848,6 +847,16 @@ func (in *HelmChartSummary) DeepCopy() *HelmChartSummary { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *HelmInstallOptions) DeepCopyInto(out *HelmInstallOptions) { *out = *in + if in.CreateNamespace != nil { + in, out := &in.CreateNamespace, &out.CreateNamespace + *out = new(bool) + **out = **in + } + if in.Replace != nil { + in, out := &in.Replace, &out.Replace + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmInstallOptions. @@ -875,7 +884,7 @@ func (in *HelmOptions) DeepCopyInto(out *HelmOptions) { (*out)[key] = val } } - out.InstallOptions = in.InstallOptions + in.InstallOptions.DeepCopyInto(&out.InstallOptions) out.UpgradeOptions = in.UpgradeOptions out.UninstallOptions = in.UninstallOptions } diff --git a/controllers/handlers_helm.go b/controllers/handlers_helm.go index cf6b665e..0f472dbf 100644 --- a/controllers/handlers_helm.go +++ b/controllers/handlers_helm.go @@ -3904,8 +3904,8 @@ func getTakeOwnershipHelmValue(options *configv1beta1.HelmOptions, isUpgrade boo } func getCreateNamespaceHelmValue(options *configv1beta1.HelmOptions) bool { - if options != nil { - return options.InstallOptions.CreateNamespace + if options != nil && options.InstallOptions.CreateNamespace != nil { + return *options.InstallOptions.CreateNamespace } return true // for backward compatibility @@ -4012,8 +4012,8 @@ func getLabelsValue(options *configv1beta1.HelmOptions) map[string]string { } func getReplaceValue(options *configv1beta1.HelmOptions) bool { - if options != nil { - return options.InstallOptions.Replace + if options != nil && options.InstallOptions.Replace != nil { + return *options.InstallOptions.Replace } return true } diff --git a/test/fv/delete_check_test.go b/test/fv/delete_check_test.go index 63996ee3..24955329 100644 --- a/test/fv/delete_check_test.go +++ b/test/fv/delete_check_test.go @@ -23,6 +23,7 @@ import ( . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" + "k8s.io/utils/ptr" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" @@ -110,7 +111,7 @@ spec: Options: &configv1beta1.HelmOptions{ DependencyUpdate: true, InstallOptions: configv1beta1.HelmInstallOptions{ - Replace: false, + Replace: ptr.To(false), }, }, }, diff --git a/test/fv/helm_failure_message_test.go b/test/fv/helm_failure_message_test.go index bc7dfc9a..c1906aa6 100644 --- a/test/fv/helm_failure_message_test.go +++ b/test/fv/helm_failure_message_test.go @@ -26,6 +26,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/util/retry" + "k8s.io/utils/ptr" configv1beta1 "github.com/projectsveltos/addon-controller/api/v1beta1" "github.com/projectsveltos/addon-controller/lib/clusterops" @@ -81,8 +82,8 @@ var _ = Describe("Helm with conflicts", func() { HelmChartAction: configv1beta1.HelmChartActionInstall, Options: &configv1beta1.HelmOptions{ InstallOptions: configv1beta1.HelmInstallOptions{ - CreateNamespace: true, - Replace: true, + CreateNamespace: ptr.To(true), + Replace: ptr.To(true), }, Timeout: &metav1.Duration{Duration: time.Second}, }, diff --git a/test/fv/helm_options_test.go b/test/fv/helm_options_test.go index e2ca10ad..fcc2744a 100644 --- a/test/fv/helm_options_test.go +++ b/test/fv/helm_options_test.go @@ -22,6 +22,7 @@ import ( . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" + "k8s.io/utils/ptr" appsv1 "k8s.io/api/apps/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -68,7 +69,7 @@ var _ = Describe("HelmOptions", func() { Options: &configv1beta1.HelmOptions{ DependencyUpdate: true, InstallOptions: configv1beta1.HelmInstallOptions{ - Replace: false, + Replace: ptr.To(false), }, }, },