Skip to content

Commit 0d8991a

Browse files
authored
Merge pull request noobaa#1818 from naveenpaul1/azure-sts-namespacestore
STS | Azure Identity flow support in Namespacestore
2 parents 5925b78 + 7dc3dc3 commit 0d8991a

File tree

3 files changed

+33
-15
lines changed

3 files changed

+33
-15
lines changed

pkg/namespacestore/reconciler.go

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -638,10 +638,19 @@ func (r *Reconciler) MakeExternalConnectionParams() (*nb.AddExternalConnectionPa
638638
conn.Endpoint = IBMCos.Endpoint
639639

640640
case nbv1.NSStoreTypeAzureBlob:
641-
conn.EndpointType = nb.EndpointTypeAzure
642641
conn.Endpoint = "https://blob.core.windows.net"
643-
conn.Identity = nb.MaskedString(r.Secret.StringData["AccountName"])
644-
conn.Secret = nb.MaskedString(r.Secret.StringData["AccountKey"])
642+
if util.IsAzureSTSClusterNS(r.NamespaceStore) {
643+
conn.EndpointType = nb.EndpointTypeAzureSTS
644+
conn.AzureSTSCredentials = &nb.AzureSTSCredentials{
645+
ClientID: r.Secret.StringData["azure_client_id"],
646+
TenantID: r.Secret.StringData["azure_tenant_id"],
647+
}
648+
} else {
649+
conn.EndpointType = nb.EndpointTypeAzure
650+
conn.Identity = nb.MaskedString(r.Secret.StringData["AccountName"])
651+
conn.Secret = nb.MaskedString(r.Secret.StringData["AccountKey"])
652+
}
653+
645654
tenantID := r.Secret.StringData["TenantID"]
646655
appID := r.Secret.StringData["ApplicationID"]
647656
appSecret := r.Secret.StringData["ApplicationSecret"]
@@ -723,15 +732,16 @@ func (r *Reconciler) ReconcileExternalConnection() error {
723732
}
724733

725734
checkConnectionParams := &nb.CheckExternalConnectionParams{
726-
Name: r.AddExternalConnectionParams.Name,
727-
EndpointType: r.AddExternalConnectionParams.EndpointType,
728-
Endpoint: r.AddExternalConnectionParams.Endpoint,
729-
Identity: r.AddExternalConnectionParams.Identity,
730-
Secret: r.AddExternalConnectionParams.Secret,
731-
AuthMethod: r.AddExternalConnectionParams.AuthMethod,
732-
AWSSTSARN: r.AddExternalConnectionParams.AWSSTSARN,
733-
AzureLogAccessKeys: r.AddExternalConnectionParams.AzureLogAccessKeys,
734-
Region: r.AddExternalConnectionParams.Region,
735+
Name: r.AddExternalConnectionParams.Name,
736+
EndpointType: r.AddExternalConnectionParams.EndpointType,
737+
Endpoint: r.AddExternalConnectionParams.Endpoint,
738+
Identity: r.AddExternalConnectionParams.Identity,
739+
Secret: r.AddExternalConnectionParams.Secret,
740+
AuthMethod: r.AddExternalConnectionParams.AuthMethod,
741+
AWSSTSARN: r.AddExternalConnectionParams.AWSSTSARN,
742+
AzureLogAccessKeys: r.AddExternalConnectionParams.AzureLogAccessKeys,
743+
Region: r.AddExternalConnectionParams.Region,
744+
AzureSTSCredentials: r.AddExternalConnectionParams.AzureSTSCredentials,
735745
}
736746

737747
if r.UpdateExternalConnectionParams != nil {

pkg/system/phase2_creating.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1031,11 +1031,11 @@ func (r *Reconciler) ReconcileAWSCredentials() error {
10311031

10321032
// ReconcileAzureCredentials creates a CredentialsRequest resource if cloud credentials operator is available
10331033
func (r *Reconciler) ReconcileAzureCredentials() error {
1034-
resourcegroupID := os.Getenv(resourcegroupIDEnvVar)
1035-
if resourcegroupID != "" {
1034+
clientID := os.Getenv(clientIDEnvVar)
1035+
if clientID != "" {
10361036
r.IsAzureSTSCluster = true
10371037
}
1038-
clientID := os.Getenv(clientIDEnvVar)
1038+
resourcegroupID := os.Getenv(resourcegroupIDEnvVar)
10391039
tenantID := os.Getenv(tenantIDEnvVar)
10401040
subscriptionID := os.Getenv(subscriptionIDEnvVar)
10411041
r.Logger.Infof("Getting Azure : %s = %s", clientIDEnvVar, clientID)

pkg/util/util.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1149,6 +1149,14 @@ func IsAzureSTSClusterBS(bs *nbv1.BackingStore) bool {
11491149
return false
11501150
}
11511151

1152+
// IsAzureSTSClusterNS returns true if it is running on an STS cluster
1153+
func IsAzureSTSClusterNS(ns *nbv1.NamespaceStore) bool {
1154+
if ns.Spec.Type == nbv1.NSStoreTypeAzureBlob {
1155+
return ns.Spec.AzureBlob.ClientId != nil
1156+
}
1157+
return false
1158+
}
1159+
11521160
// IsAzurePlatformNonGovernment returns true if this cluster is running on Azure and also not on azure government\DOD cloud
11531161
func IsAzurePlatformNonGovernment() bool {
11541162
nodesList := &corev1.NodeList{}

0 commit comments

Comments
 (0)