@@ -3,6 +3,8 @@ package register
33import (
44 "context"
55 "fmt"
6+ "github.com/redhat-developer/app-services-cli/internal/build"
7+ "github.com/redhat-developer/app-services-cli/pkg/core/config"
68 "strings"
79
810 "github.com/AlecAivazis/survey/v2"
@@ -15,12 +17,11 @@ import (
1517)
1618
1719type options struct {
18- selectedClusterId string
19- // clusterManagementApiUrl string
20- // accessToken string
21- clusterList []clustersmgmtv1.Cluster
22- selectedCluster clustersmgmtv1.Cluster
23- // clusterMachinePoolList clustersmgmtv1.MachinePoolList
20+ selectedClusterId string
21+ clusterManagementApiUrl string
22+ accessToken string
23+ clusterList []clustersmgmtv1.Cluster
24+ selectedCluster clustersmgmtv1.Cluster
2425 existingMachinePoolList []clustersmgmtv1.MachinePool
2526 selectedClusterMachinePool clustersmgmtv1.MachinePool
2627 requestedMachinePoolNodeCount int
@@ -32,18 +33,18 @@ type options struct {
3233
3334// list of consts should come from KFM
3435const (
35- machinePoolId = "kafka-standard"
36- machinePoolTaintKey = "bf2.org/kafkaInstanceProfileType"
37- machinePoolTaintEffect = "NoExecute"
38- machinePoolTaintValue = "standard"
39- // machinePoolInstanceType = "m5.2xlarge"
36+ machinePoolId = "kafka-standard"
37+ machinePoolTaintKey = "bf2.org/kafkaInstanceProfileType"
38+ machinePoolTaintEffect = "NoExecute"
39+ machinePoolTaintValue = "standard"
4040 machinePoolInstanceType = "r5.xlarge"
4141 machinePoolLabelKey = "bf2.org/kafkaInstanceProfileType"
4242 machinePoolLabelValue = "standard"
4343 clusterReadyState = "ready"
4444 fleetshardAddonId = "kas-fleetshard-operator"
4545 strimziAddonId = "managed-kafka"
46- // clusterManagementAPIURL = "https://api.openshift.com"
46+ fleetshardAddonIdQE = "kas-fleetshard-operator-qe"
47+ strimziAddonIdQE = "managed-kafka-qe"
4748)
4849
4950func NewRegisterClusterCommand (f * factory.Factory ) * cobra.Command {
@@ -62,19 +63,16 @@ func NewRegisterClusterCommand(f *factory.Factory) *cobra.Command {
6263 },
6364 }
6465
65- // TO-DO add flags
66- // add a flag for clustermgmt url, i.e --cluster-management-api-url, make the flag hidden, default to api.openshift.com
67- // supply customer mgmt access token via a flag, i.e --access-token, make the flag hidden, default to ""
6866 flags := kafkaFlagutil .NewFlagSet (cmd , f .Localizer )
69- // flags.StringVar(&opts.clusterManagementApiUrl, "cluster-management-api-url", clusterManagementAPIURL, "cluster management api url")
70- // flags.StringVar(&opts.accessToken, "access-token", "", "access token")
71- // this flag will allow the user to pass the cluster id as a flag
67+ flags .StringVar (& opts .clusterManagementApiUrl , "cluster-mgmt-api-url" , "" , f .Localizer .MustLocalize ("dedicated.registerCluster.flag.clusterMgmtApiUrl.description" ))
68+ flags .StringVar (& opts .accessToken , "access-token" , "" , f .Localizer .MustLocalize ("dedicated.registercluster.flag.accessToken.description" ))
7269 flags .StringVar (& opts .selectedClusterId , "cluster-id" , "" , f .Localizer .MustLocalize ("dedicated.registerCluster.flag.clusterId.description" ))
7370
7471 return cmd
7572}
7673
7774func runRegisterClusterCmd (opts * options ) (err error ) {
75+ // Set the base URL for the cluster management API
7876 err = setListClusters (opts )
7977 if err != nil {
8078 return err
@@ -114,12 +112,11 @@ func runRegisterClusterCmd(opts *options) (err error) {
114112}
115113
116114func getClusterList (opts * options ) (* clustersmgmtv1.ClusterList , error ) {
117- // ocm client connection
118115 conn , err := opts .f .Connection ()
119116 if err != nil {
120117 return nil , err
121118 }
122- client , cc , err := conn .API ().OCMClustermgmt ()
119+ client , cc , err := conn .API ().OCMClustermgmt (opts . clusterManagementApiUrl , opts . accessToken )
123120 if err != nil {
124121 return nil , err
125122 }
@@ -147,9 +144,7 @@ func setListClusters(opts *options) error {
147144
148145func validateClusters (clusters * clustersmgmtv1.ClusterList , cls []clustersmgmtv1.Cluster ) []clustersmgmtv1.Cluster {
149146 for _ , cluster := range clusters .Slice () {
150- // TO-DO the cluster must be multiAZ
151147 if cluster .State () == clusterReadyState && cluster .MultiAZ () == true {
152- // if cluster.State() == clusterReadyState {
153148 cls = append (cls , * cluster )
154149 }
155150 }
@@ -223,7 +218,7 @@ func getMachinePoolList(opts *options) (*clustersmgmtv1.MachinePoolsListResponse
223218 if err != nil {
224219 return nil , err
225220 }
226- client , cc , err := conn .API ().OCMClustermgmt ()
221+ client , cc , err := conn .API ().OCMClustermgmt (opts . clusterManagementApiUrl , opts . accessToken )
227222 if err != nil {
228223 return nil , err
229224 }
@@ -295,12 +290,11 @@ func createMachinePoolRequestForDedicated(machinePoolNodeCount int) (*clustersmg
295290
296291// TO-DO this function should be moved to an ocm client / provider area
297292func createMachinePool (opts * options , mprequest * clustersmgmtv1.MachinePool ) error {
298- // create a new machine pool via ocm
299293 conn , err := opts .f .Connection ()
300294 if err != nil {
301295 return err
302296 }
303- client , cc , err := conn .API ().OCMClustermgmt ()
297+ client , cc , err := conn .API ().OCMClustermgmt (opts . clusterManagementApiUrl , opts . accessToken )
304298 if err != nil {
305299 return err
306300 }
@@ -384,17 +378,12 @@ func selectAccessPrivateNetworkInteractivePrompt(opts *options) error {
384378 Help : opts .f .Localizer .MustLocalize ("dedicated.registerCluster.prompt.selectPublicNetworkAccess.help" ),
385379 Default : false ,
386380 }
387- accessKafkasViaPublicNetwork := false
388- err := survey .AskOne (prompt , & accessKafkasViaPublicNetwork )
381+ accessFromPublicNetwork := true
382+ err := survey .AskOne (prompt , & accessFromPublicNetwork )
389383 if err != nil {
390384 return err
391385 }
392- if accessKafkasViaPublicNetwork {
393- opts .accessKafkasViaPrivateNetwork = false
394- } else {
395- opts .accessKafkasViaPrivateNetwork = true
396- }
397-
386+ opts .accessKafkasViaPrivateNetwork = ! accessFromPublicNetwork
398387 return nil
399388}
400389
@@ -416,7 +405,7 @@ func createAddonWithParams(opts *options, addonId string, params *[]kafkamgmtcli
416405 if err != nil {
417406 return err
418407 }
419- client , cc , err := conn .API ().OCMClustermgmt ()
408+ client , cc , err := conn .API ().OCMClustermgmt (opts . clusterManagementApiUrl , opts . accessToken )
420409 if err != nil {
421410 return err
422411 }
@@ -439,6 +428,20 @@ func createAddonWithParams(opts *options, addonId string, params *[]kafkamgmtcli
439428 return nil
440429}
441430
431+ func getStrimziAddonIdByEnv (con * config.Config ) string {
432+ if con .APIUrl == build .ProductionAPIURL {
433+ return strimziAddonId
434+ }
435+ return strimziAddonIdQE
436+ }
437+
438+ func getKafkaFleetShardAddonIdByEnv (con * config.Config ) string {
439+ if con .APIUrl == build .ProductionAPIURL {
440+ return fleetshardAddonId
441+ }
442+ return fleetshardAddonIdQE
443+ }
444+
442445// TO-DO go through errs and make them more user friendly with actual error messages.
443446func registerClusterWithKasFleetManager (opts * options ) error {
444447 clusterIngressDNSName , err := parseDNSURL (opts )
@@ -465,11 +468,15 @@ func registerClusterWithKasFleetManager(opts *options) error {
465468 if err != nil {
466469 return err
467470 }
468- err = createAddonWithParams (opts , strimziAddonId , nil )
471+ con , err := opts .f .Config .Load ()
472+ if err != nil {
473+ return err
474+ }
475+ err = createAddonWithParams (opts , getStrimziAddonIdByEnv (con ), nil )
469476 if err != nil {
470477 return err
471478 }
472- err = createAddonWithParams (opts , fleetshardAddonId , response .FleetshardParameters )
479+ err = createAddonWithParams (opts , getKafkaFleetShardAddonIdByEnv ( con ) , response .FleetshardParameters )
473480 if err != nil {
474481 return err
475482 }
0 commit comments