Skip to content

Commit 3405d8c

Browse files
Merge pull request #48 from r4f4/adal-to-azid
CORS-2517: migrate from ADAL to azidentity
2 parents c784087 + f899442 commit 3405d8c

File tree

155 files changed

+19040
-73
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

155 files changed

+19040
-73
lines changed

go.mod

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ go 1.19
44

55
require (
66
github.com/Azure/azure-sdk-for-go v66.0.0+incompatible
7-
github.com/Azure/go-autorest/autorest v0.11.27
8-
github.com/Azure/go-autorest/autorest/adal v0.9.20
7+
github.com/Azure/go-autorest/autorest v0.11.28
8+
github.com/Azure/go-autorest/autorest/adal v0.9.22 // indirect
99
github.com/Azure/go-autorest/autorest/to v0.4.0
1010
github.com/ghodss/yaml v1.0.0
1111
github.com/go-logr/logr v1.2.3
@@ -19,7 +19,7 @@ require (
1919
github.com/openshift/machine-api-operator v0.2.1-0.20230214202016-9d54a2c6e9a2
2020
github.com/pkg/errors v0.9.1
2121
github.com/spf13/cobra v1.6.1
22-
golang.org/x/crypto v0.5.0
22+
golang.org/x/crypto v0.6.0
2323

2424
// kube 1.26
2525
k8s.io/api v0.26.1
@@ -34,12 +34,20 @@ require (
3434
)
3535

3636
require (
37+
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.3.1
38+
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1
39+
github.com/jongio/azidext/go/azidext v0.4.0
40+
)
41+
42+
require (
43+
github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 // indirect
3744
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
3845
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
3946
github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
4047
github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect
4148
github.com/Azure/go-autorest/logger v0.2.1 // indirect
4249
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
50+
github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1 // indirect
4351
github.com/MakeNowJust/heredoc v1.0.0 // indirect
4452
github.com/beorn7/perks v1.0.1 // indirect
4553
github.com/cespare/xxhash/v2 v2.2.0 // indirect
@@ -59,7 +67,7 @@ require (
5967
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect
6068
github.com/gobuffalo/flect v0.3.0 // indirect
6169
github.com/gogo/protobuf v1.3.2 // indirect
62-
github.com/golang-jwt/jwt/v4 v4.2.0 // indirect
70+
github.com/golang-jwt/jwt/v4 v4.4.3 // indirect
6371
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
6472
github.com/golang/protobuf v1.5.2 // indirect
6573
github.com/google/btree v1.0.1 // indirect
@@ -74,6 +82,7 @@ require (
7482
github.com/josharian/intern v1.0.0 // indirect
7583
github.com/json-iterator/go v1.1.12 // indirect
7684
github.com/kr/pretty v0.3.0 // indirect
85+
github.com/kylelemons/godebug v1.1.0 // indirect
7786
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
7887
github.com/mailru/easyjson v0.7.7 // indirect
7988
github.com/mattn/go-colorable v0.1.13 // indirect
@@ -89,6 +98,7 @@ require (
8998
github.com/openshift/client-go v0.0.0-20230120202327-72f107311084 // indirect
9099
github.com/openshift/library-go v0.0.0-20230130232623-47904dd9ff5a // indirect
91100
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
101+
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect
92102
github.com/prometheus/client_golang v1.14.0 // indirect
93103
github.com/prometheus/client_model v0.3.0 // indirect
94104
github.com/prometheus/common v0.39.0 // indirect

go.sum

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,21 @@ cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3f
3838
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
3939
github.com/Azure/azure-sdk-for-go v66.0.0+incompatible h1:bmmC38SlE8/E81nNADlgmVGurPWMHDX2YNXVQMrBpEE=
4040
github.com/Azure/azure-sdk-for-go v66.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
41+
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.3.1 h1:gVXuXcWd1i4C2Ruxe321aU+IKGaStvGB/S90PUPB/W8=
42+
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.3.1/go.mod h1:DffdKW9RFqa5VgmsjUOsS7UE7eiA5iAvYUs63bhKQ0M=
43+
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1 h1:T8quHYlUGyb/oqtSTwqlCr1ilJHrDv+ZtpSfo+hm1BU=
44+
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1/go.mod h1:gLa1CL2RNE4s7M3yopJ/p0iq5DdY6Yv5ZUt9MTRZOQM=
45+
github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 h1:+5VZ72z0Qan5Bog5C+ZkgSqUbeVUd9wgtHOrIKuc5b8=
46+
github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w=
4147
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
4248
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
4349
github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
4450
github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
45-
github.com/Azure/go-autorest/autorest v0.11.27 h1:F3R3q42aWytozkV8ihzcgMO4OA4cuqr3bNlsEuF6//A=
46-
github.com/Azure/go-autorest/autorest v0.11.27/go.mod h1:7l8ybrIdUmGqZMTD0sRtAr8NvbHjfofbf8RSP2q7w7U=
51+
github.com/Azure/go-autorest/autorest v0.11.28 h1:ndAExarwr5Y+GaHE6VCaY1kyS/HwwGGyuimVhWsHOEM=
52+
github.com/Azure/go-autorest/autorest v0.11.28/go.mod h1:MrkzG3Y3AH668QyF9KRk5neJnGgmhQ6krbhR8Q5eMvA=
4753
github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ=
48-
github.com/Azure/go-autorest/autorest/adal v0.9.20 h1:gJ3E98kMpFB1MFqQCvA1yFab8vthOeD4VlFRQULxahg=
49-
github.com/Azure/go-autorest/autorest/adal v0.9.20/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ=
54+
github.com/Azure/go-autorest/autorest/adal v0.9.22 h1:/GblQdIudfEM3AWWZ0mrYJQSd7JS4S/Mbzh6F0ov0Xc=
55+
github.com/Azure/go-autorest/autorest/adal v0.9.22/go.mod h1:XuAbAEUv2Tta//+voMI038TrJBqjKam0me7qR+L8Cmk=
5056
github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
5157
github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
5258
github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
@@ -60,6 +66,8 @@ github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+Z
6066
github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
6167
github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
6268
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
69+
github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1 h1:oPdPEZFSbl7oSPEAIPMPBMUmiL+mqgzBJwM/9qYcwNg=
70+
github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1/go.mod h1:4qFor3D/HDsvBME35Xy9rwW9DecL+M2sNw1ybjPtwA0=
6371
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
6472
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
6573
github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ=
@@ -93,6 +101,7 @@ github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ
93101
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
94102
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
95103
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
104+
github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c=
96105
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
97106
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc=
98107
github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE=
@@ -144,8 +153,9 @@ github.com/gobuffalo/flect v0.3.0/go.mod h1:5pf3aGnsvqvCj50AVni7mJJF8ICxGZ8Hombe
144153
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
145154
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
146155
github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
147-
github.com/golang-jwt/jwt/v4 v4.2.0 h1:besgBTC8w8HjP6NzQdxwKH9Z5oQMZ24ThTrHp3cZ8eU=
148156
github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
157+
github.com/golang-jwt/jwt/v4 v4.4.3 h1:Hxl6lhQFj4AnOX6MLrsCb/+7tCj7DxP7VA+2rDIq5AU=
158+
github.com/golang-jwt/jwt/v4 v4.4.3/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
149159
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
150160
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
151161
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -239,6 +249,9 @@ github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLf
239249
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
240250
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
241251
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
252+
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
253+
github.com/jongio/azidext/go/azidext v0.4.0 h1:TOYyVFMeWGgXNhURSgrEtUCu7JAAKgsy+5C4+AEfYlw=
254+
github.com/jongio/azidext/go/azidext v0.4.0/go.mod h1:VrlpGde5B+pPbTUxnThE5UIQQkcebdr3jrC2MmlMVSI=
242255
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
243256
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
244257
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
@@ -256,6 +269,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
256269
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
257270
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
258271
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
272+
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
273+
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
259274
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0=
260275
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE=
261276
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
@@ -302,6 +317,8 @@ github.com/openshift/machine-api-operator v0.2.1-0.20230214202016-9d54a2c6e9a2 h
302317
github.com/openshift/machine-api-operator v0.2.1-0.20230214202016-9d54a2c6e9a2/go.mod h1:cjKtxq8/8NaUaPSSCfzmdPufkTEoTtIXcz6Oi+ghJ0s=
303318
github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
304319
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
320+
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU=
321+
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI=
305322
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
306323
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
307324
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -382,9 +399,9 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
382399
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
383400
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
384401
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
385-
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
386-
golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE=
387-
golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU=
402+
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
403+
golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc=
404+
golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
388405
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
389406
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
390407
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -518,6 +535,7 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w
518535
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
519536
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
520537
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
538+
golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
521539
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
522540
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
523541
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=

pkg/cloud/azure/actuators/machine_scope.go

Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@ import (
2121
"fmt"
2222
"strings"
2323

24-
"github.com/Azure/go-autorest/autorest"
25-
"github.com/Azure/go-autorest/autorest/adal"
24+
"github.com/Azure/azure-sdk-for-go/sdk/azcore"
25+
"github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud"
26+
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
2627
"github.com/Azure/go-autorest/autorest/azure"
2728
"github.com/Azure/go-autorest/autorest/to"
29+
"github.com/jongio/azidext/go/azidext"
2830
configv1 "github.com/openshift/api/config/v1"
2931
machinev1 "github.com/openshift/api/machine/v1beta1"
3032
apierrors "github.com/openshift/machine-api-operator/pkg/controller/machine"
@@ -365,22 +367,28 @@ func updateFromSecret(coreClient controllerclient.Client, scope *MachineScope) e
365367
return err
366368
}
367369

368-
oauthConfig, err := adal.NewOAuthConfig(
369-
env.ActiveDirectoryEndpoint, string(tenantID))
370-
if err != nil {
371-
return err
370+
options := azidentity.ClientSecretCredentialOptions{
371+
ClientOptions: azcore.ClientOptions{
372+
Cloud: getCloudConfig(env),
373+
},
372374
}
373375

374-
token, err := adal.NewServicePrincipalToken(
375-
*oauthConfig, string(clientID), string(clientSecret), env.TokenAudience)
376+
cred, err := azidentity.NewClientSecretCredential(string(tenantID), string(clientID), string(clientSecret), &options)
376377
if err != nil {
377378
return err
378379
}
379380

380-
authorizer, err := autorest.NewBearerAuthorizer(token), nil
381-
if err != nil {
382-
return fmt.Errorf("failed to create azure session: %v", err)
381+
endpointScope := env.TokenAudience
382+
if !strings.HasSuffix(endpointScope, "/.default") {
383+
endpointScope += "/.default"
383384
}
385+
// Use an adapter so azidentity in the Azure SDK can be used as
386+
// Authorizer when calling the Azure Management Packages, which we
387+
// currently use. Once the Azure SDK clients (found in /sdk) move to
388+
// stable, we can update our clients and they will be able to use the creds
389+
// directly without the authorizer. The schedule is here:
390+
// https://azure.github.io/azure-sdk/releases/latest/index.html#go
391+
authorizer := azidext.NewTokenCredentialAdapter(cred, []string{endpointScope})
384392

385393
if scope.MachineConfig.ResourceGroup == "" {
386394
scope.MachineConfig.ResourceGroup = string(resourceGroup)
@@ -514,3 +522,26 @@ func findDuplicateTagKeys(tagSet map[string]string) error {
514522

515523
return nil
516524
}
525+
526+
func getCloudConfig(env *azure.Environment) cloud.Configuration {
527+
var cloudConfig cloud.Configuration
528+
switch env.Name {
529+
case azure.ChinaCloud.Name:
530+
cloudConfig = cloud.AzureChina
531+
case azure.USGovernmentCloud.Name:
532+
cloudConfig = cloud.AzureGovernment
533+
case azure.PublicCloud.Name:
534+
cloudConfig = cloud.AzurePublic
535+
default:
536+
cloudConfig = cloud.Configuration{
537+
ActiveDirectoryAuthorityHost: env.ActiveDirectoryEndpoint,
538+
Services: map[cloud.ServiceName]cloud.ServiceConfiguration{
539+
cloud.ResourceManager: {
540+
Audience: env.TokenAudience,
541+
Endpoint: env.ResourceManagerEndpoint,
542+
},
543+
},
544+
}
545+
}
546+
return cloudConfig
547+
}

0 commit comments

Comments
 (0)