Deprecate kubeconfig field and add stackit_ske_kubeconfig resource (#256)
* Implement kubeconfig resource * Update acc test, skip get credentials * Update acc test * Add warning on Create * Add option to refresh * Fix lint * Add comment, generate docs * Update stackit/internal/services/ske/cluster/resource.go Co-authored-by: João Palet <joao.palet@outlook.com> * Update stackit/internal/services/ske/kubeconfig/resource.go Co-authored-by: João Palet <joao.palet@outlook.com> * Changes after review * Fix schema * Gen docs * Rename * Credentials handling in datasource, update acc test * Fix datasource * Update descriptions --------- Co-authored-by: João Palet <joao.palet@outlook.com>
This commit is contained in:
parent
91b2c42a19
commit
bde1fc55e4
9 changed files with 618 additions and 39 deletions
|
|
@ -25,16 +25,15 @@ var clusterResource = map[string]string{
|
|||
"project_id": testutil.ProjectId,
|
||||
"name": fmt.Sprintf("cl-%s", acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)),
|
||||
"name_min": fmt.Sprintf("cl-min-%s", acctest.RandStringFromCharSet(3, acctest.CharSetAlphaNum)),
|
||||
"kubernetes_version": "1.24",
|
||||
"kubernetes_version_used": "1.24.17",
|
||||
"kubernetes_version_new": "1.25",
|
||||
"kubernetes_version_used_new": "1.25.15",
|
||||
"allowPrivilegedContainers": "true",
|
||||
"kubernetes_version": "1.25",
|
||||
"kubernetes_version_used": "1.25.16",
|
||||
"kubernetes_version_new": "1.26",
|
||||
"kubernetes_version_used_new": "1.26.13",
|
||||
"nodepool_name": "np-acc-test",
|
||||
"nodepool_name_min": "np-acc-min-test",
|
||||
"nodepool_machine_type": "b1.2",
|
||||
"nodepool_os_version": "3602.2.1",
|
||||
"nodepool_os_version_min": "3602.2.1",
|
||||
"nodepool_os_version": "3602.2.2",
|
||||
"nodepool_os_version_min": "3602.2.2",
|
||||
"nodepool_os_name": "flatcar",
|
||||
"nodepool_minimum": "2",
|
||||
"nodepool_maximum": "3",
|
||||
|
|
@ -61,17 +60,10 @@ var clusterResource = map[string]string{
|
|||
"maintenance_start": "01:23:45Z",
|
||||
"maintenance_end": "05:00:00+02:00",
|
||||
"maintenance_end_new": "03:03:03+00:00",
|
||||
"kubeconfig_expiration": "3600",
|
||||
}
|
||||
|
||||
func getConfig(version string, apc *bool, maintenanceEnd *string) string {
|
||||
apcConfig := ""
|
||||
if apc != nil {
|
||||
if *apc {
|
||||
apcConfig = "allow_privileged_containers = true"
|
||||
} else {
|
||||
apcConfig = "allow_privileged_containers = false"
|
||||
}
|
||||
}
|
||||
func getConfig(version string, maintenanceEnd *string) string {
|
||||
maintenanceEndTF := clusterResource["maintenance_end"]
|
||||
if maintenanceEnd != nil {
|
||||
maintenanceEndTF = *maintenanceEnd
|
||||
|
|
@ -87,7 +79,6 @@ func getConfig(version string, apc *bool, maintenanceEnd *string) string {
|
|||
project_id = stackit_ske_project.project.project_id
|
||||
name = "%s"
|
||||
kubernetes_version = "%s"
|
||||
%s
|
||||
node_pools = [{
|
||||
name = "%s"
|
||||
machine_type = "%s"
|
||||
|
|
@ -133,6 +124,12 @@ func getConfig(version string, apc *bool, maintenanceEnd *string) string {
|
|||
}
|
||||
}
|
||||
|
||||
resource "stackit_ske_kubeconfig" "kubeconfig" {
|
||||
project_id = stackit_ske_project.project.project_id
|
||||
cluster_name = stackit_ske_cluster.cluster.name
|
||||
expiration = "%s"
|
||||
}
|
||||
|
||||
resource "stackit_ske_cluster" "cluster_min" {
|
||||
project_id = stackit_ske_project.project.project_id
|
||||
name = "%s"
|
||||
|
|
@ -157,7 +154,6 @@ func getConfig(version string, apc *bool, maintenanceEnd *string) string {
|
|||
projectResource["project_id"],
|
||||
clusterResource["name"],
|
||||
version,
|
||||
apcConfig,
|
||||
clusterResource["nodepool_name"],
|
||||
clusterResource["nodepool_machine_type"],
|
||||
clusterResource["nodepool_minimum"],
|
||||
|
|
@ -187,6 +183,9 @@ func getConfig(version string, apc *bool, maintenanceEnd *string) string {
|
|||
clusterResource["maintenance_start"],
|
||||
maintenanceEndTF,
|
||||
|
||||
// Kubeconfig
|
||||
clusterResource["kubeconfig_expiration"],
|
||||
|
||||
// Minimal
|
||||
clusterResource["name_min"],
|
||||
clusterResource["kubernetes_version_new"],
|
||||
|
|
@ -211,7 +210,7 @@ func TestAccSKE(t *testing.T) {
|
|||
|
||||
// 1) Creation
|
||||
{
|
||||
Config: getConfig(clusterResource["kubernetes_version"], utils.Ptr(true), nil),
|
||||
Config: getConfig(clusterResource["kubernetes_version"], nil),
|
||||
Check: resource.ComposeAggregateTestCheckFunc(
|
||||
// project data
|
||||
resource.TestCheckResourceAttr("stackit_ske_project.project", "project_id", projectResource["project_id"]),
|
||||
|
|
@ -223,7 +222,6 @@ func TestAccSKE(t *testing.T) {
|
|||
resource.TestCheckResourceAttr("stackit_ske_cluster.cluster", "name", clusterResource["name"]),
|
||||
resource.TestCheckResourceAttr("stackit_ske_cluster.cluster", "kubernetes_version", clusterResource["kubernetes_version"]),
|
||||
resource.TestCheckResourceAttr("stackit_ske_cluster.cluster", "kubernetes_version_used", clusterResource["kubernetes_version_used"]),
|
||||
resource.TestCheckResourceAttr("stackit_ske_cluster.cluster", "allow_privileged_containers", clusterResource["allowPrivilegedContainers"]),
|
||||
resource.TestCheckResourceAttr("stackit_ske_cluster.cluster", "node_pools.0.name", clusterResource["nodepool_name"]),
|
||||
resource.TestCheckResourceAttr("stackit_ske_cluster.cluster", "node_pools.0.availability_zones.#", "1"),
|
||||
resource.TestCheckResourceAttr("stackit_ske_cluster.cluster", "node_pools.0.availability_zones.0", clusterResource["nodepool_zone"]),
|
||||
|
|
@ -255,9 +253,22 @@ func TestAccSKE(t *testing.T) {
|
|||
resource.TestCheckResourceAttr("stackit_ske_cluster.cluster", "maintenance.enable_machine_image_version_updates", clusterResource["maintenance_enable_machine_image_version_updates"]),
|
||||
resource.TestCheckResourceAttr("stackit_ske_cluster.cluster", "maintenance.start", clusterResource["maintenance_start"]),
|
||||
resource.TestCheckResourceAttr("stackit_ske_cluster.cluster", "maintenance.end", clusterResource["maintenance_end"]),
|
||||
|
||||
resource.TestCheckResourceAttrSet("stackit_ske_cluster.cluster", "kube_config"),
|
||||
|
||||
// Kubeconfig
|
||||
|
||||
resource.TestCheckResourceAttrPair(
|
||||
"stackit_ske_kubeconfig.kubeconfig", "project_id",
|
||||
"stackit_ske_cluster.cluster", "project_id",
|
||||
),
|
||||
resource.TestCheckResourceAttrPair(
|
||||
"stackit_ske_kubeconfig.kubeconfig", "cluster_name",
|
||||
"stackit_ske_cluster.cluster", "name",
|
||||
),
|
||||
resource.TestCheckResourceAttr("stackit_ske_kubeconfig.kubeconfig", "expiration", clusterResource["kubeconfig_expiration"]),
|
||||
resource.TestCheckResourceAttrSet("stackit_ske_kubeconfig.kubeconfig", "kube_config"),
|
||||
resource.TestCheckResourceAttrSet("stackit_ske_kubeconfig.kubeconfig", "expires_at"),
|
||||
|
||||
// Minimal cluster
|
||||
resource.TestCheckResourceAttrPair(
|
||||
"stackit_ske_project.project", "project_id",
|
||||
|
|
@ -314,7 +325,7 @@ func TestAccSKE(t *testing.T) {
|
|||
}
|
||||
|
||||
`,
|
||||
getConfig(clusterResource["kubernetes_version"], utils.Ptr(true), nil),
|
||||
getConfig(clusterResource["kubernetes_version"], nil),
|
||||
projectResource["project_id"],
|
||||
clusterResource["project_id"],
|
||||
clusterResource["name"],
|
||||
|
|
@ -334,7 +345,6 @@ func TestAccSKE(t *testing.T) {
|
|||
resource.TestCheckResourceAttr("data.stackit_ske_cluster.cluster", "name", clusterResource["name"]),
|
||||
resource.TestCheckResourceAttr("data.stackit_ske_cluster.cluster", "kubernetes_version", clusterResource["kubernetes_version"]),
|
||||
resource.TestCheckResourceAttr("data.stackit_ske_cluster.cluster", "kubernetes_version_used", clusterResource["kubernetes_version_used"]),
|
||||
resource.TestCheckResourceAttr("data.stackit_ske_cluster.cluster", "allow_privileged_containers", clusterResource["allowPrivilegedContainers"]),
|
||||
resource.TestCheckResourceAttr("data.stackit_ske_cluster.cluster", "node_pools.0.name", clusterResource["nodepool_name"]),
|
||||
resource.TestCheckResourceAttr("data.stackit_ske_cluster.cluster", "node_pools.0.availability_zones.#", "1"),
|
||||
resource.TestCheckResourceAttr("data.stackit_ske_cluster.cluster", "node_pools.0.availability_zones.0", clusterResource["nodepool_zone"]),
|
||||
|
|
@ -366,7 +376,7 @@ func TestAccSKE(t *testing.T) {
|
|||
resource.TestCheckResourceAttr("data.stackit_ske_cluster.cluster", "maintenance.start", clusterResource["maintenance_start"]),
|
||||
resource.TestCheckResourceAttr("data.stackit_ske_cluster.cluster", "maintenance.end", clusterResource["maintenance_end"]),
|
||||
|
||||
resource.TestCheckResourceAttrSet("data.stackit_ske_cluster.cluster", "kube_config"),
|
||||
resource.TestCheckNoResourceAttr("data.stackit_ske_cluster.cluster", "kube_config"), // when using the kubeconfig resource, the kubeconfig field becomes null
|
||||
|
||||
// Minimal cluster
|
||||
resource.TestCheckResourceAttr("data.stackit_ske_cluster.cluster_min", "name", clusterResource["name_min"]),
|
||||
|
|
@ -457,7 +467,7 @@ func TestAccSKE(t *testing.T) {
|
|||
},
|
||||
// 6) Update kubernetes version and maximum
|
||||
{
|
||||
Config: getConfig(clusterResource["kubernetes_version_new"], nil, utils.Ptr(clusterResource["maintenance_end_new"])),
|
||||
Config: getConfig(clusterResource["kubernetes_version_new"], utils.Ptr(clusterResource["maintenance_end_new"])),
|
||||
Check: resource.ComposeAggregateTestCheckFunc(
|
||||
// cluster data
|
||||
resource.TestCheckResourceAttr("stackit_ske_cluster.cluster", "project_id", clusterResource["project_id"]),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue