mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
Merge pull request #152 from opentffoundation/opentf-website-placeholder
Change terraform website mentions and links to be placeholder
This commit is contained in:
commit
816c801fb2
@ -4,5 +4,5 @@
|
|||||||
url_docker_registry_dockerhub = "https://hub.docker.com/r/hashicorp/terraform"
|
url_docker_registry_dockerhub = "https://hub.docker.com/r/hashicorp/terraform"
|
||||||
url_docker_registry_ecr = "https://gallery.ecr.aws/hashicorp/terraform"
|
url_docker_registry_ecr = "https://gallery.ecr.aws/hashicorp/terraform"
|
||||||
url_license = "https://github.com/placeholderplaceholderplaceholder/opentf/blob/main/LICENSE"
|
url_license = "https://github.com/placeholderplaceholderplaceholder/opentf/blob/main/LICENSE"
|
||||||
url_project_website = "https://www.terraform.io"
|
url_project_website = "https://www.placeholderplaceholderplaceholder.io"
|
||||||
url_source_repository = "https://github.com/hashicorp/terraform"
|
url_source_repository = "https://github.com/hashicorp/terraform"
|
||||||
|
@ -4,7 +4,7 @@ This directory contains some documentation about the OpenTF Core codebase,
|
|||||||
aimed at readers who are interested in making code contributions.
|
aimed at readers who are interested in making code contributions.
|
||||||
|
|
||||||
If you're looking for information on _using_ OpenTF, please instead refer
|
If you're looking for information on _using_ OpenTF, please instead refer
|
||||||
to [the main OpenTF CLI documentation](https://www.terraform.io/docs/cli/index.html).
|
to [the main OpenTF CLI documentation](https://www.placeholderplaceholderplaceholder.io/docs/cli/index.html).
|
||||||
|
|
||||||
## OpenTF Core Architecture Documents
|
## OpenTF Core Architecture Documents
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ to [the main OpenTF CLI documentation](https://www.terraform.io/docs/cli/index.h
|
|||||||
SDK and so wish to conform to them.
|
SDK and so wish to conform to them.
|
||||||
|
|
||||||
(If you are planning to write a new provider using the _official_ SDK then
|
(If you are planning to write a new provider using the _official_ SDK then
|
||||||
please refer to [the Extend documentation](https://www.terraform.io/docs/extend/index.html)
|
please refer to [the Extend documentation](https://www.placeholderplaceholderplaceholder.io/docs/extend/index.html)
|
||||||
instead; it presents similar information from the perspective of the SDK
|
instead; it presents similar information from the perspective of the SDK
|
||||||
API, rather than the plugin wire protocol.)
|
API, rather than the plugin wire protocol.)
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ object that describes an action to be taken.
|
|||||||
An _operation_ consists of:
|
An _operation_ consists of:
|
||||||
|
|
||||||
* The action to be taken (e.g. "plan", "apply").
|
* The action to be taken (e.g. "plan", "apply").
|
||||||
* The name of the [workspace](https://www.terraform.io/docs/state/workspaces.html)
|
* The name of the [workspace](https://www.placeholderplaceholderplaceholder.io/docs/state/workspaces.html)
|
||||||
where the action will be taken.
|
where the action will be taken.
|
||||||
* Root module input variables to use for the action.
|
* Root module input variables to use for the action.
|
||||||
* For the "plan" operation, a path to the directory containing the configuration's root module.
|
* For the "plan" operation, a path to the directory containing the configuration's root module.
|
||||||
@ -50,7 +50,7 @@ An _operation_ consists of:
|
|||||||
"force" flag, etc.
|
"force" flag, etc.
|
||||||
|
|
||||||
The operation is then passed to the currently-selected
|
The operation is then passed to the currently-selected
|
||||||
[backend](https://www.terraform.io/docs/backends/index.html). Each backend name
|
[backend](https://www.placeholderplaceholderplaceholder.io/docs/backends/index.html). Each backend name
|
||||||
corresponds to an implementation of
|
corresponds to an implementation of
|
||||||
[`backend.Backend`](https://pkg.go.dev/github.com/placeholderplaceholderplaceholder/opentf/internal/backend#Backend), using a
|
[`backend.Backend`](https://pkg.go.dev/github.com/placeholderplaceholderplaceholder/opentf/internal/backend#Backend), using a
|
||||||
mapping table in
|
mapping table in
|
||||||
@ -129,7 +129,7 @@ allowing OpenTF to interpret them at a more appropriate time.
|
|||||||
## State Manager
|
## State Manager
|
||||||
|
|
||||||
A _state manager_ is responsible for storing and retrieving snapshots of the
|
A _state manager_ is responsible for storing and retrieving snapshots of the
|
||||||
[OpenTF state](https://www.terraform.io/docs/language/state/index.html)
|
[OpenTF state](https://www.placeholderplaceholderplaceholder.io/docs/language/state/index.html)
|
||||||
for a particular workspace. Each manager is an implementation of
|
for a particular workspace. Each manager is an implementation of
|
||||||
some combination of interfaces in
|
some combination of interfaces in
|
||||||
[the `statemgr` package](https://pkg.go.dev/github.com/placeholderplaceholderplaceholder/opentf/internal/states/statemgr),
|
[the `statemgr` package](https://pkg.go.dev/github.com/placeholderplaceholderplaceholder/opentf/internal/states/statemgr),
|
||||||
@ -145,7 +145,7 @@ The implementation
|
|||||||
[`statemgr.Filesystem`](https://pkg.go.dev/github.com/placeholderplaceholderplaceholder/opentf/internal/states/statemgr#Filesystem) is used
|
[`statemgr.Filesystem`](https://pkg.go.dev/github.com/placeholderplaceholderplaceholder/opentf/internal/states/statemgr#Filesystem) is used
|
||||||
by default (by the `local` backend) and is responsible for the familiar
|
by default (by the `local` backend) and is responsible for the familiar
|
||||||
`terraform.tfstate` local file that most OpenTF users start with, before
|
`terraform.tfstate` local file that most OpenTF users start with, before
|
||||||
they switch to [remote state](https://www.terraform.io/docs/language/state/remote.html).
|
they switch to [remote state](https://www.placeholderplaceholderplaceholder.io/docs/language/state/remote.html).
|
||||||
Other implementations of `statemgr.Full` are used to implement remote state.
|
Other implementations of `statemgr.Full` are used to implement remote state.
|
||||||
Each of these saves and retrieves state via a remote network service
|
Each of these saves and retrieves state via a remote network service
|
||||||
appropriate to the backend that creates it.
|
appropriate to the backend that creates it.
|
||||||
@ -206,7 +206,7 @@ important examples include:
|
|||||||
* [`ProviderTransformer`](https://pkg.go.dev/github.com/placeholderplaceholderplaceholder/opentf/internal/terraform#ProviderTransformer),
|
* [`ProviderTransformer`](https://pkg.go.dev/github.com/placeholderplaceholderplaceholder/opentf/internal/terraform#ProviderTransformer),
|
||||||
which associates each resource or resource instance with exactly one
|
which associates each resource or resource instance with exactly one
|
||||||
provider configuration (implementing
|
provider configuration (implementing
|
||||||
[the inheritance rules](https://www.terraform.io/docs/language/modules/develop/providers.html))
|
[the inheritance rules](https://www.placeholderplaceholderplaceholder.io/docs/language/modules/develop/providers.html))
|
||||||
and then creates "happens after" edges to ensure that the providers are
|
and then creates "happens after" edges to ensure that the providers are
|
||||||
initialized before taking any actions with the resources that belong to
|
initialized before taking any actions with the resources that belong to
|
||||||
them.
|
them.
|
||||||
|
@ -20,7 +20,7 @@ their behaviors in a way comparable to the resource instance behaviors.
|
|||||||
|
|
||||||
This is developer-oriented documentation rather than user-oriented
|
This is developer-oriented documentation rather than user-oriented
|
||||||
documentation. See
|
documentation. See
|
||||||
[the main OpenTF documentation](https://www.terraform.io/docs) for
|
[the main OpenTF documentation](https://www.placeholderplaceholderplaceholder.io/docs) for
|
||||||
information on existing planning behaviors and other behaviors as viewed from
|
information on existing planning behaviors and other behaviors as viewed from
|
||||||
an end-user perspective.
|
an end-user perspective.
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ the SDK's API.
|
|||||||
----
|
----
|
||||||
|
|
||||||
**If you want to write a plugin for OpenTF, please refer to
|
**If you want to write a plugin for OpenTF, please refer to
|
||||||
[Extending OpenTF](https://www.terraform.io/docs/extend/index.html) instead.**
|
[Extending OpenTF](https://www.placeholderplaceholderplaceholder.io/docs/extend/index.html) instead.**
|
||||||
|
|
||||||
This documentation is for those who are developing _OpenTF SDKs_, rather
|
This documentation is for those who are developing _OpenTF SDKs_, rather
|
||||||
than those implementing plugins.
|
than those implementing plugins.
|
||||||
|
@ -63,7 +63,7 @@ The key-value pairs representing nested block types have values based on
|
|||||||
The MessagePack serialization of an attribute value depends on the value of the
|
The MessagePack serialization of an attribute value depends on the value of the
|
||||||
`type` field of the corresponding `Schema.Attribute` message. The `type` field is
|
`type` field of the corresponding `Schema.Attribute` message. The `type` field is
|
||||||
a compact JSON serialization of a
|
a compact JSON serialization of a
|
||||||
[OpenTF type constraint](https://www.terraform.io/docs/configuration/types.html),
|
[OpenTF type constraint](https://www.placeholderplaceholderplaceholder.io/docs/configuration/types.html),
|
||||||
which consists either of a single
|
which consists either of a single
|
||||||
string value (for primitive types) or a two-element array giving a type kind
|
string value (for primitive types) or a two-element array giving a type kind
|
||||||
and a type argument.
|
and a type argument.
|
||||||
@ -212,7 +212,7 @@ The properties representing nested block types have property values based on
|
|||||||
The JSON serialization of an attribute value depends on the value of the `type`
|
The JSON serialization of an attribute value depends on the value of the `type`
|
||||||
field of the corresponding `Schema.Attribute` message. The `type` field is
|
field of the corresponding `Schema.Attribute` message. The `type` field is
|
||||||
a compact JSON serialization of a
|
a compact JSON serialization of a
|
||||||
[OpenTF type constraint](https://www.terraform.io/docs/configuration/types.html),
|
[OpenTF type constraint](https://www.placeholderplaceholderplaceholder.io/docs/configuration/types.html),
|
||||||
which consists either of a single
|
which consists either of a single
|
||||||
string value (for primitive types) or a two-element array giving a type kind
|
string value (for primitive types) or a two-element array giving a type kind
|
||||||
and a type argument.
|
and a type argument.
|
||||||
|
@ -379,7 +379,7 @@ func (b *Backend) Configure(obj cty.Value) tfdiags.Diagnostics {
|
|||||||
AssumeRoleExternalID: stringAttr(obj, "external_id"),
|
AssumeRoleExternalID: stringAttr(obj, "external_id"),
|
||||||
AssumeRolePolicy: stringAttr(obj, "assume_role_policy"),
|
AssumeRolePolicy: stringAttr(obj, "assume_role_policy"),
|
||||||
AssumeRoleSessionName: stringAttr(obj, "session_name"),
|
AssumeRoleSessionName: stringAttr(obj, "session_name"),
|
||||||
CallerDocumentationURL: "https://www.terraform.io/docs/language/settings/backends/s3.html",
|
CallerDocumentationURL: "https://www.placeholderplaceholderplaceholder.io/docs/language/settings/backends/s3.html",
|
||||||
CallerName: "S3 Backend",
|
CallerName: "S3 Backend",
|
||||||
CredsFilename: stringAttr(obj, "shared_credentials_file"),
|
CredsFilename: stringAttr(obj, "shared_credentials_file"),
|
||||||
DebugLogging: logging.IsDebugOrHigher(),
|
DebugLogging: logging.IsDebugOrHigher(),
|
||||||
|
@ -16,7 +16,7 @@ import (
|
|||||||
|
|
||||||
// The tests in this file run through different scenarios recommended in our
|
// The tests in this file run through different scenarios recommended in our
|
||||||
// "Running Terraform in Automation" guide:
|
// "Running Terraform in Automation" guide:
|
||||||
// https://www.terraform.io/guides/running-terraform-in-automation.html
|
// https://www.placeholderplaceholderplaceholder.io/guides/running-terraform-in-automation.html
|
||||||
|
|
||||||
// TestPlanApplyInAutomation runs through the "main case" of init, plan, apply
|
// TestPlanApplyInAutomation runs through the "main case" of init, plan, apply
|
||||||
// using the specific command line options suggested in the guide.
|
// using the specific command line options suggested in the guide.
|
||||||
|
@ -345,7 +345,7 @@ func (c *ImportCommand) Synopsis() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const importCommandInvalidAddressReference = `For information on valid syntax, see:
|
const importCommandInvalidAddressReference = `For information on valid syntax, see:
|
||||||
https://www.terraform.io/docs/cli/state/resource-addressing.html`
|
https://www.placeholderplaceholderplaceholder.io/docs/cli/state/resource-addressing.html`
|
||||||
|
|
||||||
const importCommandMissingResourceFmt = `[reset][bold][red]Error:[reset][bold] resource address %q does not exist in the configuration.[reset]
|
const importCommandMissingResourceFmt = `[reset][bold][red]Error:[reset][bold] resource address %q does not exist in the configuration.[reset]
|
||||||
|
|
||||||
|
@ -864,7 +864,7 @@ func (c *InitCommand) getProviders(ctx context.Context, config *configs.Config,
|
|||||||
if thirdPartySigned {
|
if thirdPartySigned {
|
||||||
c.Ui.Info(fmt.Sprintf("\nPartner and community providers are signed by their developers.\n" +
|
c.Ui.Info(fmt.Sprintf("\nPartner and community providers are signed by their developers.\n" +
|
||||||
"If you'd like to know more about provider signing, you can read about it here:\n" +
|
"If you'd like to know more about provider signing, you can read about it here:\n" +
|
||||||
"https://www.terraform.io/docs/cli/plugins/signing.html"))
|
"https://www.placeholderplaceholderplaceholder.io/docs/cli/plugins/signing.html"))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -984,7 +984,7 @@ the error above and try again.
|
|||||||
const errTFCMigrateNotYetImplemented = `
|
const errTFCMigrateNotYetImplemented = `
|
||||||
Migrating state from Terraform Cloud to another backend is not yet implemented.
|
Migrating state from Terraform Cloud to another backend is not yet implemented.
|
||||||
|
|
||||||
Please use the API to do this: https://www.terraform.io/docs/cloud/api/state-versions.html
|
Please use the API to do this: https://www.placeholderplaceholderplaceholder.io/docs/cloud/api/state-versions.html
|
||||||
`
|
`
|
||||||
|
|
||||||
const errInteractiveInputDisabled = `
|
const errInteractiveInputDisabled = `
|
||||||
@ -1007,7 +1007,7 @@ configuration (e.g. production, staging, development), Terraform Cloud workspace
|
|||||||
across all configurations used within an organization. A typical strategy to start with is
|
across all configurations used within an organization. A typical strategy to start with is
|
||||||
<COMPONENT>-<ENVIRONMENT>-<REGION> (e.g. networking-prod-us-east, networking-staging-us-east).
|
<COMPONENT>-<ENVIRONMENT>-<REGION> (e.g. networking-prod-us-east, networking-staging-us-east).
|
||||||
|
|
||||||
For more information on workspace naming, see https://www.terraform.io/docs/cloud/workspaces/naming.html
|
For more information on workspace naming, see https://www.placeholderplaceholderplaceholder.io/docs/cloud/workspaces/naming.html
|
||||||
|
|
||||||
When migrating existing workspaces from the backend %[1]q to Terraform Cloud, would you like to
|
When migrating existing workspaces from the backend %[1]q to Terraform Cloud, would you like to
|
||||||
rename your workspaces? Enter 1 or 2.
|
rename your workspaces? Enter 1 or 2.
|
||||||
|
@ -30,15 +30,6 @@ type VersionOutput struct {
|
|||||||
ProviderSelections map[string]string `json:"provider_selections"`
|
ProviderSelections map[string]string `json:"provider_selections"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// VersionCheckInfo is the return value for the VersionCheckFunc callback
|
|
||||||
// and tells the Version command information about the latest version
|
|
||||||
// of Terraform.
|
|
||||||
type VersionCheckInfo struct {
|
|
||||||
Outdated bool
|
|
||||||
Latest string
|
|
||||||
Alerts []string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *VersionCommand) Help() string {
|
func (c *VersionCommand) Help() string {
|
||||||
helpText := `
|
helpText := `
|
||||||
Usage: opentf [global options] version [options]
|
Usage: opentf [global options] version [options]
|
||||||
@ -53,8 +44,6 @@ Options:
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *VersionCommand) Run(args []string) int {
|
func (c *VersionCommand) Run(args []string) int {
|
||||||
var outdated bool
|
|
||||||
var latest string
|
|
||||||
var versionString bytes.Buffer
|
var versionString bytes.Buffer
|
||||||
args = c.Meta.process(args)
|
args = c.Meta.process(args)
|
||||||
var jsonOutput bool
|
var jsonOutput bool
|
||||||
@ -136,13 +125,6 @@ func (c *VersionCommand) Run(args []string) int {
|
|||||||
c.Ui.Output(str)
|
c.Ui.Output(str)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if outdated {
|
|
||||||
c.Ui.Output(fmt.Sprintf(
|
|
||||||
"\nYour version of OpenTF is out of date! The latest version\n"+
|
|
||||||
"is %s. You can update by downloading from https://www.terraform.io/downloads.html",
|
|
||||||
latest))
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
@ -96,7 +96,7 @@ func (r *ResourceAddress) String() string {
|
|||||||
// HasResourceSpec returns true if the address has a resource spec, as
|
// HasResourceSpec returns true if the address has a resource spec, as
|
||||||
// defined in the documentation:
|
// defined in the documentation:
|
||||||
//
|
//
|
||||||
// https://www.terraform.io/docs/cli/state/resource-addressing.html
|
// https://www.placeholderplaceholderplaceholder.io/docs/cli/state/resource-addressing.html
|
||||||
//
|
//
|
||||||
// In particular, this returns false if the address contains only
|
// In particular, this returns false if the address contains only
|
||||||
// a module path, thus addressing the entire module.
|
// a module path, thus addressing the entire module.
|
||||||
|
@ -2018,7 +2018,7 @@ func TestEnsureProviderVersions(t *testing.T) {
|
|||||||
beepProvider: getproviders.MustParseVersionConstraints(">= 1.0.0"),
|
beepProvider: getproviders.MustParseVersionConstraints(">= 1.0.0"),
|
||||||
},
|
},
|
||||||
WantErr: `some providers could not be installed:
|
WantErr: `some providers could not be installed:
|
||||||
- example.com/foo/beep: the local package for example.com/foo/beep 1.0.0 doesn't match any of the checksums previously recorded in the dependency lock file (this might be because the available checksums are for packages targeting different platforms); for more information: https://www.terraform.io/language/provider-checksum-verification`,
|
- example.com/foo/beep: the local package for example.com/foo/beep 1.0.0 doesn't match any of the checksums previously recorded in the dependency lock file (this might be because the available checksums are for packages targeting different platforms); for more information: https://www.placeholderplaceholderplaceholder.io/language/provider-checksum-verification`,
|
||||||
WantEvents: func(inst *Installer, dir *Dir) map[addrs.Provider][]*testInstallerEventLogItem {
|
WantEvents: func(inst *Installer, dir *Dir) map[addrs.Provider][]*testInstallerEventLogItem {
|
||||||
return map[addrs.Provider][]*testInstallerEventLogItem{
|
return map[addrs.Provider][]*testInstallerEventLogItem{
|
||||||
noProvider: {
|
noProvider: {
|
||||||
@ -2064,7 +2064,7 @@ func TestEnsureProviderVersions(t *testing.T) {
|
|||||||
Error string
|
Error string
|
||||||
}{
|
}{
|
||||||
"1.0.0",
|
"1.0.0",
|
||||||
`the local package for example.com/foo/beep 1.0.0 doesn't match any of the checksums previously recorded in the dependency lock file (this might be because the available checksums are for packages targeting different platforms); for more information: https://www.terraform.io/language/provider-checksum-verification`,
|
`the local package for example.com/foo/beep 1.0.0 doesn't match any of the checksums previously recorded in the dependency lock file (this might be because the available checksums are for packages targeting different platforms); for more information: https://www.placeholderplaceholderplaceholder.io/language/provider-checksum-verification`,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -120,7 +120,7 @@ func installFromLocalArchive(ctx context.Context, meta getproviders.PackageMeta,
|
|||||||
)
|
)
|
||||||
} else if !matches {
|
} else if !matches {
|
||||||
return authResult, fmt.Errorf(
|
return authResult, fmt.Errorf(
|
||||||
"the current package for %s %s doesn't match any of the checksums previously recorded in the dependency lock file; for more information: https://www.terraform.io/language/provider-checksum-verification",
|
"the current package for %s %s doesn't match any of the checksums previously recorded in the dependency lock file; for more information: https://www.placeholderplaceholderplaceholder.io/language/provider-checksum-verification",
|
||||||
meta.Provider, meta.Version,
|
meta.Provider, meta.Version,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -210,7 +210,7 @@ func installFromLocalDir(ctx context.Context, meta getproviders.PackageMeta, tar
|
|||||||
)
|
)
|
||||||
} else if !matches {
|
} else if !matches {
|
||||||
return authResult, fmt.Errorf(
|
return authResult, fmt.Errorf(
|
||||||
"the local package for %s %s doesn't match any of the checksums previously recorded in the dependency lock file (this might be because the available checksums are for packages targeting different platforms); for more information: https://www.terraform.io/language/provider-checksum-verification",
|
"the local package for %s %s doesn't match any of the checksums previously recorded in the dependency lock file (this might be because the available checksums are for packages targeting different platforms); for more information: https://www.placeholderplaceholderplaceholder.io/language/provider-checksum-verification",
|
||||||
meta.Provider, meta.Version,
|
meta.Provider, meta.Version,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Terraform Documentation
|
# Terraform Documentation
|
||||||
|
|
||||||
This directory contains the portions of [the Terraform website](https://www.terraform.io/) that pertain to the core functionality, excluding providers and the overall configuration.
|
This directory contains the portions of [the Terraform website](https://www.placeholderplaceholderplaceholder.io/) that pertain to the core functionality, excluding providers and the overall configuration.
|
||||||
|
|
||||||
The website uses the files in this directory in conjunction with
|
The website uses the files in this directory in conjunction with
|
||||||
[the `terraform-website` repository](https://github.com/hashicorp/terraform-website). The `terraform-website` repository brings all of the documentation together and contains the scripts for testing and building the entire site.
|
[the `terraform-website` repository](https://github.com/hashicorp/terraform-website). The `terraform-website` repository brings all of the documentation together and contains the scripts for testing and building the entire site.
|
||||||
|
@ -22,13 +22,13 @@ The following example loads the Terraform website and validates that it returns
|
|||||||
|
|
||||||
```hcl
|
```hcl
|
||||||
check "health_check" {
|
check "health_check" {
|
||||||
data "http" "terraform_io" {
|
data "http" "placeholderplaceholderplaceholder_io" {
|
||||||
url = "https://www.terraform.io"
|
url = "https://www.placeholderplaceholderplaceholder.io"
|
||||||
}
|
}
|
||||||
|
|
||||||
assert {
|
assert {
|
||||||
condition = data.http.terraform_io.status_code == 200
|
condition = data.http.placeholderplaceholderplaceholder_io.status_code == 200
|
||||||
error_message = "${data.http.terraform_io.url} returned an unhealthy status code"
|
error_message = "${data.http.placeholderplaceholderplaceholder_io.url} returned an unhealthy status code"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -39,7 +39,7 @@ You can use any data source from any provider as a scoped data source within a `
|
|||||||
|
|
||||||
A `check` block can optionally contain a nested (a.k.a. scoped) data source. This `data` block behaves like an external [data source](/terraform/language/data-sources), except you can not reference it outside its enclosing `check` block. Additionally, if a scoped data source's provider raises any errors, they are masked as warnings and do not prevent Terraform from continuing operation execution.
|
A `check` block can optionally contain a nested (a.k.a. scoped) data source. This `data` block behaves like an external [data source](/terraform/language/data-sources), except you can not reference it outside its enclosing `check` block. Additionally, if a scoped data source's provider raises any errors, they are masked as warnings and do not prevent Terraform from continuing operation execution.
|
||||||
|
|
||||||
You can use a scoped data source to validate the status of a piece of infrastructure outside of the usual Terraform resource lifecycle. [In the above example](#checks-syntax), if the `terraform_io` data source fails to load, you receive a warning instead of a blocking error, which would occur if you declared this data source outside of a `check` block.
|
You can use a scoped data source to validate the status of a piece of infrastructure outside of the usual Terraform resource lifecycle. [In the above example](#checks-syntax), if the `placeholderplaceholderplaceholder_io` data source fails to load, you receive a warning instead of a blocking error, which would occur if you declared this data source outside of a `check` block.
|
||||||
|
|
||||||
#### Meta-Arguments
|
#### Meta-Arguments
|
||||||
|
|
||||||
@ -100,8 +100,8 @@ You can often use postconditions interchangeably with check blocks to validate r
|
|||||||
For example, you can [rewrite the above `check` block example](#checks-syntax) to use a postcondition instead. The below code uses a `postcondition` block to validate that the Terraform website returns the expected status code of `200`.
|
For example, you can [rewrite the above `check` block example](#checks-syntax) to use a postcondition instead. The below code uses a `postcondition` block to validate that the Terraform website returns the expected status code of `200`.
|
||||||
|
|
||||||
```hcl
|
```hcl
|
||||||
data "http" "terraform_io" {
|
data "http" "placeholderplaceholderplaceholder_io" {
|
||||||
url = "https://www.terraform.io"
|
url = "https://www.placeholderplaceholderplaceholder.io"
|
||||||
|
|
||||||
lifecycle {
|
lifecycle {
|
||||||
postcondition {
|
postcondition {
|
||||||
|
@ -221,13 +221,13 @@ The following example uses a check block with an assertion to verify the Terrafo
|
|||||||
|
|
||||||
```hcl
|
```hcl
|
||||||
check "health_check" {
|
check "health_check" {
|
||||||
data "http" "terraform_io" {
|
data "http" "placeholderplaceholderplaceholder_io" {
|
||||||
url = "https://www.terraform.io"
|
url = "https://www.placeholderplaceholderplaceholder.io"
|
||||||
}
|
}
|
||||||
|
|
||||||
assert {
|
assert {
|
||||||
condition = data.http.terraform_io.status_code == 200
|
condition = data.http.placeholderplaceholderplaceholder_io.status_code == 200
|
||||||
error_message = "${data.http.terraform_io.url} returned an unhealthy status code"
|
error_message = "${data.http.placeholderplaceholderplaceholder_io.url} returned an unhealthy status code"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -36,13 +36,13 @@ The `plantimestamp` function is not available within the Terraform console.
|
|||||||
```
|
```
|
||||||
|
|
||||||
```terraform
|
```terraform
|
||||||
check "terraform_io_certificate" {
|
check "placeholderplaceholderplaceholder_io_certificate" {
|
||||||
data "tls_certificate" "terraform_io" {
|
data "tls_certificate" "placeholderplaceholderplaceholder_io" {
|
||||||
url = "https://www.terraform.io/"
|
url = "https://www.placeholderplaceholderplaceholder.io/"
|
||||||
}
|
}
|
||||||
|
|
||||||
assert {
|
assert {
|
||||||
condition = timecmp(plantimestamp(), data.tls_certificate.terraform_io.certificates[0].not_after) < 0
|
condition = timecmp(plantimestamp(), data.tls_certificate.placeholderplaceholderplaceholder_io.certificates[0].not_after) < 0
|
||||||
error_message = "terraform.io certificate has expired"
|
error_message = "terraform.io certificate has expired"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,10 +40,10 @@ Use the namespace keywords where possible, to make the intent more obvious to
|
|||||||
a future reader:
|
a future reader:
|
||||||
|
|
||||||
```
|
```
|
||||||
> uuidv5("dns", "www.terraform.io")
|
> uuidv5("dns", "www.placeholderplaceholderplaceholder.io")
|
||||||
a5008fae-b28c-5ba5-96cd-82b4c53552d6
|
a5008fae-b28c-5ba5-96cd-82b4c53552d6
|
||||||
|
|
||||||
> uuidv5("url", "https://www.terraform.io/")
|
> uuidv5("url", "https://www.placeholderplaceholderplaceholder.io/")
|
||||||
9db6f67c-dd95-5ea0-aa5b-e70e5c5f7cf5
|
9db6f67c-dd95-5ea0-aa5b-e70e5c5f7cf5
|
||||||
|
|
||||||
> uuidv5("oid", "1.3.6.1.4")
|
> uuidv5("oid", "1.3.6.1.4")
|
||||||
@ -58,7 +58,7 @@ UUIDs, and in some special cases it may be more appropriate to use the
|
|||||||
UUID form:
|
UUID form:
|
||||||
|
|
||||||
```
|
```
|
||||||
> uuidv5("6ba7b810-9dad-11d1-80b4-00c04fd430c8", "www.terraform.io")
|
> uuidv5("6ba7b810-9dad-11d1-80b4-00c04fd430c8", "www.placeholderplaceholderplaceholder.io")
|
||||||
a5008fae-b28c-5ba5-96cd-82b4c53552d6
|
a5008fae-b28c-5ba5-96cd-82b4c53552d6
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user