func()

in providers/ibm/container_cluster.go [107:177]


func (g *ContainerClusterGenerator) InitResources() error {
	region := g.Args["region"].(string)
	bmxConfig := &bluemix.Config{
		BluemixAPIKey: os.Getenv("IC_API_KEY"),
	}
	sess, err := session.New(bmxConfig)
	if err != nil {
		return err
	}
	client, err := containerv1.New(sess)
	if err != nil {
		return err
	}

	clusters, err := client.Clusters().List(containerv1.ClusterTargetHeader{})
	if err != nil {
		return err
	}

	clientNlb, err := containerv2.New(sess)
	if err != nil {
		return err
	}

	for _, cs := range clusters {
		if region == cs.Region {
			hardware := hardwareShared

			workerPools, err := client.WorkerPools().ListWorkerPools(cs.ID, containerv1.ClusterTargetHeader{
				ResourceGroup: cs.ResourceGroupID,
			})
			if err != nil {
				return err
			}

			if len(workerPools) > 0 && workerPoolContains(workerPools, defaultWorkerPool) {
				hardware = workerPools[0].Isolation
				switch strings.ToLower(hardware) {
				case "":
					hardware = hardwareShared
				case isolationPrivate:
					hardware = hardwareDedicated
				case isolationPublic:
					hardware = hardwareShared
				}
			}

			g.Resources = append(g.Resources, g.loadcluster(cs.ID, cs.Name, cs.DataCenter, hardware))

			for _, pool := range workerPools {
				g.Resources = append(g.Resources, g.loadWorkerPools(cs.ID, pool.ID, pool.Name))

				zones := pool.Zones
				for _, zone := range zones {
					g.Resources = append(g.Resources, g.loadWorkerPoolZones(cs.ID, pool.ID, zone.ID))
				}
			}

			nlbData, err := clientNlb.NlbDns().GetNLBDNSList(cs.Name)
			if err != nil {
				return err
			}

			for _, data := range nlbData {
				g.Resources = append(g.Resources, g.loadNlbDNS(data.Nlb.Cluster, data.Nlb.NlbIPArray))
			}
		}
	}

	return nil
}