2017-03-22 7 views
0

ConfigMapにintの値を指定する方法はありますか?ポート番号を指定しようとすると、次のエラーが発生します。ここでKubernetes ConfigMapにint値を指定しますか?

error: error validating "my-deployment.yml": error validating data: expected type int, for field spec.template.spec.containers[0].ports[0].containerPort, got string; if you choose to ignore these errors, turn validation off with --validate=false 

は、私が使用していたサンプル設定ファイルです:kubectl create configmap stg-config --from-file stg.properties

my-service.port=9513 

答えて

1

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: my-service 
spec: 
    replicas: 2 
    template: 
    metadata: 
     labels: 
     app: poweramp-email-service 
    spec: 
     containers: 
     - name: poweramp-email-service 
     env: 
      - name: SERVICE_PORT_NUM 
      valueFrom: 
       configMapKeyRef: 
       name: stg-config 
       key: poweramp-email-service.port 
     image: nginx 
     ports: 
     - containerPort: my-service.port 

そして、ここでは、私はコマンドを使用してConfigMapを生成するために使用していますシンプルなstg.propertiesファイルですconfigmapの値を使用することはできませんspec.template.spec.containers[0].ports[0].containerPort私は恐れがあります。設定値のためです。ボリュームのプラグインを使用して(環境変数を使用して)、コマンドラインの設定フラグとして

あなたは(this guideで指定)のためにそれを使用することができますオプション

  • 環境変数として

    デプロイメント/ポッド用にポートを設定できるようにする場合は、Helmを使用することを検討してください。ヘルムでは、マニフェスト/定義内のGoテンプレートを使用して、呼び出し時に上書きすることができます。あなたのvalues.yaml

    に設定し、そこからこの値を

    ports: 
        - name: mysql 
        containerPort: {{ default 3306 .Values.mysqlPort }} 
    

    と:

    あなたがそうのような設定オプションとして、ここでポートを設定することができ、このMySQL Chart template as an exampleください
  • 関連する問題