pkg/environment/environment.go (43 lines of code) (raw):
// -------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// --------------------------------------------------------------------------------------------
package environment
import (
"os"
"strconv"
utils "github.com/Azure/azure-firewall-egress-controller/pkg/utils"
)
const (
// ClientIDVarName is an environment variable which stores the client id provided through user assigned identity
ClientIDVarName = "AZURE_CLIENT_ID"
// SubscriptionIDVarName is the name of the FW_POLICY_SUBSCRIPTION_ID
SubscriptionIDVarName = "FW_POLICY_SUBSCRIPTION_ID"
// ResourceGroupNameVarName is the name of the FW_POLICY_RESOURCE_GROUP
ResourceGroupNameVarName = "FW_POLICY_RESOURCE_GROUP"
// fwPolicyVarName is the name of the FW_POLICY_NAME
fwPolicyVarName = "FW_POLICY_NAME"
// The name of your Firewall policy Rule Collection Group
fwPolicyRuleCollectionGroupvarName = "FW_POLICY_RULE_COLLECTION_GROUP"
fwPolicyRuleCollectionGroupPriorityVarName = "FW_POLICY_RULE_COLLECTION_GROUP_PRIORITY"
// fwPolicyResourceID is the name of the FW_POLICY_RESOURCE_ID
fwPolicyResourceID = "FW_POLICY_RESOURCE_ID"
)
// EnvVariables is a struct storing values for environment variables.
type EnvVariables struct {
ClientID string
SubscriptionID string
ResourceGroupName string
FwPolicyName string
FwPolicyRuleCollectionGroupName string
FwPolicyRuleCollectionGroupPriority int32
FwPolicyResourceID string
}
// GetEnv returns values for defined environment variables for Egress Controller.
func GetEnv() EnvVariables {
rcgPriority, _ := strconv.ParseInt(os.Getenv(fwPolicyRuleCollectionGroupPriorityVarName), 10, 64)
env := EnvVariables{
ClientID: os.Getenv(ClientIDVarName),
SubscriptionID: os.Getenv(SubscriptionIDVarName),
ResourceGroupName: os.Getenv(ResourceGroupNameVarName),
FwPolicyName: os.Getenv(fwPolicyVarName),
FwPolicyRuleCollectionGroupName: os.Getenv(fwPolicyRuleCollectionGroupvarName),
FwPolicyRuleCollectionGroupPriority: int32(rcgPriority),
FwPolicyResourceID: os.Getenv(fwPolicyResourceID),
}
if env.FwPolicyResourceID != "" {
subscriptionID, resourceGroupName, firewallPolicyName := utils.ParseResourceID(env.FwPolicyResourceID)
env.SubscriptionID = string(subscriptionID)
env.ResourceGroupName = string(resourceGroupName)
env.FwPolicyName = string(firewallPolicyName)
}
return env
}