Skip to content

Commit

Permalink
DXE-3422 Merge pull request #524 from akamai/release/v5.6.0
Browse files Browse the repository at this point in the history
Release/v5.6.0
  • Loading branch information
dawiddzhafarov committed Feb 19, 2024
2 parents 6f3409f + 6185ab9 commit 98f09f3
Show file tree
Hide file tree
Showing 254 changed files with 32,548 additions and 3,881 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: "1.20"
go-version: "1.21"
- name: Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@v5
Expand All @@ -41,7 +41,7 @@ jobs:
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v2
with:
version: v1.20.0
version: v1.21.0
args: release --rm-dist
env:
GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}
Expand Down
74 changes: 73 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,82 @@
# RELEASE NOTES

## 5.6.0 (Feb 19, 2024)

#### FEATURES/ENHANCEMENTS:

* Appsec
* Added retries in `akamai_appsec_activations` and `akamai_networklist_activations` resources ([I#471](https://github.com/akamai/terraform-provider-akamai/issues/471))
* Added reactivation support for `akamai_appsec_activations` if the config was deactivated manually ([I#441](https://github.com/akamai/terraform-provider-akamai/issues/441) and [I#442](https://github.com/akamai/terraform-provider-akamai/issues/442))

* Cloudlets
* Added support for Shared Cloudlets Policies. To use it, provide `is_shared` field in `akamai_cloudlets_policy` resource as `true`. ([I#276](https://github.com/akamai/terraform-provider-akamai/issues/276))
* Added validation to prevent changing immutable `cloudlet_code` field in `akamai_cloudlets_policy` resource
* Added support for importing policies without any version
* Added new data source:
* `akamai_cloudlets_policy_activation` - read
* `akamai_cloudlets_shared_policy` - read
* Changes for `akamai_cloudlets_policy_activation` resource
* Added support for shared (V3) policies
* Added import for `akamai_cloudlets_policy_activation`
* Field `associated_properties` was changed to optional but is still required for non-shared policies
* Added `is_shared` computed field to indicate if processing policy is shared

* DNS
* Enhanced handling of `akamai_dns_zone` resource when no `group` is provided:
* When there is only one group present, the processing should continue with a descriptive warning
* When there are more than one group present, the processing will fail with descriptive error asking to provide group in the configuration

* Edgeworkers
* Added `note` attribute to `resource_akamai_edgeworkers_activation` resource

* GTM
* Added data sources:
* `akamai_gtm_asmap` - reads information for a specific GTM asmap
* `akamai_gtm_resources` - reads information for a specific GTM resources under given domain
* `akamai_gtm_resource` - reads information for a specific GTM resource
* `akamai_gtm_domain` - reads information for a specific GTM domain
* `akamai_gtm_domains` - reads list of GTM domains under a given contract
* `akamai_gtm_cidrmap` - reads information for a specific GTM cidrmap

* IVM
* Extended `akamai_imaging_policy_image` with new fields:
* `serve_stale_duration` available under `policy`
* `allow_pristine_on_downsize` and `prefer_modern_formats` available under `policy.output`

* PAPI
* Added new resource:
* `akamai_property_bootstrap` - create, read, update and delete property without specifying rules or edgehostnames. To be used with `akamai_property` resource and its new field `property_id` ([I#466](https://github.com/akamai/terraform-provider-akamai/issues/466))
* Added `version_notes`, `rule_warnings` and `property_id` attributes to `akamai_property` resource ([I#494](https://github.com/akamai/terraform-provider-akamai/issues/494))
* Added support for new rule format v2024-01-09 in `data_akamai_property_rules_builder`
* Improved errors for `akamai_contract` and `akamai_group` datasources when there are multiple groups or contracts
* Added `name` validation for `akamai_property_include` resource

* Updated various dependencies

#### BUG FIXES:

* Appsec
* Fixed provider plugin crash in `appsec_attack_group` and `appsec_eval_group` after executing terraform plan ([I#480](https://github.com/akamai/terraform-provider-akamai/issues/480))
* Fixed drift for struct and list reordering in `akamai_appsec_match_target`

* Cloudlets
* Fixed handling of version drift for cloudlets policies ([I#478](https://github.com/akamai/terraform-provider-akamai/issues/478))

* CPS
* Changed `organizational_unit` inside `csr` attribute for `akamai_cps_third_party_enrollment` and `akamai_cps_dv_enrollment`
resources from required to optional. ([PR#513](https://github.com/akamai/terraform-provider-akamai/pull/513))
* Changed `state` inside `csr` attribute for `akamai_cps_third_party_enrollment` and `akamai_cps_dv_enrollment` resources from required to optional.

* GTM
* Fixed 'Inconsistent Final Plan' error for `akamai_gtm_property` resource
* The diff when reordering `traffic_target` in `akamai_gtm_property` resource at the same time as changing any attribute value inside `traffic_target` will be extensive
* Added `ForceNew` to the `name` attribute for `akamai_gtm_property` resource as it is not possible to rename it using API

## 5.5.0 (Dec 07, 2023)

#### FEATURES/ENHANCEMENTS:

* APSSEC
* Appsec
* Updated resource:
* `akamai_appsec_ip_geo` - added `asn_network_lists` attribute to support blocking by ASN client lists
* Updated data source:
Expand Down
64 changes: 41 additions & 23 deletions GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,31 @@ build_dir = .build
TF_PLUGIN_DIR ?= ~/.terraform.d/plugins
install_path = $(TF_PLUGIN_DIR)/$(registry_name)/$(namespace)/$(PKG_NAME)/$(version)/$$(go env GOOS)_$$(go env GOARCH)

# Developer tools
TOOLS_MOD_FILE := $(CURDIR)/tools/go.mod
TOOLS_BIN_DIR := $(CURDIR)/tools/bin
TOOL_PKGS := $(shell go list -f '{{join .Imports " "}}' tools/tools.go)
TOOLS := $(foreach TOOL,$(notdir $(TOOL_PKGS)),$(TOOLS_BIN_DIR)/$(TOOL))
$(foreach TOOL,$(TOOLS),$(eval $(notdir $(TOOL)) := $(TOOL))) # Allows to use e.g. $(golangci-lint) instead of $(TOOLS_BIN_DIR)/golangci-lint

$(TOOLS_BIN_DIR):
@mkdir -p $(TOOLS_BIN_DIR)

$(TOOLS_MOD_FILE): tidy

$(TOOLS): $(TOOLS_MOD_FILE) | $(TOOLS_BIN_DIR)
$(eval TOOL := $(filter %/$(@F),$(TOOL_PKGS)))
$(eval TOOL_VERSION := $(shell grep -m 1 $(shell echo $(TOOL) | cut -d/ -f 1-3) $(TOOLS_MOD_FILE) | cut -d' ' -f2))
@echo "Installing $(TOOL)@$(TOOL_VERSION)"
@GOBIN=$(TOOLS_BIN_DIR) go install -modfile=$(TOOLS_MOD_FILE) $(TOOL)
BIN = $(CURDIR)/bin
GOCMD = go
GOTEST = $(GOCMD) test
GOBUILD = $(GOCMD) build
M = $(shell echo ">")
TFLINT = $(BIN)/tflint
$(BIN)/tflint: $(BIN) ; $(info $(M) Installing tflint...)
@export TFLINT_INSTALL_PATH=$(BIN); \
curl -sSfL https://raw.githubusercontent.com/terraform-linters/tflint/master/install_linux.sh | bash

$(BIN):
@mkdir -p $@
$(BIN)/%: | $(BIN) ; $(info $(M) Installing $(PACKAGE)...)
@tmp=$$(mktemp -d); \
env GO111MODULE=off GOPATH=$$tmp GOBIN=$(BIN) $(GOCMD) get $(PACKAGE) \
|| ret=$$?; \
rm -rf $$tmp ; exit $$ret

GOIMPORTS = $(BIN)/goimports
$(BIN)/goimports: PACKAGE=golang.org/x/tools/cmd/goimports

GOLANGCI_LINT_VERSION = v1.55.2
GOLANGCILINT = $(BIN)/golangci-lint
$(BIN)/golangci-lint: ; $(info $(M) Installing golangci-lint...) @
$Q curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(BIN) $(GOLANGCI_LINT_VERSION)

# Targets
default: build
Expand Down Expand Up @@ -55,8 +63,17 @@ testacc:
TF_ACC=1 go test $(TEST) -v $(TESTARGS) -timeout 300m

.PHONY: fmt
fmt: $(goimports)
$(goimports) -w .
fmt: | $(GOIMPORTS); $(info $(M) Running goimports...) @ ## Run goimports on all source files
$Q $(GOIMPORTS) -w .

.PHONY: fmt-check
fmt-check: | $(GOIMPORTS); $(info $(M) Running format and imports check...) @ ## Run goimports on all source files
$(eval OUTPUT = $(shell $(GOIMPORTS) -l .))
@if [ "$(OUTPUT)" != "" ]; then\
echo "Found following files with incorrect format and/or imports:";\
echo "$(OUTPUT)";\
false;\
fi

.PHONY: terraform-fmtcheck
terraform-fmtcheck:
Expand All @@ -67,12 +84,13 @@ terraform-fmt:
terraform fmt -recursive

.PHONY: lint
lint: $(golangci-lint)
$(golangci-lint) run
lint: | $(GOLANGCILINT) ; $(info $(M) Running golangci-lint...) @
go mod tidy
$Q $(BIN)/golangci-lint run

.PHONY: terraform-lint
terraform-lint: $(tflint)
@find ./examples -type f -name "*.tf" | xargs -I % dirname % | sort -u | xargs -I @ sh -c "echo @ && $(tflint) @"
terraform-lint: | $(TFLINT) ; $(info $(M) Checking source code against tflint...) @ ## Run tflint on all HCL files in the project
@find ./examples -type f -name "*.tf" | xargs -I % dirname % | sort -u | xargs -I @ sh -c "echo @ && $(TFLINT) --filter @"

.PHONY: test-compile
test-compile:
Expand Down
2 changes: 1 addition & 1 deletion build/internal/package/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.20-alpine3.18
FROM golang:1.21-alpine3.18

ENV PROVIDER_VERSION="1.0.0" \
CGO_ENABLED=0 \
Expand Down
28 changes: 14 additions & 14 deletions docs/data-sources/data-sources.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ We’ve moved our documentation to the Akamai TechDocs site. Use the table to fi

| Subprovider | Description |
|---------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|
| [Application Security](https://techdocs.akamai.com/terraform/v5.5/docs/appsec-datasources) | Manage security configurations, security policies, match targets, rate policies, and firewall rules. |
| [Bot Manager](https://techdocs.akamai.com/terraform/v5.5/docs/botman-datasources) | Identify, track, and respond to bot activity on your domain or in your app. |
| [Certificates](https://techdocs.akamai.com/terraform/v5.5/docs/cps-datasources) | Full life cycle management of SSL certificates for your ​Akamai​ CDN applications. |
| [Client Lists](https://techdocs.akamai.com/terraform/v5.5/docs/cli-data-sources) | Reduce harmful security attacks by allowing only trusted IP/CIDRs, locations, autonomous system numbers, and TLS fingerprints to access your services and content.|
| [Cloud Wrapper](https://techdocs.akamai.com/terraform/v5.5/docs/cw-data-sources) | Provide your customers with a more consistent user experience by adding a custom caching layer that improves the connection between your cloud infrastructure and the Akamai platform.|
| [Cloudlets](https://techdocs.akamai.com/terraform/v5.5/docs/cl-datasources) | Solve specific business challenges using value-added apps that complement ​Akamai​'s core solutions. |
| [DataStream](https://techdocs.akamai.com/terraform/v5.5/docs/ds-datasources) | Monitor activity on the ​Akamai​ platform and send live log data to a destination of your choice. |
| [Edge DNS](https://techdocs.akamai.com/terraform/v5.5/docs/edns-datasources) | Replace or augment your DNS infrastructure with a cloud-based authoritative DNS solution. |
| [EdgeWorkers](https://techdocs.akamai.com/terraform/v5.5/docs/ew-datasources) | Execute JavaScript functions at the edge to optimize site performance and customize web experiences. |
| [Global Traffic Management](https://techdocs.akamai.com/terraform/v5.5/docs/gtm-datasources) | Use load balancing to manage website and mobile performance demands. |
| [Identity and Access Management](https://techdocs.akamai.com/terraform/v5.5/docs/iam-datasources) | Create users and groups, and define policies that manage access to your Akamai applications. |
| [Image and Video Manager](https://techdocs.akamai.com/terraform/v5.5/docs/ivm-datasources) | Automate image and video delivery optimizations for your website visitors. |
| [Network Lists](https://techdocs.akamai.com/terraform/v5.5/docs/nl-datasources) | Automate the creation, deployment, and management of lists used in ​Akamai​ security products. |
| [Property](https://techdocs.akamai.com/terraform/v5.5/docs/pm-datasources) | Define rules and behaviors that govern your website delivery based on match criteria. |
| [Application Security](https://techdocs.akamai.com/terraform/v5.6/docs/appsec-datasources) | Manage security configurations, security policies, match targets, rate policies, and firewall rules. |
| [Bot Manager](https://techdocs.akamai.com/terraform/v5.6/docs/botman-datasources) | Identify, track, and respond to bot activity on your domain or in your app. |
| [Certificates](https://techdocs.akamai.com/terraform/v5.6/docs/cps-datasources) | Full life cycle management of SSL certificates for your ​Akamai​ CDN applications. |
| [Client Lists](https://techdocs.akamai.com/terraform/v5.6/docs/cli-data-sources) | Reduce harmful security attacks by allowing only trusted IP/CIDRs, locations, autonomous system numbers, and TLS fingerprints to access your services and content.|
| [Cloud Wrapper](https://techdocs.akamai.com/terraform/v5.6/docs/cw-data-sources) | Provide your customers with a more consistent user experience by adding a custom caching layer that improves the connection between your cloud infrastructure and the Akamai platform.|
| [Cloudlets](https://techdocs.akamai.com/terraform/v5.6/docs/cl-datasources) | Solve specific business challenges using value-added apps that complement ​Akamai​'s core solutions. |
| [DataStream](https://techdocs.akamai.com/terraform/v5.6/docs/ds-datasources) | Monitor activity on the ​Akamai​ platform and send live log data to a destination of your choice. |
| [Edge DNS](https://techdocs.akamai.com/terraform/v5.6/docs/edns-datasources) | Replace or augment your DNS infrastructure with a cloud-based authoritative DNS solution. |
| [EdgeWorkers](https://techdocs.akamai.com/terraform/v5.6/docs/ew-datasources) | Execute JavaScript functions at the edge to optimize site performance and customize web experiences. |
| [Global Traffic Management](https://techdocs.akamai.com/terraform/v5.6/docs/gtm-datasources) | Use load balancing to manage website and mobile performance demands. |
| [Identity and Access Management](https://techdocs.akamai.com/terraform/v5.6/docs/iam-datasources) | Create users and groups, and define policies that manage access to your Akamai applications. |
| [Image and Video Manager](https://techdocs.akamai.com/terraform/v5.6/docs/ivm-datasources) | Automate image and video delivery optimizations for your website visitors. |
| [Network Lists](https://techdocs.akamai.com/terraform/v5.6/docs/nl-datasources) | Automate the creation, deployment, and management of lists used in ​Akamai​ security products. |
| [Property](https://techdocs.akamai.com/terraform/v5.6/docs/pm-datasources) | Define rules and behaviors that govern your website delivery based on match criteria. |

0 comments on commit 98f09f3

Please sign in to comment.