【问题标题】:how can JAVA_OPTIONS added in deployconfig in OpenshiftContainer如何在 Openshift Container 的部署配置中添加 JAVA OPTIONS
【发布时间】:2022-01-13 15:52:51
【问题描述】:

我正在尝试在 OpenshiftContainer 中的 deployconfig 中添加以下 JAVA_OPTIONS 但抛出语法错误。谁能帮助我如何在 OpenshiftContainer 中添加参数 JAVA_OPTIONS

-Djavax.net.ssl.trustStore={KEYSTORE_PATH}/cacerts.ts,
-Djavax.net.ssl.trustStorePassword=changeit,
Djavax.net.ssl.keyStore=${KEYSTORE_PATH}/keystore.pkcs12-Djavax.net.ssl.keyStorePassword=${KEYSTORE_PASS}
-Djava.awt.headless=true,

deploymentConfig 为 json:

{
            "apiVersion": "apps.openshift.io/v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "labels": {
                    "app": "${APP_NAME}"
                },
                "name": "${APP_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "app": "${APP_NAME}",
                    "deploymentconfig": "${APP_NAME}"
                },
                "strategy": null,
                "template": {
                    "metadata": {
                        "labels": {
                            "app": "${APP_NAME}",
                            "deploymentconfig": "${APP_NAME}"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "SPRING_PROFILE",
                                        "value": "migration"
                                    },
                                    {
                                        "name": "JAVA_MAIN_CLASS",
                                        "value": "com.agcs.Application"
                                    },
                                    {
                                        "name": "JAVA_OPTIONS",
                                        "value":"-Djavax.net.ssl.trustStore={KEYSTORE_PATH}/cacerts.ts",
                                                 "-Djavax.net.ssl.trustStorePassword=changeit",
                                                -Djavax.net.ssl.keyStore=${KEYSTORE_PATH}/keystore.pkcs12
                                               -Djavax.net.ssl.keyStorePassword=${KEYSTORE_PASS}
                                                -Djava.awt.headless=true,
                                    },
                                    {
                                        "name": "MONGO_AUTH_DB",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "spring.data.mongodb.authentication-database",
                                                "name": "mongodb-secret"
                                            }
                                        }
                                    },
                                    
                                    
                                ],
        
                                "image": "${IMAGE_NAME}",
                                "imagePullPolicy": "Always",
                                "name": "${APP_NAME}",
                                "ports": [
                                    {
                                        "containerPort": 8103,
                                        "protocol": "TCP"
                                    }
                                ],
                                
                                "resources": {
                                    "limits": {
                                        "cpu": "500m",
                                        "memory": "1Gi"
                                    },
                                    "requests": {
                                        "cpu": "500m",
                                        "memory": "500Mi"
                                    }
                                },
                                "volumeMounts":[
                                    {
                                        "name": "secret-volume",
                                        "mountPath": "/mnt/secrets",
                                        "readOnly": true
                                    }
                                ]
                            
                            }
                        ],
                        "volumes": [
                            {
                                "name": "secret-volume",
                                "secret": {
                                    "secretName": "keystore-new"
                                }
                            }
                        ]
                        
                    }
                }
            }
        }

【问题讨论】:

  • 一些要求改进和澄清的呼吁,以便我们更好地帮助您:将部署配置添加为 yaml 文件(最初在 k8s 和 openshift 中使用),添加您遇到的错误和您的步骤已经到达那里,您如何或为什么在应用程序定义(部署配置文件本身)中使用环境变量?此外,作为自调试步骤,尝试使用硬编码值来检查使用情况是否良好或值是否存在问题

标签: environment-variables openshift javaoptions


【解决方案1】:
{
    "name": "JAVA_OPTIONS",
    "value":"-Djavax.net.ssl.trustStore={KEYSTORE_PATH}/cacerts.ts",
             "-Djavax.net.ssl.trustStorePassword=changeit",
            -Djavax.net.ssl.keyStore=${KEYSTORE_PATH}/keystore.pkcs12
           -Djavax.net.ssl.keyStorePassword=${KEYSTORE_PASS}
            -Djava.awt.headless=true,
},

这是无效的 json,因为键 value 只能有一个值,而您提供了多个逗号分隔的字符串。

JAVA_OPTIONS 不是标准环境变量,所以我们不知道它是如何处理的,但也许这会起作用?

{
    "name": "JAVA_OPTIONS",
    "value":"-Djavax.net.ssl.trustStore={KEYSTORE_PATH}/cacerts.ts -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.keyStore=${KEYSTORE_PATH}/keystore.pkcs12 -Djavax.net.ssl.keyStorePassword=${KEYSTORE_PASS} -Djava.awt.headless=true"
},

但仍然可能存在问题,因为似乎{KEYSTORE_PATH} 应该是一个变量。在这个文件中没有定义或扩展。第一次尝试,可能只是硬编码所有这些变量的值。

对于机密(例如密码),您可以硬编码一些值以进行初始测试,但请使用 OpenShift Secrets 进行正式测试和实际部署。

【讨论】:

  • ,感谢您的快速回复。将按照建议尝试
猜你喜欢
  • 2019-11-10
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-10
  • 2021-10-03
  • 2017-06-04
相关资源
最近更新 更多