@@ -3,6 +3,9 @@ package enforcement
33import (
44 "github.com/amit7itz/goset"
55 "github.com/otterize/intents-operator/src/shared/operatorconfig/automate_third_party_network_policy"
6+ "github.com/otterize/intents-operator/src/shared/serviceidresolver/serviceidentity"
7+ "github.com/samber/lo"
8+ "github.com/sirupsen/logrus"
69 "github.com/spf13/pflag"
710 "github.com/spf13/viper"
811)
@@ -20,6 +23,7 @@ type Config struct {
2023 EnableLinkerdPolicies bool
2124 EnforcedNamespaces * goset.Set [string ]
2225 AutomateThirdPartyNetworkPolicies automate_third_party_network_policy.Enum
26+ MetricsScrapingServiceIdentities []serviceidentity.ServiceIdentity
2327}
2428
2529func (c Config ) GetAutomateThirdPartyNetworkPolicy () automate_third_party_network_policy.Enum {
@@ -64,6 +68,7 @@ const (
6468 EnableGCPPolicyDefault = false
6569 EnableAzurePolicyKey = "enable-azure-iam-policy"
6670 EnableAzurePolicyDefault = false
71+ MetricsCollectionServerConfigKey = "metricsScrapingServer"
6772)
6873
6974func init () {
@@ -108,5 +113,28 @@ func GetConfig() Config {
108113 EnableAzurePolicy : viper .GetBool (EnableAzurePolicyKey ),
109114 EnforcedNamespaces : goset .FromSlice (viper .GetStringSlice (ActiveEnforcementNamespacesKey )),
110115 AutomateThirdPartyNetworkPolicies : automate_third_party_network_policy .Enum (viper .GetString (AutomateThirdPartyNetworkPoliciesKey )),
116+ MetricsScrapingServiceIdentities : GetMetricsScrapingServiceIdentities (),
111117 }
112118}
119+
120+ type ServiceIdentityConfig struct {
121+ Name string
122+ Namespace string
123+ Kind string
124+ }
125+
126+ func GetMetricsScrapingServiceIdentities () []serviceidentity.ServiceIdentity {
127+ controllers := make ([]ServiceIdentityConfig , 0 )
128+ err := viper .UnmarshalKey (MetricsCollectionServerConfigKey , & controllers )
129+ if err != nil {
130+ logrus .WithError (err ).Panic ("Failed to unmarshal metrics scraping server config" )
131+ }
132+
133+ return lo .Map (controllers , func (controller ServiceIdentityConfig , _ int ) serviceidentity.ServiceIdentity {
134+ return serviceidentity.ServiceIdentity {
135+ Name : controller .Name ,
136+ Namespace : controller .Namespace ,
137+ Kind : controller .Kind ,
138+ }
139+ })
140+ }
0 commit comments