Gestion des versions de Python
Si vous utilisez la version 6 de l’Agent, Datadog vous conseiller de passer à la version 7. Cette version est la seule à prendre en charge Python 3.
Il est toutefois possible que vous ayez besoin de continuer àutiliser la version 6 de l’Agent tout en passant à Python 3. Depuis la version 6.14.0, l’Agent v6 intègre les runtimes Python 2 et Python 3. En d’autres termes, les checks de l’Agent peuvent être exécutés aussi bien avec Python 2 que Python 3, en fonction de la configuration de l’Agent.
Utiliser Python 3 avec l’Agent v6 de Datadog
La version 6 de l’Agent utilise par défaut le runtime Python 2. Suivez les instructions ci-dessous pour configurer l’Agent v6 afin d’utiliser le runtime Python 3 :
Cette configuration n’est pas compatible avec l’extension VM Azure.
Agent de host
Définissez l’option de configuration python_version
dans votre fichier de configuration datadog.yaml
:
Redémarrez l’Agent.
Vous pouvez définir la variable d’environnement DD_PYTHON_VERSION
sur 2
ou 3
pour spécifier le runtime Python à utiliser. Les variables d’environnement sont prioritaires sur les options de configuration du fichier datadog.yaml
. Ainsi, si vous définissez la variable d’environnement DD_PYTHON_VERSION
, l’option python_version
du fichier datadog.yaml
est ignorée.
Il s’agit d’une option de configuration au niveau de l’Agent. Tous les checks Python lancés par un Agent utilisent le même runtime Python.
Agent de conteneur
Datadog fournit des images de conteneur d’Agent pour Python 2 et 3.
- Les images dont le tag commence par
6.
, par exemple 6.34.0
ou 6.34.0-jmx
, intègrent le runtime Python 2. - Les images dont le tag commence par
7.
, par exemple 7.34.0
ou 7.34.0-jmx
, intègrent le runtime Python 2.
Pour passer de Python 2 à Python 3, modifiez le tag de l’image servant à déployer l’Agent.
Par défaut, le chart Helm Datadog utilise l’image de l’Agent 7, qui intègre le runtime Python 3.
Pour que l’Agent Datadog reste à jour, supprimez dans votre fichier values.yaml
toutes les informations sous les sections agent.image
et clusterChecksRunner.image
.
Pour utiliser un registre de conteneur spécifique, définissez-le avec les options agent.image.repository
et clusterChecksRunner.image.repository
. Assurez-vous que les options agents.image.tag
et clusterChecksRunner.image.tag
ne sont pas définies.
Par défaut, le registre gcr.io/datadoghq/agent
est utilisé.
agent:
image:
repository: public.ecr.aws/datadog/agent
clusterChecksRunner:
image:
repository: public.ecr.aws/datadog/agent
Pour spécifier une version spécifique de l’Agent, définissez agents.image.tag
et clusterChecksRunner.image.tag
. Toutes les images dont le tag commence par 7.*
intègrent le runtime Python 3.
agent:
image:
tag: 7.34.0
clusterChecksRunner:
image:
tag: 7.34.0
Vous pouvez utiliser simultanément ces deux options.
agent:
image:
repository: public.ecr.aws/datadog/agent
tag: 7.34.0
clusterChecksRunner:
image:
repository: public.ecr.aws/datadog/agent
tag: 7.34.0
Par défaut, l’Operator Datadog utilise l’image agent:7.*.*
, qui intègre le runtime Python 3.
Si les informations de l’image ne sont pas indiquées dans la ressource DatadogAgent
, l’Operator déploie une image de l’Agent Datadog compatible avec Python 3.
Si vous avez précédemment imposé la version d’une image :
apiVersion: datadoghq.com/v2alpha1
metadata:
name: datadog
spec:
override:
clusterChecksRunner:
image:
tag: 6.33.0
nodeAgent:
image:
tag: 6.33.0
Ou si vous utilisez image.name
:
apiVersion: datadoghq.com/v2alpha1
metadata:
name: datadog
spec:
global:
credentials:
apiKey: <CLÉ_API_DATADOG>
appKey: <CLÉ_APPLICATION_DATADOG>
override:
# ...
nodeAgent:
image:
name: gcr.io/datadoghq/agent:6.33.0
# ...
clusterChecksRunner:
image:
name: gcr.io/datadoghq/agent:6.33.0
Utilisez l’option spec.global.registry
pour modifier le registre par défaut. Par défaut, le registre gcr.io/datadoghq/agent
est utilisé.
Imposez ensuite le tag de l’image de l’Agent 7 dans spec.override.nodeAgent.image.tag
.
Si vous avez activé le déploiement d’exécuteurs de checks de cluster, imposez également le tag de l’image de l’Agent 7 dans spec.override.clusterChecksRunner.image.tag
.
apiVersion: datadoghq.com/v2alpha1
metadata:
name: datadog
spec:
# ...
global:
registry: public.ecr.aws/datadog
override:
# ...
nodeAgent:
image:
tag: 7.33.0
# ...
clusterChecksRunner:
image:
tag: 7.33.0
Remarque : Datadog vous recommande de ne pas définir *.image.tag
. Laissez plutôt l’Operator Datadog mettre automatiquement à jour le tag pour une image de l’Agent 7.
Si vous devez utiliser une image JMX de l’Agent, vous pouvez la définir sans utiliser *.image.tag
pour l’Agent :
apiVersion: datadoghq.com/v2alpha1
metadata:
name: datadog
spec:
# ...
global:
registry: public.ecr.aws/datadog
override:
# ...
nodeAgent:
image:
jmxEnabled: true
clusterChecksRunner:
image:
jmxEnabled: true
Dans votre manifeste DaemonSet, modifiez le tag de l’image dans la définition de chaque conteneur :
- Chaque valeur
spec.template.spec.containers[*].image
- Chaque valeur
spec.template.spec.initContainers[*].image
Par exemple, si votre ancienne image a pour valeur gcr.io/datadoghq/agent:6.33.0
, remplacez-la par gcr.io/datadoghq/agent:7.33.0
.
Avant :
apiVersion: apps/v1
spec:
template:
spec:
containers:
- name: agent
image: gcr.io/datadoghq/agent:6.33.0
# ...
Après :
apiVersion: apps/v1
spec:
template:
spec:
containers:
- name: agent
image: gcr.io/datadoghq/agent:7.33.0
# ...
Outils de déploiement
Utilisez le champ extra_config
pour définir le champ python_version
sur 3
:
default_attributes(
'datadog' => {
'extra_config' => {
'python_version' => '3'
}
}
)
Utilisez le champ agent_extra_config
pour définir le champ python_version
sur 3
:
class { "datadog_agent":
agent_extra_options => {
python_version => 3,
},
}
Définissez python_version
sur 3
dans votre datadog_config
:
datadog_config:
python_version: 3
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles: