小编P-S*_*P-S的帖子

Airflow KubernetesPodOperator - 使用 ConfigMap 值作为环境变量

我有一个名为 Kubernetes ConfigMap test,其中包含具有某些值的键foobar。我想在环境变量中使用该键的值。

import datetime
import os
from airflow import models
from airflow.contrib.kubernetes.volume import Volume
from airflow.contrib.kubernetes.volume_mount import VolumeMount
from airflow.contrib.operators import kubernetes_pod_operator

YESTERDAY = datetime.datetime.now() - datetime.timedelta(days=1)

cm_test = ['test']

volume_mount = VolumeMount('test',
                            mount_path='/config/',
                            sub_path=None,
                            read_only=False)
volume_config = {
    'configMap': {
        'name': 'test'
    }
}
volume = Volume(name='test', configs=volume_config)

with models.DAG(
        dag_id="test_env",
        schedule_interval=datetime.timedelta(days=1),
        start_date=YESTERDAY) as dag:

    
    kubenetes_template_ex = kubernetes_pod_operator.KubernetesPodOperator(
        task_id="test_env",
        name="test_env",
        namespace="foobar",
        image="bash",
        cmds=["printenv"],
        arguments=[],
        volumes=[volume],
        volume_mounts=[volume_mount],
        configmaps=cm_test,
        env_vars={
            'MY_ENV_VAR': '/config/foobar'
        }
    )
Run Code Online (Sandbox Code Playgroud)

正在做什么:ConfigMap …

kubernetes airflow kubernetespodoperator

6
推荐指数
0
解决办法
1035
查看次数

JAVA中使用ClassLoader.getSystemResource获取文件路径

我正在使用带有 Eclipse 和 Java 8 的 Tomcat 7 编写一个动态 Web 模块,我的问题是构建路径上所需的 JAVA 项目正在使用以下内容来加载文件(词典、词典等):

String filePath = "conf/test.txt"; // my test file is in WEB-INF/conf
String absolutePath = ClassLoader.getSystemResource(filePath).getPath();
Run Code Online (Sandbox Code Playgroud)

我得到一个空指针,所以它找不到该文件。

使用以下命令时,它会找到该文件:

String absolutePath = new File(filePath).getAbsolutePath();
Run Code Online (Sandbox Code Playgroud)

问题是

我需要使用ClassLoader.getSystemResource. 如何在不获取空指针的情况下指定文件的路径(也不使用绝对路径)?

java tomcat

3
推荐指数
1
解决办法
1万
查看次数