diff --git a/cmd/flux/create_source_git.go b/cmd/flux/create_source_git.go index 134f8f40..e708f07d 100644 --- a/cmd/flux/create_source_git.go +++ b/cmd/flux/create_source_git.go @@ -44,25 +44,26 @@ import ( ) type sourceGitFlags struct { - url string - branch string - tag string - semver string - refName string - commit string - username string - password string - keyAlgorithm flags.PublicKeyAlgorithm - keyRSABits flags.RSAKeyBits - keyECDSACurve flags.ECDSACurve - secretRef string - proxySecretRef string - provider flags.SourceGitProvider - caFile string - privateKeyFile string - recurseSubmodules bool - silent bool - ignorePaths []string + url string + branch string + tag string + semver string + refName string + commit string + username string + password string + keyAlgorithm flags.PublicKeyAlgorithm + keyRSABits flags.RSAKeyBits + keyECDSACurve flags.ECDSACurve + secretRef string + proxySecretRef string + provider flags.SourceGitProvider + caFile string + privateKeyFile string + recurseSubmodules bool + silent bool + ignorePaths []string + sparseCheckoutPaths []string } var createSourceGitCmd = &cobra.Command{ @@ -154,6 +155,7 @@ func init() { "when enabled, configures the GitRepository source to initialize and include Git submodules in the artifact it produces") createSourceGitCmd.Flags().BoolVarP(&sourceGitArgs.silent, "silent", "s", false, "assumes the deploy key is already setup, skips confirmation") createSourceGitCmd.Flags().StringSliceVar(&sourceGitArgs.ignorePaths, "ignore-paths", nil, "set paths to ignore in git resource (can specify multiple paths with commas: path1,path2)") + createSourceGitCmd.Flags().StringSliceVar(&sourceGitArgs.sparseCheckoutPaths, "sparse-checkout-paths", nil, "set paths to sparse checkout in git resource (can specify multiple paths with commas: path1,path2)") createSourceCmd.AddCommand(createSourceGitCmd) } @@ -220,6 +222,7 @@ func createSourceGitCmdRun(cmd *cobra.Command, args []string) error { RecurseSubmodules: sourceGitArgs.recurseSubmodules, Reference: &sourcev1.GitRepositoryRef{}, Ignore: ignorePaths, + SparseCheckout: sourceGitArgs.sparseCheckoutPaths, }, } diff --git a/cmd/flux/create_source_git_test.go b/cmd/flux/create_source_git_test.go index a04ee5c9..aefdace1 100644 --- a/cmd/flux/create_source_git_test.go +++ b/cmd/flux/create_source_git_test.go @@ -87,7 +87,7 @@ func (r *reconciler) conditionFunc() (bool, error) { } func TestCreateSourceGitExport(t *testing.T) { - var command = "create source git podinfo --url=https://github.com/stefanprodan/podinfo --branch=master --ignore-paths .cosign,non-existent-dir/ -n default --interval 1m --export --timeout=" + testTimeout.String() + var command = "create source git podinfo --url=https://github.com/stefanprodan/podinfo --branch=master --sparse-checkout-paths .cosign,non-existent-dir/ --ignore-paths .cosign,non-existent-dir/ -n default --interval 1m --export --timeout=" + testTimeout.String() cases := []struct { name string diff --git a/cmd/flux/testdata/create_source_git/export.golden b/cmd/flux/testdata/create_source_git/export.golden index b23aaaab..9ac841af 100644 --- a/cmd/flux/testdata/create_source_git/export.golden +++ b/cmd/flux/testdata/create_source_git/export.golden @@ -11,4 +11,7 @@ spec: interval: 1m0s ref: branch: master + sparseCheckout: + - .cosign + - non-existent-dir/ url: https://github.com/stefanprodan/podinfo