Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DRAFT] Adding Compatibility for Air Gapped Cloud #356

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ func init() {
flag.DurationVar(&Flags.DnsSyncInterval, "dns-sync-interval", defaultDnsSyncInterval, "interval at which to sync DNS records")
flag.StringVar(&Flags.CrdPath, "crd", "/crd", "location of the CRD manifests. manifests should be directly in this directory, not in a subdirectory")
flag.BoolVar(&Flags.EnableGateway, "enable-gateway", false, "whether or not to support and create controllers for Gateway API resources")
// default value of blank since externalDNS will only overwrite if this value isn't blank - https://github.com/kubernetes-sigs/external-dns/blob/290f8c848dc726b1266b9185c4ebb5b397488090/provider/azure/config.go#L70C5-L70C33
flag.StringVar(&Flags.ActiveDirectoryAuthorityHost, "active-directory-authority-host", "", "the base URL of the cloud's Azure Active Directory")
}

func (c *Config) Validate() error {
Expand Down
18 changes: 18 additions & 0 deletions pkg/config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,24 @@ var validateTestCases = []struct {
CrdPath: validCrdPath,
},
},
{
Name: "valid-full-with-adah",
Conf: &Config{
DefaultController: Standard,
NS: "test-namespace",
Registry: "test-registry",
MSIClientID: "test-msi-client-id",
TenantID: "test-tenant-id",
Cloud: "test-cloud",
Location: "test-location",
ConcurrencyWatchdogThres: 101,
ConcurrencyWatchdogVotes: 2,
ClusterUid: "test-cluster-uid",
OperatorDeployment: "app-routing-operator",
CrdPath: validCrdPath,
ActiveDirectoryAuthorityHost: "https://login.microsoftonline.com/",
},
},
{
Name: "missing operator deployment",
Conf: &Config{
Expand Down
1 change: 1 addition & 0 deletions pkg/config/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,5 @@ type Config struct {
DnsSyncInterval time.Duration
CrdPath string
EnableGateway bool
ActiveDirectoryAuthorityHost string
}
1 change: 1 addition & 0 deletions pkg/controller/keyvault/gateway_secret_provider_class.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ func (g *GatewaySecretProviderClassReconciler) Reconcile(ctx context.Context, re
TenantId: g.config.TenantID,
KeyvaultCertUri: certUri,
Name: generateGwListenerCertName(gwObj.Name, listener.Name),
Cloud: g.config.Cloud,
}
err = buildSPC(spc, spcConf)
if err != nil {
Expand Down
5 changes: 5 additions & 0 deletions pkg/controller/keyvault/kv_util.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,11 @@ func buildSPC(spc *secv1.SecretProviderClass, spcConfig spcConfig) error {
spc.Spec.Parameters[kvcsi.CloudNameParameter] = spcConfig.Cloud
}

// special case for StackCloud
if spcConfig.Cloud == "AzureStackCloud" {
spc.Spec.Parameters["cloudEnvFileName"] = "/etc/kubernetes/akscustom.json"
}

return nil
}

Expand Down
11 changes: 6 additions & 5 deletions pkg/manifests/external_dns.go
Original file line number Diff line number Diff line change
Expand Up @@ -297,11 +297,12 @@ func newExternalDNSClusterRoleBinding(conf *config.Config, externalDnsConfig *Ex

func newExternalDNSConfigMap(conf *config.Config, externalDnsConfig *ExternalDnsConfig) (*corev1.ConfigMap, string) {
jsMap := map[string]interface{}{
"tenantId": externalDnsConfig.tenantId,
"subscriptionId": externalDnsConfig.subscription,
"resourceGroup": externalDnsConfig.resourceGroup,
"cloud": conf.Cloud,
"location": conf.Location,
"tenantId": externalDnsConfig.tenantId,
"subscriptionId": externalDnsConfig.subscription,
"resourceGroup": externalDnsConfig.resourceGroup,
"cloud": conf.Cloud,
"location": conf.Location,
"activeDirectoryAuthorityHost": conf.ActiveDirectoryAuthorityHost,
}
jsMap[externalDnsConfig.identityType.externalDNSIdentityConfiguration()] = true

Expand Down
2 changes: 1 addition & 1 deletion pkg/manifests/external_dns_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ var (
}{
{
Name: "full",
Conf: &config.Config{ClusterUid: clusterUid, DnsSyncInterval: time.Minute * 3},
Conf: &config.Config{ClusterUid: clusterUid, DnsSyncInterval: time.Minute * 3, ActiveDirectoryAuthorityHost: "https://login.microsoftonline.com/"},
Deploy: &appsv1.Deployment{
ObjectMeta: metav1.ObjectMeta{
Name: "test-operator-deploy",
Expand Down
16 changes: 8 additions & 8 deletions pkg/manifests/fixtures/external_dns/all-possibilities.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ subjects:
---
apiVersion: v1
data:
azure.json: '{"cloud":"","location":"","resourceGroup":"test-resource-group-public","subscriptionId":"test-subscription-id","tenantId":"test-tenant-id","useManagedIdentityExtension":true,"userAssignedIdentityID":"test-client-id"}'
azure.json: '{"activeDirectoryAuthorityHost":"","cloud":"","location":"","resourceGroup":"test-resource-group-public","subscriptionId":"test-subscription-id","tenantId":"test-tenant-id","useManagedIdentityExtension":true,"userAssignedIdentityID":"test-client-id"}'
kind: ConfigMap
metadata:
creationTimestamp: null
Expand Down Expand Up @@ -112,7 +112,7 @@ spec:
labels:
app: external-dns
app.kubernetes.io/managed-by: aks-app-routing-operator
checksum/configmap: 7a7768971308cadb
checksum/configmap: 26c8b3887b528306
kubernetes.azure.com/managedby: aks
spec:
affinity:
Expand Down Expand Up @@ -271,7 +271,7 @@ subjects:
---
apiVersion: v1
data:
azure.json: '{"cloud":"","location":"","resourceGroup":"test-resource-group-private","subscriptionId":"test-subscription-id","tenantId":"test-tenant-id","useManagedIdentityExtension":true,"userAssignedIdentityID":"test-client-id"}'
azure.json: '{"activeDirectoryAuthorityHost":"","cloud":"","location":"","resourceGroup":"test-resource-group-private","subscriptionId":"test-subscription-id","tenantId":"test-tenant-id","useManagedIdentityExtension":true,"userAssignedIdentityID":"test-client-id"}'
kind: ConfigMap
metadata:
creationTimestamp: null
Expand Down Expand Up @@ -305,7 +305,7 @@ spec:
labels:
app: external-dns-private
app.kubernetes.io/managed-by: aks-app-routing-operator
checksum/configmap: aa75575c57a3fa54
checksum/configmap: 7b857b2a6b5287e0
kubernetes.azure.com/managedby: aks
spec:
affinity:
Expand Down Expand Up @@ -462,7 +462,7 @@ subjects:
---
apiVersion: v1
data:
azure.json: '{"cloud":"","location":"","resourceGroup":"test-resource-group-public","subscriptionId":"test-subscription-id","tenantId":"test-tenant-id","useWorkloadIdentityExtension":true}'
azure.json: '{"activeDirectoryAuthorityHost":"","cloud":"","location":"","resourceGroup":"test-resource-group-public","subscriptionId":"test-subscription-id","tenantId":"test-tenant-id","useWorkloadIdentityExtension":true}'
kind: ConfigMap
metadata:
creationTimestamp: null
Expand Down Expand Up @@ -496,7 +496,7 @@ spec:
labels:
app: test-dns-config-external-dns
app.kubernetes.io/managed-by: aks-app-routing-operator
checksum/configmap: e363a30964578be3
checksum/configmap: c2dfce1b21bcd96b
kubernetes.azure.com/managedby: aks
spec:
affinity:
Expand Down Expand Up @@ -654,7 +654,7 @@ subjects:
---
apiVersion: v1
data:
azure.json: '{"cloud":"","location":"","resourceGroup":"test-resource-group-private","subscriptionId":"test-subscription-id","tenantId":"test-tenant-id","useWorkloadIdentityExtension":true}'
azure.json: '{"activeDirectoryAuthorityHost":"","cloud":"","location":"","resourceGroup":"test-resource-group-private","subscriptionId":"test-subscription-id","tenantId":"test-tenant-id","useWorkloadIdentityExtension":true}'
kind: ConfigMap
metadata:
creationTimestamp: null
Expand Down Expand Up @@ -688,7 +688,7 @@ spec:
labels:
app: test-dns-config-private-external-dns
app.kubernetes.io/managed-by: aks-app-routing-operator
checksum/configmap: 10d3362c74fab97c
checksum/configmap: 7f248ea40060b041
kubernetes.azure.com/managedby: aks
spec:
affinity:
Expand Down
8 changes: 4 additions & 4 deletions pkg/manifests/fixtures/external_dns/full.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ subjects:
---
apiVersion: v1
data:
azure.json: '{"cloud":"","location":"","resourceGroup":"test-resource-group-public","subscriptionId":"test-subscription-id","tenantId":"test-tenant-id","useManagedIdentityExtension":true,"userAssignedIdentityID":"test-client-id"}'
azure.json: '{"activeDirectoryAuthorityHost":"https://login.microsoftonline.com/","cloud":"","location":"","resourceGroup":"test-resource-group-public","subscriptionId":"test-subscription-id","tenantId":"test-tenant-id","useManagedIdentityExtension":true,"userAssignedIdentityID":"test-client-id"}'
kind: ConfigMap
metadata:
creationTimestamp: null
Expand Down Expand Up @@ -112,7 +112,7 @@ spec:
labels:
app: external-dns
app.kubernetes.io/managed-by: aks-app-routing-operator
checksum/configmap: 7a7768971308cadb
checksum/configmap: 86d95ce2f8b58999
kubernetes.azure.com/managedby: aks
spec:
affinity:
Expand Down Expand Up @@ -271,7 +271,7 @@ subjects:
---
apiVersion: v1
data:
azure.json: '{"cloud":"","location":"","resourceGroup":"test-resource-group-private","subscriptionId":"test-subscription-id","tenantId":"test-tenant-id","useManagedIdentityExtension":true,"userAssignedIdentityID":"test-client-id"}'
azure.json: '{"activeDirectoryAuthorityHost":"https://login.microsoftonline.com/","cloud":"","location":"","resourceGroup":"test-resource-group-private","subscriptionId":"test-subscription-id","tenantId":"test-tenant-id","useManagedIdentityExtension":true,"userAssignedIdentityID":"test-client-id"}'
kind: ConfigMap
metadata:
creationTimestamp: null
Expand Down Expand Up @@ -305,7 +305,7 @@ spec:
labels:
app: external-dns-private
app.kubernetes.io/managed-by: aks-app-routing-operator
checksum/configmap: aa75575c57a3fa54
checksum/configmap: b9795d4a196f584d
kubernetes.azure.com/managedby: aks
spec:
affinity:
Expand Down
4 changes: 2 additions & 2 deletions pkg/manifests/fixtures/external_dns/no-ownership.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ subjects:
---
apiVersion: v1
data:
azure.json: '{"cloud":"","location":"","resourceGroup":"test-resource-group-public","subscriptionId":"test-subscription-id","tenantId":"test-tenant-id","useManagedIdentityExtension":true,"userAssignedIdentityID":"test-client-id"}'
azure.json: '{"activeDirectoryAuthorityHost":"","cloud":"","location":"","resourceGroup":"test-resource-group-public","subscriptionId":"test-subscription-id","tenantId":"test-tenant-id","useManagedIdentityExtension":true,"userAssignedIdentityID":"test-client-id"}'
kind: ConfigMap
metadata:
creationTimestamp: null
Expand Down Expand Up @@ -112,7 +112,7 @@ spec:
labels:
app: external-dns
app.kubernetes.io/managed-by: aks-app-routing-operator
checksum/configmap: 7a7768971308cadb
checksum/configmap: 26c8b3887b528306
kubernetes.azure.com/managedby: aks
spec:
affinity:
Expand Down
Loading