func resourceCloudStackKubernetesVersionCreate()

in cloudstack/resource_cloudstack_kubernetes_version.go [96:137]


func resourceCloudStackKubernetesVersionCreate(d *schema.ResourceData, meta interface{}) error {
	cs := meta.(*cloudstack.CloudStackClient)

	// State is always Enabled when created
	if state, ok := d.GetOk("state"); ok {
		if state.(string) != "Enabled" {
			return fmt.Errorf("State must be 'Enabled' when first adding an ISO")
		}
	}

	semanticVersion := d.Get("semantic_version").(string)
	url := d.Get("url").(string)
	minCpu := d.Get("min_cpu").(int)
	minMemory := d.Get("min_memory").(int)

	p := cs.Kubernetes.NewAddKubernetesSupportedVersionParams(minCpu, minMemory, semanticVersion)
	p.SetUrl(url)

	if name, ok := d.GetOk("name"); ok {
		p.SetName(name.(string))
	}
	if checksum, ok := d.GetOk("checksum"); ok {
		p.SetName(checksum.(string))
	}
	if zone, ok := d.GetOk("zone"); ok {
		zoneID, e := retrieveID(cs, "zone", zone.(string))
		if e != nil {
			return e.Error()
		}
		p.SetZoneid(zoneID)
	}

	log.Printf("[DEBUG] Creating Kubernetes Version %s", semanticVersion)
	r, err := cs.Kubernetes.AddKubernetesSupportedVersion(p)
	if err != nil {
		return err
	}

	log.Printf("[DEBUG] Kubernetes Version %s successfully created", semanticVersion)
	d.SetId(r.Id)
	return resourceCloudStackKubernetesVersionRead(d, meta)
}