Skip to content

Commit e8f1986

Browse files
committed
Add CLI flag for OCIRepo verify secret
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
1 parent ae0c3c8 commit e8f1986

File tree

1 file changed

+28
-10
lines changed

1 file changed

+28
-10
lines changed

cmd/flux/create_source_oci.go

+28-10
Original file line numberDiff line numberDiff line change
@@ -51,16 +51,18 @@ var createSourceOCIRepositoryCmd = &cobra.Command{
5151
}
5252

5353
type sourceOCIRepositoryFlags struct {
54-
url string
55-
tag string
56-
semver string
57-
digest string
58-
secretRef string
59-
serviceAccount string
60-
certSecretRef string
61-
ignorePaths []string
62-
provider flags.SourceOCIProvider
63-
insecure bool
54+
url string
55+
tag string
56+
semver string
57+
digest string
58+
secretRef string
59+
serviceAccount string
60+
certSecretRef string
61+
verifyProvider string
62+
verifySecretRef string
63+
ignorePaths []string
64+
provider flags.SourceOCIProvider
65+
insecure bool
6466
}
6567

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

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

163+
if secretName := sourceOCIRepositoryArgs.verifySecretRef; secretName != "" {
164+
provider := sourceOCIRepositoryArgs.verifyProvider
165+
if provider == "" {
166+
return fmt.Errorf("a provider must be specified for signature verification")
167+
}
168+
169+
repository.Spec.Verify = &sourcev1.OCIRepositoryVerification{
170+
Provider: provider,
171+
SecretRef: &meta.LocalObjectReference{
172+
Name: secretName,
173+
},
174+
}
175+
}
176+
159177
if createArgs.export {
160178
return printExport(exportOCIRepository(repository))
161179
}

0 commit comments

Comments
 (0)