web-dev-qa-db-ja.com

Docker - Helmチャートへの変換 -

私は2つのイメージを含むDocker-Composeファイルを持っています。私の挑戦は、展開yamlとservice.yamlからなるHELMチャートに変換することです。 Docker-Composeはこのように見えます -

  version: '3'

  services:

  nginx:
    ports:
      - "80:80"
      - "443:443"
    environment:
      - NG_SERVER_NAME=192.168.1.228
    links:
      - Tomcat8
    image: continuumsecurity/iriusrisk-prod:nginx-prod-ssl
    container_name: iriusrisk-nginx
    volumes:
      - "./cert.pem:/etc/nginx/ssl/star_iriusrisk_com.crt"
      - "./key.pem:/etc/nginx/ssl/star_iriusrisk_com.key"

  Tomcat8:
    environment:
      - IRIUS_DB_URL=jdbc\:postgresql\://192.168.1.228\:5432/iriusprod?user\=iriusprod&password\=alongandcomplexpassword2523
      - IRIUS_EDITION=saas
      - IRIUS_EXT_URL=http\://192.168.1.228
      - grails_env=production
    image: continuumsecurity/iriusrisk-prod:Tomcat8-2
    container_name: iriusrisk-Tomcat8
 _

Postgres Serverが実行されています。それを把握します。これは展開ファイルの両方の解決策でした。

展開-tomcat.yaml.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: Tomcat
  labels:
    app: {{ .Values.Tomcat.app.name }}
spec:
  replicas: {{ .Values.Tomcat.replicas }}
  selector:
    matchLabels:
      app: {{ .Values.Tomcat.app.name }}
  template:
    metadata:
      labels:
        app: {{ .Values.Tomcat.app.name }}
    spec:
      {{- if .Values.Tomcat.imagePullSecretsName }}
      imagePullSecrets:
      - name: {{ .Values.Tomcat.imagePullSecretsName }}
      {{- end}}
      restartPolicy: Always
      serviceAccountName: {{ .Values.Tomcat.serviceAccountName }}

      containers:
      - name: {{ .Values.Tomcat.app.name }}
        image: "{{ .Values.Tomcat.ImageName }}:{{ .Values.Tomcat.ImageTag }}"
        container_name: iriusrisk-Tomcat8
        imagePullPolicy: {{ .Values.Tomcat.ImagePullPolicy }}
        ports:
        - containerPort: {{ .Values.Tomcat.port }}
        env:
          - name: IRIUS_DB_URL
            value: jdbc\:postgresql\://192.168.1.228\:5432/iriusprod?user\=iriusprod&password\=alongandcomplexpassword2523
          - name: IRIUS_EDITION
            value: saas
          - name: IRIUS_EXT_URL
            value: http\://192.168.1.228
          - name: grails_env
            value: production
 _

展開-iriusrisk.yaml.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: iriusrisk
  labels:
    app: {{ .Values.iriusrisk.app.name }}
spec:
  replicas: {{ .Values.iriusrisk.replicas }}
  selector:
    matchLabels:
      app: {{ .Values.iriusrisk.app.name }}
  template:
    metadata:
      labels:
        app: {{ .Values.iriusrisk.app.name }}
    spec:
      {{- if .Values.iriusrisk.imagePullSecretsName }}
      imagePullSecrets:
      - name: {{ .Values.iriusrisk.imagePullSecretsName }}
      {{- end}}
      restartPolicy: Always
      serviceAccountName: {{ .Values.iriusrisk.serviceAccountName }}

      containers:
      - name: {{ .Values.iriusrisk.app.name }}
        image: "{{ .Values.iriusrisk.ImageName }}:{{ .Values.iriusrisk.ImageTag }}"
        container_name: iriusrisk-nginx
        imagePullPolicy: {{ .Values.iriusrisk.ImagePullPolicy }}
        ports:
        - containerPort: {{ .Values.iriusrisk.port }}
        env:
          - name: NG_SERVER_NAME
            value: "192.168.1.228"
        volumes: 
          - "./cert.pem:/etc/nginx/ssl/star_iriusrisk_com.crt"
          - "./key.pem:/etc/nginx/ssl/star_iriusrisk_com.key"
 _

この問題を解決する方法は?私は互いに「リンク」を見ましたが、私が試したソリューションのどれもではありませんでした。私はこれが少し新しくなっています。

5
Pranav Bhatia

kompose ツールには、docker-compose.ymlファイルからHELMチャートに変換する機能が含まれています。

kompose convert -c _

Kompose 代替コンバージョン ドキュメントをチェックしてください。

7
Jeff

現在の知識から、HELM-ChartをDocker-Composeファイルに変換するそのようなツールは開発または公開されていません。しかし、docker-composeからkubernetesのリソースのマニフェストへの変換は、ツールを使用して komposehttps://kompose.io )を使用して行うことができます。

2
Shudipta Sharma