Skip to content

Commit b20eb0c

Browse files
authored
Merge pull request #5534 from prasad89/issue#5526
Add support for custom storage namespace in HelmRelease creation
2 parents 4601a30 + 8000a41 commit b20eb0c

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

cmd/flux/create_helmrelease.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,13 @@ var createHelmReleaseCmd = &cobra.Command{
9494
--source=HelmRepository/podinfo \
9595
--chart=podinfo
9696
97+
# Create a HelmRelease with custom storage namespace for hub-and-spoke model
98+
flux create hr podinfo \
99+
--target-namespace=production \
100+
--storage-namespace=fluxcd-system \
101+
--source=HelmRepository/podinfo \
102+
--chart=podinfo
103+
97104
# Create a HelmRelease using a source from a different namespace
98105
flux create hr podinfo \
99106
--namespace=default \
@@ -127,6 +134,7 @@ type helmReleaseFlags struct {
127134
chartVersion string
128135
chartRef string
129136
targetNamespace string
137+
storageNamespace string
130138
createNamespace bool
131139
valuesFiles []string
132140
valuesFrom []string
@@ -150,6 +158,7 @@ func init() {
150158
createHelmReleaseCmd.Flags().StringVar(&helmReleaseArgs.chartVersion, "chart-version", "", "Helm chart version, accepts a semver range (ignored for charts from GitRepository sources)")
151159
createHelmReleaseCmd.Flags().StringSliceVar(&helmReleaseArgs.dependsOn, "depends-on", nil, "HelmReleases that must be ready before this release can be installed, supported formats '<name>' and '<namespace>/<name>'")
152160
createHelmReleaseCmd.Flags().StringVar(&helmReleaseArgs.targetNamespace, "target-namespace", "", "namespace to install this release, defaults to the HelmRelease namespace")
161+
createHelmReleaseCmd.Flags().StringVar(&helmReleaseArgs.storageNamespace, "storage-namespace", "", "namespace to store the Helm release, defaults to the target namespace")
153162
createHelmReleaseCmd.Flags().BoolVar(&helmReleaseArgs.createNamespace, "create-target-namespace", false, "create the target namespace if it does not exist")
154163
createHelmReleaseCmd.Flags().StringVar(&helmReleaseArgs.saName, "service-account", "", "the name of the service account to impersonate when reconciling this HelmRelease")
155164
createHelmReleaseCmd.Flags().StringVar(&helmReleaseArgs.reconcileStrategy, "reconcile-strategy", "ChartVersion", "the reconcile strategy for helm chart created by the helm release(accepted values: Revision and ChartRevision)")
@@ -165,6 +174,10 @@ func init() {
165174
func createHelmReleaseCmdRun(cmd *cobra.Command, args []string) error {
166175
name := args[0]
167176

177+
if helmReleaseArgs.storageNamespace == "" && helmReleaseArgs.targetNamespace != "" {
178+
helmReleaseArgs.storageNamespace = helmReleaseArgs.targetNamespace
179+
}
180+
168181
if helmReleaseArgs.chart == "" && helmReleaseArgs.chartRef == "" {
169182
return fmt.Errorf("chart or chart-ref is required")
170183
}
@@ -195,8 +208,9 @@ func createHelmReleaseCmdRun(cmd *cobra.Command, args []string) error {
195208
Interval: metav1.Duration{
196209
Duration: createArgs.interval,
197210
},
198-
TargetNamespace: helmReleaseArgs.targetNamespace,
199-
Suspend: false,
211+
TargetNamespace: helmReleaseArgs.targetNamespace,
212+
StorageNamespace: helmReleaseArgs.storageNamespace,
213+
Suspend: false,
200214
},
201215
}
202216

0 commit comments

Comments
 (0)