2017-10-20 18 views
0

J'ai créé une application pour django sur Openshift v3 PRO avec le template django-ex. Cela fonctionne très bien. J'utilise POSTGRESQL avec un stockage persistant.Variables CronJob, django et environnement

J'ai besoin d'un travail cron programmé pour se déclencher toutes les heures pour exécuter des commandes de gestion de django. J'utilise le pod CronJob pour ça.

Mon problème est le suivant: je dois créer le travail de CronJob avec les mêmes variables d'environnement que le pod django a été créé avec (database_ , DJANGO_, et d'autres), mais ne vois pas un moyen facile de faire .

Toute aide apprécierait.

Répondre

1

Vous devez être en mesure d'inclure une liste de variables d'environnement à définir dans le cadre de la définition containers dans la spécification de modèle pour le travail. Je ne peux pas extraire correctement la définition des ressources pour une CronJob utilisant oc explain dans OpenShift 3.6 à cause de la façon dont il est inscrit, mais je me attends le terrain pour être semblable à:

CronJob.spec.jobTemplate.spec.template.spec.containers.env 

RESOURCE: env <[]Object> 

DESCRIPTION: 
    List of environment variables to set in the container. Cannot be updated. 

    EnvVar represents an environment variable present in a Container. 

FIELDS: 
    name <string> -required- 
    Name of the environment variable. Must be a C_IDENTIFIER. 

    value <string> 
    Variable references $(VAR_NAME) are expanded using the previous defined 
    environment variables in the container and any service environment 
    variables. If a variable cannot be resolved, the reference in the input 
    string will be unchanged. The $(VAR_NAME) syntax can be escaped with a 
    double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, 
    regardless of whether the variable exists or not. Defaults to "". 

    valueFrom <Object> 
    Source for the environment variable's value. Cannot be used if value is not 
    empty. 
+0

Graham, merci pour la réponse. Alors suggérez-vous que je l'ajoute au modèle initial qui a créé l'application entière (c'est-à-dire django-ex/openshift/django.json) ou l'ajouter plus tard? Je pensais que j'avais des problèmes avec cela dans le passé dans la spécification ci-dessus n'était pas autorisé dans le modèle. Merci encore votre aide. – YoFlynn

+0

Le modèle d'origine n'inclut aucun travail. Suggérez-vous d'y ajouter des emplois? Cela n'aide pas si votre application est déjà déployée. Si vous allez utiliser l'image de l'application pour le travail, vous devrez utiliser certaines astuces pour que le travail l'utilise. Incluez votre spécification de cronjob ici pour que je puisse le voir. –

+0

Oui, je suis encore en phase POC sur la façon de transférer mon application django de OS2 -> OS3, donc l'ajouter au modèle d'application n'est pas un problème. avoir du mal à poster des commentaires sur mon code, ce n'est pas trop facile à SO. – YoFlynn