Skip to content

Commit

Permalink
Add CLI flag for OCIRepo verify secret
Browse files Browse the repository at this point in the history
Signed-off-by: Matheus Pimenta <[email protected]>
  • Loading branch information
matheuscscp committed Oct 15, 2023
1 parent ae0c3c8 commit e8f1986
Showing 1 changed file with 28 additions and 10 deletions.
38 changes: 28 additions & 10 deletions cmd/flux/create_source_oci.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,18 @@ var createSourceOCIRepositoryCmd = &cobra.Command{
}

type sourceOCIRepositoryFlags struct {
url string
tag string
semver string
digest string
secretRef string
serviceAccount string
certSecretRef string
ignorePaths []string
provider flags.SourceOCIProvider
insecure bool
url string
tag string
semver string
digest string
secretRef string
serviceAccount string
certSecretRef string
verifyProvider string
verifySecretRef string
ignorePaths []string
provider flags.SourceOCIProvider
insecure bool
}

var sourceOCIRepositoryArgs = newSourceOCIFlags()
Expand All @@ -80,6 +82,8 @@ func init() {
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.secretRef, "secret-ref", "", "the name of the Kubernetes image pull secret (type 'kubernetes.io/dockerconfigjson')")
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.serviceAccount, "service-account", "", "the name of the Kubernetes service account that refers to an image pull secret")
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.certSecretRef, "cert-ref", "", "the name of a secret to use for TLS certificates")
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.verifyProvider, "verify-provider", "", "the provider to use for signture verification")
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.verifySecretRef, "verify-secret-ref", "", "the name of a secret to use for signture verification")
createSourceOCIRepositoryCmd.Flags().StringSliceVar(&sourceOCIRepositoryArgs.ignorePaths, "ignore-paths", nil, "set paths to ignore resources (can specify multiple paths with commas: path1,path2)")
createSourceOCIRepositoryCmd.Flags().BoolVar(&sourceOCIRepositoryArgs.insecure, "insecure", false, "for when connecting to a non-TLS registries over plain HTTP")

Expand Down Expand Up @@ -156,6 +160,20 @@ func createSourceOCIRepositoryCmdRun(cmd *cobra.Command, args []string) error {
}
}

if secretName := sourceOCIRepositoryArgs.verifySecretRef; secretName != "" {
provider := sourceOCIRepositoryArgs.verifyProvider
if provider == "" {
return fmt.Errorf("a provider must be specified for signature verification")
}

repository.Spec.Verify = &sourcev1.OCIRepositoryVerification{
Provider: provider,
SecretRef: &meta.LocalObjectReference{
Name: secretName,
},
}
}

if createArgs.export {
return printExport(exportOCIRepository(repository))
}
Expand Down

0 comments on commit e8f1986

Please sign in to comment.