Skip to content

Commit

Permalink
Merge pull request #607 from jeremmfr/main
Browse files Browse the repository at this point in the history
Release v2.4.0
  • Loading branch information
jeremmfr authored Dec 21, 2023
2 parents 25b0795 + 0802eb5 commit 76cb698
Show file tree
Hide file tree
Showing 185 changed files with 8,113 additions and 2,768 deletions.
7 changes: 7 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@ Please list the new or affected resources and data sources.

* junos_XXXXX

### Example Junos Configuration
<!--
```txt
# Copy-paste an example of Junos configuration
```
-->

### Potential Terraform Configuration
<!--
```hcl
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.20
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version: '1.20'
check-latest: true
Expand All @@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version: '1.21'
check-latest: true
Expand All @@ -46,7 +46,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version: '1.21'
check-latest: true
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/go_analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
config-file: ./.github/codeql-config.yml
- name: Autobuild
uses: github/codeql-action/autobuild@v2
uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3
4 changes: 2 additions & 2 deletions .github/workflows/linters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version: '1.21'
check-latest: true
Expand Down Expand Up @@ -39,7 +39,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version: '1.21'
check-latest: true
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ jobs:
goarch: arm64
steps:
- name: Set up Go 1.21
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version: '^1.21.4'
go-version: '1.21'
check-latest: true
id: go
- name: Show version
Expand Down
41 changes: 41 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,47 @@
<!-- markdownlint-disable-file MD013 MD041 -->
# changelog

## v2.4.0 (December 21, 2023)

FEATURES:

* add **junos_forwardingoptions_storm_control_profile** resource (Partial fix [#574](https://github.com/jeremmfr/terraform-provider-junos/issues/574))
* add **junos_iccp** resource (Partial fix [#573](https://github.com/jeremmfr/terraform-provider-junos/issues/573))
* add **junos_iccp_peer** resource (Partial fix [#573](https://github.com/jeremmfr/terraform-provider-junos/issues/573))
* add **junos_multichassis** resource (Partial fix [#576](https://github.com/jeremmfr/terraform-provider-junos/issues/576))
* add **junos_multichassis_protection_peer** resource (Partial fix [#576](https://github.com/jeremmfr/terraform-provider-junos/issues/576))
* add **junos_system_syslog_user** resource (Fix [#593](https://github.com/jeremmfr/terraform-provider-junos/issues/593))
* **provider**: add `commit_confirmed` and `commit_confirmed_wait_percent` argument to be able use `commit confirmed` feature to commit the resource actions (Fix [#585](https://github.com/jeremmfr/terraform-provider-junos/issues/585))

ENHANCEMENTS:

* **resource/junos_interface_physical**:
* add `mc_ae` block argument in `parent_ether_opts` block (Fix [#572](https://github.com/jeremmfr/terraform-provider-junos/issues/572))
* add `storm_control` argument (Partial fix [#574](https://github.com/jeremmfr/terraform-provider-junos/issues/574))
* **data-source/junos_interface_physical**:
* add `mc_ae` block attribute in `parent_ether_opts` block like resource
* add `storm_control` attribute like resource
* **resource/junos_switch_options**:
* resource now use new [terraform-plugin-framework](https://github.com/hashicorp/terraform-plugin-framework)
optional string attributes doesn't accept *empty* value
* add `service_id` argument (Fix [#575](https://github.com/jeremmfr/terraform-provider-junos/issues/575))
* **resource/junos_system**: add `web_management_session_idle_timeout` and `web_management_session_limit` arguments in `services` block (Fix [#594](https://github.com/jeremmfr/terraform-provider-junos/issues/594))
* **resource/junos_system_syslog_file**: resource now use new [terraform-plugin-framework](https://github.com/hashicorp/terraform-plugin-framework)
some of config errors are now sent during Plan instead of during Apply
optional boolean attributes doesn't accept value *false*
optional string attributes doesn't accept *empty* value
the resource schema has been upgraded to have one-blocks in single mode instead of list
* **resource/junos_system_syslog_host**: resource now use new [terraform-plugin-framework](https://github.com/hashicorp/terraform-plugin-framework)
optional boolean attributes doesn't accept value *false*
optional string attributes doesn't accept *empty* value
the resource schema has been upgraded to have one-blocks in single mode instead of list
* **provider**: display all errors when configuration commit generate multiple errors

BUG FIXES:

* **data-source/junos_interface_physical**: fix reading `link_speed` and `minimum_bandwidth` attributes in `parent_ether_opts` block
* **resource/junos_system_syslog_file**: fix reading `archive size` when value is a multiple of 1024 (k,m,g)

## v2.3.3 (December 07, 2023)

BUG FIXES:
Expand Down
36 changes: 35 additions & 1 deletion docs/data-sources/interface_physical.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,8 @@ The following attributes are exported:
See [below for nested schema](#parent_ether_opts-attributes).
- **speed** (String)
Link speed.
- **storm_control** (String)
Storm control profile name to bind.
- **trunk** (Boolean)
Interface mode is trunk.
- **trunk_non_els** (Boolean)
Expand Down Expand Up @@ -140,7 +142,7 @@ The following attributes are exported:

- **bfd_liveness_detection** (Block)
The `bfd-liveness-detection` in `aggregated-ether-options` configuration.
See [below for nested schema](#bfd_liveness_detection-attributes-in-parent_ether_opts) block.
See [below for nested schema](#bfd_liveness_detection-attributes-in-parent_ether_opts).
- **flow_control** (Boolean)
Enable flow control.
- **no_flow_control** (Boolean)
Expand All @@ -165,6 +167,9 @@ The following attributes are exported:
Don't enable loopback.
- **link_speed** (String)
Link speed of individual interface that joins the AE.
- **mc_ae** (Block)
Multi-chassis aggregation (MC-AE) network device configuration.
See [below for nested schema](#mc_ae-arguments-in-parent_ether_opts).
- **minimum_bandwidth** (String)
Minimum bandwidth configured for aggregated bundle.
- **minimum_links** (Number)
Expand Down Expand Up @@ -208,3 +213,32 @@ The following attributes are exported:
High transmit interval triggering a trap.
- **version** (String)
BFD protocol version number.

---

### mc_ae arguments in parent_ether_opts

- **chassis_id** (Number)
Chassis id of MC-AE network device.
- **mc_ae_id** (Number)
MC-AE group id.
- **mode** (String)
Mode of the MC-AE.
- **status_control** (String)
Status of the MC-AE chassis.
- **enhanced_convergence** (Boolean)
Optimized convergence time for MC-AE.
- **events_iccp_peer_down** (Block)
Define behavior in the event of ICCP peer down.
- **force_icl_down** (Boolean)
Bring down ICL logical interface.
- **prefer_status_control_active** (Boolean)
Keep this node up (recommended only on status-control active).
- **init_delay_time** (Number)
Init delay timer for mcae sm for min traffic loss (seconds).
- **redundancy_group** (Number)
Redundancy group id.
- **revert_time** (Number)
Wait interval before performing switchover (minute).
- **switchover_mode** (String)
Switchover mode.
21 changes: 21 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,27 @@ The following arguments are supported in the `provider` block:
It can also be sourced from the `JUNOS_SLEEP_LOCK` environment variable.
Defaults to `10`.

- **commit_confirmed** (Optional, Number)
Number of minutes until automatic rollback (1..65535).
It can also be sourced from the `JUNOS_COMMIT_CONFIRMED` environment variable.

**If this argument is specified**, for each resource action with commit,
the commit will take place in three steps:
- commit with the `confirmed` option and with the value of this argument as `confirm-timeout`.
- wait for `<commit_confirmed_wait_percent>`% of the minutes defined in the value of this argument.
- confirm commit to avoid rollback with the `commit check` command.

If a gracefully shutting down call with `Ctrl-c` is received by Terraform,
the wait step is stopped and provider returns an error.

- **commit_confirmed_wait_percent** (Optional, Number)
Percentage of `<commit_confirmed>` minute(s) to wait between
`commit confirmed` (commit with automatic rollback) and
`commit check` (confirmation) commands (0..99).
No effect if `<commit_confirmed>` is not used.
It can also be sourced from the `JUNOS_COMMIT_CONFIRMED_WAIT_PERCENT` environment variable.
Defaults to `90`.

---

### SSH options
Expand Down
63 changes: 63 additions & 0 deletions docs/resources/forwardingoptions_storm_control_profile.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
page_title: "Junos: junos_forwardingoptions_storm_control_profile"
---

# junos_forwardingoptions_storm_control_profile

Provides a forwarding-options storm-control-profile resource.

## Example Usage

```hcl
# Add a forwarding-options storm-control-profile
resource "junos_forwardingoptions_storm_control_profile" "demo" {
name = "demo"
action_shutdown = true
all {
bandwidth_percentage = 80
}
}
```

## Argument Reference

The following arguments are supported:

- **name** (Required, String, Forces new resource)
Storm control profile name.
- **all** (Required, Block)
For all BUM traffic.
- **bandwidth_level** (Optional, Number)
Link bandwidth (100..100000000 kbps).
- **bandwidth_percentage** (Optional, Number)
Percentage of link bandwidth (1..100).
- **burst_size** (Optional, Number)
Burst size (1500..100000000 bytes).
- **no_broadcast** (Optional, Boolean)
Disable broadcast storm control.
- **no_multicast** (Optional, Boolean)
Disable multicast storm control.
- **no_registered_multicast** (Optional, Boolean)
Disable registered multicast storm control.
- **no_unknown_unicast** (Optional, Boolean)
Disable unknown unicast storm control.
- **no_unregistered_multicast** (Optional, Boolean)
Disable unregistered multicast storm control.
- **action_shutdown** (Optional, Boolean)
Disable port for excessive storm control errors.

## Attributes Reference

The following attributes are exported:

- **id** (String)
An identifier for the resource with format `<name>`.

## Import

Junos forwarding-options storm-control-profile can be imported using an id made up of
`<name>`, e.g.

```shell
$ terraform import junos_forwardingoptions_storm_control_profile.demo demo
```
47 changes: 47 additions & 0 deletions docs/resources/iccp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
page_title: "Junos: junos_iccp"
---

# junos_iccp

-> **Note:** This resource should only be created **once**.
It's used to configure static (not object) options in `protocols iccp` block.

Configure static configuration in `protocols iccp` block.

## Example Usage

```hcl
# Configure protocol ICCP
resource "junos_iccp" "iccp" {
local_ip_addr = "192.0.2.1"
authentication_key = "a_key"
session_establishment_hold_time = 300
}
```

## Argument Reference

The following arguments are supported:

- **local_ip_addr** (Required, String)
Local IP address to use by default for all peers.
- **authentication_key** (Optional, String, Sensitive)
MD5 authentication key for all peers.
- **session_establishment_hold_time** (Optional, Number)
Time within which connection must succeed with peers (45..600 seconds).

## Attributes Reference

The following attributes are exported:

- **id** (String)
An identifier for the resource with value `iccp`.

## Import

Junos protocols ICCP can be imported using any id, e.g.

```shell
$ terraform import junos_iccp.iccp random
```
Loading

0 comments on commit 76cb698

Please sign in to comment.