func resourceCloudStackKubernetesCluster()

in cloudstack/resource_cloudstack_kubernetes_cluster.go [31:131]


func resourceCloudStackKubernetesCluster() *schema.Resource {
	return &schema.Resource{
		Create: resourceCloudStackKubernetesClusterCreate,
		Read:   resourceCloudStackKubernetesClusterRead,
		Update: resourceCloudStackKubernetesClusterUpdate,
		Delete: resourceCloudStackKubernetesClusterDelete,
		Importer: &schema.ResourceImporter{
			State: importStatePassthrough,
		},

		Schema: map[string]*schema.Schema{
			"name": {
				Type:     schema.TypeString,
				Required: true,
				ForceNew: true,
			},

			"zone": {
				Type:     schema.TypeString,
				Required: true,
				ForceNew: true,
			},

			"kubernetes_version": {
				Type:     schema.TypeString,
				Required: true,
			},

			"service_offering": {
				Type:     schema.TypeString,
				Required: true,
			},

			// Begin optional params
			"size": {
				Type:     schema.TypeInt,
				Optional: true,
				Default:  1,
			},

			"autoscaling_enabled": {
				Type:     schema.TypeBool,
				Optional: true,
			},

			"min_size": {
				Type:     schema.TypeInt,
				Optional: true,
			},

			"max_size": {
				Type:     schema.TypeInt,
				Optional: true,
			},

			"control_nodes_size": {
				Type:     schema.TypeInt,
				Optional: true,
				Computed: true,
				ForceNew: true, // For now
			},

			"description": {
				Type:     schema.TypeString,
				Optional: true,
				Computed: true,
			},

			"keypair": {
				Type:     schema.TypeString,
				Optional: true,
				ForceNew: true,
			},

			"network_id": {
				Type:     schema.TypeString,
				Optional: true,
				Computed: true,
				ForceNew: true,
			},

			"ip_address": {
				Type:     schema.TypeString,
				Computed: true,
			},

			"state": {
				Type:     schema.TypeString,
				Optional: true,
				Computed: true,
				// Default:  "Running",
			},

			"project": {
				Type:     schema.TypeString,
				Optional: true,
				ForceNew: true,
			},
		},
	}
}