> For the complete documentation index, see [llms.txt](https://docs.sonarsource.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sonarsource.com/sonarqube-server/9.9/analyzing-source-code/languages/terraform-cloudformation-kubernetes-docker.md).

# Terraform/CloudFormation/Kubernetes/Docker

SonarQube Server 9.9 can analyze Infrastructure-as-Code (IaC) languages such as CloudFormation, Kubernetes, and Terraform.

{% hint style="info" %}
**For AI agents:** You're in the SonarQube Server 9.9 documentation. For a list of all 9.9 pages, see the [SonarQube Server 9.9 page index](https://152261287-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBmptmznn7RpPe5u7vdup%2Fuploads%2F7O6jgZAiehDGe0FMXDaC%2Fsonarqube-server-9.9-llms.txt?alt=media). For the whole site, see the [page index](https://docs.sonarsource.com/llms.txt) or the [full text](https://docs.sonarsource.com/llms-full.txt). For another version, replace 9.9 in the URL with that version. The [latest version](https://docs.sonarsource.com/sonarqube-server/) has no version number in its URL.
{% endhint %}

## Language-specific properties <a href="#language-specific-properties" id="language-specific-properties"></a>

Discover and update the Terraform [Analysis parameters](/sonarqube-server/9.9/analyzing-source-code/analysis-parameters.md) in **Administration > General Settings > Languages > Terraform**

Discover and update the CloudFormation [Analysis parameters](/sonarqube-server/9.9/analyzing-source-code/analysis-parameters.md) in **Administration > General Settings > Languages > CloudFormation**

Discover and update the Kubernetes [Analysis parameters](/sonarqube-server/9.9/analyzing-source-code/analysis-parameters.md) in **Administration > General Settings > Languages > Kubernetes**

Discover and update the Docker [Analysis parameters](/sonarqube-server/9.9/analyzing-source-code/analysis-parameters.md) in **Administration > General Settings > Languages > Docker**

## Supported versions <a href="#supported-versions" id="supported-versions"></a>

* Terraform 1.x (HCL format only)
* CloudFormation with AWSTemplateFormatVersion 2010-09-09 (YAML and JSON)
* Kubernetes (YAML)
* AWS, Azure and GCP

### Terraform provider versions <a href="#terraform-provider-versions" id="terraform-provider-versions"></a>

The respective Terraform providers are frequently updated. New resources, properties and default values are added. At the same time, others are deprecated or dropped. For this reason, the Terraform analysis is defensive by default: some issues will be automatically silenced to avoid raising false positives. In order to get a more precise analysis you can specify the provider versions your code supports via a parameter.

**AWS**: `sonar.terraform.provider.aws.version`\
**Azure**: `sonar.terraform.provider.azure.version`\
**GCP**: For Google Cloud Platform, no versions are currently considered in the analysis.

Accepted are versions having the format: `X.Y.Z`, `X.Y` or `X`

Examples:

* `sonar.terraform.provider.aws.version=1.93.4`
* `sonar.terraform.provider.aws.version=3.4`
* `sonar.terraform.provider.aws.version=4`

## Dockerfiles <a href="#dockerfiles" id="dockerfiles"></a>

**No NoSonar Support:**

Trailing comments are not permitted in Dockerfiles. For this reason, our Dockerfile parser does not support NOSONAR comments to suppress issues. Issues and hotspots must be reviewed in the UI.

**Missing Uniform Filename Convention:**

Dockerfiles can have all kinds of names and do not need a file extension. For this reason, it is difficult for the scanner and the analyzer to recognize all Dockerfiles. By default, all files named Dockerfile, Dockerfile.\*, or \*.dockerfile are considered Dockerfiles. If other conventions apply, these can be specified via the scanner property sonar.lang.patterns.docker.

## Related pages <a href="#related-pages" id="related-pages"></a>

For CloudFormation you can import `cfn-lint` reports. See **Administration > General Settings > External Analyzers** for more information


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.sonarsource.com/sonarqube-server/9.9/analyzing-source-code/languages/terraform-cloudformation-kubernetes-docker.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
