OpenShift Origin
にカスタムプロジェクトテンプレートを作成しようとしています。 Service
構成は具体的には、以下のようになります。APPLICATION_PORT
は、ユーザパラメータとして供給され、OpenShift JSONプロジェクトテンプレートでポートをパラメータ化する方法
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "${NAME}",
"annotations": {
"description": "Exposes and load balances the node.js application pods"
}
},
"spec": {
"ports": [
{
"name": "web",
"port": "${APPLICATION_PORT}",
"targetPort": "${APPLICATION_PORT}",
"protocol": "TCP"
}
],
"selector": {
"name": "${NAME}"
}
}
},
:
"parameters": [
{
"name": "APPLICATION_PORT",
"displayName": "Application Port",
"description": "The exposed port that will route to the node.js application",
"value": "8000"
},
私はプロジェクトを作成するには、このテンプレートを使用しようとすると、私は次のエラーを取得します:
spec.ports[0].targetPort: Invalid value: "8000": must be an IANA_SVC_NAME (at most 15 characters, matching regex [a-z0-9]([a-z0-9-]*[a-z0-9])*...
私はでhttp
ポートに対してだけでなく、私のDeploymentConfig
で同様のエラーを取得しますとreadiness
プローブ:
"readinessProbe": {
"timeoutSeconds": 3,
"initialDelaySeconds": 3,
"httpGet": {
"path": "/Info",
"port": "${APPLICATION_ADMIN_PORT}"
}
},
"livenessProbe": {
"timeoutSeconds": 3,
"initialDelaySeconds": 30,
"httpGet": {
"path": "/Info",
"port": "${APPLICATION_ADMIN_PORT}"
}
},
、APPLICATION_ADMIN_PORT
は、再度、ユーザが供給されます。
エラー:
spec.template.spec.containers[0].livenessProbe.httpGet.port: Invalid value: "8001": must be an IANA_SVC_NAME...
spec.template.spec.containers[0].readinessProbe.httpGet.port: Invalid value: "8001": must be an IANA_SVC_NAME...
私はテンプレートを理解するためにhttps://blog.openshift.com/part-2-creating-a-template-a-technical-walkthrough/を追ってきた、そしてそれは、残念ながら、ポートのいずれかの例はどこにでもパラメータ化されている必要はありません。
文字列は、ほとんどの場合、これらのポートの値として使用できないようです。それは事実ですか?これらの値をパラメータ化する正しい方法は何ですか? YAML
に切り替える必要がありますか?
バージョン:
OpenShift Master: v1.1.6-3-g9c5694f
Kubernetes Master: v1.2.0-36-g4a3f9c5
編集1:私はYAML
形式で同じ構成を試みたが、同じエラーを得ました。したがって、JSON
対YAML
はではなく、問題です。
感謝を!私はこの答えを受け入れています。 – kodeninja
OpenShiftにOriginでのそのソリューションの使用状況を追跡する際に問題がありますか?将来の参照のためにここにリンクすると良いでしょう。 – Clayton
こんにちは、この問題のアップデートはありますか? –