diff --git a/cmd/scw/testdata/test-all-usage-k8s-pool-remove-label-usage.golden b/cmd/scw/testdata/test-all-usage-k8s-pool-remove-label-usage.golden new file mode 100644 index 0000000000..eb1e4ab352 --- /dev/null +++ b/cmd/scw/testdata/test-all-usage-k8s-pool-remove-label-usage.golden @@ -0,0 +1,25 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +πŸŸ₯πŸŸ₯πŸŸ₯ STDERR️️ πŸŸ₯πŸŸ₯πŸŸ₯️ +Remove a label from all nodes of the pool (only apply to labels which was set through scaleway api). + +USAGE: + scw k8s pool remove-label [arg=value ...] + +EXAMPLES: + Remove a label of a specific pool + scw k8s pool remove-label 11111111-1111-1111-1111-111111111111 key=foo + +ARGS: + pool-id ID of the pool. + key Key of the label. + [region=fr-par] Region to target. If none is passed will use default region from the config + +FLAGS: + -h, --help help for remove-label + --list-sub-commands List all subcommands + +GLOBAL FLAGS: + -c, --config string The path to the config file + -D, --debug Enable debug mode + -o, --output string Output format: json or human, see 'scw help output' for more info (default "human") + -p, --profile string The config profile to use diff --git a/cmd/scw/testdata/test-all-usage-k8s-pool-remove-startup-taint-usage.golden b/cmd/scw/testdata/test-all-usage-k8s-pool-remove-startup-taint-usage.golden new file mode 100644 index 0000000000..a5050157c5 --- /dev/null +++ b/cmd/scw/testdata/test-all-usage-k8s-pool-remove-startup-taint-usage.golden @@ -0,0 +1,25 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +πŸŸ₯πŸŸ₯πŸŸ₯ STDERR️️ πŸŸ₯πŸŸ₯πŸŸ₯️ +New nodes will not have this taint at startup (does not remove taints from kubernetes side). + +USAGE: + scw k8s pool remove-startup-taint [arg=value ...] + +EXAMPLES: + Remove a startup taint of a specific pool + scw k8s pool remove-startup-taint 11111111-1111-1111-1111-111111111111 key=foo + +ARGS: + pool-id ID of the pool. + key Key of the taint. + [region=fr-par] Region to target. If none is passed will use default region from the config + +FLAGS: + -h, --help help for remove-startup-taint + --list-sub-commands List all subcommands + +GLOBAL FLAGS: + -c, --config string The path to the config file + -D, --debug Enable debug mode + -o, --output string Output format: json or human, see 'scw help output' for more info (default "human") + -p, --profile string The config profile to use diff --git a/cmd/scw/testdata/test-all-usage-k8s-pool-remove-taint-usage.golden b/cmd/scw/testdata/test-all-usage-k8s-pool-remove-taint-usage.golden new file mode 100644 index 0000000000..f57f95da2a --- /dev/null +++ b/cmd/scw/testdata/test-all-usage-k8s-pool-remove-taint-usage.golden @@ -0,0 +1,25 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +πŸŸ₯πŸŸ₯πŸŸ₯ STDERR️️ πŸŸ₯πŸŸ₯πŸŸ₯️ +Remove a taint from all all nodes of the pool (only apply to taints which was set through scaleway api). + +USAGE: + scw k8s pool remove-taint [arg=value ...] + +EXAMPLES: + Remove a taint to a specific pool + scw k8s pool remove-taint 11111111-1111-1111-1111-111111111111 key=foo + +ARGS: + pool-id ID of the pool. + key Key of the taint. + [region=fr-par] Region to target. If none is passed will use default region from the config + +FLAGS: + -h, --help help for remove-taint + --list-sub-commands List all subcommands + +GLOBAL FLAGS: + -c, --config string The path to the config file + -D, --debug Enable debug mode + -o, --output string Output format: json or human, see 'scw help output' for more info (default "human") + -p, --profile string The config profile to use diff --git a/cmd/scw/testdata/test-all-usage-k8s-pool-set-label-usage.golden b/cmd/scw/testdata/test-all-usage-k8s-pool-set-label-usage.golden new file mode 100644 index 0000000000..e49b3266f6 --- /dev/null +++ b/cmd/scw/testdata/test-all-usage-k8s-pool-set-label-usage.golden @@ -0,0 +1,29 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +πŸŸ₯πŸŸ₯πŸŸ₯ STDERR️️ πŸŸ₯πŸŸ₯πŸŸ₯️ +Apply a label to all nodes of the pool which will be periodically reconciled by scaleway. + +USAGE: + scw k8s pool set-label [arg=value ...] + +EXAMPLES: + Apply a label to a specific pool + scw k8s pool set-label 11111111-1111-1111-1111-111111111111 key=foo value=bar + + Apply a full label to a specific pool + scw k8s pool set-label 11111111-1111-1111-1111-111111111111 key=organization.example/gpu value=true + +ARGS: + pool-id ID of the pool. + key Key of the label. + value Value of the label. + [region=fr-par] Region to target. If none is passed will use default region from the config + +FLAGS: + -h, --help help for set-label + --list-sub-commands List all subcommands + +GLOBAL FLAGS: + -c, --config string The path to the config file + -D, --debug Enable debug mode + -o, --output string Output format: json or human, see 'scw help output' for more info (default "human") + -p, --profile string The config profile to use diff --git a/cmd/scw/testdata/test-all-usage-k8s-pool-set-startup-taint-usage.golden b/cmd/scw/testdata/test-all-usage-k8s-pool-set-startup-taint-usage.golden new file mode 100644 index 0000000000..0ce21c6096 --- /dev/null +++ b/cmd/scw/testdata/test-all-usage-k8s-pool-set-startup-taint-usage.golden @@ -0,0 +1,30 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +πŸŸ₯πŸŸ₯πŸŸ₯ STDERR️️ πŸŸ₯πŸŸ₯πŸŸ₯️ +Apply a taint at node creation but does not reconcile after. + +USAGE: + scw k8s pool set-startup-taint [arg=value ...] + +EXAMPLES: + Apply a startup taint to a specific pool + scw k8s pool set-startup-taint 11111111-1111-1111-1111-111111111111 key=foo value=bar effect=NoSchedule + + Apply a full startup taint to a specific pool + scw k8s pool set-startup-taint 11111111-1111-1111-1111-111111111111 key=organization.example/gpu value=true effect=NoSchedule + +ARGS: + pool-id ID of the pool. + key Key of the taint. + value Value of the taint. + effect Effect of the taint. (NoSchedule | PreferNoSchedule | NoExecute) + [region=fr-par] Region to target. If none is passed will use default region from the config + +FLAGS: + -h, --help help for set-startup-taint + --list-sub-commands List all subcommands + +GLOBAL FLAGS: + -c, --config string The path to the config file + -D, --debug Enable debug mode + -o, --output string Output format: json or human, see 'scw help output' for more info (default "human") + -p, --profile string The config profile to use diff --git a/cmd/scw/testdata/test-all-usage-k8s-pool-set-taint-usage.golden b/cmd/scw/testdata/test-all-usage-k8s-pool-set-taint-usage.golden new file mode 100644 index 0000000000..bee484daa4 --- /dev/null +++ b/cmd/scw/testdata/test-all-usage-k8s-pool-set-taint-usage.golden @@ -0,0 +1,30 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +πŸŸ₯πŸŸ₯πŸŸ₯ STDERR️️ πŸŸ₯πŸŸ₯πŸŸ₯️ +Apply a taint to all nodes of the pool which will be periodically reconciled by scaleway. + +USAGE: + scw k8s pool set-taint [arg=value ...] + +EXAMPLES: + Apply a taint to a specific pool + scw k8s pool set-taint 11111111-1111-1111-1111-111111111111 key=foo value=bar effect=NoSchedule + + Apply a full taint to a specific pool + scw k8s pool set-taint 11111111-1111-1111-1111-111111111111 key=organization.example/gpu value=true effect=NoSchedule + +ARGS: + pool-id ID of the pool. + key Key of the taint. + value Value of the taint. + effect Effect of the taint. (NoSchedule | PreferNoSchedule | NoExecute) + [region=fr-par] Region to target. If none is passed will use default region from the config + +FLAGS: + -h, --help help for set-taint + --list-sub-commands List all subcommands + +GLOBAL FLAGS: + -c, --config string The path to the config file + -D, --debug Enable debug mode + -o, --output string Output format: json or human, see 'scw help output' for more info (default "human") + -p, --profile string The config profile to use diff --git a/cmd/scw/testdata/test-all-usage-k8s-pool-usage.golden b/cmd/scw/testdata/test-all-usage-k8s-pool-usage.golden index 75f2b0f1bc..2548d81aad 100644 --- a/cmd/scw/testdata/test-all-usage-k8s-pool-usage.golden +++ b/cmd/scw/testdata/test-all-usage-k8s-pool-usage.golden @@ -7,16 +7,26 @@ USAGE: scw k8s pool AVAILABLE COMMANDS: - add-external-node Add an external node to a Kosmos Pool - create Create a new Pool in a Cluster - delete Delete a Pool in a Cluster - get Get a Pool in a Cluster - list List Pools in a Cluster - update Update a Pool in a Cluster - upgrade Upgrade a Pool in a Cluster + add-external-node Add an external node to a Kosmos Pool + create Create a new Pool in a Cluster + delete Delete a Pool in a Cluster + get Get a Pool in a Cluster + list List Pools in a Cluster + update Update a Pool in a Cluster + upgrade Upgrade a Pool in a Cluster + +LABEL COMMANDS: + remove-label Remove a label from a Pool + set-label Apply a label to a Pool + +TAINT COMMANDS: + remove-startup-taint Remove a startup taint from a Pool + remove-taint Remove a taint from a Pool + set-startup-taint Apply a startup taint to a Pool + set-taint Apply a taint to a Pool WORKFLOW COMMANDS: - wait Wait for a pool to reach a stable state + wait Wait for a pool to reach a stable state FLAGS: -h, --help help for pool diff --git a/docs/commands/k8s.md b/docs/commands/k8s.md index 46980b9629..df495257cd 100644 --- a/docs/commands/k8s.md +++ b/docs/commands/k8s.md @@ -38,6 +38,12 @@ This API allows you to manage Kubernetes Kapsule and Kosmos clusters. - [Delete a Pool in a Cluster](#delete-a-pool-in-a-cluster) - [Get a Pool in a Cluster](#get-a-pool-in-a-cluster) - [List Pools in a Cluster](#list-pools-in-a-cluster) + - [Remove a label from a Pool](#remove-a-label-from-a-pool) + - [Remove a startup taint from a Pool](#remove-a-startup-taint-from-a-pool) + - [Remove a taint from a Pool](#remove-a-taint-from-a-pool) + - [Apply a label to a Pool](#apply-a-label-to-a-pool) + - [Apply a startup taint to a Pool](#apply-a-startup-taint-to-a-pool) + - [Apply a taint to a Pool](#apply-a-taint-to-a-pool) - [Update a Pool in a Cluster](#update-a-pool-in-a-cluster) - [Upgrade a Pool in a Cluster](#upgrade-a-pool-in-a-cluster) - [Wait for a pool to reach a stable state](#wait-for-a-pool-to-reach-a-stable-state) @@ -1154,6 +1160,212 @@ scw k8s pool list cluster-id=11111111-1111-1111-1111-111111111111 order-by=creat +### Remove a label from a Pool + +Remove a label from all nodes of the pool (only apply to labels which was set through scaleway api). + +**Usage:** + +``` +scw k8s pool remove-label [arg=value ...] +``` + + +**Args:** + +| Name | | Description | +|------|---|-------------| +| pool-id | Required | ID of the pool. | +| key | Required | Key of the label. | +| region | Default: `fr-par` | Region to target. If none is passed will use default region from the config | + + +**Examples:** + + +Remove a label of a specific pool +``` +scw k8s pool remove-label 11111111-1111-1111-1111-111111111111 key=foo +``` + + + + +### Remove a startup taint from a Pool + +New nodes will not have this taint at startup (does not remove taints from kubernetes side). + +**Usage:** + +``` +scw k8s pool remove-startup-taint [arg=value ...] +``` + + +**Args:** + +| Name | | Description | +|------|---|-------------| +| pool-id | Required | ID of the pool. | +| key | Required | Key of the taint. | +| region | Default: `fr-par` | Region to target. If none is passed will use default region from the config | + + +**Examples:** + + +Remove a startup taint of a specific pool +``` +scw k8s pool remove-startup-taint 11111111-1111-1111-1111-111111111111 key=foo +``` + + + + +### Remove a taint from a Pool + +Remove a taint from all all nodes of the pool (only apply to taints which was set through scaleway api). + +**Usage:** + +``` +scw k8s pool remove-taint [arg=value ...] +``` + + +**Args:** + +| Name | | Description | +|------|---|-------------| +| pool-id | Required | ID of the pool. | +| key | Required | Key of the taint. | +| region | Default: `fr-par` | Region to target. If none is passed will use default region from the config | + + +**Examples:** + + +Remove a taint to a specific pool +``` +scw k8s pool remove-taint 11111111-1111-1111-1111-111111111111 key=foo +``` + + + + +### Apply a label to a Pool + +Apply a label to all nodes of the pool which will be periodically reconciled by scaleway. + +**Usage:** + +``` +scw k8s pool set-label [arg=value ...] +``` + + +**Args:** + +| Name | | Description | +|------|---|-------------| +| pool-id | Required | ID of the pool. | +| key | Required | Key of the label. | +| value | Required | Value of the label. | +| region | Default: `fr-par` | Region to target. If none is passed will use default region from the config | + + +**Examples:** + + +Apply a label to a specific pool +``` +scw k8s pool set-label 11111111-1111-1111-1111-111111111111 key=foo value=bar +``` + +Apply a full label to a specific pool +``` +scw k8s pool set-label 11111111-1111-1111-1111-111111111111 key=organization.example/gpu value=true +``` + + + + +### Apply a startup taint to a Pool + +Apply a taint at node creation but does not reconcile after. + +**Usage:** + +``` +scw k8s pool set-startup-taint [arg=value ...] +``` + + +**Args:** + +| Name | | Description | +|------|---|-------------| +| pool-id | Required | ID of the pool. | +| key | Required | Key of the taint. | +| value | Required | Value of the taint. | +| effect | Required
One of: `NoSchedule`, `PreferNoSchedule`, `NoExecute` | Effect of the taint. | +| region | Default: `fr-par` | Region to target. If none is passed will use default region from the config | + + +**Examples:** + + +Apply a startup taint to a specific pool +``` +scw k8s pool set-startup-taint 11111111-1111-1111-1111-111111111111 key=foo value=bar effect=NoSchedule +``` + +Apply a full startup taint to a specific pool +``` +scw k8s pool set-startup-taint 11111111-1111-1111-1111-111111111111 key=organization.example/gpu value=true effect=NoSchedule +``` + + + + +### Apply a taint to a Pool + +Apply a taint to all nodes of the pool which will be periodically reconciled by scaleway. + +**Usage:** + +``` +scw k8s pool set-taint [arg=value ...] +``` + + +**Args:** + +| Name | | Description | +|------|---|-------------| +| pool-id | Required | ID of the pool. | +| key | Required | Key of the taint. | +| value | Required | Value of the taint. | +| effect | Required
One of: `NoSchedule`, `PreferNoSchedule`, `NoExecute` | Effect of the taint. | +| region | Default: `fr-par` | Region to target. If none is passed will use default region from the config | + + +**Examples:** + + +Apply a taint to a specific pool +``` +scw k8s pool set-taint 11111111-1111-1111-1111-111111111111 key=foo value=bar effect=NoSchedule +``` + +Apply a full taint to a specific pool +``` +scw k8s pool set-taint 11111111-1111-1111-1111-111111111111 key=organization.example/gpu value=true effect=NoSchedule +``` + + + + ### Update a Pool in a Cluster Update the attributes of a specific pool, such as its desired size, autoscaling settings, and tags. To upgrade a pool, you will need to use the dedicated endpoint. diff --git a/internal/namespaces/k8s/v1/custom.go b/internal/namespaces/k8s/v1/custom.go index fef031d6d3..3bcb14f4c2 100644 --- a/internal/namespaces/k8s/v1/custom.go +++ b/internal/namespaces/k8s/v1/custom.go @@ -31,10 +31,17 @@ func GetCommands() *core.Commands { k8sNodeWaitCommand(), k8sPoolWaitCommand(), k8sPoolAddExternalNodeCommand(), + k8sPoolSetTaintCommand(), + k8sPoolRemoveTaintCommand(), + k8sPoolSetStartupTaintCommand(), + k8sPoolRemoveStartupTaintCommand(), + k8sPoolSetLabelCommand(), + k8sPoolRemoveLabelCommand(), )) human.RegisterMarshalerFunc(k8s.Version{}, versionMarshalerFunc) human.RegisterMarshalerFunc(k8s.Cluster{}, clusterMarshalerFunc) + human.RegisterMarshalerFunc(k8s.Pool{}, poolMarshalerFunc) human.RegisterMarshalerFunc( k8s.ClusterStatus(""), human.EnumMarshalFunc(clusterStatusMarshalSpecs), diff --git a/internal/namespaces/k8s/v1/custom_pool.go b/internal/namespaces/k8s/v1/custom_pool.go index 87a098f25d..b73072f8e7 100644 --- a/internal/namespaces/k8s/v1/custom_pool.go +++ b/internal/namespaces/k8s/v1/custom_pool.go @@ -44,6 +44,39 @@ const ( poolActionDelete ) +func poolMarshalerFunc(i any, opt *human.MarshalOpt) (string, error) { + type humanPool k8s.Pool + pool := humanPool(i.(k8s.Pool)) + + // Sections + opt.Sections = []*human.MarshalSection{ + { + FieldName: "UpgradePolicy", + Title: "Upgrade Policy", + }, + { + FieldName: "Labels", + Title: "Node labels", + }, + { + FieldName: "Taints", + Title: "Node taints", + }, + + { + FieldName: "StartupTaints", + Title: "Node startup taints", + }, + } + + str, err := human.Marshal(pool, opt) + if err != nil { + return "", err + } + + return str, nil +} + func poolCreateBuilder(c *core.Command) *core.Command { c.WaitFunc = waitForPoolFunc(poolActionCreate) diff --git a/internal/namespaces/k8s/v1/custom_pool_labels.go b/internal/namespaces/k8s/v1/custom_pool_labels.go new file mode 100644 index 0000000000..5acd59b456 --- /dev/null +++ b/internal/namespaces/k8s/v1/custom_pool_labels.go @@ -0,0 +1,144 @@ +package k8s + +import ( + "context" + "reflect" + + "github.com/scaleway/scaleway-cli/v2/core" + "github.com/scaleway/scaleway-sdk-go/api/k8s/v1" + "github.com/scaleway/scaleway-sdk-go/scw" +) + +type k8sPoolSetLabelRequest struct { + PoolID string + Key string + Value string + Region scw.Region +} + +func k8sPoolSetLabelCommand() *core.Command { + return &core.Command{ + Short: `Apply a label to a Pool`, + Long: `Apply a label to all nodes of the pool which will be periodically reconciled by scaleway.`, + Namespace: "k8s", + Resource: "pool", + Verb: "set-label", + Groups: []string{"label"}, + ArgsType: reflect.TypeOf(k8sPoolSetLabelRequest{}), + Run: func(ctx context.Context, argsI any) (i any, err error) { + request := argsI.(*k8sPoolSetLabelRequest) + + api := k8s.NewAPI(core.ExtractClient(ctx)) + pool, err := api.GetPool(&k8s.GetPoolRequest{ + PoolID: request.PoolID, + Region: request.Region, + }, scw.WithContext(ctx)) + if err != nil { + return nil, err + } + + if val, ok := pool.Labels[request.Key]; ok && request.Value == val { + return pool, nil + } + + pool.Labels[request.Key] = request.Value + + return api.SetPoolLabels(&k8s.SetPoolLabelsRequest{ + PoolID: request.PoolID, + Labels: pool.Labels, + Region: request.Region, + }, scw.WithContext(ctx)) + }, + ArgSpecs: core.ArgSpecs{ + { + Name: "pool-id", + Short: `ID of the pool.`, + Required: true, + Positional: true, + }, + { + Name: "key", + Short: `Key of the label.`, + Required: true, + }, + { + Name: "value", + Short: `Value of the label.`, + Required: true, + }, + core.RegionArgSpec(), + }, + Examples: []*core.Example{ + { + Short: "Apply a label to a specific pool", + ArgsJSON: `{"pool_id": "11111111-1111-1111-1111-111111111111", "key": "foo", "value": "bar"}`, + }, + { + Short: "Apply a full label to a specific pool", + ArgsJSON: `{"pool_id": "11111111-1111-1111-1111-111111111111", "key": "organization.example/gpu", "value": "true"}`, + }, + }, + } +} + +type k8sPoolRemoveLabelRequest struct { + PoolID string + Key string + Region scw.Region +} + +func k8sPoolRemoveLabelCommand() *core.Command { + return &core.Command{ + Short: `Remove a label from a Pool`, + Long: `Remove a label from all nodes of the pool (only apply to labels which was set through scaleway api).`, + Namespace: "k8s", + Resource: "pool", + Verb: "remove-label", + Groups: []string{"label"}, + ArgsType: reflect.TypeOf(k8sPoolRemoveLabelRequest{}), + Run: func(ctx context.Context, argsI any) (i any, err error) { + request := argsI.(*k8sPoolRemoveLabelRequest) + + api := k8s.NewAPI(core.ExtractClient(ctx)) + pool, err := api.GetPool(&k8s.GetPoolRequest{ + PoolID: request.PoolID, + Region: request.Region, + }, scw.WithContext(ctx)) + if err != nil { + return nil, err + } + + if _, ok := pool.Labels[request.Key]; !ok { + return pool, nil + } + + delete(pool.Labels, request.Key) + + return api.SetPoolLabels(&k8s.SetPoolLabelsRequest{ + PoolID: request.PoolID, + Labels: pool.Labels, + Region: request.Region, + }, scw.WithContext(ctx)) + }, + ArgSpecs: core.ArgSpecs{ + { + Name: "pool-id", + Short: `ID of the pool.`, + Required: true, + Positional: true, + }, + { + Name: "key", + Short: `Key of the label.`, + Required: true, + }, + core.RegionArgSpec(), + }, + Examples: []*core.Example{ + { + Short: "Remove a label of a specific pool", + ArgsJSON: `{"pool_id": "11111111-1111-1111-1111-111111111111", "key": "foo"}`, + }, + }, + } +} diff --git a/internal/namespaces/k8s/v1/custom_pool_labels_test.go b/internal/namespaces/k8s/v1/custom_pool_labels_test.go new file mode 100644 index 0000000000..6acdb3f03f --- /dev/null +++ b/internal/namespaces/k8s/v1/custom_pool_labels_test.go @@ -0,0 +1,55 @@ +package k8s_test + +import ( + "fmt" + "testing" + + "github.com/scaleway/scaleway-cli/v2/core" + "github.com/scaleway/scaleway-cli/v2/internal/namespaces/k8s/v1" +) + +func Test_PoolSetLabel(t *testing.T) { + t.Run("set-empty", core.Test(&core.TestConfig{ + Commands: k8s.GetCommands(), + BeforeFunc: core.BeforeFuncCombine( + core.ExecStoreBeforeCmd( + clusterMetaKey, + fmt.Sprintf( + "scw k8s cluster create name=cli-test-%s version=%s cni=cilium pools.0.node-type=DEV1-M pools.0.size=1 pools.0.name=default --wait=true", + t.Name(), + kapsuleVersion, + ), + ), + fetchPoolMetadata(clusterMetaKey, poolMetaKey, "default"), + ), + Cmd: "scw k8s pool set-label {{ ." + poolMetaKey + ".ID }} key=foo value=bar", + Check: core.TestCheckCombine( + core.TestCheckGolden(), + core.TestCheckExitCode(0), + ), + AfterFunc: deleteCluster(), + })) +} + +func Test_PoolRemoveLabel(t *testing.T) { + t.Run("remove-existing", core.Test(&core.TestConfig{ + Commands: k8s.GetCommands(), + BeforeFunc: core.BeforeFuncCombine( + core.ExecStoreBeforeCmd( + clusterMetaKey, + fmt.Sprintf( + "scw k8s cluster create name=cli-test-%s version=%s cni=cilium pools.0.node-type=DEV1-M pools.0.size=1 pools.0.name=default pools.0.labels.foo=bar --wait=true", + t.Name(), + kapsuleVersion, + ), + ), + fetchPoolMetadata(clusterMetaKey, poolMetaKey, "default"), + ), + Cmd: "scw k8s pool remove-label {{ ." + poolMetaKey + ".ID }} key=foo", + Check: core.TestCheckCombine( + core.TestCheckGolden(), + core.TestCheckExitCode(0), + ), + AfterFunc: deleteCluster(), + })) +} diff --git a/internal/namespaces/k8s/v1/custom_pool_taints.go b/internal/namespaces/k8s/v1/custom_pool_taints.go new file mode 100644 index 0000000000..e8e0fc1490 --- /dev/null +++ b/internal/namespaces/k8s/v1/custom_pool_taints.go @@ -0,0 +1,344 @@ +package k8s + +import ( + "context" + "reflect" + + "github.com/scaleway/scaleway-cli/v2/core" + "github.com/scaleway/scaleway-sdk-go/api/k8s/v1" + "github.com/scaleway/scaleway-sdk-go/scw" +) + +func coreV1TaintEffectEnums() []string { + sdkEffects := k8s.CoreV1TaintEffect("").Values() + enums := make([]string, len(sdkEffects)) + for i, v := range sdkEffects { + enums[i] = v.String() + } + + return enums +} + +type k8sPoolSetTaintRequest struct { + PoolID string + Key string + Value string + Effect string + Region scw.Region +} + +func k8sPoolSetTaintCommand() *core.Command { + return &core.Command{ + Short: `Apply a taint to a Pool`, + Long: `Apply a taint to all nodes of the pool which will be periodically reconciled by scaleway.`, + Namespace: "k8s", + Resource: "pool", + Verb: "set-taint", + Groups: []string{"taint"}, + ArgsType: reflect.TypeOf(k8sPoolSetTaintRequest{}), + Run: func(ctx context.Context, argsI any) (i any, err error) { + request := argsI.(*k8sPoolSetTaintRequest) + + api := k8s.NewAPI(core.ExtractClient(ctx)) + pool, err := api.GetPool(&k8s.GetPoolRequest{ + PoolID: request.PoolID, + Region: request.Region, + }, scw.WithContext(ctx)) + if err != nil { + return nil, err + } + + found := false + for _, t := range pool.Taints { + if t.Key == request.Key { + t.Value = request.Value + t.Effect = k8s.CoreV1TaintEffect(request.Effect) + found = true + + break + } + } + + if !found { + pool.Taints = append(pool.Taints, &k8s.CoreV1Taint{ + Key: request.Key, + Value: request.Value, + Effect: k8s.CoreV1TaintEffect(request.Effect), + }) + } + + return api.SetPoolTaints(&k8s.SetPoolTaintsRequest{ + PoolID: request.PoolID, + Taints: pool.Taints, + Region: request.Region, + }) + }, + ArgSpecs: core.ArgSpecs{ + { + Name: "pool-id", + Short: `ID of the pool.`, + Required: true, + Positional: true, + }, + { + Name: "key", + Short: `Key of the taint.`, + Required: true, + }, + { + Name: "value", + Short: `Value of the taint.`, + Required: true, + }, + { + Name: "effect", + Short: `Effect of the taint.`, + Required: true, + EnumValues: coreV1TaintEffectEnums(), + }, + core.RegionArgSpec(), + }, + Examples: []*core.Example{ + { + Short: "Apply a taint to a specific pool", + ArgsJSON: `{"pool_id": "11111111-1111-1111-1111-111111111111", "key": "foo", "value": "bar", "effect": "NoSchedule"}`, + }, + { + Short: "Apply a full taint to a specific pool", + ArgsJSON: `{"pool_id": "11111111-1111-1111-1111-111111111111", "key": "organization.example/gpu", "value": "true", "effect": "NoSchedule"}`, + }, + }, + } +} + +type k8sPoolRemoveTaintRequest struct { + PoolID string + Key string + Region scw.Region +} + +func k8sPoolRemoveTaintCommand() *core.Command { + return &core.Command{ + Short: `Remove a taint from a Pool`, + Long: `Remove a taint from all all nodes of the pool (only apply to taints which was set through scaleway api).`, + Namespace: "k8s", + Resource: "pool", + Verb: "remove-taint", + Groups: []string{"taint"}, + ArgsType: reflect.TypeOf(k8sPoolRemoveTaintRequest{}), + Run: func(ctx context.Context, argsI any) (i any, err error) { + request := argsI.(*k8sPoolRemoveTaintRequest) + + api := k8s.NewAPI(core.ExtractClient(ctx)) + pool, err := api.GetPool(&k8s.GetPoolRequest{ + PoolID: request.PoolID, + Region: request.Region, + }, scw.WithContext(ctx)) + if err != nil { + return nil, err + } + + found := false + for i, t := range pool.Taints { + if t.Key == request.Key { + pool.Taints = append(pool.Taints[:i], pool.Taints[i+1:]...) + found = true + + break + } + } + + if !found { + return pool, nil + } + + return api.SetPoolTaints(&k8s.SetPoolTaintsRequest{ + PoolID: request.PoolID, + Taints: pool.Taints, + Region: request.Region, + }, scw.WithContext(ctx)) + }, + ArgSpecs: core.ArgSpecs{ + { + Name: "pool-id", + Short: `ID of the pool.`, + Required: true, + Positional: true, + }, + { + Name: "key", + Short: `Key of the taint.`, + Required: true, + }, + core.RegionArgSpec(), + }, + Examples: []*core.Example{ + { + Short: "Remove a taint to a specific pool", + ArgsJSON: `{"pool_id": "11111111-1111-1111-1111-111111111111", "key": "foo"}`, + }, + }, + } +} + +type k8sPoolSetStartupTaintRequest struct { + PoolID string + Key string + Value string + Effect string + Region scw.Region +} + +func k8sPoolSetStartupTaintCommand() *core.Command { + return &core.Command{ + Short: `Apply a startup taint to a Pool`, + Long: `Apply a taint at node creation but does not reconcile after.`, + Namespace: "k8s", + Resource: "pool", + Verb: "set-startup-taint", + Groups: []string{"taint"}, + ArgsType: reflect.TypeOf(k8sPoolSetStartupTaintRequest{}), + Run: func(ctx context.Context, argsI any) (i any, err error) { + request := argsI.(*k8sPoolSetStartupTaintRequest) + + api := k8s.NewAPI(core.ExtractClient(ctx)) + pool, err := api.GetPool(&k8s.GetPoolRequest{ + PoolID: request.PoolID, + Region: request.Region, + }, scw.WithContext(ctx)) + if err != nil { + return nil, err + } + + found := false + for _, t := range pool.StartupTaints { + if t.Key == request.Key { + t.Value = request.Value + t.Effect = k8s.CoreV1TaintEffect(request.Effect) + found = true + + break + } + } + + if !found { + pool.StartupTaints = append(pool.StartupTaints, &k8s.CoreV1Taint{ + Key: request.Key, + Value: request.Value, + Effect: k8s.CoreV1TaintEffect(request.Effect), + }) + } + + return api.SetPoolStartupTaints(&k8s.SetPoolStartupTaintsRequest{ + PoolID: request.PoolID, + StartupTaints: pool.StartupTaints, + Region: request.Region, + }, scw.WithContext(ctx)) + }, + ArgSpecs: core.ArgSpecs{ + { + Name: "pool-id", + Short: `ID of the pool.`, + Required: true, + Positional: true, + }, + { + Name: "key", + Short: `Key of the taint.`, + Required: true, + }, + { + Name: "value", + Short: `Value of the taint.`, + Required: true, + }, + { + Name: "effect", + Short: `Effect of the taint.`, + Required: true, + EnumValues: coreV1TaintEffectEnums(), + }, + core.RegionArgSpec(), + }, + Examples: []*core.Example{ + { + Short: "Apply a startup taint to a specific pool", + ArgsJSON: `{"pool_id": "11111111-1111-1111-1111-111111111111", "key": "foo", "value": "bar", "effect": "NoSchedule"}`, + }, + { + Short: "Apply a full startup taint to a specific pool", + ArgsJSON: `{"pool_id": "11111111-1111-1111-1111-111111111111", "key": "organization.example/gpu", "value": "true", "effect": "NoSchedule"}`, + }, + }, + } +} + +type k8sPoolRemoveStartupTaintRequest struct { + PoolID string + Key string + Region scw.Region +} + +func k8sPoolRemoveStartupTaintCommand() *core.Command { + return &core.Command{ + Short: `Remove a startup taint from a Pool`, + Long: `New nodes will not have this taint at startup (does not remove taints from kubernetes side).`, + Namespace: "k8s", + Resource: "pool", + Verb: "remove-startup-taint", + Groups: []string{"taint"}, + ArgsType: reflect.TypeOf(k8sPoolRemoveStartupTaintRequest{}), + Run: func(ctx context.Context, argsI any) (i any, err error) { + request := argsI.(*k8sPoolRemoveStartupTaintRequest) + + api := k8s.NewAPI(core.ExtractClient(ctx)) + pool, err := api.GetPool(&k8s.GetPoolRequest{ + PoolID: request.PoolID, + Region: request.Region, + }, scw.WithContext(ctx)) + if err != nil { + return nil, err + } + + found := false + for i, t := range pool.StartupTaints { + if t.Key == request.Key { + pool.StartupTaints = append(pool.StartupTaints[:i], pool.StartupTaints[i+1:]...) + found = true + + break + } + } + + if !found { + return pool, nil + } + + return api.SetPoolStartupTaints(&k8s.SetPoolStartupTaintsRequest{ + PoolID: request.PoolID, + StartupTaints: pool.StartupTaints, + Region: request.Region, + }, scw.WithContext(ctx)) + }, + ArgSpecs: core.ArgSpecs{ + { + Name: "pool-id", + Short: `ID of the pool.`, + Required: true, + Positional: true, + }, + { + Name: "key", + Short: `Key of the taint.`, + Required: true, + }, + core.RegionArgSpec(), + }, + Examples: []*core.Example{ + { + Short: "Remove a startup taint of a specific pool", + ArgsJSON: `{"pool_id": "11111111-1111-1111-1111-111111111111", "key": "foo"}`, + }, + }, + } +} diff --git a/internal/namespaces/k8s/v1/custom_pool_taints_test.go b/internal/namespaces/k8s/v1/custom_pool_taints_test.go new file mode 100644 index 0000000000..d459706398 --- /dev/null +++ b/internal/namespaces/k8s/v1/custom_pool_taints_test.go @@ -0,0 +1,101 @@ +package k8s_test + +import ( + "fmt" + "testing" + + "github.com/scaleway/scaleway-cli/v2/core" + "github.com/scaleway/scaleway-cli/v2/internal/namespaces/k8s/v1" +) + +func Test_PoolSetTaint(t *testing.T) { + t.Run("set-empty", core.Test(&core.TestConfig{ + Commands: k8s.GetCommands(), + BeforeFunc: core.BeforeFuncCombine( + core.ExecStoreBeforeCmd( + clusterMetaKey, + fmt.Sprintf( + "scw k8s cluster create name=cli-test-%s version=%s cni=cilium pools.0.node-type=DEV1-M pools.0.size=1 pools.0.name=default --wait=true", + t.Name(), + kapsuleVersion, + ), + ), + fetchPoolMetadata(clusterMetaKey, poolMetaKey, "default"), + ), + Cmd: "scw k8s pool set-taint {{ ." + poolMetaKey + ".ID }} key=foo value=bar effect=NoSchedule", + Check: core.TestCheckCombine( + core.TestCheckGolden(), + core.TestCheckExitCode(0), + ), + AfterFunc: deleteCluster(), + })) +} + +func Test_PoolRemoveTaint(t *testing.T) { + t.Run("remove-existing", core.Test(&core.TestConfig{ + Commands: k8s.GetCommands(), + BeforeFunc: core.BeforeFuncCombine( + core.ExecStoreBeforeCmd( + clusterMetaKey, + fmt.Sprintf( + "scw k8s cluster create name=cli-test-%s version=%s cni=cilium pools.0.node-type=DEV1-M pools.0.size=1 pools.0.name=default pools.0.taints.0.key=foo pools.0.taints.0.value=bar pools.0.taints.0.effect=NoSchedule --wait=true", + t.Name(), + kapsuleVersion, + ), + ), + fetchPoolMetadata(clusterMetaKey, poolMetaKey, "default"), + ), + Cmd: "scw k8s pool remove-taint {{ ." + poolMetaKey + ".ID }} key=foo", + Check: core.TestCheckCombine( + core.TestCheckGolden(), + core.TestCheckExitCode(0), + ), + AfterFunc: deleteCluster(), + })) +} + +func Test_PoolSetStartupTaint(t *testing.T) { + t.Run("set-empty", core.Test(&core.TestConfig{ + Commands: k8s.GetCommands(), + BeforeFunc: core.BeforeFuncCombine( + core.ExecStoreBeforeCmd( + clusterMetaKey, + fmt.Sprintf( + "scw k8s cluster create name=cli-test-%s version=%s cni=cilium pools.0.node-type=DEV1-M pools.0.size=1 pools.0.name=default --wait=true", + t.Name(), + kapsuleVersion, + ), + ), + fetchPoolMetadata(clusterMetaKey, poolMetaKey, "default"), + ), + Cmd: "scw k8s pool set-startup-taint {{ ." + poolMetaKey + ".ID }} key=foo value=bar effect=NoSchedule", + Check: core.TestCheckCombine( + core.TestCheckGolden(), + core.TestCheckExitCode(0), + ), + AfterFunc: deleteCluster(), + })) +} + +func Test_PoolRemoveStartupTaint(t *testing.T) { + t.Run("remove-existing", core.Test(&core.TestConfig{ + Commands: k8s.GetCommands(), + BeforeFunc: core.BeforeFuncCombine( + core.ExecStoreBeforeCmd( + clusterMetaKey, + fmt.Sprintf( + "scw k8s cluster create name=cli-test-%s version=%s cni=cilium pools.0.node-type=DEV1-M pools.0.size=1 pools.0.name=default pools.0.taints.0.key=foo pools.0.taints.0.value=bar pools.0.taints.0.effect=NoSchedule --wait=true", + t.Name(), + kapsuleVersion, + ), + ), + fetchPoolMetadata(clusterMetaKey, poolMetaKey, "default"), + ), + Cmd: "scw k8s pool remove-startup-taint {{ ." + poolMetaKey + ".ID }} key=foo", + Check: core.TestCheckCombine( + core.TestCheckGolden(), + core.TestCheckExitCode(0), + ), + AfterFunc: deleteCluster(), + })) +} diff --git a/internal/namespaces/k8s/v1/helpers_test.go b/internal/namespaces/k8s/v1/helpers_test.go index 749c033b2d..c9037a6053 100644 --- a/internal/namespaces/k8s/v1/helpers_test.go +++ b/internal/namespaces/k8s/v1/helpers_test.go @@ -17,6 +17,7 @@ const ( kapsuleVersion = "1.32.3" clusterMetaKey = "Cluster" kubeconfigMetaKey = "Kubeconfig" + poolMetaKey = "DefaultPool" ) // @@ -44,6 +45,33 @@ func createCluster( ) } +// fetchPoolMetadata fetch pool data of previously created cluster. +// +//nolint:unparam +func fetchPoolMetadata(clusterMetaKey, poolMetaKey, poolName string) core.BeforeFunc { + return func(ctx *core.BeforeFuncCtx) error { + cluster := ctx.Meta[clusterMetaKey].(*k8s.Cluster) + + poolsList, err := k8s.NewAPI(ctx.Client). + ListPools(&k8s.ListPoolsRequest{ + Region: cluster.Region, + ClusterID: cluster.ID, + Name: &poolName, + }) + if err != nil { + return err + } + + if len(poolsList.Pools) != 1 { + return fmt.Errorf("expected 1 pool, got %d", len(poolsList.Pools)) + } + + ctx.Meta[poolMetaKey] = poolsList.Pools[0] + + return nil + } +} + // fetchClusterKubeconfigMetadata fetch kubeconfig of previously created cluster. func fetchClusterKubeconfigMetadata( redacted bool, diff --git a/internal/namespaces/k8s/v1/testdata/test-pool-remove-label-remove-existing.cassette.yaml b/internal/namespaces/k8s/v1/testdata/test-pool-remove-label-remove-existing.cassette.yaml new file mode 100644 index 0000000000..aef90d6231 --- /dev/null +++ b/internal/namespaces/k8s/v1/testdata/test-pool-remove-label-remove-existing.cassette.yaml @@ -0,0 +1,467 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 198 + host: api.scaleway.com + body: '{"name":"pn-eloquent-khorana","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","tags":["created-along-with-k8s-cluster","created-by-cli"],"subnets":null,"default_route_propagation_enabled":false}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/vpc/v2/regions/fr-par/private-networks + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1115 + body: '{"id":"af2014d7-fd86-43ab-84d4-f8fe67a39274","name":"pn-eloquent-khorana","tags":["created-along-with-k8s-cluster","created-by-cli"],"organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:00:09.298399Z","updated_at":"2026-03-06T16:00:09.298399Z","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","subnets":[{"id":"5a5e4073-b489-443e-8a0c-7838e635b3a1","created_at":"2026-03-06T16:00:09.298399Z","updated_at":"2026-03-06T16:00:09.298399Z","subnet":"172.17.104.0/22","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","private_network_id":"af2014d7-fd86-43ab-84d4-f8fe67a39274","vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20"},{"id":"65d24ee0-cdd9-4473-8e3b-e03545619c79","created_at":"2026-03-06T16:00:09.298399Z","updated_at":"2026-03-06T16:00:09.298399Z","subnet":"fd58:6b70:2d5a:2ebf::/64","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","private_network_id":"af2014d7-fd86-43ab-84d4-f8fe67a39274","vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20"}],"vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20","dhcp_enabled":true,"default_route_propagation_enabled":false,"region":"fr-par"}' + headers: + Content-Length: + - "1115" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:00:10 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 36b15cf2-dfaa-4fc0-81a4-fedcebd27c83 + status: 200 OK + code: 200 + duration: 1.402919528s + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 733 + host: api.scaleway.com + body: '{"project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","type":"","name":"cli-test-Test_PoolRemoveLabel","description":"","tags":null,"version":"1.32.3","cni":"cilium","pools":[{"name":"default","node_type":"DEV1-M","placement_group_id":null,"autoscaling":false,"size":1,"min_size":null,"max_size":null,"container_runtime":"unknown_runtime","autohealing":false,"tags":null,"kubelet_args":null,"upgrade_policy":null,"zone":"","root_volume_type":"default_volume_type","root_volume_size":null,"public_ip_disabled":false,"security_group_id":null,"labels":{"foo":"bar"},"taints":null,"startup_taints":null}],"feature_gates":null,"admission_plugins":null,"apiserver_cert_sans":null,"private_network_id":"af2014d7-fd86-43ab-84d4-f8fe67a39274"}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1492 + body: '{"region":"fr-par","id":"90b851a4-ff5f-4c27-b259-278eecf2cfd2","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:00:10.975260Z","updated_at":"2026-03-06T16:00:10.975260Z","type":"kapsule","name":"cli-test-Test_PoolRemoveLabel","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://90b851a4-ff5f-4c27-b259-278eecf2cfd2.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.90b851a4-ff5f-4c27-b259-278eecf2cfd2.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"af2014d7-fd86-43ab-84d4-f8fe67a39274","commitment_ends_at":"2026-03-06T16:00:10.975271Z","acl_available":true,"iam_nodes_group_id":"","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1492" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:00:11 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - bfba58f3-1e06-41dd-a896-a82655e9b949 + status: 200 OK + code: 200 + duration: 709.471235ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/90b851a4-ff5f-4c27-b259-278eecf2cfd2 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1492 + body: '{"region":"fr-par","id":"90b851a4-ff5f-4c27-b259-278eecf2cfd2","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:00:10.975260Z","updated_at":"2026-03-06T16:00:10.975260Z","type":"kapsule","name":"cli-test-Test_PoolRemoveLabel","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://90b851a4-ff5f-4c27-b259-278eecf2cfd2.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.90b851a4-ff5f-4c27-b259-278eecf2cfd2.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"af2014d7-fd86-43ab-84d4-f8fe67a39274","commitment_ends_at":"2026-03-06T16:00:10.975271Z","acl_available":true,"iam_nodes_group_id":"","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1492" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:00:11 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - f649250c-6335-4a2e-a82d-519522bff596 + status: 200 OK + code: 200 + duration: 50.111072ms + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/90b851a4-ff5f-4c27-b259-278eecf2cfd2 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"90b851a4-ff5f-4c27-b259-278eecf2cfd2","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:00:10.975260Z","updated_at":"2026-03-06T16:00:11.684892Z","type":"kapsule","name":"cli-test-Test_PoolRemoveLabel","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://90b851a4-ff5f-4c27-b259-278eecf2cfd2.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.90b851a4-ff5f-4c27-b259-278eecf2cfd2.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"af2014d7-fd86-43ab-84d4-f8fe67a39274","commitment_ends_at":"2026-03-06T16:00:10.975271Z","acl_available":true,"iam_nodes_group_id":"5e7bac5f-f491-4ce2-bf18-7d20df780a2e","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:00:26 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 05d28f85-c4f8-448a-8d7e-6ce97091825a + status: 200 OK + code: 200 + duration: 62.309715ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/90b851a4-ff5f-4c27-b259-278eecf2cfd2 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"90b851a4-ff5f-4c27-b259-278eecf2cfd2","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:00:10.975260Z","updated_at":"2026-03-06T16:00:11.684892Z","type":"kapsule","name":"cli-test-Test_PoolRemoveLabel","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://90b851a4-ff5f-4c27-b259-278eecf2cfd2.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.90b851a4-ff5f-4c27-b259-278eecf2cfd2.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"af2014d7-fd86-43ab-84d4-f8fe67a39274","commitment_ends_at":"2026-03-06T16:00:10.975271Z","acl_available":true,"iam_nodes_group_id":"5e7bac5f-f491-4ce2-bf18-7d20df780a2e","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:00:41 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 88aa8630-35ec-497b-8dd4-a4848ca98c95 + status: 200 OK + code: 200 + duration: 59.241097ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/90b851a4-ff5f-4c27-b259-278eecf2cfd2 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"90b851a4-ff5f-4c27-b259-278eecf2cfd2","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:00:10.975260Z","updated_at":"2026-03-06T16:00:11.684892Z","type":"kapsule","name":"cli-test-Test_PoolRemoveLabel","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://90b851a4-ff5f-4c27-b259-278eecf2cfd2.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.90b851a4-ff5f-4c27-b259-278eecf2cfd2.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"af2014d7-fd86-43ab-84d4-f8fe67a39274","commitment_ends_at":"2026-03-06T16:00:10.975271Z","acl_available":true,"iam_nodes_group_id":"5e7bac5f-f491-4ce2-bf18-7d20df780a2e","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:00:56 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 40b8e68a-0c26-4807-b9ae-61cf3d75632b + status: 200 OK + code: 200 + duration: 55.733769ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/90b851a4-ff5f-4c27-b259-278eecf2cfd2 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"90b851a4-ff5f-4c27-b259-278eecf2cfd2","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:00:10.975260Z","updated_at":"2026-03-06T16:00:11.684892Z","type":"kapsule","name":"cli-test-Test_PoolRemoveLabel","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://90b851a4-ff5f-4c27-b259-278eecf2cfd2.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.90b851a4-ff5f-4c27-b259-278eecf2cfd2.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"af2014d7-fd86-43ab-84d4-f8fe67a39274","commitment_ends_at":"2026-03-06T16:00:10.975271Z","acl_available":true,"iam_nodes_group_id":"5e7bac5f-f491-4ce2-bf18-7d20df780a2e","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:01:11 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - ab0edd1f-679e-4a24-9441-03f0fa8c614d + status: 200 OK + code: 200 + duration: 57.09928ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/90b851a4-ff5f-4c27-b259-278eecf2cfd2 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"90b851a4-ff5f-4c27-b259-278eecf2cfd2","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:00:10.975260Z","updated_at":"2026-03-06T16:00:11.684892Z","type":"kapsule","name":"cli-test-Test_PoolRemoveLabel","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://90b851a4-ff5f-4c27-b259-278eecf2cfd2.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.90b851a4-ff5f-4c27-b259-278eecf2cfd2.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"af2014d7-fd86-43ab-84d4-f8fe67a39274","commitment_ends_at":"2026-03-06T16:00:10.975271Z","acl_available":true,"iam_nodes_group_id":"5e7bac5f-f491-4ce2-bf18-7d20df780a2e","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:01:26 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - ec46b28b-79db-4961-b347-80169d90df0b + status: 200 OK + code: 200 + duration: 73.107364ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/90b851a4-ff5f-4c27-b259-278eecf2cfd2 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"90b851a4-ff5f-4c27-b259-278eecf2cfd2","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:00:10.975260Z","updated_at":"2026-03-06T16:01:41.485271Z","type":"kapsule","name":"cli-test-Test_PoolRemoveLabel","description":"","status":"ready","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://90b851a4-ff5f-4c27-b259-278eecf2cfd2.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.90b851a4-ff5f-4c27-b259-278eecf2cfd2.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"af2014d7-fd86-43ab-84d4-f8fe67a39274","commitment_ends_at":"2026-03-06T16:00:10.975271Z","acl_available":true,"iam_nodes_group_id":"5e7bac5f-f491-4ce2-bf18-7d20df780a2e","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:01:41 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 6ff396fb-1ea0-474b-b4ac-c603dabae721 + status: 200 OK + code: 200 + duration: 63.880077ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + form: + name: + - default + order_by: + - created_at_asc + status: + - unknown + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/90b851a4-ff5f-4c27-b259-278eecf2cfd2/pools?name=default&order_by=created_at_asc&status=unknown + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 726 + body: '{"total_count":1,"pools":[{"region":"fr-par","id":"22425829-6326-48e4-8b08-3154b85459cc","cluster_id":"90b851a4-ff5f-4c27-b259-278eecf2cfd2","created_at":"2026-03-06T16:00:10.671628Z","updated_at":"2026-03-06T16:00:10.671628Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{},"taints":[],"startup_taints":[]}]}' + headers: + Content-Length: + - "726" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:01:41 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 80f7f6a0-0ff8-4801-bab1-446fe28b4815 + status: 200 OK + code: 200 + duration: 53.459192ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/pools/22425829-6326-48e4-8b08-3154b85459cc + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 698 + body: '{"region":"fr-par","id":"22425829-6326-48e4-8b08-3154b85459cc","cluster_id":"90b851a4-ff5f-4c27-b259-278eecf2cfd2","created_at":"2026-03-06T16:00:10.671628Z","updated_at":"2026-03-06T16:00:10.671628Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{},"taints":[],"startup_taints":[]}' + headers: + Content-Length: + - "698" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:01:41 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - db6b16b1-7a75-4c98-9e06-91690b5edf4f + status: 200 OK + code: 200 + duration: 33.27751ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + form: + with_additional_resources: + - "true" + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/90b851a4-ff5f-4c27-b259-278eecf2cfd2?with_additional_resources=true + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"90b851a4-ff5f-4c27-b259-278eecf2cfd2","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:00:10.975260Z","updated_at":"2026-03-06T16:01:41.952813Z","type":"kapsule","name":"cli-test-Test_PoolRemoveLabel","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://90b851a4-ff5f-4c27-b259-278eecf2cfd2.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.90b851a4-ff5f-4c27-b259-278eecf2cfd2.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"af2014d7-fd86-43ab-84d4-f8fe67a39274","commitment_ends_at":"2026-03-06T16:00:10.975271Z","acl_available":true,"iam_nodes_group_id":"5e7bac5f-f491-4ce2-bf18-7d20df780a2e","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:01:42 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 1dc334f5-d710-4516-9480-4028d421f587 + status: 200 OK + code: 200 + duration: 155.326811ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/90b851a4-ff5f-4c27-b259-278eecf2cfd2 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"90b851a4-ff5f-4c27-b259-278eecf2cfd2","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:00:10.975260Z","updated_at":"2026-03-06T16:01:41.952813Z","type":"kapsule","name":"cli-test-Test_PoolRemoveLabel","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://90b851a4-ff5f-4c27-b259-278eecf2cfd2.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.90b851a4-ff5f-4c27-b259-278eecf2cfd2.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"af2014d7-fd86-43ab-84d4-f8fe67a39274","commitment_ends_at":"2026-03-06T16:00:10.975271Z","acl_available":true,"iam_nodes_group_id":"5e7bac5f-f491-4ce2-bf18-7d20df780a2e","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:01:42 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 210f173b-f36b-4bdf-a9bd-fba5fe09a02c + status: 200 OK + code: 200 + duration: 67.118347ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/90b851a4-ff5f-4c27-b259-278eecf2cfd2 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 128 + body: '{"message":"resource is not found","resource":"cluster","resource_id":"90b851a4-ff5f-4c27-b259-278eecf2cfd2","type":"not_found"}' + headers: + Content-Length: + - "128" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:01:57 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 10d9a593-5b0f-4493-a71b-4a904415d05d + status: 404 Not Found + code: 404 + duration: 34.642731ms diff --git a/internal/namespaces/k8s/v1/testdata/test-pool-remove-label-remove-existing.golden b/internal/namespaces/k8s/v1/testdata/test-pool-remove-label-remove-existing.golden new file mode 100644 index 0000000000..99fb12c21e --- /dev/null +++ b/internal/namespaces/k8s/v1/testdata/test-pool-remove-label-remove-existing.golden @@ -0,0 +1,68 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +🟩🟩🟩 STDOUT️ 🟩🟩🟩️ +ID 22425829-6326-48e4-8b08-3154b85459cc +ClusterID 90b851a4-ff5f-4c27-b259-278eecf2cfd2 +CreatedAt few seconds ago +UpdatedAt few seconds ago +Name default +Status scaling +Version 1.32.3 +NodeType dev1_m +Autoscaling false +Size 1 +MinSize 0 +MaxSize 1 +ContainerRuntime containerd +Autohealing false +Zone fr-par-1 +RootVolumeType l_ssd +RootVolumeSize 40 GB +PublicIPDisabled false +SecurityGroupID 8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957 +Region fr-par + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: + + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +🟩🟩🟩 JSON STDOUT 🟩🟩🟩 +{ + "id": "22425829-6326-48e4-8b08-3154b85459cc", + "cluster_id": "90b851a4-ff5f-4c27-b259-278eecf2cfd2", + "created_at": "1970-01-01T00:00:00.0Z", + "updated_at": "1970-01-01T00:00:00.0Z", + "name": "default", + "status": "scaling", + "version": "1.32.3", + "node_type": "dev1_m", + "autoscaling": false, + "size": 1, + "min_size": 0, + "max_size": 1, + "container_runtime": "containerd", + "autohealing": false, + "tags": [], + "placement_group_id": null, + "kubelet_args": {}, + "upgrade_policy": { + "max_unavailable": 1, + "max_surge": 0 + }, + "zone": "fr-par-1", + "root_volume_type": "l_ssd", + "root_volume_size": 40000000000, + "public_ip_disabled": false, + "security_group_id": "8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957", + "labels": {}, + "taints": [], + "startup_taints": [], + "region": "fr-par" +} diff --git a/internal/namespaces/k8s/v1/testdata/test-pool-remove-startup-taint-remove-existing.cassette.yaml b/internal/namespaces/k8s/v1/testdata/test-pool-remove-startup-taint-remove-existing.cassette.yaml new file mode 100644 index 0000000000..557e8cb019 --- /dev/null +++ b/internal/namespaces/k8s/v1/testdata/test-pool-remove-startup-taint-remove-existing.cassette.yaml @@ -0,0 +1,627 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 196 + host: api.scaleway.com + body: '{"name":"pn-pedantic-euler","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","tags":["created-along-with-k8s-cluster","created-by-cli"],"subnets":null,"default_route_propagation_enabled":false}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/vpc/v2/regions/fr-par/private-networks + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1111 + body: '{"id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","name":"pn-pedantic-euler","tags":["created-along-with-k8s-cluster","created-by-cli"],"organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:30.360469Z","updated_at":"2026-03-06T16:09:30.360469Z","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","subnets":[{"id":"ef3ddf8b-4b23-4588-8295-928570c35669","created_at":"2026-03-06T16:09:30.360469Z","updated_at":"2026-03-06T16:09:30.360469Z","subnet":"172.16.8.0/22","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20"},{"id":"cf5ceb11-0f41-4feb-b601-1c81b4ff20f0","created_at":"2026-03-06T16:09:30.360469Z","updated_at":"2026-03-06T16:09:30.360469Z","subnet":"fd58:6b70:2d5a:66f8::/64","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20"}],"vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20","dhcp_enabled":true,"default_route_propagation_enabled":false,"region":"fr-par"}' + headers: + Content-Length: + - "1111" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:09:30 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 95e3b62a-5815-47a9-8604-c9bdbfdfd1e0 + status: 200 OK + code: 200 + duration: 672.9986ms + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 778 + host: api.scaleway.com + body: '{"project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","type":"","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","tags":null,"version":"1.32.3","cni":"cilium","pools":[{"name":"default","node_type":"DEV1-M","placement_group_id":null,"autoscaling":false,"size":1,"min_size":null,"max_size":null,"container_runtime":"unknown_runtime","autohealing":false,"tags":null,"kubelet_args":null,"upgrade_policy":null,"zone":"","root_volume_type":"default_volume_type","root_volume_size":null,"public_ip_disabled":false,"security_group_id":null,"labels":null,"taints":[{"key":"foo","value":"bar","effect":"NoSchedule"}],"startup_taints":null}],"feature_gates":null,"admission_plugins":null,"apiserver_cert_sans":null,"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783"}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1499 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:09:31.317636Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1499" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:09:31 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - dd617d57-a865-41bd-8d2f-10ac6b4c539c + status: 200 OK + code: 200 + duration: 496.172237ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1499 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:09:31.317636Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1499" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:09:31 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 62f5ce2b-fcaf-4c24-9eac-8854f9dda0cb + status: 200 OK + code: 200 + duration: 100.640858ms + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1535 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:09:31.861919Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"75e9a681-6180-4869-89d6-b62ce7d50bf9","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1535" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:09:46 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - a49626e0-4eeb-4a9e-b002-56af8c75cf53 + status: 200 OK + code: 200 + duration: 47.280964ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1535 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:09:31.861919Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"75e9a681-6180-4869-89d6-b62ce7d50bf9","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1535" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:10:01 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - c86e07cb-eb93-4e3c-b876-474d9ecc1b01 + status: 200 OK + code: 200 + duration: 53.367819ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1535 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:09:31.861919Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"75e9a681-6180-4869-89d6-b62ce7d50bf9","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1535" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:10:16 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 0b9e387d-e9fa-44a0-9885-bdd06cef8a1c + status: 200 OK + code: 200 + duration: 50.084453ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1535 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:09:31.861919Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"75e9a681-6180-4869-89d6-b62ce7d50bf9","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1535" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:10:31 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - e225e98d-aa92-4099-8133-49b12ae8a050 + status: 200 OK + code: 200 + duration: 66.855542ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1535 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:09:31.861919Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"75e9a681-6180-4869-89d6-b62ce7d50bf9","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1535" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:10:46 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 8d392c04-795a-42e3-8597-cb11b9a4cb19 + status: 200 OK + code: 200 + duration: 57.745137ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1532 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:10:51.240324Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"ready","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"75e9a681-6180-4869-89d6-b62ce7d50bf9","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1532" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:11:01 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - dee69902-1469-4172-8473-0fcc3c391701 + status: 200 OK + code: 200 + duration: 51.086315ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + form: + name: + - default + order_by: + - created_at_asc + status: + - unknown + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d/pools?name=default&order_by=created_at_asc&status=unknown + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 726 + body: '{"total_count":1,"pools":[{"region":"fr-par","id":"bf3f4b4c-9cfe-4951-a84d-81efd2328888","cluster_id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","created_at":"2026-03-06T16:09:31.024297Z","updated_at":"2026-03-06T16:09:31.024297Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{},"taints":[],"startup_taints":[]}]}' + headers: + Content-Length: + - "726" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:11:01 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - edd41588-8ab7-4cc2-87ec-18fb410fed88 + status: 200 OK + code: 200 + duration: 37.729646ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/pools/bf3f4b4c-9cfe-4951-a84d-81efd2328888 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 698 + body: '{"region":"fr-par","id":"bf3f4b4c-9cfe-4951-a84d-81efd2328888","cluster_id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","created_at":"2026-03-06T16:09:31.024297Z","updated_at":"2026-03-06T16:09:31.024297Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{},"taints":[],"startup_taints":[]}' + headers: + Content-Length: + - "698" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:11:02 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - ec1b8334-839b-44e0-a834-57fb336b71f0 + status: 200 OK + code: 200 + duration: 98.16408ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + form: + with_additional_resources: + - "true" + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d?with_additional_resources=true + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1535 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:11:02.134152Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"75e9a681-6180-4869-89d6-b62ce7d50bf9","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1535" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:11:02 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 40b23637-7092-48c7-af3d-34c5ce16345f + status: 200 OK + code: 200 + duration: 118.040123ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1535 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:11:02.134152Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"75e9a681-6180-4869-89d6-b62ce7d50bf9","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1535" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:11:02 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 067912c9-1297-4191-a87a-3345524ac7f7 + status: 200 OK + code: 200 + duration: 40.537242ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1535 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:11:02.134152Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"75e9a681-6180-4869-89d6-b62ce7d50bf9","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1535" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:11:17 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 56c77d0f-75d1-44fa-b1d3-ad5a1cdf809e + status: 200 OK + code: 200 + duration: 49.136319ms + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1535 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:11:02.134152Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"75e9a681-6180-4869-89d6-b62ce7d50bf9","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1535" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:11:32 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 11290c22-d1eb-4b45-81e5-d5cb3f9ca5db + status: 200 OK + code: 200 + duration: 46.713208ms + - id: 15 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1535 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:11:02.134152Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"75e9a681-6180-4869-89d6-b62ce7d50bf9","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1535" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:11:47 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 4f1e515c-b2b9-4ef1-b372-673e87aea726 + status: 200 OK + code: 200 + duration: 63.981926ms + - id: 16 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1535 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:11:02.134152Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"75e9a681-6180-4869-89d6-b62ce7d50bf9","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1535" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:12:02 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 0397c4e8-e93a-4d6c-916d-f83b2fcfc344 + status: 200 OK + code: 200 + duration: 57.016155ms + - id: 17 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1535 + body: '{"region":"fr-par","id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:09:31.317636Z","updated_at":"2026-03-06T16:11:02.134152Z","type":"kapsule","name":"cli-test-Test_PoolRemoveStartupTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://87969f3d-ff4c-4477-839f-5e5af6b2999d.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.87969f3d-ff4c-4477-839f-5e5af6b2999d.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"cd743d35-89b1-4275-89e9-ced1ff1bb783","commitment_ends_at":"2026-03-06T16:09:31.317644Z","acl_available":true,"iam_nodes_group_id":"75e9a681-6180-4869-89d6-b62ce7d50bf9","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1535" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:12:17 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - c637c45a-fe72-4489-a54e-33da9a59b890 + status: 200 OK + code: 200 + duration: 61.542539ms + - id: 18 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/87969f3d-ff4c-4477-839f-5e5af6b2999d + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 128 + body: '{"message":"resource is not found","resource":"cluster","resource_id":"87969f3d-ff4c-4477-839f-5e5af6b2999d","type":"not_found"}' + headers: + Content-Length: + - "128" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:12:32 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - b645b8d0-36ad-41d0-a7da-1ff30c49b8da + status: 404 Not Found + code: 404 + duration: 30.389464ms diff --git a/internal/namespaces/k8s/v1/testdata/test-pool-remove-startup-taint-remove-existing.golden b/internal/namespaces/k8s/v1/testdata/test-pool-remove-startup-taint-remove-existing.golden new file mode 100644 index 0000000000..014032e6c9 --- /dev/null +++ b/internal/namespaces/k8s/v1/testdata/test-pool-remove-startup-taint-remove-existing.golden @@ -0,0 +1,68 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +🟩🟩🟩 STDOUT️ 🟩🟩🟩️ +ID bf3f4b4c-9cfe-4951-a84d-81efd2328888 +ClusterID 87969f3d-ff4c-4477-839f-5e5af6b2999d +CreatedAt few seconds ago +UpdatedAt few seconds ago +Name default +Status scaling +Version 1.32.3 +NodeType dev1_m +Autoscaling false +Size 1 +MinSize 0 +MaxSize 1 +ContainerRuntime containerd +Autohealing false +Zone fr-par-1 +RootVolumeType l_ssd +RootVolumeSize 40 GB +PublicIPDisabled false +SecurityGroupID 8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957 +Region fr-par + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: + + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +🟩🟩🟩 JSON STDOUT 🟩🟩🟩 +{ + "id": "bf3f4b4c-9cfe-4951-a84d-81efd2328888", + "cluster_id": "87969f3d-ff4c-4477-839f-5e5af6b2999d", + "created_at": "1970-01-01T00:00:00.0Z", + "updated_at": "1970-01-01T00:00:00.0Z", + "name": "default", + "status": "scaling", + "version": "1.32.3", + "node_type": "dev1_m", + "autoscaling": false, + "size": 1, + "min_size": 0, + "max_size": 1, + "container_runtime": "containerd", + "autohealing": false, + "tags": [], + "placement_group_id": null, + "kubelet_args": {}, + "upgrade_policy": { + "max_unavailable": 1, + "max_surge": 0 + }, + "zone": "fr-par-1", + "root_volume_type": "l_ssd", + "root_volume_size": 40000000000, + "public_ip_disabled": false, + "security_group_id": "8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957", + "labels": {}, + "taints": [], + "startup_taints": [], + "region": "fr-par" +} diff --git a/internal/namespaces/k8s/v1/testdata/test-pool-remove-taint-remove-existing.cassette.yaml b/internal/namespaces/k8s/v1/testdata/test-pool-remove-taint-remove-existing.cassette.yaml new file mode 100644 index 0000000000..c14b867b13 --- /dev/null +++ b/internal/namespaces/k8s/v1/testdata/test-pool-remove-taint-remove-existing.cassette.yaml @@ -0,0 +1,627 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 199 + host: api.scaleway.com + body: '{"name":"pn-vibrant-antonelli","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","tags":["created-along-with-k8s-cluster","created-by-cli"],"subnets":null,"default_route_propagation_enabled":false}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/vpc/v2/regions/fr-par/private-networks + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1114 + body: '{"id":"5608568e-5f92-4212-bf29-91cd37235e86","name":"pn-vibrant-antonelli","tags":["created-along-with-k8s-cluster","created-by-cli"],"organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.011538Z","updated_at":"2026-03-06T16:04:41.011538Z","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","subnets":[{"id":"c90b6202-41d5-472d-bf00-b1e797a33ced","created_at":"2026-03-06T16:04:41.011538Z","updated_at":"2026-03-06T16:04:41.011538Z","subnet":"172.17.0.0/22","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20"},{"id":"216f9e5d-ce81-40a4-8091-fca43222b42f","created_at":"2026-03-06T16:04:41.011538Z","updated_at":"2026-03-06T16:04:41.011538Z","subnet":"fd58:6b70:2d5a:2247::/64","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20"}],"vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20","dhcp_enabled":true,"default_route_propagation_enabled":false,"region":"fr-par"}' + headers: + Content-Length: + - "1114" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:04:41 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 94ce576d-c424-4785-9552-48c8abb65300 + status: 200 OK + code: 200 + duration: 763.037373ms + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 771 + host: api.scaleway.com + body: '{"project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","type":"","name":"cli-test-Test_PoolRemoveTaint","description":"","tags":null,"version":"1.32.3","cni":"cilium","pools":[{"name":"default","node_type":"DEV1-M","placement_group_id":null,"autoscaling":false,"size":1,"min_size":null,"max_size":null,"container_runtime":"unknown_runtime","autohealing":false,"tags":null,"kubelet_args":null,"upgrade_policy":null,"zone":"","root_volume_type":"default_volume_type","root_volume_size":null,"public_ip_disabled":false,"security_group_id":null,"labels":null,"taints":[{"key":"foo","value":"bar","effect":"NoSchedule"}],"startup_taints":null}],"feature_gates":null,"admission_plugins":null,"apiserver_cert_sans":null,"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86"}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1492 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:04:41.984140Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1492" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:04:42 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - e219e890-b4ef-4cd6-867e-e2e6c94592f3 + status: 200 OK + code: 200 + duration: 396.641884ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1492 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:04:41.984140Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1492" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:04:42 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 7d343a13-d5af-4cc6-a187-cd86613a8c5c + status: 200 OK + code: 200 + duration: 58.616393ms + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:04:42.597508Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"3cb18951-a7fb-4817-98f3-f96599ed1dd1","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:04:57 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - b41cff49-6d56-4b31-914e-f02c793bb8a4 + status: 200 OK + code: 200 + duration: 55.783449ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:04:42.597508Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"3cb18951-a7fb-4817-98f3-f96599ed1dd1","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:05:12 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 94669cfb-13b5-4695-8c88-4762c61bcea7 + status: 200 OK + code: 200 + duration: 51.795543ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:04:42.597508Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"3cb18951-a7fb-4817-98f3-f96599ed1dd1","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:05:27 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - e20a4ad0-1b7a-4cea-afb5-af505b9ea819 + status: 200 OK + code: 200 + duration: 61.065894ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:04:42.597508Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"3cb18951-a7fb-4817-98f3-f96599ed1dd1","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:05:42 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 8c09d162-9362-4446-b685-c58e6d77cc34 + status: 200 OK + code: 200 + duration: 58.203405ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:04:42.597508Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"3cb18951-a7fb-4817-98f3-f96599ed1dd1","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:05:57 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 3778f284-e114-4625-9ded-7cea9f322ad9 + status: 200 OK + code: 200 + duration: 56.749537ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:06:07.065482Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"ready","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"3cb18951-a7fb-4817-98f3-f96599ed1dd1","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:06:12 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 4be5e2f2-0d47-4414-81e8-c79a6f5249a2 + status: 200 OK + code: 200 + duration: 49.409264ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + form: + name: + - default + order_by: + - created_at_asc + status: + - unknown + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1/pools?name=default&order_by=created_at_asc&status=unknown + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 726 + body: '{"total_count":1,"pools":[{"region":"fr-par","id":"eba08915-3f68-40a4-bfcf-d3774fe7e637","cluster_id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","created_at":"2026-03-06T16:04:41.740038Z","updated_at":"2026-03-06T16:04:41.740038Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{},"taints":[],"startup_taints":[]}]}' + headers: + Content-Length: + - "726" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:06:12 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 6bff47e6-20a4-4893-b3a4-93fdb7a6bd46 + status: 200 OK + code: 200 + duration: 37.237359ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/pools/eba08915-3f68-40a4-bfcf-d3774fe7e637 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 698 + body: '{"region":"fr-par","id":"eba08915-3f68-40a4-bfcf-d3774fe7e637","cluster_id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","created_at":"2026-03-06T16:04:41.740038Z","updated_at":"2026-03-06T16:04:41.740038Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{},"taints":[],"startup_taints":[]}' + headers: + Content-Length: + - "698" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:06:12 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 79205a8e-b3f8-4c2c-a0a9-e77ecbbec174 + status: 200 OK + code: 200 + duration: 94.054434ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + form: + with_additional_resources: + - "true" + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1?with_additional_resources=true + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:06:12.703816Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"3cb18951-a7fb-4817-98f3-f96599ed1dd1","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:06:12 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 188f1aa7-bcdf-4ade-8d81-558194d7bc50 + status: 200 OK + code: 200 + duration: 95.525113ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:06:12.703816Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"3cb18951-a7fb-4817-98f3-f96599ed1dd1","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:06:12 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 398acfb7-ceaf-4a7b-a2ba-dbfc2cba811b + status: 200 OK + code: 200 + duration: 35.013225ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:06:12.703816Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"3cb18951-a7fb-4817-98f3-f96599ed1dd1","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:06:27 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - b92e30d9-b19a-4632-ac18-7a6f1f48dbaf + status: 200 OK + code: 200 + duration: 55.66621ms + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:06:12.703816Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"3cb18951-a7fb-4817-98f3-f96599ed1dd1","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:06:42 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - f1dae5aa-4761-4fcd-9737-322220643ee8 + status: 200 OK + code: 200 + duration: 65.446415ms + - id: 15 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:06:12.703816Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"3cb18951-a7fb-4817-98f3-f96599ed1dd1","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:06:58 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - c035638d-3acc-449c-a664-5a861de04352 + status: 200 OK + code: 200 + duration: 60.64454ms + - id: 16 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:06:12.703816Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"3cb18951-a7fb-4817-98f3-f96599ed1dd1","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:07:13 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - aee3b367-a92e-481d-9be3-bee33181b87c + status: 200 OK + code: 200 + duration: 63.807708ms + - id: 17 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1528 + body: '{"region":"fr-par","id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:04:41.984140Z","updated_at":"2026-03-06T16:06:12.703816Z","type":"kapsule","name":"cli-test-Test_PoolRemoveTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.705cb9e4-6208-4a2e-ae86-f01fb6ca97d1.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"5608568e-5f92-4212-bf29-91cd37235e86","commitment_ends_at":"2026-03-06T16:04:41.984152Z","acl_available":true,"iam_nodes_group_id":"3cb18951-a7fb-4817-98f3-f96599ed1dd1","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1528" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:07:28 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - f39afc1e-0fa2-4246-942d-1ce8e05178d8 + status: 200 OK + code: 200 + duration: 71.407703ms + - id: 18 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 128 + body: '{"message":"resource is not found","resource":"cluster","resource_id":"705cb9e4-6208-4a2e-ae86-f01fb6ca97d1","type":"not_found"}' + headers: + Content-Length: + - "128" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:07:43 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 04107ccb-0429-4042-8932-3cc8054fa615 + status: 404 Not Found + code: 404 + duration: 30.120629ms diff --git a/internal/namespaces/k8s/v1/testdata/test-pool-remove-taint-remove-existing.golden b/internal/namespaces/k8s/v1/testdata/test-pool-remove-taint-remove-existing.golden new file mode 100644 index 0000000000..253d139f43 --- /dev/null +++ b/internal/namespaces/k8s/v1/testdata/test-pool-remove-taint-remove-existing.golden @@ -0,0 +1,68 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +🟩🟩🟩 STDOUT️ 🟩🟩🟩️ +ID eba08915-3f68-40a4-bfcf-d3774fe7e637 +ClusterID 705cb9e4-6208-4a2e-ae86-f01fb6ca97d1 +CreatedAt few seconds ago +UpdatedAt few seconds ago +Name default +Status scaling +Version 1.32.3 +NodeType dev1_m +Autoscaling false +Size 1 +MinSize 0 +MaxSize 1 +ContainerRuntime containerd +Autohealing false +Zone fr-par-1 +RootVolumeType l_ssd +RootVolumeSize 40 GB +PublicIPDisabled false +SecurityGroupID 8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957 +Region fr-par + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: + + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +🟩🟩🟩 JSON STDOUT 🟩🟩🟩 +{ + "id": "eba08915-3f68-40a4-bfcf-d3774fe7e637", + "cluster_id": "705cb9e4-6208-4a2e-ae86-f01fb6ca97d1", + "created_at": "1970-01-01T00:00:00.0Z", + "updated_at": "1970-01-01T00:00:00.0Z", + "name": "default", + "status": "scaling", + "version": "1.32.3", + "node_type": "dev1_m", + "autoscaling": false, + "size": 1, + "min_size": 0, + "max_size": 1, + "container_runtime": "containerd", + "autohealing": false, + "tags": [], + "placement_group_id": null, + "kubelet_args": {}, + "upgrade_policy": { + "max_unavailable": 1, + "max_surge": 0 + }, + "zone": "fr-par-1", + "root_volume_type": "l_ssd", + "root_volume_size": 40000000000, + "public_ip_disabled": false, + "security_group_id": "8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957", + "labels": {}, + "taints": [], + "startup_taints": [], + "region": "fr-par" +} diff --git a/internal/namespaces/k8s/v1/testdata/test-pool-set-label-set-empty.cassette.yaml b/internal/namespaces/k8s/v1/testdata/test-pool-set-label-set-empty.cassette.yaml new file mode 100644 index 0000000000..d2be3c89d2 --- /dev/null +++ b/internal/namespaces/k8s/v1/testdata/test-pool-set-label-set-empty.cassette.yaml @@ -0,0 +1,502 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 194 + host: api.scaleway.com + body: '{"name":"pn-jovial-kilby","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","tags":["created-along-with-k8s-cluster","created-by-cli"],"subnets":null,"default_route_propagation_enabled":false}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/vpc/v2/regions/fr-par/private-networks + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1109 + body: '{"id":"24df869a-6164-473b-b415-03c9cc17e5da","name":"pn-jovial-kilby","tags":["created-along-with-k8s-cluster","created-by-cli"],"organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T15:58:21.793496Z","updated_at":"2026-03-06T15:58:21.793496Z","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","subnets":[{"id":"6ec6ec35-5c27-4ac6-bee0-031816718467","created_at":"2026-03-06T15:58:21.793496Z","updated_at":"2026-03-06T15:58:21.793496Z","subnet":"172.17.0.0/22","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","private_network_id":"24df869a-6164-473b-b415-03c9cc17e5da","vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20"},{"id":"ef5696ed-0324-42b2-a970-93785754e9aa","created_at":"2026-03-06T15:58:21.793496Z","updated_at":"2026-03-06T15:58:21.793496Z","subnet":"fd58:6b70:2d5a:2522::/64","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","private_network_id":"24df869a-6164-473b-b415-03c9cc17e5da","vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20"}],"vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20","dhcp_enabled":true,"default_route_propagation_enabled":false,"region":"fr-par"}' + headers: + Content-Length: + - "1109" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 15:58:22 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 750e862c-cbe0-4100-84d4-95fb169818a0 + status: 200 OK + code: 200 + duration: 877.158475ms + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 721 + host: api.scaleway.com + body: '{"project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","type":"","name":"cli-test-Test_PoolSetLabel","description":"","tags":null,"version":"1.32.3","cni":"cilium","pools":[{"name":"default","node_type":"DEV1-M","placement_group_id":null,"autoscaling":false,"size":1,"min_size":null,"max_size":null,"container_runtime":"unknown_runtime","autohealing":false,"tags":null,"kubelet_args":null,"upgrade_policy":null,"zone":"","root_volume_type":"default_volume_type","root_volume_size":null,"public_ip_disabled":false,"security_group_id":null,"labels":null,"taints":null,"startup_taints":null}],"feature_gates":null,"admission_plugins":null,"apiserver_cert_sans":null,"private_network_id":"24df869a-6164-473b-b415-03c9cc17e5da"}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1489 + body: '{"region":"fr-par","id":"a5d59b5c-37ad-48b4-8cad-9efd1bb35b62","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T15:58:22.852806Z","updated_at":"2026-03-06T15:58:22.852806Z","type":"kapsule","name":"cli-test-Test_PoolSetLabel","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"24df869a-6164-473b-b415-03c9cc17e5da","commitment_ends_at":"2026-03-06T15:58:22.852813Z","acl_available":true,"iam_nodes_group_id":"","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1489" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 15:58:22 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 846742eb-5c9b-4d7b-afb6-663edaae642e + status: 200 OK + code: 200 + duration: 534.894651ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a5d59b5c-37ad-48b4-8cad-9efd1bb35b62 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1489 + body: '{"region":"fr-par","id":"a5d59b5c-37ad-48b4-8cad-9efd1bb35b62","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T15:58:22.852806Z","updated_at":"2026-03-06T15:58:22.852806Z","type":"kapsule","name":"cli-test-Test_PoolSetLabel","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"24df869a-6164-473b-b415-03c9cc17e5da","commitment_ends_at":"2026-03-06T15:58:22.852813Z","acl_available":true,"iam_nodes_group_id":"","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1489" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 15:58:23 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 159bf27d-ed62-4586-8bc3-9bd6106f931b + status: 200 OK + code: 200 + duration: 54.172733ms + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a5d59b5c-37ad-48b4-8cad-9efd1bb35b62 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a5d59b5c-37ad-48b4-8cad-9efd1bb35b62","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T15:58:22.852806Z","updated_at":"2026-03-06T15:58:23.411692Z","type":"kapsule","name":"cli-test-Test_PoolSetLabel","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"24df869a-6164-473b-b415-03c9cc17e5da","commitment_ends_at":"2026-03-06T15:58:22.852813Z","acl_available":true,"iam_nodes_group_id":"c2b4f733-b588-4d2c-b062-7eb881f72ac8","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 15:58:38 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 5470c491-6be0-4d33-bcc8-4bc65088b7f2 + status: 200 OK + code: 200 + duration: 52.53044ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a5d59b5c-37ad-48b4-8cad-9efd1bb35b62 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a5d59b5c-37ad-48b4-8cad-9efd1bb35b62","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T15:58:22.852806Z","updated_at":"2026-03-06T15:58:23.411692Z","type":"kapsule","name":"cli-test-Test_PoolSetLabel","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"24df869a-6164-473b-b415-03c9cc17e5da","commitment_ends_at":"2026-03-06T15:58:22.852813Z","acl_available":true,"iam_nodes_group_id":"c2b4f733-b588-4d2c-b062-7eb881f72ac8","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 15:58:53 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 9c8a1005-ce97-46e9-bb39-95526cfecd28 + status: 200 OK + code: 200 + duration: 332.72621ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a5d59b5c-37ad-48b4-8cad-9efd1bb35b62 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a5d59b5c-37ad-48b4-8cad-9efd1bb35b62","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T15:58:22.852806Z","updated_at":"2026-03-06T15:58:23.411692Z","type":"kapsule","name":"cli-test-Test_PoolSetLabel","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"24df869a-6164-473b-b415-03c9cc17e5da","commitment_ends_at":"2026-03-06T15:58:22.852813Z","acl_available":true,"iam_nodes_group_id":"c2b4f733-b588-4d2c-b062-7eb881f72ac8","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 15:59:08 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 0a36f29d-20c8-4e18-889e-8294e2313aea + status: 200 OK + code: 200 + duration: 55.549687ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a5d59b5c-37ad-48b4-8cad-9efd1bb35b62 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a5d59b5c-37ad-48b4-8cad-9efd1bb35b62","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T15:58:22.852806Z","updated_at":"2026-03-06T15:58:23.411692Z","type":"kapsule","name":"cli-test-Test_PoolSetLabel","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"24df869a-6164-473b-b415-03c9cc17e5da","commitment_ends_at":"2026-03-06T15:58:22.852813Z","acl_available":true,"iam_nodes_group_id":"c2b4f733-b588-4d2c-b062-7eb881f72ac8","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 15:59:23 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 52aa2759-9cfc-4fdd-b8ab-c3219d04ae3f + status: 200 OK + code: 200 + duration: 53.490717ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a5d59b5c-37ad-48b4-8cad-9efd1bb35b62 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a5d59b5c-37ad-48b4-8cad-9efd1bb35b62","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T15:58:22.852806Z","updated_at":"2026-03-06T15:58:23.411692Z","type":"kapsule","name":"cli-test-Test_PoolSetLabel","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"24df869a-6164-473b-b415-03c9cc17e5da","commitment_ends_at":"2026-03-06T15:58:22.852813Z","acl_available":true,"iam_nodes_group_id":"c2b4f733-b588-4d2c-b062-7eb881f72ac8","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 15:59:38 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - d7261b05-6b87-4254-8e4c-2068b9f5d186 + status: 200 OK + code: 200 + duration: 73.055531ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a5d59b5c-37ad-48b4-8cad-9efd1bb35b62 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1522 + body: '{"region":"fr-par","id":"a5d59b5c-37ad-48b4-8cad-9efd1bb35b62","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T15:58:22.852806Z","updated_at":"2026-03-06T15:59:52.829942Z","type":"kapsule","name":"cli-test-Test_PoolSetLabel","description":"","status":"ready","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"24df869a-6164-473b-b415-03c9cc17e5da","commitment_ends_at":"2026-03-06T15:58:22.852813Z","acl_available":true,"iam_nodes_group_id":"c2b4f733-b588-4d2c-b062-7eb881f72ac8","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1522" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 15:59:53 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - e7afe613-9d06-466f-b7e3-006d6285b2dc + status: 200 OK + code: 200 + duration: 57.427508ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + form: + name: + - default + order_by: + - created_at_asc + status: + - unknown + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a5d59b5c-37ad-48b4-8cad-9efd1bb35b62/pools?name=default&order_by=created_at_asc&status=unknown + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 726 + body: '{"total_count":1,"pools":[{"region":"fr-par","id":"c84d9895-ee2a-49fa-8e23-cca455dfb0ef","cluster_id":"a5d59b5c-37ad-48b4-8cad-9efd1bb35b62","created_at":"2026-03-06T15:58:22.496883Z","updated_at":"2026-03-06T15:58:22.496883Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{},"taints":[],"startup_taints":[]}]}' + headers: + Content-Length: + - "726" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 15:59:53 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - c0754e7a-b025-41a0-ae64-298b384f1275 + status: 200 OK + code: 200 + duration: 33.555595ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/pools/c84d9895-ee2a-49fa-8e23-cca455dfb0ef + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 698 + body: '{"region":"fr-par","id":"c84d9895-ee2a-49fa-8e23-cca455dfb0ef","cluster_id":"a5d59b5c-37ad-48b4-8cad-9efd1bb35b62","created_at":"2026-03-06T15:58:22.496883Z","updated_at":"2026-03-06T15:58:22.496883Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{},"taints":[],"startup_taints":[]}' + headers: + Content-Length: + - "698" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 15:59:53 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 6c4c679b-7890-4bee-88a4-da913eaa8ce3 + status: 200 OK + code: 200 + duration: 101.98826ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 24 + host: api.scaleway.com + body: '{"labels":{"foo":"bar"}}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/pools/c84d9895-ee2a-49fa-8e23-cca455dfb0ef/set-labels + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 709 + body: '{"region":"fr-par","id":"c84d9895-ee2a-49fa-8e23-cca455dfb0ef","cluster_id":"a5d59b5c-37ad-48b4-8cad-9efd1bb35b62","created_at":"2026-03-06T15:58:22.496883Z","updated_at":"2026-03-06T15:59:53.966395Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{"foo":"bar"},"taints":[],"startup_taints":[]}' + headers: + Content-Length: + - "709" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 15:59:53 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - f047b2b9-81ad-4250-9f3b-64628e2f62ca + status: 200 OK + code: 200 + duration: 128.952057ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + form: + with_additional_resources: + - "true" + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a5d59b5c-37ad-48b4-8cad-9efd1bb35b62?with_additional_resources=true + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a5d59b5c-37ad-48b4-8cad-9efd1bb35b62","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T15:58:22.852806Z","updated_at":"2026-03-06T15:59:54.042681Z","type":"kapsule","name":"cli-test-Test_PoolSetLabel","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"24df869a-6164-473b-b415-03c9cc17e5da","commitment_ends_at":"2026-03-06T15:58:22.852813Z","acl_available":true,"iam_nodes_group_id":"c2b4f733-b588-4d2c-b062-7eb881f72ac8","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 15:59:54 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - b873f6ac-b206-4284-ae74-659d7bd9bc3b + status: 200 OK + code: 200 + duration: 116.292222ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a5d59b5c-37ad-48b4-8cad-9efd1bb35b62 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a5d59b5c-37ad-48b4-8cad-9efd1bb35b62","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T15:58:22.852806Z","updated_at":"2026-03-06T15:59:54.042681Z","type":"kapsule","name":"cli-test-Test_PoolSetLabel","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a5d59b5c-37ad-48b4-8cad-9efd1bb35b62.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"24df869a-6164-473b-b415-03c9cc17e5da","commitment_ends_at":"2026-03-06T15:58:22.852813Z","acl_available":true,"iam_nodes_group_id":"c2b4f733-b588-4d2c-b062-7eb881f72ac8","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 15:59:54 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 71119d37-ba06-4e9f-8b73-460119dd10d4 + status: 200 OK + code: 200 + duration: 47.623029ms + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a5d59b5c-37ad-48b4-8cad-9efd1bb35b62 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 128 + body: '{"message":"resource is not found","resource":"cluster","resource_id":"a5d59b5c-37ad-48b4-8cad-9efd1bb35b62","type":"not_found"}' + headers: + Content-Length: + - "128" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:00:09 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 8c5a3ed2-0904-4088-95a3-01f7ddc21eac + status: 404 Not Found + code: 404 + duration: 36.940993ms diff --git a/internal/namespaces/k8s/v1/testdata/test-pool-set-label-set-empty.golden b/internal/namespaces/k8s/v1/testdata/test-pool-set-label-set-empty.golden new file mode 100644 index 0000000000..63ef413df5 --- /dev/null +++ b/internal/namespaces/k8s/v1/testdata/test-pool-set-label-set-empty.golden @@ -0,0 +1,70 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +🟩🟩🟩 STDOUT️ 🟩🟩🟩️ +ID c84d9895-ee2a-49fa-8e23-cca455dfb0ef +ClusterID a5d59b5c-37ad-48b4-8cad-9efd1bb35b62 +CreatedAt few seconds ago +UpdatedAt few seconds ago +Name default +Status scaling +Version 1.32.3 +NodeType dev1_m +Autoscaling false +Size 1 +MinSize 0 +MaxSize 1 +ContainerRuntime containerd +Autohealing false +Zone fr-par-1 +RootVolumeType l_ssd +RootVolumeSize 40 GB +PublicIPDisabled false +SecurityGroupID 8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957 +Region fr-par + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: +foo bar + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +🟩🟩🟩 JSON STDOUT 🟩🟩🟩 +{ + "id": "c84d9895-ee2a-49fa-8e23-cca455dfb0ef", + "cluster_id": "a5d59b5c-37ad-48b4-8cad-9efd1bb35b62", + "created_at": "1970-01-01T00:00:00.0Z", + "updated_at": "1970-01-01T00:00:00.0Z", + "name": "default", + "status": "scaling", + "version": "1.32.3", + "node_type": "dev1_m", + "autoscaling": false, + "size": 1, + "min_size": 0, + "max_size": 1, + "container_runtime": "containerd", + "autohealing": false, + "tags": [], + "placement_group_id": null, + "kubelet_args": {}, + "upgrade_policy": { + "max_unavailable": 1, + "max_surge": 0 + }, + "zone": "fr-par-1", + "root_volume_type": "l_ssd", + "root_volume_size": 40000000000, + "public_ip_disabled": false, + "security_group_id": "8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957", + "labels": { + "foo": "bar" + }, + "taints": [], + "startup_taints": [], + "region": "fr-par" +} diff --git a/internal/namespaces/k8s/v1/testdata/test-pool-set-startup-taint-set-empty.cassette.yaml b/internal/namespaces/k8s/v1/testdata/test-pool-set-startup-taint-set-empty.cassette.yaml new file mode 100644 index 0000000000..ecdbd6d48b --- /dev/null +++ b/internal/namespaces/k8s/v1/testdata/test-pool-set-startup-taint-set-empty.cassette.yaml @@ -0,0 +1,502 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 196 + host: api.scaleway.com + body: '{"name":"pn-silly-jennings","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","tags":["created-along-with-k8s-cluster","created-by-cli"],"subnets":null,"default_route_propagation_enabled":false}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/vpc/v2/regions/fr-par/private-networks + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1111 + body: '{"id":"9de62e93-fee5-4f60-82d3-628dc2179681","name":"pn-silly-jennings","tags":["created-along-with-k8s-cluster","created-by-cli"],"organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:07:43.285407Z","updated_at":"2026-03-06T16:07:43.285407Z","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","subnets":[{"id":"4d5cf0a5-b1fc-4ae2-8400-0c5f1cc76a0b","created_at":"2026-03-06T16:07:43.285407Z","updated_at":"2026-03-06T16:07:43.285407Z","subnet":"172.16.8.0/22","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","private_network_id":"9de62e93-fee5-4f60-82d3-628dc2179681","vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20"},{"id":"d2d2a8ba-512e-4554-8893-a76a85b0598b","created_at":"2026-03-06T16:07:43.285407Z","updated_at":"2026-03-06T16:07:43.285407Z","subnet":"fd58:6b70:2d5a:1088::/64","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","private_network_id":"9de62e93-fee5-4f60-82d3-628dc2179681","vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20"}],"vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20","dhcp_enabled":true,"default_route_propagation_enabled":false,"region":"fr-par"}' + headers: + Content-Length: + - "1111" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:07:43 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - d4b43bd4-c590-4b95-8499-91bdf404bf94 + status: 200 OK + code: 200 + duration: 645.181196ms + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 728 + host: api.scaleway.com + body: '{"project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","type":"","name":"cli-test-Test_PoolSetStartupTaint","description":"","tags":null,"version":"1.32.3","cni":"cilium","pools":[{"name":"default","node_type":"DEV1-M","placement_group_id":null,"autoscaling":false,"size":1,"min_size":null,"max_size":null,"container_runtime":"unknown_runtime","autohealing":false,"tags":null,"kubelet_args":null,"upgrade_policy":null,"zone":"","root_volume_type":"default_volume_type","root_volume_size":null,"public_ip_disabled":false,"security_group_id":null,"labels":null,"taints":null,"startup_taints":null}],"feature_gates":null,"admission_plugins":null,"apiserver_cert_sans":null,"private_network_id":"9de62e93-fee5-4f60-82d3-628dc2179681"}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1496 + body: '{"region":"fr-par","id":"fbba131d-05b2-4b5e-b180-c6a8698f6133","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:07:44.294782Z","updated_at":"2026-03-06T16:07:44.294782Z","type":"kapsule","name":"cli-test-Test_PoolSetStartupTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://fbba131d-05b2-4b5e-b180-c6a8698f6133.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.fbba131d-05b2-4b5e-b180-c6a8698f6133.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"9de62e93-fee5-4f60-82d3-628dc2179681","commitment_ends_at":"2026-03-06T16:07:44.294791Z","acl_available":true,"iam_nodes_group_id":"","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1496" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:07:44 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 6a4ed3f9-b484-4430-8eb1-076797b4bb06 + status: 200 OK + code: 200 + duration: 540.503602ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/fbba131d-05b2-4b5e-b180-c6a8698f6133 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1496 + body: '{"region":"fr-par","id":"fbba131d-05b2-4b5e-b180-c6a8698f6133","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:07:44.294782Z","updated_at":"2026-03-06T16:07:44.294782Z","type":"kapsule","name":"cli-test-Test_PoolSetStartupTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://fbba131d-05b2-4b5e-b180-c6a8698f6133.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.fbba131d-05b2-4b5e-b180-c6a8698f6133.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"9de62e93-fee5-4f60-82d3-628dc2179681","commitment_ends_at":"2026-03-06T16:07:44.294791Z","acl_available":true,"iam_nodes_group_id":"","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1496" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:07:44 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 6138847e-e826-4231-a1cd-88c0b53d850d + status: 200 OK + code: 200 + duration: 78.16777ms + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/fbba131d-05b2-4b5e-b180-c6a8698f6133 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1532 + body: '{"region":"fr-par","id":"fbba131d-05b2-4b5e-b180-c6a8698f6133","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:07:44.294782Z","updated_at":"2026-03-06T16:07:44.828515Z","type":"kapsule","name":"cli-test-Test_PoolSetStartupTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://fbba131d-05b2-4b5e-b180-c6a8698f6133.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.fbba131d-05b2-4b5e-b180-c6a8698f6133.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"9de62e93-fee5-4f60-82d3-628dc2179681","commitment_ends_at":"2026-03-06T16:07:44.294791Z","acl_available":true,"iam_nodes_group_id":"53861e7e-a27a-4084-9e6f-e844770581ab","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1532" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:07:59 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 3f45b78a-f255-41dd-be93-158743427e4b + status: 200 OK + code: 200 + duration: 63.238693ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/fbba131d-05b2-4b5e-b180-c6a8698f6133 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1532 + body: '{"region":"fr-par","id":"fbba131d-05b2-4b5e-b180-c6a8698f6133","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:07:44.294782Z","updated_at":"2026-03-06T16:07:44.828515Z","type":"kapsule","name":"cli-test-Test_PoolSetStartupTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://fbba131d-05b2-4b5e-b180-c6a8698f6133.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.fbba131d-05b2-4b5e-b180-c6a8698f6133.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"9de62e93-fee5-4f60-82d3-628dc2179681","commitment_ends_at":"2026-03-06T16:07:44.294791Z","acl_available":true,"iam_nodes_group_id":"53861e7e-a27a-4084-9e6f-e844770581ab","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1532" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:08:14 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 5a17d8d2-b83d-47df-b97f-44d35430cafd + status: 200 OK + code: 200 + duration: 52.713601ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/fbba131d-05b2-4b5e-b180-c6a8698f6133 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1532 + body: '{"region":"fr-par","id":"fbba131d-05b2-4b5e-b180-c6a8698f6133","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:07:44.294782Z","updated_at":"2026-03-06T16:07:44.828515Z","type":"kapsule","name":"cli-test-Test_PoolSetStartupTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://fbba131d-05b2-4b5e-b180-c6a8698f6133.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.fbba131d-05b2-4b5e-b180-c6a8698f6133.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"9de62e93-fee5-4f60-82d3-628dc2179681","commitment_ends_at":"2026-03-06T16:07:44.294791Z","acl_available":true,"iam_nodes_group_id":"53861e7e-a27a-4084-9e6f-e844770581ab","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1532" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:08:29 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 4e60fb0c-48eb-42c5-8390-b77e9f241b7c + status: 200 OK + code: 200 + duration: 60.664569ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/fbba131d-05b2-4b5e-b180-c6a8698f6133 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1532 + body: '{"region":"fr-par","id":"fbba131d-05b2-4b5e-b180-c6a8698f6133","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:07:44.294782Z","updated_at":"2026-03-06T16:07:44.828515Z","type":"kapsule","name":"cli-test-Test_PoolSetStartupTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://fbba131d-05b2-4b5e-b180-c6a8698f6133.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.fbba131d-05b2-4b5e-b180-c6a8698f6133.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"9de62e93-fee5-4f60-82d3-628dc2179681","commitment_ends_at":"2026-03-06T16:07:44.294791Z","acl_available":true,"iam_nodes_group_id":"53861e7e-a27a-4084-9e6f-e844770581ab","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1532" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:08:44 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 28972149-1e92-4020-a473-03777172b446 + status: 200 OK + code: 200 + duration: 57.361366ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/fbba131d-05b2-4b5e-b180-c6a8698f6133 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1532 + body: '{"region":"fr-par","id":"fbba131d-05b2-4b5e-b180-c6a8698f6133","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:07:44.294782Z","updated_at":"2026-03-06T16:07:44.828515Z","type":"kapsule","name":"cli-test-Test_PoolSetStartupTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://fbba131d-05b2-4b5e-b180-c6a8698f6133.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.fbba131d-05b2-4b5e-b180-c6a8698f6133.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"9de62e93-fee5-4f60-82d3-628dc2179681","commitment_ends_at":"2026-03-06T16:07:44.294791Z","acl_available":true,"iam_nodes_group_id":"53861e7e-a27a-4084-9e6f-e844770581ab","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1532" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:08:59 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - a779cafc-06d4-4c3d-81ce-4c6f431d7f13 + status: 200 OK + code: 200 + duration: 59.121563ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/fbba131d-05b2-4b5e-b180-c6a8698f6133 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1529 + body: '{"region":"fr-par","id":"fbba131d-05b2-4b5e-b180-c6a8698f6133","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:07:44.294782Z","updated_at":"2026-03-06T16:09:14.766212Z","type":"kapsule","name":"cli-test-Test_PoolSetStartupTaint","description":"","status":"ready","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://fbba131d-05b2-4b5e-b180-c6a8698f6133.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.fbba131d-05b2-4b5e-b180-c6a8698f6133.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"9de62e93-fee5-4f60-82d3-628dc2179681","commitment_ends_at":"2026-03-06T16:07:44.294791Z","acl_available":true,"iam_nodes_group_id":"53861e7e-a27a-4084-9e6f-e844770581ab","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1529" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:09:14 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - accbd2b5-fdf2-4fae-b63d-662740754d80 + status: 200 OK + code: 200 + duration: 48.595428ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + form: + name: + - default + order_by: + - created_at_asc + status: + - unknown + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/fbba131d-05b2-4b5e-b180-c6a8698f6133/pools?name=default&order_by=created_at_asc&status=unknown + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 726 + body: '{"total_count":1,"pools":[{"region":"fr-par","id":"71701d87-07d3-46f1-884b-af78eaff3d75","cluster_id":"fbba131d-05b2-4b5e-b180-c6a8698f6133","created_at":"2026-03-06T16:07:43.930866Z","updated_at":"2026-03-06T16:07:43.930866Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{},"taints":[],"startup_taints":[]}]}' + headers: + Content-Length: + - "726" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:09:14 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - a7d38086-f225-44d1-874c-6a5a6ac5be11 + status: 200 OK + code: 200 + duration: 40.481282ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/pools/71701d87-07d3-46f1-884b-af78eaff3d75 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 698 + body: '{"region":"fr-par","id":"71701d87-07d3-46f1-884b-af78eaff3d75","cluster_id":"fbba131d-05b2-4b5e-b180-c6a8698f6133","created_at":"2026-03-06T16:07:43.930866Z","updated_at":"2026-03-06T16:07:43.930866Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{},"taints":[],"startup_taints":[]}' + headers: + Content-Length: + - "698" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:09:14 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 9ea635d3-17d1-4818-b344-5c6959359879 + status: 200 OK + code: 200 + duration: 33.873283ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 70 + host: api.scaleway.com + body: '{"startup_taints":[{"key":"foo","value":"bar","effect":"NoSchedule"}]}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/pools/71701d87-07d3-46f1-884b-af78eaff3d75/set-startup-taints + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 747 + body: '{"region":"fr-par","id":"71701d87-07d3-46f1-884b-af78eaff3d75","cluster_id":"fbba131d-05b2-4b5e-b180-c6a8698f6133","created_at":"2026-03-06T16:07:43.930866Z","updated_at":"2026-03-06T16:09:15.028805Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{},"taints":[],"startup_taints":[{"key":"foo","value":"bar","effect":"NoSchedule"}]}' + headers: + Content-Length: + - "747" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:09:15 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 214138b4-5b5e-4663-940b-384c2cbbb4fc + status: 200 OK + code: 200 + duration: 69.326842ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + form: + with_additional_resources: + - "true" + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/fbba131d-05b2-4b5e-b180-c6a8698f6133?with_additional_resources=true + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1532 + body: '{"region":"fr-par","id":"fbba131d-05b2-4b5e-b180-c6a8698f6133","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:07:44.294782Z","updated_at":"2026-03-06T16:09:15.113478Z","type":"kapsule","name":"cli-test-Test_PoolSetStartupTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://fbba131d-05b2-4b5e-b180-c6a8698f6133.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.fbba131d-05b2-4b5e-b180-c6a8698f6133.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"9de62e93-fee5-4f60-82d3-628dc2179681","commitment_ends_at":"2026-03-06T16:07:44.294791Z","acl_available":true,"iam_nodes_group_id":"53861e7e-a27a-4084-9e6f-e844770581ab","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1532" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:09:15 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - d13da298-2039-4508-b2f4-4f66f96d846c + status: 200 OK + code: 200 + duration: 138.981433ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/fbba131d-05b2-4b5e-b180-c6a8698f6133 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1532 + body: '{"region":"fr-par","id":"fbba131d-05b2-4b5e-b180-c6a8698f6133","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:07:44.294782Z","updated_at":"2026-03-06T16:09:15.113478Z","type":"kapsule","name":"cli-test-Test_PoolSetStartupTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://fbba131d-05b2-4b5e-b180-c6a8698f6133.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.fbba131d-05b2-4b5e-b180-c6a8698f6133.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"9de62e93-fee5-4f60-82d3-628dc2179681","commitment_ends_at":"2026-03-06T16:07:44.294791Z","acl_available":true,"iam_nodes_group_id":"53861e7e-a27a-4084-9e6f-e844770581ab","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1532" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:09:15 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 35116350-70bc-4462-8ab4-c4f93a4eb8d1 + status: 200 OK + code: 200 + duration: 40.363008ms + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/fbba131d-05b2-4b5e-b180-c6a8698f6133 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 128 + body: '{"message":"resource is not found","resource":"cluster","resource_id":"fbba131d-05b2-4b5e-b180-c6a8698f6133","type":"not_found"}' + headers: + Content-Length: + - "128" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:09:30 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 43e28a45-c4fb-4480-a013-9029a5f6cf87 + status: 404 Not Found + code: 404 + duration: 32.203857ms diff --git a/internal/namespaces/k8s/v1/testdata/test-pool-set-startup-taint-set-empty.golden b/internal/namespaces/k8s/v1/testdata/test-pool-set-startup-taint-set-empty.golden new file mode 100644 index 0000000000..2413b65ba1 --- /dev/null +++ b/internal/namespaces/k8s/v1/testdata/test-pool-set-startup-taint-set-empty.golden @@ -0,0 +1,75 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +🟩🟩🟩 STDOUT️ 🟩🟩🟩️ +ID 71701d87-07d3-46f1-884b-af78eaff3d75 +ClusterID fbba131d-05b2-4b5e-b180-c6a8698f6133 +CreatedAt few seconds ago +UpdatedAt few seconds ago +Name default +Status scaling +Version 1.32.3 +NodeType dev1_m +Autoscaling false +Size 1 +MinSize 0 +MaxSize 1 +ContainerRuntime containerd +Autohealing false +Zone fr-par-1 +RootVolumeType l_ssd +RootVolumeSize 40 GB +PublicIPDisabled false +SecurityGroupID 8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957 +Region fr-par + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: + + +Node taints: +KEY VALUE EFFECT + +Node startup taints: +KEY VALUE EFFECT +foo bar NoSchedule +🟩🟩🟩 JSON STDOUT 🟩🟩🟩 +{ + "id": "71701d87-07d3-46f1-884b-af78eaff3d75", + "cluster_id": "fbba131d-05b2-4b5e-b180-c6a8698f6133", + "created_at": "1970-01-01T00:00:00.0Z", + "updated_at": "1970-01-01T00:00:00.0Z", + "name": "default", + "status": "scaling", + "version": "1.32.3", + "node_type": "dev1_m", + "autoscaling": false, + "size": 1, + "min_size": 0, + "max_size": 1, + "container_runtime": "containerd", + "autohealing": false, + "tags": [], + "placement_group_id": null, + "kubelet_args": {}, + "upgrade_policy": { + "max_unavailable": 1, + "max_surge": 0 + }, + "zone": "fr-par-1", + "root_volume_type": "l_ssd", + "root_volume_size": 40000000000, + "public_ip_disabled": false, + "security_group_id": "8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957", + "labels": {}, + "taints": [], + "startup_taints": [ + { + "key": "foo", + "value": "bar", + "effect": "NoSchedule" + } + ], + "region": "fr-par" +} diff --git a/internal/namespaces/k8s/v1/testdata/test-pool-set-taint-set-empty.cassette.yaml b/internal/namespaces/k8s/v1/testdata/test-pool-set-taint-set-empty.cassette.yaml new file mode 100644 index 0000000000..2e5ab36ec2 --- /dev/null +++ b/internal/namespaces/k8s/v1/testdata/test-pool-set-taint-set-empty.cassette.yaml @@ -0,0 +1,566 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 195 + host: api.scaleway.com + body: '{"name":"pn-fervent-brown","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","tags":["created-along-with-k8s-cluster","created-by-cli"],"subnets":null,"default_route_propagation_enabled":false}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/vpc/v2/regions/fr-par/private-networks + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1112 + body: '{"id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","name":"pn-fervent-brown","tags":["created-along-with-k8s-cluster","created-by-cli"],"organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:02:23.275051Z","updated_at":"2026-03-06T16:02:23.275051Z","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","subnets":[{"id":"4450297e-0661-4e22-9c86-b091e5300e38","created_at":"2026-03-06T16:02:23.275051Z","updated_at":"2026-03-06T16:02:23.275051Z","subnet":"172.17.108.0/22","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20"},{"id":"5d5b6046-1e78-41e6-84a6-75127ab6c6d9","created_at":"2026-03-06T16:02:23.275051Z","updated_at":"2026-03-06T16:02:23.275051Z","subnet":"fd58:6b70:2d5a:cd24::/64","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20"}],"vpc_id":"b730047a-278a-4bbf-8092-ac2ae2bbef20","dhcp_enabled":true,"default_route_propagation_enabled":false,"region":"fr-par"}' + headers: + Content-Length: + - "1112" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:02:24 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 74104c76-46e7-4294-971e-931d831e4a77 + status: 200 OK + code: 200 + duration: 1.042857061s + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 721 + host: api.scaleway.com + body: '{"project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","type":"","name":"cli-test-Test_PoolSetTaint","description":"","tags":null,"version":"1.32.3","cni":"cilium","pools":[{"name":"default","node_type":"DEV1-M","placement_group_id":null,"autoscaling":false,"size":1,"min_size":null,"max_size":null,"container_runtime":"unknown_runtime","autohealing":false,"tags":null,"kubelet_args":null,"upgrade_policy":null,"zone":"","root_volume_type":"default_volume_type","root_volume_size":null,"public_ip_disabled":false,"security_group_id":null,"labels":null,"taints":null,"startup_taints":null}],"feature_gates":null,"admission_plugins":null,"apiserver_cert_sans":null,"private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca"}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1489 + body: '{"region":"fr-par","id":"a859d428-2d35-425e-91c0-7001ccf03126","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:02:24.548018Z","updated_at":"2026-03-06T16:02:24.548019Z","type":"kapsule","name":"cli-test-Test_PoolSetTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a859d428-2d35-425e-91c0-7001ccf03126.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a859d428-2d35-425e-91c0-7001ccf03126.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","commitment_ends_at":"2026-03-06T16:02:24.548031Z","acl_available":true,"iam_nodes_group_id":"","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1489" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:02:24 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 8051e1f2-0da8-4ada-b4fd-4932d3eb356e + status: 200 OK + code: 200 + duration: 702.366583ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a859d428-2d35-425e-91c0-7001ccf03126 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1489 + body: '{"region":"fr-par","id":"a859d428-2d35-425e-91c0-7001ccf03126","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:02:24.548018Z","updated_at":"2026-03-06T16:02:24.548019Z","type":"kapsule","name":"cli-test-Test_PoolSetTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a859d428-2d35-425e-91c0-7001ccf03126.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a859d428-2d35-425e-91c0-7001ccf03126.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","commitment_ends_at":"2026-03-06T16:02:24.548031Z","acl_available":true,"iam_nodes_group_id":"","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1489" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:02:24 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - afcccc0c-a93c-4ef6-852e-e2d0c53aa2f0 + status: 200 OK + code: 200 + duration: 61.234989ms + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a859d428-2d35-425e-91c0-7001ccf03126 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a859d428-2d35-425e-91c0-7001ccf03126","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:02:24.548018Z","updated_at":"2026-03-06T16:02:25.201375Z","type":"kapsule","name":"cli-test-Test_PoolSetTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a859d428-2d35-425e-91c0-7001ccf03126.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a859d428-2d35-425e-91c0-7001ccf03126.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","commitment_ends_at":"2026-03-06T16:02:24.548031Z","acl_available":true,"iam_nodes_group_id":"f4a31da6-c6a2-4295-a528-07096c789cc3","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:02:39 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - c9831e15-7eda-43b5-9aac-710c915ab6cd + status: 200 OK + code: 200 + duration: 52.050972ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a859d428-2d35-425e-91c0-7001ccf03126 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a859d428-2d35-425e-91c0-7001ccf03126","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:02:24.548018Z","updated_at":"2026-03-06T16:02:25.201375Z","type":"kapsule","name":"cli-test-Test_PoolSetTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a859d428-2d35-425e-91c0-7001ccf03126.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a859d428-2d35-425e-91c0-7001ccf03126.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","commitment_ends_at":"2026-03-06T16:02:24.548031Z","acl_available":true,"iam_nodes_group_id":"f4a31da6-c6a2-4295-a528-07096c789cc3","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:02:54 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - a4699a4a-fdd6-4239-81c6-2a555a3fbe31 + status: 200 OK + code: 200 + duration: 66.514318ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a859d428-2d35-425e-91c0-7001ccf03126 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a859d428-2d35-425e-91c0-7001ccf03126","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:02:24.548018Z","updated_at":"2026-03-06T16:02:25.201375Z","type":"kapsule","name":"cli-test-Test_PoolSetTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a859d428-2d35-425e-91c0-7001ccf03126.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a859d428-2d35-425e-91c0-7001ccf03126.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","commitment_ends_at":"2026-03-06T16:02:24.548031Z","acl_available":true,"iam_nodes_group_id":"f4a31da6-c6a2-4295-a528-07096c789cc3","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:03:10 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 678cf77f-d1f5-4e81-b144-1f4e109cb313 + status: 200 OK + code: 200 + duration: 107.566965ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a859d428-2d35-425e-91c0-7001ccf03126 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a859d428-2d35-425e-91c0-7001ccf03126","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:02:24.548018Z","updated_at":"2026-03-06T16:02:25.201375Z","type":"kapsule","name":"cli-test-Test_PoolSetTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a859d428-2d35-425e-91c0-7001ccf03126.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a859d428-2d35-425e-91c0-7001ccf03126.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","commitment_ends_at":"2026-03-06T16:02:24.548031Z","acl_available":true,"iam_nodes_group_id":"f4a31da6-c6a2-4295-a528-07096c789cc3","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:03:25 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 859aa7b5-2c71-4260-b162-27c6371237cc + status: 200 OK + code: 200 + duration: 55.732652ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a859d428-2d35-425e-91c0-7001ccf03126 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a859d428-2d35-425e-91c0-7001ccf03126","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:02:24.548018Z","updated_at":"2026-03-06T16:02:25.201375Z","type":"kapsule","name":"cli-test-Test_PoolSetTaint","description":"","status":"creating","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a859d428-2d35-425e-91c0-7001ccf03126.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a859d428-2d35-425e-91c0-7001ccf03126.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","commitment_ends_at":"2026-03-06T16:02:24.548031Z","acl_available":true,"iam_nodes_group_id":"f4a31da6-c6a2-4295-a528-07096c789cc3","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:03:40 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 5f10d716-31f2-49d8-ab8f-af9e33c39da7 + status: 200 OK + code: 200 + duration: 59.857327ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a859d428-2d35-425e-91c0-7001ccf03126 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1522 + body: '{"region":"fr-par","id":"a859d428-2d35-425e-91c0-7001ccf03126","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:02:24.548018Z","updated_at":"2026-03-06T16:03:45.963034Z","type":"kapsule","name":"cli-test-Test_PoolSetTaint","description":"","status":"ready","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a859d428-2d35-425e-91c0-7001ccf03126.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a859d428-2d35-425e-91c0-7001ccf03126.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","commitment_ends_at":"2026-03-06T16:02:24.548031Z","acl_available":true,"iam_nodes_group_id":"f4a31da6-c6a2-4295-a528-07096c789cc3","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1522" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:03:55 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 1fb6a67b-b3b9-4f84-8148-f1c28dd7a37c + status: 200 OK + code: 200 + duration: 56.380697ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + form: + name: + - default + order_by: + - created_at_asc + status: + - unknown + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a859d428-2d35-425e-91c0-7001ccf03126/pools?name=default&order_by=created_at_asc&status=unknown + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 726 + body: '{"total_count":1,"pools":[{"region":"fr-par","id":"7d30ec4c-ee0a-4475-b743-a3842a32458f","cluster_id":"a859d428-2d35-425e-91c0-7001ccf03126","created_at":"2026-03-06T16:02:24.121345Z","updated_at":"2026-03-06T16:02:24.121345Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{},"taints":[],"startup_taints":[]}]}' + headers: + Content-Length: + - "726" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:03:55 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - f3a092e3-9127-45fa-97d8-9bd012f09384 + status: 200 OK + code: 200 + duration: 36.512958ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/pools/7d30ec4c-ee0a-4475-b743-a3842a32458f + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 698 + body: '{"region":"fr-par","id":"7d30ec4c-ee0a-4475-b743-a3842a32458f","cluster_id":"a859d428-2d35-425e-91c0-7001ccf03126","created_at":"2026-03-06T16:02:24.121345Z","updated_at":"2026-03-06T16:02:24.121345Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{},"taints":[],"startup_taints":[]}' + headers: + Content-Length: + - "698" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:03:55 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 6d290266-e617-480d-a736-f88c890a8c8e + status: 200 OK + code: 200 + duration: 114.379262ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 62 + host: api.scaleway.com + body: '{"taints":[{"key":"foo","value":"bar","effect":"NoSchedule"}]}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/pools/7d30ec4c-ee0a-4475-b743-a3842a32458f/set-taints + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 747 + body: '{"region":"fr-par","id":"7d30ec4c-ee0a-4475-b743-a3842a32458f","cluster_id":"a859d428-2d35-425e-91c0-7001ccf03126","created_at":"2026-03-06T16:02:24.121345Z","updated_at":"2026-03-06T16:03:55.548603Z","name":"default","status":"scaling","version":"1.32.3","node_type":"dev1_m","autoscaling":false,"size":1,"min_size":0,"max_size":1,"container_runtime":"containerd","autohealing":false,"tags":[],"placement_group_id":null,"kubelet_args":{},"upgrade_policy":{"max_unavailable":1,"max_surge":0},"zone":"fr-par-1","root_volume_type":"l_ssd","root_volume_size":40000000000,"public_ip_disabled":false,"security_group_id":"8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957","labels":{},"taints":[{"key":"foo","value":"bar","effect":"NoSchedule"}],"startup_taints":[]}' + headers: + Content-Length: + - "747" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:03:55 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - a10c27b2-c349-49a2-9ff9-07f023af91b1 + status: 200 OK + code: 200 + duration: 75.30864ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + form: + with_additional_resources: + - "true" + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a859d428-2d35-425e-91c0-7001ccf03126?with_additional_resources=true + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a859d428-2d35-425e-91c0-7001ccf03126","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:02:24.548018Z","updated_at":"2026-03-06T16:03:55.603572Z","type":"kapsule","name":"cli-test-Test_PoolSetTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a859d428-2d35-425e-91c0-7001ccf03126.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a859d428-2d35-425e-91c0-7001ccf03126.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","commitment_ends_at":"2026-03-06T16:02:24.548031Z","acl_available":true,"iam_nodes_group_id":"f4a31da6-c6a2-4295-a528-07096c789cc3","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:03:55 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - ded6461d-613b-4096-a758-6d0f835e9172 + status: 200 OK + code: 200 + duration: 124.027747ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a859d428-2d35-425e-91c0-7001ccf03126 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a859d428-2d35-425e-91c0-7001ccf03126","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:02:24.548018Z","updated_at":"2026-03-06T16:03:55.603572Z","type":"kapsule","name":"cli-test-Test_PoolSetTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a859d428-2d35-425e-91c0-7001ccf03126.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a859d428-2d35-425e-91c0-7001ccf03126.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","commitment_ends_at":"2026-03-06T16:02:24.548031Z","acl_available":true,"iam_nodes_group_id":"f4a31da6-c6a2-4295-a528-07096c789cc3","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:03:55 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 4782de38-eb2d-418b-b627-7106dce79cb5 + status: 200 OK + code: 200 + duration: 40.124072ms + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a859d428-2d35-425e-91c0-7001ccf03126 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a859d428-2d35-425e-91c0-7001ccf03126","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:02:24.548018Z","updated_at":"2026-03-06T16:03:55.603572Z","type":"kapsule","name":"cli-test-Test_PoolSetTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a859d428-2d35-425e-91c0-7001ccf03126.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a859d428-2d35-425e-91c0-7001ccf03126.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","commitment_ends_at":"2026-03-06T16:02:24.548031Z","acl_available":true,"iam_nodes_group_id":"f4a31da6-c6a2-4295-a528-07096c789cc3","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:04:10 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - e83a456f-9add-4f12-af53-744d43320533 + status: 200 OK + code: 200 + duration: 52.153408ms + - id: 15 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a859d428-2d35-425e-91c0-7001ccf03126 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 1525 + body: '{"region":"fr-par","id":"a859d428-2d35-425e-91c0-7001ccf03126","organization_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","project_id":"9e9389ca-503a-44c3-bbd5-7a3812303bb0","created_at":"2026-03-06T16:02:24.548018Z","updated_at":"2026-03-06T16:03:55.603572Z","type":"kapsule","name":"cli-test-Test_PoolSetTaint","description":"","status":"deleting","version":"1.32.3","cni":"cilium","tags":[],"cluster_url":"https://a859d428-2d35-425e-91c0-7001ccf03126.api.k8s.fr-par.scw.cloud:6443","dns_wildcard":"*.a859d428-2d35-425e-91c0-7001ccf03126.nodes.k8s.fr-par.scw.cloud","autoscaler_config":{"scale_down_disabled":false,"scale_down_delay_after_add":"10m","estimator":"binpacking","expander":"random","ignore_daemonsets_utilization":false,"balance_similar_node_groups":false,"expendable_pods_priority_cutoff":-10,"scale_down_unneeded_time":"10m","scale_down_utilization_threshold":0.5,"max_graceful_termination_sec":600},"auto_upgrade":{"enabled":false,"maintenance_window":{"start_hour":0,"day":"any"}},"upgrade_available":true,"feature_gates":[],"admission_plugins":[],"open_id_connect_config":{"issuer_url":"","client_id":"","username_claim":"","username_prefix":"","groups_claim":[],"groups_prefix":"","required_claim":[]},"apiserver_cert_sans":[],"private_network_id":"b49ea7b2-e136-4dff-9de0-7cd42502bdca","commitment_ends_at":"2026-03-06T16:02:24.548031Z","acl_available":true,"iam_nodes_group_id":"f4a31da6-c6a2-4295-a528-07096c789cc3","pod_cidr":"100.64.0.0/15","service_cidr":"10.32.0.0/20","service_dns_ip":"10.32.0.10"}' + headers: + Content-Length: + - "1525" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:04:25 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 2450cd07-be5e-49c8-9ee9-00c3c7b70fee + status: 200 OK + code: 200 + duration: 49.347926ms + - id: 16 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/a859d428-2d35-425e-91c0-7001ccf03126 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 128 + body: '{"message":"resource is not found","resource":"cluster","resource_id":"a859d428-2d35-425e-91c0-7001ccf03126","type":"not_found"}' + headers: + Content-Length: + - "128" + Content-Type: + - application/json + Date: + - Fri, 06 Mar 2026 16:04:40 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + X-Request-Id: + - 598261ce-4390-44bf-9fb8-98c637560159 + status: 404 Not Found + code: 404 + duration: 36.586848ms diff --git a/internal/namespaces/k8s/v1/testdata/test-pool-set-taint-set-empty.golden b/internal/namespaces/k8s/v1/testdata/test-pool-set-taint-set-empty.golden new file mode 100644 index 0000000000..2bd9327738 --- /dev/null +++ b/internal/namespaces/k8s/v1/testdata/test-pool-set-taint-set-empty.golden @@ -0,0 +1,75 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +🟩🟩🟩 STDOUT️ 🟩🟩🟩️ +ID 7d30ec4c-ee0a-4475-b743-a3842a32458f +ClusterID a859d428-2d35-425e-91c0-7001ccf03126 +CreatedAt few seconds ago +UpdatedAt few seconds ago +Name default +Status scaling +Version 1.32.3 +NodeType dev1_m +Autoscaling false +Size 1 +MinSize 0 +MaxSize 1 +ContainerRuntime containerd +Autohealing false +Zone fr-par-1 +RootVolumeType l_ssd +RootVolumeSize 40 GB +PublicIPDisabled false +SecurityGroupID 8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957 +Region fr-par + +Upgrade Policy: +MaxUnavailable 1 +MaxSurge 0 + +Node labels: + + +Node taints: +KEY VALUE EFFECT +foo bar NoSchedule + +Node startup taints: +KEY VALUE EFFECT +🟩🟩🟩 JSON STDOUT 🟩🟩🟩 +{ + "id": "7d30ec4c-ee0a-4475-b743-a3842a32458f", + "cluster_id": "a859d428-2d35-425e-91c0-7001ccf03126", + "created_at": "1970-01-01T00:00:00.0Z", + "updated_at": "1970-01-01T00:00:00.0Z", + "name": "default", + "status": "scaling", + "version": "1.32.3", + "node_type": "dev1_m", + "autoscaling": false, + "size": 1, + "min_size": 0, + "max_size": 1, + "container_runtime": "containerd", + "autohealing": false, + "tags": [], + "placement_group_id": null, + "kubelet_args": {}, + "upgrade_policy": { + "max_unavailable": 1, + "max_surge": 0 + }, + "zone": "fr-par-1", + "root_volume_type": "l_ssd", + "root_volume_size": 40000000000, + "public_ip_disabled": false, + "security_group_id": "8bcdc1ce-cda4-4e8f-859f-2aa0aa86e957", + "labels": {}, + "taints": [ + { + "key": "foo", + "value": "bar", + "effect": "NoSchedule" + } + ], + "startup_taints": [], + "region": "fr-par" +}