Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update GCP Service Extensions documentation #28511

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

e-n-0
Copy link
Member

@e-n-0 e-n-0 commented Apr 1, 2025

What does this PR do? What is the motivation?

  • Add a new tab for installation with Terraform scripts
  • Rework categories (specially environment variable configuration)
  • Reword for better understandability
  • Add a note about opened ports

Merge instructions

Merge readiness:

  • Ready for merge

For Datadog employees:
Merge queue is enabled in this repo. Your branch name MUST follow the <name>/<description> convention and include the forward slash (/). Without this format, your pull request will not pass in CI, the GitLab pipeline will not run, and you won't get a branch preview. Getting a branch preview makes it easier for us to check any issues with your PR, such as broken links.

If your branch doesn't follow this format, rename it or create a new branch and PR.

To have your PR automatically merged after it receives the required reviews, add the following PR comment:

/merge

Additional notes

Copy link
Contributor

github-actions bot commented Apr 1, 2025

@e-n-0 e-n-0 force-pushed the flavien/gcp-se-terraform-doc branch 2 times, most recently from 51e650d to 93dc471 Compare April 2, 2025 14:35
@e-n-0 e-n-0 force-pushed the flavien/gcp-se-terraform-doc branch from 93dc471 to 9a44642 Compare April 3, 2025 11:45
@e-n-0 e-n-0 marked this pull request as ready for review April 3, 2025 12:02
@e-n-0 e-n-0 requested a review from a team as a code owner April 3, 2025 12:02
@estherk15 estherk15 added the editorial review Waiting on a more in-depth review label Apr 3, 2025
@estherk15
Copy link
Contributor

Created an Editorial Review card for documentation! https://datadoghq.atlassian.net/browse/DOCS-10554

Copy link
Contributor

@domalessi domalessi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@e-n-0 Did a first pass and left come feedback and suggestions. Give that a read-through and let me know if you have any questions. Also let me know when you'd like me to take a second look!

Comment on lines +31 to +35
- The [Datadog Agent][1] installed and configured for your application's operating system or container, cloud, or virtual environment.
- [Configured the Agent with Remote Configuration][2] to enable blocking attackers using the Datadog UI.
- In your GCP project, either the project `owner` or `editor` role, or the relevant Compute Engine IAM roles: `compute.instanceAdmin.v1` (to create instances) and `compute.networkAdmin` (to set up load balancing).
- A GCP project with a Cloud Load Balancer configured for your services. Your Cloud Load Balancer must be one of the [Application Load Balancers that supports Traffic Callouts][3].
- The Compute Engine API and Network Services API enabled:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- The [Datadog Agent][1] installed and configured for your application's operating system or container, cloud, or virtual environment.
- [Configured the Agent with Remote Configuration][2] to enable blocking attackers using the Datadog UI.
- In your GCP project, either the project `owner` or `editor` role, or the relevant Compute Engine IAM roles: `compute.instanceAdmin.v1` (to create instances) and `compute.networkAdmin` (to set up load balancing).
- A GCP project with a Cloud Load Balancer configured for your services. Your Cloud Load Balancer must be one of the [Application Load Balancers that supports Traffic Callouts][3].
- The Compute Engine API and Network Services API enabled:
- Installed and configured the [Datadog Agent][1] for your application's operating system or container, cloud, or virtual environment.
- [Configured Remote Configuration on the Agent][2] to enable blocking attackers through the Datadog UI.
- One of the following roles in your GCP project:
- `owner`
- `editor`
- both of the following Compute Engine IAM roles: `compute.instanceAdmin.v1` (to create instances) and `compute.networkAdmin` (to set up load balancing)
- A GCP project with a Cloud Load Balancer configured for your services. The Cloud Load Balancer must be one of the [Application Load Balancers that supports Traffic Callouts][3].
- Enabled the Compute Engine API and Network Services API:


To integrate a Service Extension with ASM, do the following:
To set up the ASM Service Extension in your GCP environment, follow the instructions by either using the Google Cloud Console or Terraform scripts.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To set up the ASM Service Extension in your GCP environment, follow the instructions by either using the Google Cloud Console or Terraform scripts.
To set up the ASM Service Extension in your GCP environment, use the Google Cloud Console or Terraform scripts and complete the following steps.


1. **Create a new VM Compute instance** using the Datadog Service Extensions Docker image. The image is available on the [Datadog Go tracer GitHub Registry][6].
**Note**: Google Cloud provides guides to create [a callout backend service][4]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@e-n-0 I'm a little confused about the purpose and placement note. Can you clarify the motivation/goal of this line and why it's relevant to users here? It's not clear whether users need to reference these as prerequisites for the setup steps, or if they're just included for additional context. Wondering if this might be better framed or moved depending on its relevance to the instructions below.

|----------------------------------------|---------------|-----------------------------------------------------------------------|
| `DD_AGENT_HOST` | `localhost` | Hostname where your Datadog Agent is running. |
| `DD_TRACE_AGENT_PORT` | `8126` | Port of the Datadog Agent for trace collection. |
To integrate a Service Extension with ASM using the Google Cloud Console, complete the following steps:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already have an intro line to this effect above the start of the tabs, so this is redundant.

Suggested change
To integrate a Service Extension with ASM using the Google Cloud Console, complete the following steps:


2. **Add the VM to an unmanaged instance group.**
1. **Create a VM Compute instance** using the Datadog ASM Service Extensions Docker image. The image is available on the [Datadog Go tracer GitHub Registry][1].
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We typically don't bold step titles like this. I think the numbering should be enough of a visual aid for users!

Suggested change
1. **Create a VM Compute instance** using the Datadog ASM Service Extensions Docker image. The image is available on the [Datadog Go tracer GitHub Registry][1].
1. Create a VM Compute instance using the [Datadog ASM Service Extensions Docker image][1].

mkdir gcp-asm-service-extension && cd gcp-asm-service-extension
touch main.tf variables.tf
```

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's add small lead-in phrases to describe what these files are.

}
}
```

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here - some small phrase to lead into the block of text to help orient the user.

This will be easier to parse then trying to make sense of three large, consecutive blocks of code.

Comment on lines +404 to +405
##### Module configuration
Insert into your terraform project the module created in the previous step.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
##### Module configuration
Insert into your terraform project the module created in the previous step.
##### 2. Module configuration
Insert into your Terraform project the module created in the previous step.

}
```

#### 2. Initialize and apply the Terraform configuration
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#### 2. Initialize and apply the Terraform configuration
#### 3. Initialize and apply the Terraform configuration


The service extension automatically inspects all traffic passing through your load balancer for security threats.

{{% appsec-getstarted-2-plusrisk %}}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a header before going into this content? It's a lot of text and it's not clearly distinguishable from the configuration steps above. Is this considered a next step under "Deployment Steps" or is this a post-deployment piece?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
editorial review Waiting on a more in-depth review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants