diff --git a/CHANGELOG.md b/CHANGELOG.md
index 014a94f..2ba191a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,17 @@
+## [v1.0.40](https://github.com/civo/terraform-provider-civo/releases/tag/v1.0.40) (29 April 2024)
+
+### Merged
+- [#201](https://github.com/civo/terraform-provider-civo/pull/201) - VLAN Support
+- [#207](https://github.com/civo/terraform-provider-civo/pull/207) - Update private key variable in release.yml
+- [#206](https://github.com/civo/terraform-provider-civo/pull/206) - Add environment variable for release job in release.yml
+- [#205](https://github.com/civo/terraform-provider-civo/pull/205) - Fix GitHub Actions configuration in release.yml
+- [#204](https://github.com/civo/terraform-provider-civo/pull/204) - Support Reserved IP for Instance create operation
+- [#200](https://github.com/civo/terraform-provider-civo/pull/200) - Add CIDR and Nameservers support in network
+- [#198](https://github.com/civo/terraform-provider-civo/pull/198) - Add Labels and Taints to Node Pool configurations
+- [#196](https://github.com/civo/terraform-provider-civo/pull/196) - Refactor Civo Kubernetes node pool configuration and organize code in their own folders per service
+- [#195](https://github.com/civo/terraform-provider-civo/pull/195) - Remove spaces in the applications string
+
## [v1.0.39](https://github.com/civo/terraform-provider-civo/releases/tag/v1.0.39) (16 October 2023)
### Merged
diff --git a/docs/data-sources/kubernetes_cluster.md b/docs/data-sources/kubernetes_cluster.md
index da4fff0..ec59a4b 100644
--- a/docs/data-sources/kubernetes_cluster.md
+++ b/docs/data-sources/kubernetes_cluster.md
@@ -68,10 +68,21 @@ Read-Only:
Read-Only:
-- `instance_names` (Set of String)
+- `instance_names` (List of String)
- `label` (String)
+- `labels` (Map of String)
- `node_count` (Number)
- `public_ip_node_pool` (Boolean)
- `size` (String)
+- `taint` (Set of Object) (see [below for nested schema](#nestedobjatt--pools--taint))
+
+
+### Nested Schema for `pools.taint`
+
+Read-Only:
+
+- `effect` (String)
+- `key` (String)
+- `value` (String)
diff --git a/docs/data-sources/network.md b/docs/data-sources/network.md
index 16c6dd8..61f5059 100644
--- a/docs/data-sources/network.md
+++ b/docs/data-sources/network.md
@@ -22,6 +22,8 @@ Networks may be looked up by id or label, and you can optionally pass region if
data "civo_network" "test" {
label = "test-network"
region = "LON1"
+ cidr_v4 = "10.0.0.0/24"
+ nameservers_v4 = ["8.8.8.8", "8.8.4.4", "1.1.1.1"]
}
```
diff --git a/docs/resources/firewall_rule.md b/docs/resources/firewall_rule.md
deleted file mode 100644
index f9fd471..0000000
--- a/docs/resources/firewall_rule.md
+++ /dev/null
@@ -1,100 +0,0 @@
----
-# generated by https://github.com/hashicorp/terraform-plugin-docs
-page_title: "civo_firewall_rule Resource - terraform-provider-civo"
-subcategory: ""
-description: |-
- Provides a Civo firewall rule resource. This can be used to create, modify, and delete firewalls rules. This resource don't have an update option because Civo backend doesn't support it at this moment. In that case, we use ForceNew for all object in the resource.
----
-
-# civo_firewall_rule (Resource)
-
-Provides a Civo firewall rule resource. This can be used to create, modify, and delete firewalls rules. This resource don't have an update option because Civo backend doesn't support it at this moment. In that case, we use `ForceNew` for all object in the resource.
-
-## Example Usage
-
-```terraform
-# Query small instance size
-data "civo_size" "small" {
- filter {
- key = "name"
- values = ["g3.small"]
- match_by = "re"
- }
-
- filter {
- key = "type"
- values = ["instance"]
- }
-
-}
-
-# Query instance disk image
-data "civo_disk_image" "debian" {
- filter {
- key = "name"
- values = ["debian-10"]
- }
-}
-
-# Create a new instance
-resource "civo_instance" "foo" {
- hostname = "foo.com"
- size = element(data.civo_size.small.sizes, 0).name
- disk_image = element(data.civo_disk_image.debian.diskimages, 0).id
-}
-
-# Create a network
-resource "civo_network" "custom_net" {
- label = "my-custom-network"
-}
-
-# Create a firewall
-resource "civo_firewall" "custom_firewall" {
- name = "my-custom-firewall"
- network_id = civo_network.custom_net.id
-}
-
-# Create a firewall rule and only allow
-# connections from instance we created above
-resource "civo_firewall_rule" "custom_port" {
- firewall_id = civo_firewall.custom_firewall.id
- protocol = "tcp"
- start_port = "3000"
- end_port = "3000"
- cidr = [format("%s/%s",civo_instance.foo.public_ip,"32")]
- direction = "ingress"
- label = "custom-application"
- depends_on = [civo_firewall.custom_firewall]
-}
-```
-
-
-## Schema
-
-### Required
-
-- `action` (String) The action of the rule can be allow or deny. When we set the `action = 'allow'`, this is going to add a rule to allow traffic. Similarly, setting `action = 'deny'` will deny the traffic.
-- `cidr` (Set of String) The CIDR notation of the other end to affect, or a valid network CIDR (e.g. 0.0.0.0/0 to open for everyone or 1.2.3.4/32 to open just for a specific IP address)
-- `direction` (String) The direction of the rule can be ingress or egress
-- `firewall_id` (String) The Firewall ID
-
-### Optional
-
-- `end_port` (String) The end of the port range (this is optional, by default it will only apply to the single port listed in start_port)
-- `label` (String) A string that will be the displayed name/reference for this rule
-- `protocol` (String) The protocol choice from `tcp`, `udp` or `icmp` (the default if unspecified is `tcp`)
-- `region` (String) The region for this rule
-- `start_port` (String) The start of the port range to configure for this rule (or the single port if required)
-
-### Read-Only
-
-- `id` (String) The ID of this resource.
-
-## Import
-
-Import is supported using the following syntax:
-
-```shell
-# using firewall_id:firewall_rule_id
-terraform import civo_firewall_rule.http b8ecd2ab-2267-4a5e-8692-cbf1d32583e3:4b0022ee-00b2-4f81-a40d-b4f8728923a7
-```
diff --git a/docs/resources/instance.md b/docs/resources/instance.md
index 549b606..a468f5f 100644
--- a/docs/resources/instance.md
+++ b/docs/resources/instance.md
@@ -59,6 +59,7 @@ resource "civo_instance" "foo" {
- `notes` (String) Add some notes to the instance
- `public_ip_required` (String) This should be either 'none' or 'create' (default: 'create')
- `region` (String) The region for the instance, if not declare we use the region in declared in the provider
+- `reserved_ipv4` (String) Can be either the UUID, name, or the IP address of the reserved IP
- `reverse_dns` (String) A fully qualified domain name that should be used as the instance's IP's reverse DNS (optional, uses the hostname if unspecified)
- `script` (String) The contents of a script that will be uploaded to /usr/local/bin/civo-user-init-script on your instance, read/write/executable only by root and then will be executed at the end of the cloud initialization
- `size` (String) The name of the size, from the current list, e.g. g3.xsmall
diff --git a/docs/resources/kubernetes_cluster.md b/docs/resources/kubernetes_cluster.md
index 1f5f220..6b10cdf 100644
--- a/docs/resources/kubernetes_cluster.md
+++ b/docs/resources/kubernetes_cluster.md
@@ -128,12 +128,24 @@ Required:
Optional:
- `label` (String) Node pool label, if you don't provide one, we will generate one for you
+- `labels` (Map of String)
- `public_ip_node_pool` (Boolean) Node pool belongs to the public ip node pool
+- `taint` (Block Set) (see [below for nested schema](#nestedblock--pools--taint))
Read-Only:
- `instance_names` (List of String) Instance names in the nodepool
+
+### Nested Schema for `pools.taint`
+
+Required:
+
+- `effect` (String)
+- `key` (String)
+- `value` (String)
+
+
### Nested Schema for `timeouts`
diff --git a/docs/resources/kubernetes_node_pool.md b/docs/resources/kubernetes_node_pool.md
index 604fb8a..3198075 100644
--- a/docs/resources/kubernetes_node_pool.md
+++ b/docs/resources/kubernetes_node_pool.md
@@ -30,7 +30,7 @@ resource "civo_kubernetes_cluster" "my-cluster" {
name = "my-cluster"
applications = "Portainer,Linkerd:Linkerd & Jaeger"
firewall_id = civo_firewall.my-firewall.id
- node_pool {
+ pools {
size = element(data.civo_size.xsmall.sizes, 0).name
node_count = 3
}
@@ -52,15 +52,14 @@ resource "civo_kubernetes_node_pool" "back-end" {
### Required
- `cluster_id` (String) The ID of your cluster
-- `region` (String) The region of the node pool, has to match that of the cluster
+- `node_count` (Number) Number of nodes in the nodepool
+- `size` (String) Size of the nodes in the nodepool
### Optional
- `label` (String) Node pool label, if you don't provide one, we will generate one for you
- `labels` (Map of String)
-- `node_count` (Number) the number of instances to create (optional, the default at the time of writing is 3)
- `public_ip_node_pool` (Boolean) Node pool belongs to the public ip node pool
-- `size` (String) the size of each node (optional, the default is currently g4s.kube.medium)
- `taint` (Block Set) (see [below for nested schema](#nestedblock--taint))
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
@@ -119,7 +118,7 @@ resource "civo_kubernetes_cluster" "my-cluster" {
applications = "Portainer,Linkerd:Linkerd & Jaeger"
firewall_id = civo_firewall.my-firewall.id
- node_pool {
+ pools {
size = element(data.civo_size.xsmall.sizes, 0).name
node_count = 3
}
diff --git a/docs/resources/network.md b/docs/resources/network.md
index cbfcfa9..a8dccd7 100644
--- a/docs/resources/network.md
+++ b/docs/resources/network.md
@@ -27,7 +27,15 @@ resource "civo_network" "custom_net" {
### Optional
+- `cidr_v4` (String) The CIDR block for the network
+- `nameservers_v4` (List of String) List of nameservers for the network
- `region` (String) The region of the network
+- `vlan_allocation_pool_v4_end` (String) End of the IPv4 allocation pool for VLAN
+- `vlan_allocation_pool_v4_start` (String) Start of the IPv4 allocation pool for VLAN
+- `vlan_cidr_v4` (String) CIDR for VLAN IPv4
+- `vlan_gateway_ip_v4` (String) Gateway IP for VLAN IPv4
+- `vlan_hardware_addr` (String) Hardware address for VLAN
+- `vlan_id` (Number) VLAN ID for the network
### Read-Only