Maison > développement back-end > Golang > Comment ajouter des variables d'environnement au déploiement de Kubernetes à l'aide de Golang ?

Comment ajouter des variables d'environnement au déploiement de Kubernetes à l'aide de Golang ?

王林
Libérer: 2024-02-08 23:45:28
avant
586 Les gens l'ont consulté

如何使用 golang 将环境变量添加到 kubernetes 部署?

Éditeur PHP Apple vous propose un article sur la façon d'utiliser Golang pour ajouter des variables d'environnement au déploiement de Kubernetes. Dans le déploiement Kubernetes, la définition des variables d'environnement est très importante et peut nous aider à configurer le comportement de l'application. Grâce à Golang, vous pouvez facilement injecter des variables d'environnement dans les pods Kubernetes pour obtenir un déploiement plus flexible et configurable. Nous détaillerons ensuite comment utiliser Golang pour atteindre cet objectif.

Contenu de la question

Je dois définir ou ajouter des variables d'environnement à un déploiement Kubernetes existant à l'aide de Golang. Il doit être ajouté à la configuration après le redémarrage.

func (r *SparkETLReconciler) DoRestart(w http.ResponseWriter, req *http.Request) {
    ctx := context.TODO()
    r.Log.Info("restart hit!")
    fmt.Fprintf(w, "Hi there, I love %s!", req.URL.Path[1:])
    found := &appsv1.Deployment{}
    err := r.Get(ctx, types.NamespacedName{
        Name:      "vmc-etl-test",
        Namespace: "ndl",
    }, found)

    if err != nil {
        r.Log.Error(err, "deploy check failed")
    } else {
        fmt.Fprintf(w, "I found the deployment!")
    }

    deleteErr := r.DeleteAllOf(ctx, &corev1.Pod{}, client.InNamespace("ndl"), client.MatchingLabels{"operatorETLName": req.URL.Path[1:])

    if deleteErr != nil {
        r.Log.Error(deleteErr, "deletion of deployment's pods failed")
    } else {
        fmt.Fprintf(w, "Deployment's pods deleted, restarting")
    }
}
Copier après la connexion

Solution de contournement

Après avoir été déployé, vous pouvez ajouter des variables d'environnement de la manière suivante.

# Assuming you have only 1 container in the Pod
found.Spec.Template.Spec.Containers[0].Env = []v1.EnvVar{
        {
            Name:  "ENV_VARIABLE_NAME",
            Value: "ENV_VARIABLE_VALUE",
        },
}
Copier après la connexion

Inutile de dire que si vous avez déjà des variables d'environnement dans votre conteneur, vous feriez mieux de les append(), sinon vous les écraserez.

De plus, vous devez envoyer un appel à update() (或 createorupdate()) dans votre déploiement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal