func newExternalDNSConfigMap()

in pkg/manifests/external_dns.go [508:541]


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,
	}
	jsMap[externalDnsConfig.identityType.externalDNSIdentityConfiguration()] = true

	if externalDnsConfig.identityType == IdentityTypeMSI {
		jsMap["userAssignedIdentityID"] = externalDnsConfig.clientId
	}

	js, err := json.Marshal(&jsMap)
	if err != nil {
		panic(err)
	}
	hash := sha256.Sum256(js)
	return &corev1.ConfigMap{
		TypeMeta: metav1.TypeMeta{
			Kind:       "ConfigMap",
			APIVersion: "v1",
		},
		ObjectMeta: metav1.ObjectMeta{
			Name:      externalDnsConfig.resourceName,
			Namespace: externalDnsConfig.namespace,
			Labels:    GetTopLevelLabels(),
		},
		Data: map[string]string{
			"azure.json": string(js),
		},
	}, hex.EncodeToString(hash[:])
}