Skip to content

Commit a6ac4c5

Browse files
authored
Merge pull request #5396 from fluxcd/backport-5390-to-release/v2.6.x
[release/v2.6.x] fix: Allow Azure CLI calls in `flux push artifact --provider azure` on DevOps runners
2 parents b73c7f7 + 0d397d7 commit a6ac4c5

File tree

4 files changed

+21
-6
lines changed

4 files changed

+21
-6
lines changed

cmd/flux/oci.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,18 @@ import (
2323

2424
"github.com/google/go-containerregistry/pkg/crane"
2525

26+
"github.com/fluxcd/pkg/auth"
27+
"github.com/fluxcd/pkg/auth/azure"
2628
authutils "github.com/fluxcd/pkg/auth/utils"
2729
)
2830

2931
// loginWithProvider gets a crane authentication option for the given provider and URL.
3032
func loginWithProvider(ctx context.Context, url, provider string) (crane.Option, error) {
31-
authenticator, err := authutils.GetArtifactRegistryCredentials(ctx, provider, url)
33+
var opts []auth.Option
34+
if provider == azure.ProviderName {
35+
opts = append(opts, auth.WithAllowShellOut())
36+
}
37+
authenticator, err := authutils.GetArtifactRegistryCredentials(ctx, provider, url, opts...)
3238
if err != nil {
3339
return nil, fmt.Errorf("could not login to provider %s with url %s: %w", provider, url, err)
3440
}

cmd/flux/push_artifact.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ import (
3434
"github.com/spf13/cobra"
3535
"sigs.k8s.io/yaml"
3636

37+
"github.com/fluxcd/pkg/auth"
38+
"github.com/fluxcd/pkg/auth/azure"
3739
authutils "github.com/fluxcd/pkg/auth/utils"
3840
"github.com/fluxcd/pkg/oci"
3941
sourcev1 "github.com/fluxcd/source-controller/api/v1"
@@ -225,9 +227,13 @@ func pushArtifactCmdRun(cmd *cobra.Command, args []string) error {
225227
opts = append(opts, crane.WithAuth(authenticator))
226228
}
227229

228-
if pushArtifactArgs.provider.String() != sourcev1.GenericOCIProvider {
230+
if provider := pushArtifactArgs.provider.String(); provider != sourcev1.GenericOCIProvider {
229231
logger.Actionf("logging in to registry with provider credentials")
230-
authenticator, err = authutils.GetArtifactRegistryCredentials(ctx, pushArtifactArgs.provider.String(), url)
232+
var authOpts []auth.Option
233+
if provider == azure.ProviderName {
234+
authOpts = append(authOpts, auth.WithAllowShellOut())
235+
}
236+
authenticator, err = authutils.GetArtifactRegistryCredentials(ctx, provider, url, authOpts...)
231237
if err != nil {
232238
return fmt.Errorf("error during login with provider: %w", err)
233239
}

go.mod

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ require (
1919
github.com/fluxcd/notification-controller/api v1.6.0
2020
github.com/fluxcd/pkg/apis/event v0.17.0
2121
github.com/fluxcd/pkg/apis/meta v1.12.0
22-
github.com/fluxcd/pkg/auth v0.16.0
22+
github.com/fluxcd/pkg/auth v0.17.0
2323
github.com/fluxcd/pkg/chartutil v1.3.0
2424
github.com/fluxcd/pkg/envsubst v1.4.0
2525
github.com/fluxcd/pkg/git v0.31.0
@@ -87,6 +87,7 @@ require (
8787
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect
8888
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
8989
github.com/aws/aws-sdk-go-v2/service/ecr v1.43.3 // indirect
90+
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.33.0 // indirect
9091
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect
9192
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect
9293
github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 // indirect

go.sum

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d
5959
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo=
6060
github.com/aws/aws-sdk-go-v2/service/ecr v1.43.3 h1:YyH8Hk73bYzdbvf6S8NF5z/fb/1stpiMnFSfL6jSfRA=
6161
github.com/aws/aws-sdk-go-v2/service/ecr v1.43.3/go.mod h1:iQ1skgw1XRK+6Lgkb0I9ODatAP72WoTILh0zXQ5DtbU=
62+
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.33.0 h1:wA2O6pZ2r5smqJunFP4hp7qptMW4EQxs8O6RVHPulOE=
63+
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.33.0/go.mod h1:RZL7ov7c72wSmoM8bIiVxRHgcVdzhNkVW2J36C8RF4s=
6264
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 h1:eAh2A4b5IzM/lum78bZ590jy36+d/aFLgKF/4Vd1xPE=
6365
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3/go.mod h1:0yKJC/kb8sAnmlYa6Zs3QVYqaC8ug2AbnNChv5Ox3uA=
6466
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2F1JbDaGooxTq18wmmFzbJRfXfVfy96/1CXM=
@@ -179,8 +181,8 @@ github.com/fluxcd/pkg/apis/kustomize v1.10.0 h1:47EeSzkQvlQZdH92vHMe2lK2iR8aOSEJ
179181
github.com/fluxcd/pkg/apis/kustomize v1.10.0/go.mod h1:UsqMV4sqNa1Yg0pmTsdkHRJr7bafBOENIJoAN+3ezaQ=
180182
github.com/fluxcd/pkg/apis/meta v1.12.0 h1:XW15TKZieC2b7MN8VS85stqZJOx+/b8jATQ/xTUhVYg=
181183
github.com/fluxcd/pkg/apis/meta v1.12.0/go.mod h1:+son1Va60x2eiDcTwd7lcctbI6C+K3gM7R+ULmEq1SI=
182-
github.com/fluxcd/pkg/auth v0.16.0 h1:YEjSaNqlpYoXfoFAGhU/Z8y0322nGsT24W6zCh+sbGw=
183-
github.com/fluxcd/pkg/auth v0.16.0/go.mod h1:+BRnAO61Nr6fACEjJS6eNRdOk1nXhX/FCPylYn1ypNc=
184+
github.com/fluxcd/pkg/auth v0.17.0 h1:jgum55f5K7Db6yI2bi4WeKojTzQS9KxlHCC0CsFs5x8=
185+
github.com/fluxcd/pkg/auth v0.17.0/go.mod h1:4h6s8VBNuec3tWd4xIReLw8BYPOKaIegjNMEbA4ikTU=
184186
github.com/fluxcd/pkg/cache v0.9.0 h1:EGKfOLMG3fOwWnH/4Axl5xd425mxoQbZzlZoLfd8PDk=
185187
github.com/fluxcd/pkg/cache v0.9.0/go.mod h1:jMwabjWfsC5lW8hE7NM3wtGNwSJ38Javx6EKbEi7INU=
186188
github.com/fluxcd/pkg/chartutil v1.3.0 h1:Zoc+AIyKL4YU4PaLL/iGv9VRLujeWT2Mvj4BLGFGKlg=

0 commit comments

Comments
 (0)