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

feat: support build infra configurations properties configurable from ui #4583

Merged
merged 67 commits into from
Feb 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
b7a7192
intial commit
gireesh-devtron Jan 19, 2024
bdc64a6
wip
gireesh-devtron Jan 19, 2024
38fa21a
default related crud
gireesh-devtron Jan 19, 2024
6913531
wip
gireesh-devtron Jan 19, 2024
af326f4
merge main
gireesh-devtron Jan 19, 2024
35d761c
Merge branch 'main' into build-infra-profile
gireesh-devtron Jan 22, 2024
f320060
Merge branch 'main' into build-infra-profile
gireesh-devtron Jan 23, 2024
9f28cd5
update oss code
gireesh-devtron Jan 23, 2024
19c4ce0
refactoring
gireesh-devtron Jan 23, 2024
7a7a637
add int to string conversions for cpu units
gireesh-devtron Jan 23, 2024
c819267
units loading fix
gireesh-devtron Jan 23, 2024
e7a463f
refactoring
gireesh-devtron Jan 23, 2024
bd35ced
refactoring
gireesh-devtron Jan 23, 2024
061940e
fix
gireesh-devtron Jan 23, 2024
138144e
const variable names updated
gireesh-devtron Jan 23, 2024
435503c
pointer fix
gireesh-devtron Jan 24, 2024
a4eb3b8
test: temporary fix for empty unit
gireesh-devtron Jan 24, 2024
5cb4e4a
wip
gireesh-devtron Jan 24, 2024
fb0a2a9
configurations key fix
gireesh-devtron Jan 24, 2024
d82fdf7
update spec
gireesh-devtron Jan 24, 2024
d38b18f
unit conversion method update
gireesh-devtron Jan 24, 2024
aa77453
add type param in profile bean
gireesh-devtron Jan 24, 2024
db230fb
move constants to constants file
gireesh-devtron Jan 24, 2024
73a7289
move constants to constants file
gireesh-devtron Jan 24, 2024
327c32e
fix
gireesh-devtron Jan 24, 2024
0f781d0
change time units from s,m,h to seconds,minutes,hours
gireesh-devtron Jan 24, 2024
461a995
code refactoring around default configurations loading
gireesh-devtron Jan 24, 2024
bdb0c52
add get infraConfig by scope method
gireesh-devtron Jan 24, 2024
dcee1af
folder structure refactoring
gireesh-devtron Jan 24, 2024
f51e9dc
improve logging
gireesh-devtron Jan 24, 2024
ebd220d
merge main
gireesh-devtron Jan 24, 2024
ae79c8e
sql script number update
gireesh-devtron Jan 24, 2024
3b7818e
resolving build infra configuration values form infraConfig service
gireesh-devtron Jan 24, 2024
8c58d24
script fix
gireesh-devtron Jan 25, 2024
8d8d01d
remove readonly check from id
gireesh-devtron Jan 25, 2024
fd3fb14
refactor
gireesh-devtron Jan 25, 2024
82a40d6
query fix
gireesh-devtron Jan 25, 2024
8124106
validation logic fix
gireesh-devtron Jan 25, 2024
752e9b3
validations added
gireesh-devtron Jan 25, 2024
330d0f8
update units
gireesh-devtron Jan 29, 2024
59c8105
move infra getter logic to seperate service
gireesh-devtron Jan 29, 2024
c15811b
script update
gireesh-devtron Jan 30, 2024
37d647a
refactoring wip
gireesh-devtron Jan 30, 2024
80e8d1b
refactoring done
gireesh-devtron Jan 30, 2024
2846b7e
rebase local
gireesh-devtron Jan 31, 2024
b268511
rebase local
gireesh-devtron Jan 31, 2024
133164c
wire
gireesh-devtron Jan 31, 2024
77aa1bc
pointer fix
gireesh-devtron Jan 31, 2024
b36b7fe
Merge branch 'main' into build-infra-profile
gireesh-devtron Jan 31, 2024
da9de28
wire
gireesh-devtron Jan 31, 2024
e6ffb59
script number update
gireesh-devtron Jan 31, 2024
62bd5a3
safe check added
gireesh-devtron Jan 31, 2024
c3aa182
remove test code
gireesh-devtron Jan 31, 2024
017365e
refactoring
gireesh-devtron Jan 31, 2024
11c4251
remove cd infra getter
gireesh-devtron Jan 31, 2024
1b1210e
add params in err log
gireesh-devtron Jan 31, 2024
66d21ca
minimize diff w.r.t ent
gireesh-devtron Jan 31, 2024
862714f
minor updates
gireesh-devtron Jan 31, 2024
6790a06
support values upto 2 decimal points only
gireesh-devtron Feb 1, 2024
8e3985e
int max as upper limit on timeout
gireesh-devtron Feb 1, 2024
55732a3
int max as upper limit on timeout
gireesh-devtron Feb 1, 2024
55c022b
infra providers architecture refactoring
gireesh-devtron Feb 6, 2024
8f5bc69
Merge branch 'main' into build-infra-profile
gireesh-devtron Feb 6, 2024
cf627ca
Merge branch 'main' into build-infra-profile
gireesh-devtron Feb 8, 2024
13c8f1c
unique constraint remove
gireesh-devtron Feb 9, 2024
a3c79ce
Merge branch 'main' into build-infra-profile
gireesh-devtron Feb 12, 2024
8fcd7e6
script number update
gireesh-devtron Feb 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
60 changes: 39 additions & 21 deletions Wire.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ import (
"github.com/devtron-labs/devtron/api/deployment"
"github.com/devtron-labs/devtron/api/externalLink"
client "github.com/devtron-labs/devtron/api/helm-app"
"github.com/devtron-labs/devtron/api/infraConfig"
"github.com/devtron-labs/devtron/api/k8s"
"github.com/devtron-labs/devtron/api/module"
"github.com/devtron-labs/devtron/api/restHandler"
Expand Down Expand Up @@ -125,13 +126,16 @@ import (
"github.com/devtron-labs/devtron/pkg/git"
"github.com/devtron-labs/devtron/pkg/gitops"
"github.com/devtron-labs/devtron/pkg/imageDigestPolicy"
infraConfigService "github.com/devtron-labs/devtron/pkg/infraConfig"
"github.com/devtron-labs/devtron/pkg/infraConfig/units"
"github.com/devtron-labs/devtron/pkg/kubernetesResourceAuditLogs"
repository7 "github.com/devtron-labs/devtron/pkg/kubernetesResourceAuditLogs/repository"
"github.com/devtron-labs/devtron/pkg/notifier"
"github.com/devtron-labs/devtron/pkg/pipeline"
"github.com/devtron-labs/devtron/pkg/pipeline/executors"
history3 "github.com/devtron-labs/devtron/pkg/pipeline/history"
repository3 "github.com/devtron-labs/devtron/pkg/pipeline/history/repository"
"github.com/devtron-labs/devtron/pkg/pipeline/infraProviders"
repository5 "github.com/devtron-labs/devtron/pkg/pipeline/repository"
"github.com/devtron-labs/devtron/pkg/pipeline/types"
"github.com/devtron-labs/devtron/pkg/plugin"
Expand Down Expand Up @@ -181,20 +185,20 @@ func InitializeApp() (*App, error) {
deployment2.DeploymentWireSet,

// -------wireset end ----------
//-------
// -------
gitSensor.GetConfig,
gitSensor.NewGitSensorClient,
wire.Bind(new(gitSensor.Client), new(*gitSensor.ClientImpl)),
//-------
// -------
helper.NewAppListingRepositoryQueryBuilder,
//sql.GetConfig,
// sql.GetConfig,
eClient.GetEventClientConfig,
util2.GetGlobalEnvVariables,
//sql.NewDbConnection,
//app.GetACDAuthConfig,
// sql.NewDbConnection,
// app.GetACDAuthConfig,
util3.GetACDAuthConfig,
connection.SettingsManager,
//auth.GetConfig,
// auth.GetConfig,

connection.GetConfig,
wire.Bind(new(session2.ServiceClient), new(*middleware.LoginService)),
Expand All @@ -203,13 +207,13 @@ func InitializeApp() (*App, error) {
trigger2.NewPipelineTriggerRouter,
wire.Bind(new(trigger2.PipelineTriggerRouter), new(*trigger2.PipelineTriggerRouterImpl)),

//---- pprof start ----
// ---- pprof start ----
restHandler.NewPProfRestHandler,
wire.Bind(new(restHandler.PProfRestHandler), new(*restHandler.PProfRestHandlerImpl)),

router.NewPProfRouter,
wire.Bind(new(router.PProfRouter), new(*router.PProfRouterImpl)),
//---- pprof end ----
// ---- pprof end ----

trigger.NewPipelineRestHandler,
wire.Bind(new(trigger.PipelineTriggerRestHandler), new(*trigger.PipelineTriggerRestHandlerImpl)),
Expand Down Expand Up @@ -238,6 +242,20 @@ func InitializeApp() (*App, error) {
wire.Bind(new(dashboardEvent.DashboardTelemetryRouter),
new(*dashboardEvent.DashboardTelemetryRouterImpl)),

infraConfigService.NewInfraProfileRepositoryImpl,
wire.Bind(new(infraConfigService.InfraConfigRepository), new(*infraConfigService.InfraConfigRepositoryImpl)),

units.NewUnits,
infraConfigService.NewInfraConfigServiceImpl,
wire.Bind(new(infraConfigService.InfraConfigService), new(*infraConfigService.InfraConfigServiceImpl)),
infraProviders.NewInfraProviderImpl,
wire.Bind(new(infraProviders.InfraProvider), new(*infraProviders.InfraProviderImpl)),
infraConfig.NewInfraConfigRestHandlerImpl,
wire.Bind(new(infraConfig.InfraConfigRestHandler), new(*infraConfig.InfraConfigRestHandlerImpl)),

infraConfig.NewInfraProfileRouterImpl,
wire.Bind(new(infraConfig.InfraConfigRouter), new(*infraConfig.InfraConfigRouterImpl)),

router.NewMuxRouter,

app2.NewAppRepositoryImpl,
Expand Down Expand Up @@ -293,7 +311,7 @@ func InitializeApp() (*App, error) {
util.NewChartTemplateServiceImpl,
wire.Bind(new(util.ChartTemplateService), new(*util.ChartTemplateServiceImpl)),

//scoped variables start
// scoped variables start
variables.NewScopedVariableServiceImpl,
wire.Bind(new(variables.ScopedVariableService), new(*variables.ScopedVariableServiceImpl)),

Expand All @@ -315,7 +333,7 @@ func InitializeApp() (*App, error) {
variables.NewScopedVariableCMCSManagerImpl,
wire.Bind(new(variables.ScopedVariableCMCSManager), new(*variables.ScopedVariableCMCSManagerImpl)),

//end
// end

chart.NewChartServiceImpl,
wire.Bind(new(chart.ChartService), new(*chart.ChartServiceImpl)),
Expand Down Expand Up @@ -395,10 +413,10 @@ func InitializeApp() (*App, error) {
//app.GetConfig,

pipeline.GetEcrConfig,
//otel.NewOtelTracingServiceImpl,
//wire.Bind(new(otel.OtelTracingService), new(*otel.OtelTracingServiceImpl)),
// otel.NewOtelTracingServiceImpl,
// wire.Bind(new(otel.OtelTracingService), new(*otel.OtelTracingServiceImpl)),
NewApp,
//session.NewK8sClient,
// session.NewK8sClient,
repository8.NewImageTaggingRepositoryImpl,
wire.Bind(new(repository8.ImageTaggingRepository), new(*repository8.ImageTaggingRepositoryImpl)),
pipeline.NewImageTaggingServiceImpl,
Expand Down Expand Up @@ -581,7 +599,7 @@ func InitializeApp() (*App, error) {
restHandler.NewPubSubClientRestHandlerImpl,
wire.Bind(new(restHandler.PubSubClientRestHandler), new(*restHandler.PubSubClientRestHandlerImpl)),

//Batch actions
// Batch actions
batch.NewWorkflowActionImpl,
wire.Bind(new(batch.WorkflowAction), new(*batch.WorkflowActionImpl)),
batch.NewDeploymentActionImpl,
Expand Down Expand Up @@ -786,9 +804,9 @@ func InitializeApp() (*App, error) {

history3.NewDeployedConfigurationHistoryServiceImpl,
wire.Bind(new(history3.DeployedConfigurationHistoryService), new(*history3.DeployedConfigurationHistoryServiceImpl)),
//history ends
// history ends

//plugin starts
// plugin starts
repository6.NewGlobalPluginRepository,
wire.Bind(new(repository6.GlobalPluginRepository), new(*repository6.GlobalPluginRepositoryImpl)),

Expand All @@ -806,7 +824,7 @@ func InitializeApp() (*App, error) {

pipeline.NewPipelineStageService,
wire.Bind(new(pipeline.PipelineStageService), new(*pipeline.PipelineStageServiceImpl)),
//plugin ends
// plugin ends

connection.NewArgoCDConnectionManagerImpl,
wire.Bind(new(connection.ArgoCDConnectionManager), new(*connection.ArgoCDConnectionManagerImpl)),
Expand All @@ -818,12 +836,12 @@ func InitializeApp() (*App, error) {
cron.NewCdApplicationStatusUpdateHandlerImpl,
wire.Bind(new(cron.CdApplicationStatusUpdateHandler), new(*cron.CdApplicationStatusUpdateHandlerImpl)),

//app_status
// app_status
appStatusRepo.NewAppStatusRepositoryImpl,
wire.Bind(new(appStatusRepo.AppStatusRepository), new(*appStatusRepo.AppStatusRepositoryImpl)),
appStatus.NewAppStatusServiceImpl,
wire.Bind(new(appStatus.AppStatusService), new(*appStatus.AppStatusServiceImpl)),
//app_status ends
// app_status ends

cron.GetCiWorkflowStatusUpdateConfig,
cron.NewCiStatusUpdateCronImpl,
Expand Down Expand Up @@ -868,8 +886,8 @@ func InitializeApp() (*App, error) {
repository.NewGlobalCMCSRepositoryImpl,
wire.Bind(new(repository.GlobalCMCSRepository), new(*repository.GlobalCMCSRepositoryImpl)),

//chartRepoRepository.NewGlobalStrategyMetadataRepositoryImpl,
//wire.Bind(new(chartRepoRepository.GlobalStrategyMetadataRepository), new(*chartRepoRepository.GlobalStrategyMetadataRepositoryImpl)),
// chartRepoRepository.NewGlobalStrategyMetadataRepositoryImpl,
// wire.Bind(new(chartRepoRepository.GlobalStrategyMetadataRepository), new(*chartRepoRepository.GlobalStrategyMetadataRepositoryImpl)),
chartRepoRepository.NewGlobalStrategyMetadataChartRefMappingRepositoryImpl,
wire.Bind(new(chartRepoRepository.GlobalStrategyMetadataChartRefMappingRepository), new(*chartRepoRepository.GlobalStrategyMetadataChartRefMappingRepositoryImpl)),

Expand Down
120 changes: 120 additions & 0 deletions api/infraConfig/restHandler.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
package infraConfig

import (
"encoding/json"
"github.com/devtron-labs/devtron/api/restHandler/common"
"github.com/devtron-labs/devtron/pkg/auth/authorisation/casbin"
"github.com/devtron-labs/devtron/pkg/auth/user"
"github.com/devtron-labs/devtron/pkg/infraConfig"
"github.com/devtron-labs/devtron/util/rbac"
"github.com/gorilla/mux"
"github.com/pkg/errors"
"go.uber.org/zap"
"gopkg.in/go-playground/validator.v9"
"net/http"
"strings"
)

type InfraConfigRestHandler interface {
UpdateInfraProfile(w http.ResponseWriter, r *http.Request)
GetProfile(w http.ResponseWriter, r *http.Request)
}
type InfraConfigRestHandlerImpl struct {
logger *zap.SugaredLogger
infraProfileService infraConfig.InfraConfigService
userService user.UserService
enforcer casbin.Enforcer
enforcerUtil rbac.EnforcerUtil
validator *validator.Validate
}

func NewInfraConfigRestHandlerImpl(logger *zap.SugaredLogger, infraProfileService infraConfig.InfraConfigService, userService user.UserService, enforcer casbin.Enforcer, enforcerUtil rbac.EnforcerUtil, validator *validator.Validate) *InfraConfigRestHandlerImpl {
return &InfraConfigRestHandlerImpl{
logger: logger,
infraProfileService: infraProfileService,
userService: userService,
enforcer: enforcer,
enforcerUtil: enforcerUtil,
validator: validator,
}
}

func (handler *InfraConfigRestHandlerImpl) UpdateInfraProfile(w http.ResponseWriter, r *http.Request) {
userId, err := handler.userService.GetLoggedInUser(r)
if userId == 0 || err != nil {
common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized)
return
}
token := r.Header.Get("token")
if ok := handler.enforcer.Enforce(token, casbin.ResourceGlobal, casbin.ActionUpdate, "*"); !ok {
common.WriteJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
return
}

vars := mux.Vars(r)
profileName := strings.ToLower(vars["name"])
if profileName == "" {
common.WriteJsonResp(w, errors.New(infraConfig.InvalidProfileName), nil, http.StatusBadRequest)
return
}
payload := &infraConfig.ProfileBean{}
decoder := json.NewDecoder(r.Body)
err = decoder.Decode(payload)
if err != nil {
handler.logger.Errorw("error in decoding the request payload", "err", err, "requestBody", r.Body)
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
return
}
payload.Name = strings.ToLower(payload.Name)
err = handler.validator.Struct(payload)
if err != nil {
err = errors.Wrap(err, infraConfig.PayloadValidationError)
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
}
if profileName == "" || (profileName == infraConfig.DEFAULT_PROFILE_NAME && payload.Name != infraConfig.DEFAULT_PROFILE_NAME) {
common.WriteJsonResp(w, errors.New(infraConfig.InvalidProfileName), nil, http.StatusBadRequest)
}
err = handler.infraProfileService.UpdateProfile(userId, profileName, payload)
if err != nil {
handler.logger.Errorw("error in updating profile and configurations", "profileName", profileName, "payLoad", payload, "err", err)
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
return
}
common.WriteJsonResp(w, nil, nil, http.StatusOK)
}

func (handler *InfraConfigRestHandlerImpl) GetProfile(w http.ResponseWriter, r *http.Request) {
userId, err := handler.userService.GetLoggedInUser(r)
if userId == 0 || err != nil {
common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized)
return
}
token := r.Header.Get("token")
if ok := handler.enforcer.Enforce(token, casbin.ResourceGlobal, casbin.ActionGet, "*"); !ok {
common.WriteJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
return
}

vars := mux.Vars(r)
profileName := strings.ToLower(vars["name"])
if profileName == "" {
common.WriteJsonResp(w, errors.New(infraConfig.InvalidProfileName), nil, http.StatusBadRequest)
return
}

var profile *infraConfig.ProfileBean
defaultProfile, err := handler.infraProfileService.GetProfileByName(profileName)
if err != nil {
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
return
}
if profileName == infraConfig.DEFAULT_PROFILE_NAME {
profile = defaultProfile
}
resp := infraConfig.ProfileResponse{
Profile: *profile,
}
resp.ConfigurationUnits = handler.infraProfileService.GetConfigurationUnits()
resp.DefaultConfigurations = defaultProfile.Configurations
common.WriteJsonResp(w, nil, resp, http.StatusOK)
}
27 changes: 27 additions & 0 deletions api/infraConfig/router.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package infraConfig

import "github.com/gorilla/mux"

type InfraConfigRouter interface {
InitInfraConfigRouter(configRouter *mux.Router)
}

type InfraConfigRouterImpl struct {
infraConfigRestHandler InfraConfigRestHandler
}

func NewInfraProfileRouterImpl(infraConfigRestHandler InfraConfigRestHandler) *InfraConfigRouterImpl {
return &InfraConfigRouterImpl{
infraConfigRestHandler: infraConfigRestHandler,
}
}

func (impl *InfraConfigRouterImpl) InitInfraConfigRouter(configRouter *mux.Router) {
configRouter.Path("/profile/{name}").
HandlerFunc(impl.infraConfigRestHandler.GetProfile).
Methods("GET")

configRouter.Path("/profile/{name}").
HandlerFunc(impl.infraConfigRestHandler.UpdateInfraProfile).
Methods("PUT")
}
17 changes: 12 additions & 5 deletions api/router/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import (
"github.com/devtron-labs/devtron/api/deployment"
"github.com/devtron-labs/devtron/api/externalLink"
client "github.com/devtron-labs/devtron/api/helm-app"
"github.com/devtron-labs/devtron/api/infraConfig"
"github.com/devtron-labs/devtron/api/k8s/application"
"github.com/devtron-labs/devtron/api/k8s/capacity"
"github.com/devtron-labs/devtron/api/module"
Expand Down Expand Up @@ -118,6 +119,7 @@ type MuxRouter struct {
rbacRoleRouter user.RbacRoleRouter
scopedVariableRouter ScopedVariableRouter
ciTriggerCron cron.CiTriggerCron
infraConfigRouter infraConfig.InfraConfigRouter
}

func NewMuxRouter(logger *zap.SugaredLogger,
Expand Down Expand Up @@ -148,7 +150,8 @@ func NewMuxRouter(logger *zap.SugaredLogger,
rbacRoleRouter user.RbacRoleRouter,
scopedVariableRouter ScopedVariableRouter,
ciTriggerCron cron.CiTriggerCron,
proxyRouter proxy.ProxyRouter) *MuxRouter {
proxyRouter proxy.ProxyRouter,
infraConfigRouter infraConfig.InfraConfigRouter) *MuxRouter {
r := &MuxRouter{
Router: mux.NewRouter(),
EnvironmentClusterMappingsRouter: EnvironmentClusterMappingsRouter,
Expand Down Expand Up @@ -213,6 +216,7 @@ func NewMuxRouter(logger *zap.SugaredLogger,
rbacRoleRouter: rbacRoleRouter,
scopedVariableRouter: scopedVariableRouter,
ciTriggerCron: ciTriggerCron,
infraConfigRouter: infraConfigRouter,
}
return r
}
Expand All @@ -222,8 +226,8 @@ func (r MuxRouter) Init() {

r.Router.StrictSlash(true)
r.Router.Handle("/metrics", promhttp.Handler())
//prometheus.MustRegister(pipeline.CiTriggerCounter)
//prometheus.MustRegister(app.CdTriggerCounter)
// prometheus.MustRegister(pipeline.CiTriggerCounter)
// prometheus.MustRegister(app.CdTriggerCounter)
r.Router.Path("/health").HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(200)
Expand Down Expand Up @@ -375,10 +379,10 @@ func (r MuxRouter) Init() {
r.dashboardTelemetryRouter.Init(dashboardTelemetryRouter)
// dashboard event router ends

//GitOps,Acd + HelmCLi both apps deployment related api's
// GitOps,Acd + HelmCLi both apps deployment related api's
applicationSubRouter := r.Router.PathPrefix("/orchestrator/application").Subrouter()
r.commonDeploymentRouter.Init(applicationSubRouter)
//this router must placed after commonDeploymentRouter
// this router must placed after commonDeploymentRouter
r.helmAppRouter.InitAppListRouter(applicationSubRouter)

externalLinkRouter := r.Router.PathPrefix("/orchestrator/external-links").Subrouter()
Expand Down Expand Up @@ -411,4 +415,7 @@ func (r MuxRouter) Init() {

rbacRoleRouter := r.Router.PathPrefix("/orchestrator/rbac/role").Subrouter()
r.rbacRoleRouter.InitRbacRoleRouter(rbacRoleRouter)

infraConfigRouter := r.Router.PathPrefix("/orchestrator/infra-config").Subrouter()
r.infraConfigRouter.InitInfraConfigRouter(infraConfigRouter)
}