Skip to content

Commit

Permalink
Merge pull request #4969 from cloudflare/release-please--branches--ma…
Browse files Browse the repository at this point in the history
…in--changes--next
  • Loading branch information
jacobbednarz authored Feb 13, 2025
2 parents 1dbf5b4 + 2bf63ba commit 9f4069d
Show file tree
Hide file tree
Showing 591 changed files with 13,569 additions and 1,587 deletions.
8 changes: 2 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,7 @@ on:

jobs:
lint:
name: lint
runs-on: ubuntu-latest


steps:
- uses: actions/checkout@v4

Expand All @@ -27,10 +24,9 @@ jobs:

- name: Run lints
run: ./scripts/lint

test:
name: test
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

Expand All @@ -43,4 +39,4 @@ jobs:
run: ./scripts/bootstrap

- name: Run tests
run: ./scripts/test
run: ./scripts/test
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
name: Release
---
name: Publish Release

permissions:
contents: write

concurrency:
group: publish

on:
push:
tags:
Expand All @@ -10,8 +18,8 @@ jobs:
- name: Cleanup unused directories and tools
run: |
df -h /
sudo apt-get remove -y '^aspnetcore-.*' '^dotnet-.*' '^llvm-.*' 'php.*' '^mongodb-.*' '^mysql-.*' azure-cli google-chrome-stable firefox powershell mono-devel google-cloud-sdk google-cloud-cli microsoft-edge-stable snapd --fix-missing
sudo apt-get autoremove -y
sudo apt-get remove -y '^aspnetcore-.*' '^dotnet-.*' '^llvm-.*' 'php.*' '^mongodb-.*' '^mysql-.*' azure-cli google-chrome-stable firefox powershell mono-devel google-cloud-sdk google-cloud-cli microsoft-edge-stable snapd --fix-missing
sudo apt-get autoremove -y
sudo apt-get clean
sudo docker image prune --all --force
sudo rm -rf \
Expand All @@ -27,7 +35,7 @@ jobs:
/usr/local/share/chromium \
/usr/local/share/powershell \
/usr/share/dotnet \
/usr/share/swift
/usr/share/swift
ghcup nuke
df -h /
- name: Checkout
Expand Down
22 changes: 22 additions & 0 deletions .github/workflows/release-doctor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Release Doctor
on:
pull_request:
branches:
- main
workflow_dispatch:

jobs:
release_doctor:
name: release doctor
runs-on: ubuntu-latest
if: github.repository == 'cloudflare/terraform-provider-cloudflare' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next')

steps:
- uses: actions/checkout@v4

- name: Check release environment
run: |
bash ./scripts/check-release-environment
env:
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
16 changes: 11 additions & 5 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,24 @@ builds:
ldflags:
- "-s -w -X main.version={{.Version}} -X main.commit={{.Commit}}"
goos:
- darwin
- freebsd
- windows
- linux
- darwin
- windows
goarch:
- amd64
- "386"
- amd64
- arm
- arm64
ignore:
- goos: darwin
goarch: "386"
- goarch: "386"
goos: darwin
- goarch: arm
goos: windows
- goarch: arm64
goos: freebsd
- goarch: arm64
goos: windows
binary: "{{ .ProjectName }}_v{{ .Version }}"
archives:
- formats: [ 'zip' ]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,9 @@ pattern cloudflare_terraform_v5_attribute_renames_configuration() {
// cloudflare_tiered_cache
`cache_type = $v` as $attribute => `value = $v` where { $attribute <: within `resource "cloudflare_tiered_cache" $_ { $_ }` },

// cloudflare_dns_record
`hostname = $v` as $hostname => . where { $attribute <: within `resource "cloudflare_dns_record" $_ { $_ }` },

// cloudflare_web_analytics_site
`ruleset_id = $v` as $attribute => `ruleset = {
id = $v
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ pattern cloudflare_terraform_v5_attribute_renames_state() {
$instances <: contains `"jump_start": $v` => .
}
},

// cloudflare_record
`{ "mode": "managed", "type": "$resource_type", $..., "instances":[$instances] }` where {
and {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ pattern cloudflare_terraform_v5_resource_renames_configuration() {
`"cloudflare_dlp_custom_profile"` => `"cloudflare_zero_trust_dlp_custom_profile"`,
`"cloudflare_dlp_predefined_profile"` => `"cloudflare_zero_trust_dlp_predefined_profile"`,
`"cloudflare_dlp_profile"` => `"cloudflare_zero_trust_dlp_profile"`,
`"cloudflare_fallback_domain"` => `"cloudflare_zero_trust_local_domain_fallback"`,
`"cloudflare_gateway_app_types"` => `"cloudflare_zero_trust_gateway_app_types"`,
`"cloudflare_gre_tunnel"` => `"cloudflare_magic_wan_gre_tunnel"`,
`"cloudflare_ipsec_tunnel"` => `"cloudflare_magic_wan_ipsec_tunnel"`,
Expand All @@ -42,14 +41,13 @@ pattern cloudflare_terraform_v5_resource_renames_configuration() {
`"cloudflare_teams_rule"` => `"cloudflare_zero_trust_gateway_policy"`,
`"cloudflare_tunnel"` => `"cloudflare_zero_trust_tunnel_cloudflared"`,
`"cloudflare_tunnel_config"` => `"cloudflare_zero_trust_tunnel_cloudflared_config"`,
`"cloudflare_tunnel_route"` => `"cloudflare_zero_trust_tunnel_route"`,
`"cloudflare_tunnel_virtual_network"` => `"cloudflare_zero_trust_tunnel_virtual_network"`,
`"cloudflare_tunnel_route"` => `"cloudflare_zero_trust_tunnel_cloudflared_route"`,
`"cloudflare_tunnel_virtual_network"` => `"cloudflare_zero_trust_tunnel_cloudflared_virtual_network"`,
`"cloudflare_worker_cron_trigger"` => `"cloudflare_workers_cron_trigger"`,
`"cloudflare_worker_domain"` => `"cloudflare_workers_custom_domain"`,
`"cloudflare_worker_script"` => `"cloudflare_workers_script"`,
`"cloudflare_worker_secret"` => `"cloudflare_workers_secret"`,
`"cloudflare_workers_for_platforms_namespace"` => `"cloudflare_workers_for_platforms_dispatch_namespace"`,
`"cloudflare_zone_dnssec"` => `"cloudflare_dns_zone_dnssec"`,
`"cloudflare_managed_headers"` => `"cloudflare_managed_transforms"`,
} as $old_name where {
$old_name <: within `resource $_ { $_ }`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ pattern cloudflare_terraform_v5_resource_renames_state() {
`"cloudflare_dlp_profile"` => `"cloudflare_zero_trust_dlp_profile"`,
`"cloudflare_dlp_custom_profile"` => `"cloudflare_zero_trust_dlp_custom_profile"`,
`"cloudflare_dlp_predefined_profile"` => `"cloudflare_zero_trust_dlp_predefined_profile"`,
`"cloudflare_fallback_domain"` => `"cloudflare_zero_trust_local_domain_fallback"`,
`"cloudflare_risk_behavior"` => `"cloudflare_zero_trust_risk_behavior"`,
`"cloudflare_split_tunnel"` => `"cloudflare_zero_trust_split_tunnels"`,
`"cloudflare_teams_account"` => `"cloudflare_zero_trust_gateway_settings"`,
Expand All @@ -39,8 +38,8 @@ pattern cloudflare_terraform_v5_resource_renames_state() {
`"cloudflare_teams_rule"` => `"cloudflare_zero_trust_gateway_policy"`,
`"cloudflare_tunnel"` => `"cloudflare_zero_trust_tunnel_cloudflared"`,
`"cloudflare_tunnel_config"` => `"cloudflare_zero_trust_tunnel_cloudflared_config"`,
`"cloudflare_tunnel_route"` => `"cloudflare_zero_trust_tunnel_route"`,
`"cloudflare_tunnel_virtual_network"` => `"cloudflare_zero_trust_tunnel_virtual_network"`,
`"cloudflare_tunnel_route"` => `"cloudflare_zero_trust_tunnel_cloudflared_route"`,
`"cloudflare_tunnel_virtual_network"` => `"cloudflare_zero_trust_tunnel_cloudflared_virtual_network"`,

// handle dependencies
`"cloudflare_access_application.$dep"` => `"cloudflare_zero_trust_access_application.$dep"`,
Expand All @@ -60,17 +59,14 @@ pattern cloudflare_terraform_v5_resource_renames_state() {
`"cloudflare_device_policy_certificates.$dep"` => `"cloudflare_zero_trust_device_certificates.$dep"`,
`"cloudflare_device_posture_integration.$dep"` => `"cloudflare_zero_trust_device_posture_integration.$dep"`,
`"cloudflare_device_posture_rule.$dep"` => `"cloudflare_zero_trust_device_posture_rule.$dep"`,
`"cloudflare_device_settings_policy.$dep"` => `"cloudflare_zero_trust_device_profiles.$dep"`,
`"cloudflare_dlp_custom_profile.$dep"` => `"cloudflare_zero_trust_dlp_custom_profile.$dep"`,
`"cloudflare_dlp_predefined_profile.$dep"` => `"cloudflare_zero_trust_dlp_predefined_profile.$dep"`,
`"cloudflare_dlp_profile.$dep"` => `"cloudflare_zero_trust_dlp_profile.$dep"`,
`"cloudflare_fallback_domain.$dep"` => `"cloudflare_zero_trust_local_domain_fallback.$dep"`,
`"cloudflare_gateway_app_types.$dep"` => `"cloudflare_zero_trust_gateway_app_types.$dep"`,
`"cloudflare_gre_tunnel.$dep"` => `"cloudflare_magic_wan_gre_tunnel.$dep"`,
`"cloudflare_ipsec_tunnel.$dep"` => `"cloudflare_magic_wan_ipsec_tunnel.$dep"`,
`"cloudflare_record.$dep"` => `"cloudflare_dns_record.$dep"`,
`"cloudflare_risk_behavior.$dep"` => `"cloudflare_zero_trust_risk_behavior.$dep"`,
`"cloudflare_split_tunnel.$dep"` => `"cloudflare_zero_trust_split_tunnels.$dep"`,
`"cloudflare_static_route.$dep"` => `"cloudflare_magic_wan_static_route.$dep"`,
`"cloudflare_teams_account.$dep"` => `"cloudflare_zero_trust_gateway_settings.$dep"`,
`"cloudflare_teams_list.$dep"` => `"cloudflare_zero_trust_list.$dep"`,
Expand All @@ -79,14 +75,13 @@ pattern cloudflare_terraform_v5_resource_renames_state() {
`"cloudflare_teams_rule.$dep"` => `"cloudflare_zero_trust_gateway_policy.$dep"`,
`"cloudflare_tunnel.$dep"` => `"cloudflare_zero_trust_tunnel_cloudflared.$dep"`,
`"cloudflare_tunnel_config.$dep"` => `"cloudflare_zero_trust_tunnel_cloudflared_config.$dep"`,
`"cloudflare_tunnel_route.$dep"` => `"cloudflare_zero_trust_tunnel_route.$dep"`,
`"cloudflare_tunnel_virtual_network.$dep"` => `"cloudflare_zero_trust_tunnel_virtual_network.$dep"`,
`"cloudflare_tunnel_route.$dep"` => `"cloudflare_zero_trust_tunnel_cloudflared_route.$dep"`,
`"cloudflare_tunnel_virtual_network.$dep"` => `"cloudflare_zero_trust_tunnel_cloudflared_virtual_network.$dep"`,
`"cloudflare_worker_cron_trigger.$dep"` => `"cloudflare_workers_cron_trigger.$dep"`,
`"cloudflare_worker_domain.$dep"` => `"cloudflare_workers_custom_domain.$dep"`,
`"cloudflare_worker_script.$dep"` => `"cloudflare_workers_script.$dep"`,
`"cloudflare_worker_secret.$dep"` => `"cloudflare_workers_secret.$dep"`,
`"cloudflare_workers_for_platforms_namespace.$dep"` => `"cloudflare_workers_for_platforms_dispatch_namespace.$dep"`,
`"cloudflare_zone_dnssec.$dep"` => `"cloudflare_dns_zone_dnssec.$dep"`,
`"cloudflare_managed_headers.$dep"` => `"cloudflare_managed_transforms.$dep"`,
}
}
Expand Down
3 changes: 3 additions & 0 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
".": "5.1.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
configured_endpoints: 1508
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-bc8740036f5c85815dd08ce4d1787a79b09e8133dc24fcdf8c594aad2c5cc69d.yml
configured_endpoints: 1525
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-fc562128cab85cd116a8c4e1fe17a0f09a5019da2d1bbe162c476aa999932c4e.yml
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Changelog

## 5.1.0 (2025-02-13)

Full Changelog: [v5.0.0...v5.1.0](https://github.com/cloudflare/terraform-provider-cloudflare/compare/v5.0.0...v5.1.0)

### Features

* **api:** disable zero_trust_tunnel_cloudflared_token ([#5128](https://github.com/cloudflare/terraform-provider-cloudflare/issues/5128)) ([df2c3bc](https://github.com/cloudflare/terraform-provider-cloudflare/commit/df2c3bc059f35eddb7b91fef866df7c32165cf05))
* **api:** enable zero_trust_tunnel_cloudflared_token ([#5127](https://github.com/cloudflare/terraform-provider-cloudflare/issues/5127)) ([1bd200e](https://github.com/cloudflare/terraform-provider-cloudflare/commit/1bd200e88c78565c0ed879e64f8d91473f30e365))
* **grit:** add more support for dns_record attributes ([3dbe899](https://github.com/cloudflare/terraform-provider-cloudflare/commit/3dbe899a8084a14bb586da181318abe17c7f04ef))
* various codegen changes ([d91aee1](https://github.com/cloudflare/terraform-provider-cloudflare/commit/d91aee1ef6b403177eb2bdfb5c73a8a3d36b79c3))


### Bug Fixes

* **grit:** handle inner objects within the object for records ([e7b7bb1](https://github.com/cloudflare/terraform-provider-cloudflare/commit/e7b7bb1e4d4868b2c94304f9a14069eb5e2822b0))
* **grit:** handle inner objects within the object for records ([c9a5257](https://github.com/cloudflare/terraform-provider-cloudflare/commit/c9a5257d4abbf7f0920415b3ad087789dbfd61ab))
* **grit:** handle inner objects within the object for records ([ae22af5](https://github.com/cloudflare/terraform-provider-cloudflare/commit/ae22af5228a5b73e3193862c0eccc1325df94d79))
* **grit:** make pattern names consistent ([0b2ba12](https://github.com/cloudflare/terraform-provider-cloudflare/commit/0b2ba12bb261244c6e9bd24e4b6fa783f26bc0e7))
* update migration guide to use source, not stdlib ([9d208d6](https://github.com/cloudflare/terraform-provider-cloudflare/commit/9d208d6577f60940ec2bc1d6dcb181fcefbfdfac))
* use correct name for Grit patterns ([2f8d522](https://github.com/cloudflare/terraform-provider-cloudflare/commit/2f8d5220bc1c76003035c5af885883367bf06867))


### Documentation

* clean out previously set schema_versions ([fba939d](https://github.com/cloudflare/terraform-provider-cloudflare/commit/fba939df831ff60e451c2f50310eb626687bcdb8))
* handle cloudflare_record data migration ([9eb450b](https://github.com/cloudflare/terraform-provider-cloudflare/commit/9eb450bb6f146f49a3f6c9a8c73369d747e164f3))
* regenerate ([bbf53bf](https://github.com/cloudflare/terraform-provider-cloudflare/commit/bbf53bf80a550844e27097487bcc262fbd4d6516))
* update deprecation dates ([7a8b7d2](https://github.com/cloudflare/terraform-provider-cloudflare/commit/7a8b7d2424fe20a0c83e7a76b069d9b7c042f751))
* update page_rules migration guidance ([45e30b1](https://github.com/cloudflare/terraform-provider-cloudflare/commit/45e30b1ed3de447d54223d5479ca52fd8609db42))
62 changes: 62 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
## Setting up the environment

To set up the repository, run:

```sh
$ ./scripts/bootstrap
$ ./scripts/build
```

This will install all the required dependencies and build the Provider binary into the root directory.

You can also [install go 1.22+ manually](https://go.dev/doc/install).

## Running the Provider locally

You can build the provider locally and have your `.tf` files refer to the local build instead of the one in the Hashicorp registry.

First, build the provider binary:

```sh
$ ./scripts/build
```

Then edit (or create) your `~/.terraformrc` to look something like this:

```hcl
provider_installation {
dev_overrides {
"cloudflare/cloudflare" = "/local/path/to/this/repo"
}
direct {}
}
```

## Running tests

To execute the schema and unit tests, run:

```sh
$ ./scripts/test
```

Note that this does not run [acceptance tests](https://developer.hashicorp.com/terraform/plugin/framework/acctests) by default, because
those tests interact with real resources in the cloud and could incur fees.

To enable the running of acceptance tests, use the `TF_ACC` environment variable:

```sh
$ TF_ACC=1 ./scripts/test
```

## Formatting

This library uses the standard gofmt code formatter:

```sh
$ ./scripts/format
```

## Running Tests

To run schema tests,
21 changes: 18 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,35 @@ for non-Terraform or service specific information.

<!-- x-release-please-start-version -->

```
```hcl
# Declare the provider and version
terraform {
required_providers {
cloudflare = {
source = "cloudflare/cloudflare"
version = "~> 5"
version = "~> 5.0.0"
}
}
}
# Initialize the provider
provider "cloudflare" {
api_token = "Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY" # or set CLOUDFLARE_API_TOKEN env variable
}
# Configure a resource
resource "cloudflare_zone" "example_zone" {
account = {
id = "023e105f4ecef8ad9ca31a8372d0c353"
}
name = "example.com"
type = "full"
}
```

<!-- x-release-please-end -->

And initialize your project by running `terraform init`.
Initialize your project by running `terraform init` in the directory.

## Migrating to Terraform from using the Dashboard

Expand Down
24 changes: 24 additions & 0 deletions docs/data-sources/account_subscription.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,28 @@ data "cloudflare_account_subscription" "example_account_subscription" {

- `account_id` (String) Identifier

### Read-Only

- `currency` (String) The monetary unit in which pricing information is displayed.
- `current_period_end` (String) The end of the current period and also when the next billing is due.
- `current_period_start` (String) When the current billing period started. May match initial_period_start if this is the first period.
- `frequency` (String) How often the subscription is renewed automatically.
- `id` (String) Subscription identifier tag.
- `price` (Number) The price of the subscription that will be billed, in US dollars.
- `rate_plan` (Attributes) The rate plan applied to the subscription. (see [below for nested schema](#nestedatt--rate_plan))
- `state` (String) The state that the subscription is in.

<a id="nestedatt--rate_plan"></a>
### Nested Schema for `rate_plan`

Read-Only:

- `currency` (String) The currency applied to the rate plan subscription.
- `externally_managed` (Boolean) Whether this rate plan is managed externally from Cloudflare.
- `id` (String) The ID of the rate plan.
- `is_contract` (Boolean) Whether a rate plan is enterprise-based (or newly adopted term contract).
- `public_name` (String) The full name of the rate plan.
- `scope` (String) The scope that this rate plan applies to.
- `sets` (List of String) The list of sets this rate plan applies to.


Loading

0 comments on commit 9f4069d

Please sign in to comment.