/
managers.go
42 lines (35 loc) 路 1.83 KB
/
managers.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package resources
import (
odigosv1 "github.com/keyval-dev/odigos/api/odigos/v1alpha1"
"github.com/keyval-dev/odigos/cli/cmd/resources/odigospro"
"github.com/keyval-dev/odigos/cli/cmd/resources/resourcemanager"
"github.com/keyval-dev/odigos/cli/pkg/kube"
"github.com/keyval-dev/odigos/common"
)
// set apiKey to nil for no-op.
// set to empty string for "no api key" (non odigos cloud mode).
// set to a valid api key for odigos cloud mode.
func CreateResourceManagers(client *kube.Client, odigosNs string, odigosTier common.OdigosTier, proTierToken *string, config *odigosv1.OdigosConfigurationSpec) []resourcemanager.ResourceManager {
// Note - the order of resource managers is important.
// If resource B depends on resource A, then B must be installed after A.
resourceManagers := []resourcemanager.ResourceManager{
NewOdigosDeploymentResourceManager(client, odigosNs, config, odigosTier),
NewOdigosConfigResourceManager(client, odigosNs, config, odigosTier),
}
if odigosTier != common.CommunityOdigosTier {
resourceManagers = append(resourceManagers, odigospro.NewOdigosProResourceManager(client, odigosNs, config, odigosTier, proTierToken))
}
// odigos core components are installed for all tiers.
resourceManagers = append(resourceManagers, []resourcemanager.ResourceManager{
NewOwnTelemetryResourceManager(client, odigosNs, config, odigosTier),
NewDataCollectionResourceManager(client, odigosNs, config),
NewInstrumentorResourceManager(client, odigosNs, config),
NewSchedulerResourceManager(client, odigosNs, config),
NewOdigletResourceManager(client, odigosNs, config, odigosTier),
NewAutoScalerResourceManager(client, odigosNs, config),
}...)
if odigosTier == common.CloudOdigosTier {
resourceManagers = append(resourceManagers, NewKeyvalProxyResourceManager(client, odigosNs, config))
}
return resourceManagers
}