すべてのプロダクト
Search
ドキュメントセンター

Compute Nest:Helm チャートパッケージ

最終更新日:Jun 22, 2026

このトピックでは、Helm チャートデプロイメントパッケージの利用シーンと仕組みについて説明し、その作成方法と使用方法を解説します。

利用シーン

  • サービスのデプロイ時に Helm チャートを非公開にする必要がある場合は、Compute Nest の Helm チャートデプロイメントパッケージを使用することを推奨します。これらのパッケージは Compute Nest の ACR リポジトリに保存され、一時キーを使用して安全にプルされます。

    重要

    一般公開されている Helm チャートの場合は、サービスの ROS テンプレートでパブリック URL を指定することでデプロイできます。追加の設定は不要です。

  • Helm チャートは通常、複雑な構造と多数の YAML デプロイメントファイルを持つサービスで、これらのファイルを構造的に管理するために使用されます。Compute Nest では、Helm チャートデプロイメントパッケージは ACR リポジトリでホストされます。アップロードとプルの仕組みの詳細については、「コンテナイメージアーティファクト」をご参照ください。

仕組み

サービステンプレートで Helm チャートデプロイメントパッケージを使用するには、以下の 2 つのプレースホルダーを定義する必要があります。これらのプレースホルダーは、デプロイ時に実際の値に置き換えられます。

  • {{computenest::helmchart::test}}:デプロイメントパッケージのプレースホルダーです。これは Helm チャートの完全な URL (例: oci://compute-nest-chart-registry.cn-hangzhou.cr.aliyuncs.com/${aliUid}/wordpress:15.4.1) に置き換えられます。

  • {{computenest::helm::dockerconfigjson}}:リポジトリのプルシークレットです。Compute Nest の ACR リポジトリでホストされている Helm チャートをプルするために使用されます。

Helm チャートのデプロイメントでは、Compute Nest が定義したパブリックモジュール MODULE::ACS::ComputeNest::FluxOciHelmDeploy を使用します。このモジュールは、オープンソースコンポーネントである FluxCD を使用しており、現在は OCI 形式のチャートリポジトリのみをサポートしています。Compute Nest の Helm チャートデプロイメントパッケージのリポジトリは OCI 形式を使用します。以下のサンプルテンプレートは、MODULE::ACS::ComputeNest::FluxOciHelmDeploy を使用して Helm チャートデプロイメントパッケージをデプロイする方法を示しています。

Resources:
  FluxHelmDeploy:
    Type: MODULE::ACS::ComputeNest::FluxOciHelmDeploy
    Version: v1
    Properties:
      ClusterId:
        Ref: ClusterId
      ReleaseName: wordpress
      Namespace: wordpress
      HelmChartUrl: '{{ computenest::helmchart::test }}'
      DockerConfigJson: '{{ computenest::helm::dockerconfigjson }}'
      ChartValues:
        mariadb:
          primary:
            persistence:
              enabled: true
              storageClass: alicloud-disk-essd
              size: 20Gi
        persistence:
          enabled: false
...

作成と使用

前提条件

Helm CLI がインストールされており、パッケージ化された Helm チャートがあることを確認してください。そうでない場合は、「Helm チャートのプッシュとプル」をご参照ください。

Helm チャートパッケージの作成

  1. デプロイメントパッケージの基本情報を設定します。

    1. Compute Nest コンソールにログインします。左側のナビゲーションウィンドウで、サービスアーティファクト を選択します。デプロイメントオブジェクト タブで、リソースの作成 をクリックします。

    2. 基本情報 セクションで、以下のパラメーターを設定します。

      パラメーター

      説明

      リソース名

      名前には、漢字、英字、数字、アンダースコア (_) を使用できます。名前の長さは 3~128 文字である必要があります。漢字は 2 文字としてカウントされます。デプロイメントパッケージ名は作成後に変更できません。

      バージョン名

      名前には、漢字、英字、数字、アンダースコア (_) を使用できます。名前の長さは 3~50 文字である必要があります。漢字は 2 文字としてカウントされます。

      リソースの説明

      説明は 10~500 文字である必要があります。漢字は 2 文字としてカウントされます。

      リソースグループ

      デプロイメントパッケージが属するリソースグループを選択します。

      リソースグループを使用すると、使用量、権限、または所有者に基づいてクラウドリソースをグループ化でき、組織内の複数のユーザーやプロジェクトに対して階層的なリソース管理が可能になります。詳細については、「リソースグループ」をご参照ください。

      タグの設定

      完全なタグキーとタグ値を入力または選択して、デプロイメントパッケージにタグを追加します。リソースには最大 20 個のタグをバインドできます。利用可能なタグキーや値がない場合は、カスタムタグを作成できます。詳細については、「カスタムタグの作成とバインド」をご参照ください。

  2. Helm チャートデプロイメントパッケージを設定します。

    1. リソースの内容 セクションで、リソースタイプ[Helm チャート] に設定します。

    2. アクセス資格情報の取得 をクリックして名前空間の一時キーを取得し、次にターミナルで提供されたコマンドを実行します。

      [Helm チャート] タブには、3 つのステップからなるプロセスが表示されます。ステップ 1: helm registry login コマンドを実行してイメージリポジトリにログインします。ステップ 2: チャートにタグを付け、イメージリポジトリにプッシュします。ステップ 3: チャート名 (例: chart-name) を入力し、helm push chart-name.tgz oci://xxx コマンドを実行してプッシュを完了します。

    3. Helm チャートを Compute Nest の ACR リポジトリにアップロードした後、新しくアップロードしたチャートを選択し、リソースの公開 をクリックします。

  3. デプロイメントパッケージを表示します。

    1. [サービスデプロイメントパッケージ] ページに戻ります。デプロイメントパッケージの名前をクリックして リソースの詳細 ページを開き、作成の進捗状況を確認します。

    2. ステータスが使用可能に変わると、デプロイメントパッケージの使用準備が整います。

Helm チャートパッケージの使用

このセクションでは、プライベートサービスの作成を例に、Helm チャートデプロイメントパッケージの使用方法を説明します。

  1. Compute Nest コンソールにログインします。

  2. 左側のナビゲーションウィンドウで [マイサービス] をクリックします。[マイサービス] ページの [作成済みサービス] タブで、[サービスの作成] をクリックします。

  3. [新しいサービスの作成] ページで、作成方法として [カスタム起動] を選択し、サービスタイプとして プライベートデプロイサービス を選択して、次へ:サービスの設定 をクリックします。

  4. サービスの基本情報を入力し、ROS テンプレートを提供します。

    サービスの ROS テンプレートに、Helm チャートデプロイメントパッケージのプレースホルダー {{ computenest::helmchart::test}} とプルシークレットのプレースホルダー {{ computenest::helm::dockerconfigjson}} を追加します。

    サンプルテンプレート

    説明

    このサンプルテンプレートはテスト目的でのみ使用してください。

    ROSTemplateFormatVersion: '2015-09-01'
    Description:
      en: new ack deployment
      zh-cn: 新規 ACK デプロイメント
    Parameters:
      PayType:
        Type: String
        Label:
          en: ECS Instance Charge Type
          zh-cn: ECS インスタンスの課金タイプ
        Default: PostPaid
        AllowedValues:
          - PostPaid
          - PrePaid
        AssociationProperty: ChargeType
        AssociationPropertyMetadata:
          LocaleKey: InstanceChargeType
      PayPeriodUnit:
        Type: String
        Label:
          en: Pay Period Unit
          zh-cn: 購入期間単位
        Default: Month
        AllowedValues:
          - Month
          - Year
        AssociationProperty: PayPeriodUnit
        AssociationPropertyMetadata:
          Visible:
            Condition:
              Fn::Not:
                Fn::Equals:
                  - ${PayType}
                  - PostPaid
      PayPeriod:
        Type: Number
        Description:
          en: When the subscription duration is measured in months, valid values for Period are 1 to 9, 12, 24, 36, 48, and 60. <b><font color='red'>This parameter is valid only when ECS instances are subscription-based.</font>
          zh-cn: サブスクリプション期間が月単位の場合、Period の有効値は 1~9、12、24、36、48、60 です。<b><font color='red'>このパラメーターは、ECS インスタンスがサブスクリプションベースの場合にのみ有効です。</font>
        Label:
          en: Period
          zh-cn: 期間
        Default: 1
        AllowedValues:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
        AssociationProperty: PayPeriod
        AssociationPropertyMetadata:
          Visible:
            Condition:
              Fn::Not:
                Fn::Equals:
                  - ${PayType}
                  - PostPaid
      ZoneId:
        Type: String
        AssociationProperty: ALIYUN::ECS::Instance:ZoneId
        Label:
          en: Zone ID
          zh-cn: ゾーン ID
      EcsInstanceType:
        Type: String
        Label:
          en: Instance Type
          zh-cn: インスタンスタイプ
        AssociationProperty: ALIYUN::ECS::Instance::InstanceType
        AssociationPropertyMetadata:
          ZoneId: ${ZoneId}
          InstanceChargeType: ${InstanceChargeType}
      EcsInstancePassword:
        NoEcho: true
        Type: String
        AllowedPattern: '[0-9A-Za-z\_\-\&:;''<>,=%`~!@#\(\)\$\^\*\+\|\{\}\[\]\.\?\/]+$'
        Label:
          en: Instance Password
          zh-cn: インスタンスのパスワード
        ConstraintDescription:
          en: The password must be 8 to 30 characters in length and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/
          zh-cn: パスワードは 8~30 文字で、大文字、小文字、数字、特殊文字 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ のうち、少なくとも 3 種類を含める必要があります。
        MinLength: 8
        MaxLength: 30
        AssociationProperty: ALIYUN::ECS::Instance::Password
      ServerSystemDiskCategory:
        Type: String
        AllowedValues:
          - cloud_efficiency
          - cloud_ssd
          - cloud_essd
        AssociationPropertyMetadata:
          LocaleKey: DiskCategory
          InstanceType: ${EcsInstanceType}
        Label:
          en: Server System Disk Category
          zh-cn: サーバーシステムディスクのカテゴリ
        Default: cloud_essd
      ServerSystemDiskSize:
        Type: Number
        Label:
          en: Server System Disk Size(GB)
          zh-cn: サーバーシステムディスクのサイズ (GB)
        MinValue: 1
        Default: 500
      VpcCidrBlock:
        Type: String
        Label:
          en: VPC CIDR IPv4 Block
          zh-cn: VPC CIDR IPv4 ブロック
        Description:
          zh-cn: VPC の IP アドレス範囲を CIDR ブロック形式で指定します。以下の IP アドレス範囲とそのサブネットを使用できます。<br><font color='green'>[10.0.0.0/8]</font><br><font color='green'>[172.16.0.0/12]</font><br><font color='green'>[192.168.0.0/16]</font>
          en: 'The IP address range of the VPC in CIDR block format. <br>You can use the following IP address ranges and their subnets: <br><font color=''green''>[10.0.0.0/8]</font><br><font color=''green''>[172.16.0.0/12]</font><br><font color=''green''>[192.168.0.0/16]</font>'
        Default: 192.168.0.0/16
        AssociationProperty: ALIYUN::VPC::VPC::CidrBlock
      VSwitchCidrBlock:
        Type: String
        Label:
          en: VSwitch CIDR Block
          zh-cn: VSwitch CIDR ブロック
        Description:
          zh-cn: CIDR ブロックは VPC の CIDR ブロックのサブネットである必要があります。
          en: The CIDR block must be a subnet of the VPC's CIDR block.
        Default: 192.168.1.0/24
        AssociationProperty: ALIYUN::VPC::VSwitch::CidrBlock
        AssociationPropertyMetadata:
          VpcCidrBlock: VpcCidrBlock
      PodCidr:
        Type: String
        Description:
          zh-cn: 次の範囲またはそのサブネットから有効なプライベート CIDR ブロックを指定します: 10.0.0.0/8、172.16.0.0/12-16、192.168.0.0/16。<br>CIDR ブロックは、VPC の CIDR ブロックや、VPC 内の既存の Kubernetes クラスターの CIDR ブロックと重複することはできません。<font color='blue'><b>作成後は変更できません。</font>
          en: 'Specify a valid private CIDR block from the following ranges or their subnets: 10.0.0.0/8, 172.16.0.0/12-16, and 192.168.0.0/16.The CIDR block cannot overlap with the CIDR block of the VPC or those of existing Kubernetes clusters in the VPC. <font color=''blue''><b>This cannot be changed after creation.</font>'
        Label:
          zh-cn: Pod ネットワーク CIDR
          en: Pod Network CIDR
        AssociationProperty: ALIYUN::CS::ManagedKubernetesCluster::PodCidr
        Default: 10.0.0.0/16
      ServiceCidr:
        Type: String
        Description:
          zh-cn: サポートされる範囲: 10.0.0.0/16-24、172.16.0.0/16-24、192.168.0.0/16-24。CIDR ブロックは、VPC の CIDR ブロックや、VPC 内の既存の Kubernetes クラスターの CIDR ブロックと重複することはできません。<font color='blue'><b>作成後は変更できません。</font>
          en: 'Supported ranges: 10.0.0.0/16-24, 172.16.0.0/16-24, and 192.168.0.0/16-24.The CIDR block cannot overlap with the CIDR block of the VPC or those of existing Kubernetes clusters in the VPC. <font color=''blue''><b>This cannot be changed after creation.</font>'
        Label:
          zh-cn: Service CIDR
          en: Service CIDR
        AssociationProperty: ALIYUN::CS::ManagedKubernetesCluster::ServiceCidr
        Default: 172.16.0.0/16
    Resources:
      EcsVpc:
        Type: ALIYUN::ECS::VPC
        Properties:
          VpcName:
            Ref: ALIYUN::StackName
          CidrBlock:
            Ref: VpcCidrBlock
      EcsVSwitch:
        Type: ALIYUN::ECS::VSwitch
        Properties:
          VSwitchName:
            Ref: ALIYUN::StackName
          VpcId:
            Ref: EcsVpc
          ZoneId:
            Ref: ZoneId
          CidrBlock:
            Ref: VSwitchCidrBlock
      EcsSecurityGroup:
        Type: ALIYUN::ECS::SecurityGroup
        Properties:
          SecurityGroupName:
            Ref: ALIYUN::StackName
          VpcId:
            Ref: EcsVpc
          SecurityGroupEgress:
            - PortRange: '-1/-1'
              Priority: 1
              IpProtocol: all
              DestCidrIp: 0.0.0.0/0
              NicType: intranet
          SecurityGroupIngress:
            - PortRange: '-1/-1'
              Priority: 1
              IpProtocol: all
              SourceCidrIp:
                Ref: PodCidr
              Description: Pod ネットワークからのアクセスを許可します。
              NicType: intranet
            - PortRange: '-1/-1'
              Priority: 1
              IpProtocol: all
              SourceCidrIp:
                Ref: VpcCidrBlock
              Description: VPC ネットワークからのアクセスを許可します。
              NicType: intranet
            - PortRange: '-1/-1'
              Priority: 1
              IpProtocol: icmp
              SourceCidrIp: 0.0.0.0/0
              Description: ICMP 経由のアクセスを許可します。
              NicType: intranet
            - Priority: 1
              PortRange: 22/22
              SourceCidrIp: 0.0.0.0/0
              IpProtocol: tcp
            - Priority: 1
              PortRange: 443/443
              SourceCidrIp: 0.0.0.0/0
              IpProtocol: tcp
            - Priority: 1
              PortRange: 3001/3001
              SourceCidrIp: 0.0.0.0/0
              IpProtocol: tcp
            - Priority: 1
              PortRange: 31001/31001
              SourceCidrIp: 0.0.0.0/0
              IpProtocol: tcp
            - Priority: 1
              PortRange: 9000/9000
              SourceCidrIp: 0.0.0.0/0
              IpProtocol: tcp
            - Priority: 1
              PortRange: 3389/3389
              SourceCidrIp: 0.0.0.0/0
              IpProtocol: tcp
            - Priority: 1
              PortRange: 80/80
              SourceCidrIp: 0.0.0.0/0
              IpProtocol: tcp
      CsghubServerInstance:
        Type: ALIYUN::ECS::InstanceGroup
        Properties:
          ZoneId:
            Ref: ZoneId
          IoOptimized: optimized
          InstanceChargeType:
            Ref: PayType
          PeriodUnit:
            Ref: PayPeriodUnit
          Period:
            Ref: PayPeriod
          VpcId:
            Ref: EcsVpc
          VSwitchId:
            Ref: EcsVSwitch
          SecurityGroupId:
            Ref: EcsSecurityGroup
          SystemDiskCategory:
            Ref: ServerSystemDiskCategory
          SystemDiskSize:
            Ref: ServerSystemDiskSize
          MaxAmount: 1
          ImageId: centos_7
          InstanceType:
            Ref: EcsInstanceType
          Password:
            Ref: EcsInstancePassword
          InternetMaxBandwidthOut: 50
          InstanceName:
            Fn::Join:
              - '-'
              - - Ref: ALIYUN::StackName
                - '[1,4]'
      InstanceRunCommand:
        Type: ALIYUN::ECS::RunCommand
        Properties:
          Type: RunShellScript
          Sync: true
          CommandContent:
            Fn::Sub:
              - |
                #!/bin/bash
                yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
                yum makecache fast
                yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin jq
                mkdir -p /etc/docker
                tee /etc/docker/daemon.json <<-'EOF'
                {
                    "registry-mirrors": [
                        "https://docker.m.daocloud.io",
                        "https://mirror.baidubce.com",
                        "https://dockerproxy.com",
                        "https://mirror.iscas.ac.cn",
                        "https://huecker.io",
                        "https://dockerhub.timeweb.cloud",
                        "https://noohub.ru",
                        "https://vlgh0kqj.mirror.aliyuncs.com"
                    ]
                }
                EOF
                systemctl enable docker
                systemctl start docker
                sleep 10
                # Install Server
                wget '{{ computenest::file::csgserver }}' -O csghub-main.tar.gz
                tar -xvf csghub-main.tar.gz
                cd /root/csghub-main/deploy/all_in_one
                sed -i 's/SERVER_DOMAIN=[^,)]*/SERVER_DOMAIN=${PublicAddress}/' .env
                sleep 10
                chmod 777 startup.sh
                ./startup.sh
                sleep 10
                docker compose restart user_server
                sleep 10
                docker compose restart nginx
                docker compose restart user_server
                # コマンドが正常に実行されると、WaitCondition に待機完了のシグナルが送信されます。
              - PublicAddress: 
                  Fn::Select:
                    - 0
                    - Fn::GetAtt:
                        - CsghubServerInstance
                        - PublicIps
          InstanceIds:
            Fn::GetAtt:
              - CsghubServerInstance
              - InstanceIds
          Timeout: 3600
  5. [デプロイメントパッケージの関連付け] セクションで、Helm 関連付けの設定 を設定します。[デプロイメントオブジェクト] の選択 をクリックし、ダイアログボックスから目的のデプロイメントパッケージとバージョンを選択し、確定する をクリックしてプレースホルダーに関連付けます。

    ダイアログボックスでは、関連付け識別子{{ computenest::helmchart::wordpress }} のような形式で表示されます。Helm チャートデプロイメントパッケージのみ選択できます。関連付けが完了すると、ページ下部の [Helm の関連付け] セクションに、関連付け識別子と関連付けられたデプロイメントパッケージのマッピングが表示されます。

  6. サービスの作成とテストが正常に完了したら、Compute Nest の審査基準に照らしてサービスを確認し、審査のためにサービスを提出します。審査基準の詳細については、「審査基準」をご参照ください。

  7. サービスが作成された後、サービス詳細ページでデプロイメントパッケージの関連付けを表示できます。

    サービス詳細ページで、[デプロイメントの関連付け] タブをクリックし、次に [Helm の関連付け] サブタブをクリックします。関連付け識別子 (例: {{ computenest::helmchart::wordpress }}) と、対応するデプロイメントパッケージの情報およびバージョン番号を表示できます。

関連ドキュメント

  • サービスの作成の詳細については、「サービスの作成」をご参照ください。

  • デプロイメントパッケージまたはそのバージョンが不要になった場合は、削除できます。詳細については、「デプロイメントパッケージの削除」をご参照ください。

  • デプロイメントパッケージの内容やその他の情報を変更するには、新しいバージョンを作成します。詳細については、「新しいバージョンの作成」をご参照ください。

  • デプロイメントパッケージのアップグレード設定を構成するには、「サービスアップグレードの構成」をご参照ください。