Changing Your Container Registry
Datadog publishes container images in Google’s gcr.io, AWS’ ECR, and on Docker Hub:
dockerhub.io | gcr.io | public.ecr.aws |
---|
datadog/agent | gcr.io/datadoghq/agent | public.ecr.aws/datadog/agent |
datadog/cluster-agent | gcr.io/datadoghq/cluster-agent | public.ecr.aws/datadog/cluster-agent |
datadog/operator | gcr.io/datadoghq/operator | public.ecr.aws/datadog/operator |
datadog/dogstatsd | gcr.io/datadoghq/dogstatsd | public.ecr.aws/datadog/dogstatsd |
datadog/synthetics-private-location-worker | gcr.io/datadoghq/synthetics-private-location-worker | public.ecr.aws/datadog/synthetics-private-location-worker |
Pulling from the ACR, GCR or ECR registry works the same (except for Notary) as pulling from Docker Hub. You can use the same command (with different parameters) and get the same image.
Note: ACR, ECR and GCR do not support Notary. If you are verifying the signature of images pulled from Docker, this feature does not work on GCR or ECR.
To update your registry, you need to update your registry values based on the type of container environment you are deploying on.
Note: You can also use a private registry, but you will need to create a pull secret to be able the pull the images from the private registry.
For more information about creating a pull secret, see the Kubernetes documentation.
Docker
Updating your registry
To update your containers registry, run the pull command for the new registry. To see the Docker pull commands for different container registries, see the examples in the Overview of the Docker docs page.
Kubernetes with Helm chart
To update your containers registry while deploying the Datadog Agent (or Datadog Cluster Agent) with the Datadog helm chart on Kubernetes (including GKE, EKS, AKS, and OpenShift) update the values.yaml
to specify a different registry:
Datadog Helm chart >= v2.7.0
- Update your
values.yaml
:registry: gcr.io/datadoghq
- Remove any overrides for
agents.image.repository
, clusterAgent.image.repository
, or clusterChecksRunner.image.repository
in the values.yaml
.
Datadog Helm chart < v2.7.0
Change the repository to gcr.io
:
agents:
image:
repository: gcr.io/datadoghq/agent
clusterAgent:
image:
repository: gcr.io/datadoghq/cluster-agent
clusterChecksRunner:
image:
repository: gcr.io/datadoghq/agent
For more information about using the Datadog Helm chart, see the Datadog Kubernetes documentation and the example values.yaml
file.
If using a private registry, you will need to add a pull secret to the [key].image.pullSecrets
field to each image.
agents:
image:
pullSecrets:
- name: PrivateRegistrySecret
clusterAgent:
image:
pullSecrets:
- name: PrivateRegistrySecret
clusterChecksRunner:
image:
pullSecrets:
- name: PrivateRegistrySecret
Kubernetes with the Datadog Operator
To update your registry while deploying the Datadog Agent (or Datadog Cluster Agent) with the Datadog Operator:
- Update the Datadog Agent manifest file to override the default registry (
gcr.io/datadoghq
). For example, with public.ecr.aws/datadog
:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
registry: gcr.io/datadoghq
// ..
- Remove any overrides for the
spec.override.nodeAgent.image.name
, spec.override.clusterAgent.image.name
, and spec.override.clusterChecksRunner.image.name
fields. - If using a private registry, you will need to add a pull secret to the
[key].image.pullSecrets
field to each image.
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
override:
nodeAgent:
image:
pullSecrets:
- name: PrivateRegistrySecret
clusterAgent:
image:
pullSecrets:
- name: PrivateRegistrySecret
clusterChecksRunner:
image:
pullSecrets:
- name: PrivateRegistrySecret
// ..
For more information about the Datadog Operator, see Deploying an Agent with the Operator.
Using another container registry with Helm
You could also switch from the default gcr.io/datadoghq
registry to another registry, such as datadoghq.azurecr.io
when installing the Operator with the Helm chart:
Update values.yaml
with the new image:
image:
repository: datadoghq.azurecr.io
ECS
To update your registry while deploying on ECS, in the datadog-agent-ecs.json
file, change the value of the "image"
key under containerDefinitions
to "public.ecr.aws/datadog/agent:latest"
:
"image": "public.ecr.aws/datadog/agent:latest",
For more information about deploying Datadog on ECS, see the Datadog ECS documentation and the example datadog-agent-ecs.json
file.
Fargate
To update your registry while deploying on Fargate, update the image in the Fargate task definition to use public.ecr.aws
:
"image": "public.ecr.aws/datadog/agent:latest"
The next time the task starts, it pulls from public.ecr.aws
instead of Docker Hub. For more information about deploying on Fargate, see Deploying the Agent on ECS and Deploying the Agent on EKS.
Cluster Agent
If you’re using the Helm chart to deploy the Datadog Agent and the Datadog Cluster Agent, follow the instructions in Kubernetes with Helm chart, and no other updates are needed. The change to the Helm values.yaml
outlined above changes the repository that both the Cluster Agent and the Datadog Agent are pulled from.
If you’re using the Datadog Operator to deploy the Datadog Cluster Agent, follow the instructions in Kubernetes with the Datadog Operator, and no other updates are needed. The instructions for updating the Operator configuration updates the repository that both the Cluster Agent and the Datadog Agent are pulled from.
For more information about the Datadog Cluster Agent, see the Cluster Agent docs, and the setup docs.
Kubernetes Helm for the Datadog Private Location worker
To update your registry for the Private Location worker, update the datadog/synthetics-private-location-worker
image to the public.ecr.aws/datadog/synthetics-private-location-worker
or gcr.io/datadoghq/synthetics-private-location-worker
images.
To change the default repository (gcr.io/datadoghq
), update the values.yaml
with the new image:
image:
repository: gcr.io/datadoghq/synthetics-private-location-worker