RDB

マネージド RDB のインスタンス初期化及び、データベースの初期設定を行います。

RDB 内に格納されたデータの所有権はユーザーに帰属するため、デフォルトでは パッケージ削除時にインスタンス及びデータベースの削除は行いません。

設定値

Chart

rdb

重要

Google Cloud 環境では一旦インスタンスの削除を行なうと、同一名のインスタンスは7日間の間作成できなくなります。

対応サービス

パッケージの機能

本パッケージでは、各クラウドの マネージド RDB のインスタンスに関する以下の機能を提供します。

  • RDB インスタンスの作成。
    • インスタンスのマシンタイプに関する設定。

    • インスタンスのデーターベースエンジンのバージョン設定。

    • インスタンスに割り当てるストレージの設定。 (Azure/AWSのみ対応)

    • 高可用性に関する設定。

    • バックアップに関する設定。

  • RDBインスタンスに接続するネットワークの設定。
    • Azureの場合
      • ファイヤーウォールルールの設定。

      • 接続可能な VNET の設定。

      • パブリック・プライベートアクセスの制御。

    • AWSの場合
      • 接続可能な subnet の設定。

      • セキュリティグループの設定。

    • Google Cloudの場合
      • プライベートアクセスのみ許容する状態で構築。
        • パブリック・プライベートに関わらず、Cloud SQL Auth Proxy を利用してアクセスを行います。

  • インスタンス作成時の初期データベースの作成。
    • Google Cloudの場合
      • 複数のデータベースを作成可能。

    • Azureの場合
      • MySQL/PostgreSQLの場合、複数のデータベースを作成可能。

      • SQL Databaseの場合、単一のデータベースを作成可能。

    • AWSの場合
      • 単一のデータベースを作成可能。

  • 初期データベースユーザーの作成。
    • Google Cloudの場合、複数の初期ユーザーを作成可能。

    • Azure/AWSの場合、単一の初期ユーザーを作成可能。

SQL Instance の追加

クラウドサービスのマネージド SQL インスタンスを作成できます。

  • values の instance.create を true に設定し、新規パッケージインストールを行うことでインスタンスが作成されます。

  • instance.create が false の場合は既存のインスタンスに対するネットワーク設定のみ行われます。

重要

インスタンスの作成には数分から数十分の時間がかかるため、初回インストール時にはデータベースを利用する他のアプリケーションがデータベースインスタンスの起動前にデータベースアクセスを行い、エラーにならないよう、インストール手順を考慮する必要があります。 (CNAP の提供するパッケージを利用してアプリケーションのデプロイを行う場合は、インスタンスの起動までコンテナの起動を待つため、アプリケーション起動に時間がかかる場合があります。)

重要

誤操作によるインスタンスの削除を防ぐため、本パッケージでは keepOnDelete の値がデフォルトで true に設定されています。 true の状態でパッケージをアンインストールしてもデータベースインスタンスは残るため、実際に削除する際は、 keepOnDeletefalse に更新した後でアンインストールを行う必要があります。

重要

Azure ではインスタンスに設定した値が DB インスタンスのホスト名に使用されるので、インスタンス名は全 Azure アカウントで一意になるよう設定する必要があります。

Database 接続

Azure

[RELEASE_NAME].mysql.database.azure.com を接続先ホストに設定します。

Google Cloud

作成したインスタンスへの接続には Cloud SQL Auth Proxy を利用します。 CNAP の提供する BASIC-DEPLOYMENT パッケージ等を利用する場合は、インスタンス名に本パッケージで設定した instance.name の値を設定します。

AWS

AWS マネジメントコンソールから作成した RDS のエンドポイントを確認し、接続先ホストとして設定します。

database 追加

新規に作成するSQLインスタンスへデータベースを追加できます。

また、既存SQLインスタンスへのデータベースの追加は以下の2種類の方法で行うことができます。

  • values の databases リストにデータベースを追加し、パッケージのアップデートを行います。

  • values の instance.create を false に設定し、新規パッケージインストールを行います。

重要

AWS と Azure SQL Database では 1 つの SQL インスタンスに対して作成できるデータベースが 1 つのため、values の databases リストの第一要素のみが有効になります。

警告

Google Cloud SQL では異なるインスタンスに対してであっても同一 namespace に同じ名前の Database を作成することができません。 異なるインスタンスに同じ Database を作成したい場合は Application マニフェストを配置する namespace を分ける必要があります。

Database User 追加

データベースへユーザを追加できます。

Azure

  • values の users リストにユーザの名前、パスワードの登録されたSecret名を指定します。

  • Azure では DB 作成時にサーバー管理者ユーザのみを作成するため values の users リストの第一要素のみが有効です。

  • values の users[0].secret.key には external-secrets が参照するキーマネージメントサービスに保存されている、 データベースパスワード情報のキー名を指定します。

    • external-secrets が参照するキーマネージメントサービスとは、Azureでは、cnap-顧客IDのキーコンテナです。

  • パスワードを事前にキーマネージメントサービスに登録します。

警告

Google Cloud SQL では異なるインスタンスに対してであっても同一 namespace に同じ名前の Database User を作成することができません。 異なるインスタンスに同じ Database User を設定したい場合は Application マニフェストを配置する namespace を分ける必要があります。

Google Cloud

  • values の users リストにユーザの名前、パスワードの登録されたSecret名を指定します。

  • values の users[].secret.key には external-secrets が参照するキーマネージメントサービスに保存されている、 データベースパスワード情報のキー名を指定します。

    • external-secrets が参照するキーマネージメントサービスとは、Google Cloudでは、クラスタの属するProjectのSecret Managerです。

  • パスワードを事前にキーマネージメントサービスに登録します。

AWS

  • values の users リストにユーザの名前、パスワードの登録された SecretManager の情報を指定します。

  • AWS では DB 作成時にマスタユーザのみを作成するため values の users リストの第一要素のみが有効です。

  • values の users[0].secret.name , users[0].secret.key には マスタユーザのパスワードが登録されている Secret Manager のシークレット名、およびデータベースパスワード情報のキー名を指定します。

  • パスワードを事前にキーマネージメントサービスに登録します。

Azure Resource Group の指定

Azure クラウドサービスのリソースグループは values の instance.owner.azure.resourceGroup.name で指定できます。 リソースグループを指定する場合は、事前にリソースグループが作成されていることを確認してください。 リソースグループは UserConfig で作成可能です。 リソースグループを指定しない場合には、namespaceと同名のリソースグループにリソースが作成されます。

Azure Database Firewallルール の追加

Azure Databese に Firewallルールを追加できます。

  • values の network.azure.firewallRules.name にFirewallルール名を指定してください。

  • values の network.azure.firewallRules.startIpAddressazure.firewallRules.endIpAddress で接続を許可するIPアドレス範囲を指定してください。

  • 0.0.0.0 - 0.0.0.0 を指定すると、[Azure サービスへのアクセスを許可]がオンに設定されます。

Azure プライベートエンドポイント の追加

プライベートエンドポイント、プライベートDNSゾーンを作成することができます。 VNET内のリソースから安全にデーターベースに接続するためには、プライベートエンドポイントを使用します。 以下のように、プライベートエンドポイントを作成するVNET, サブネットを指定します。

1つのVNETにプライベートエンドポイントを持つ2つ以上のSQL Serverを構築する場合など既存のプライベートDNSゾーンを利用する場合、 network.azure.privateEndpoint.privateDnsZone.create をfalseに指定します。 既存のプライベートDNSゾーンのリソースグループが network.azure.privateEndpoint.vNetResourceGroup と異なる場合、 network.azure.privateEndpoint.privateDnsZone.resourceGroupName を指定します。 プライベートDNSゾーン名は privatelink.database.windows.net 固定です。

network:
  azure:
    privateEndpoint:
      create: true
      vNetResourceGroup: managed-common-rg
      vNetName: cnap-vnet01
      subnetName: cnap-db-subnet01
      privateDnsZone:
        create: true

マイグレーション

1.2.0

1.2.0 以前のバージョンから 1.2.0 以降のバージョンにアップデートすると、Azure Database VNETルールが利用できなくなります。 Azure Database VNETルールを利用していた場合、設定を削除して、プライベートエンドポイントを新たに設定する必要があります。

Values

Default values

# Default values for MASTER-CONTAINER-HELM-RDB.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

########## データベースの種別設定 ##########
# database の種別を指定する。各ベンダごとに以下を指定可能。
# Google Cloud: mysql, postgres
# Azure       : mysql, postgres, sqlserver
# AWS         : mysql, postgres
databaseType: mysql


########## リソース保持に関する設定 ##########
# パッケージアンインストール時にデータベースインスタンスを残す設定。 
# 誤操作によるインスタンスの削除を防ぐため、本パッケージでは true がデフォルトの値となっています。
# true の状態でパッケージをアンインストールしてもデータベースインスタンスは残るため、
# 実際にインスタンス削除する際は、false に更新した後でアンインストールを行う必要があります。
# AWS, Azure SQLServer は未対応
keepOnDelete: true

########## インスタンス設定 ##########
instance:
  create: true
  name: default

  # インスタンスのマシンタイプ(Azureの場合はSKU)を指定する。
  #
  # 設定可能な値は以下を参照
  # AWS: https://aws.amazon.com/jp/rds/instance-types/
  # Azure: 
  #   Flexible: https://learn.microsoft.com/ja-jp/azure/mysql/flexible-server/concepts-service-tiers-storage#service-tiers-size-and-server-types
  #   SQLServer: `az sql db list-editions -l japaneast -o table` コマンドで利用可能な sku を確認します
  # Google: https://cloud.google.com/sql/docs/postgres/instance-settings?hl=ja#machine-type-2ndgen
  machineType: ""

  # Azure にて MySQL/PostgreSQL(フレキシブルサーバ) の場合のみ使用する設定値。
  # Azure の MySQL/PostgreSQL(フレキシブルサーバ) では tier を選択した上で、tier にて利用可能な machineTypeを選択します。
  # 各 tier にて利用できる machineType は以下の通りです。
  # - GeneralPurpose -> Standard_Dxxx
  # - Burstable -> Standard_Bxxx
  # - MemoryOptimized -> Standard_Exxx
  # なお、instance.availability.highAvailability が true の場合、Burstableは選択不可です。
  # また Azure の SQLServer で Zone 冗長を有効にする場合、選択できる machineType に制限があります。以下をご参照ください。
  # https://learn.microsoft.com/en-us/azure/azure-sql/database/high-availability-sla?view=azuresql&tabs=azure-powershell#zone-redundant-availability
  tier: GeneralPurpose

  # インスタンスの配置先を指定する。 
  location: ""

  # データベースエンジンのバージョンを指定する
  # 8.0のようにバージョンを指定することで、databaseTypeと合わせて各ベンダーの適切な設定値に変換されデプロイされます。
  engineVersion: "8.0"

  # 可用性に関する値を設定する。
  availability:
    # 高可用性モードを有効化するかどうか設定する。各クラウドごとに以下の設定がなされます。
    # * Google Cloud
    #   * true  : プライマリのインスタンスとスタンバイのインスタンスがそれぞれ別のゾーンに構築されます。
    #   * false : プライマリのインスタンスのみ構築されます。
    # * AWS
    #   * true  : プライマリのインスタンスとスタンバイのインスタンスがそれぞれ別のAZに構築されます。
    #   * false : プライマリのインスタンスのみ構築されます。
    # * Azure
    #   * true  : instance.availability.azure の設定をもとにインスタンスが構築されます。
    #   * false : プライマリのインスタンスのみ構築されます。
    highAvailability: true
    # Azure では複数の高可用性オプションが選択可能なため、以下で設定を実施します。 
    azure:
      # MySQL/PostgreSQL(フレキシブルサーバ) を利用する場合のみ有効。
      # プライマリ サーバーの可用性ゾーンを指定する。
      availabilityZone: "1"
      # 設定する高可用性モードを選択する。 SameZone と ZoneRedundant が設定できます。 
      # * SameZone      : プライマリインスタンスとスタンバイインスタンスが同一のAZに構築されます。
      # * ZoneRedundant : プライマリインスタンスとスタンバイインスタンスがそれぞれ別のAZに構築されます。 
      # databaseType ごとに以下の値を設定可能です。
      # * mysql     : SameZone, ZoneRedundant 
      # * postgres  : ZoneRedundant
      # * sqlserver : SameZone, ZoneRedundant
      highAvailabilityMode: ZoneRedundant

  # DB instanceに割り当てるストレージについて設定する。
  storage:
    # AWS/Azureの場合に指定する。(今後はGCも使設定可能になる予定)
    # storage size を GB で指定する。
    size: 32
    # AWSの場合に指定する。(今後、GCでも設定可能になる予定)
    # storge の ディスクタイプを指定する。
    # type: gp2

  # インスタンスのバックアップについて設定する。
  backup:
    # バックアップの保持期間を日数で設定する。各クラウドごとに以下の値を設定できます。
    # * Google Cloud : 0〜365
    #                  0を指定した場合バックアップ自体が無効になります。
    # * AWS          : 0〜35
    #                  0を指定した場合バックアップ自体が無効になります。
    # * Azure        : 1〜35
    #                  Azureではバックアップを無効化することはできません。
    retentionPeriod: 7
    # GCP固有の設定を指定する。
    gcp:
      # 以下に指定された時刻にバックアップ処理を開始する。
      startTime: 17:00
    # AWS固有の設定を指定する。
    aws:
      # 以下に指定している時間の範囲でバックアップ処理を開始する。
      startBackupWindow: 17:00
      endBackupWindow: 17:30
    azure:
      # MySQL/PostgreSQL(フレキシブルサーバ) を利用する場合のみ有効。
      # ジオ冗長バックアップを有効にする場合 true を設定する。
      geoRedundantBackup: false

  owner:
    # Azure の場合のみ使用する設定値。
    azure:
      # インスタンスを作成するリソースグループに関する設定を行う
      resourceGroup: {}
      #   # リソースグループの名前を指定する。
      #   name: staging


########## ネットワーク設定 ##########
# インスタンスに接続するネットワークに関する設定を行う。
network:
  azure:
    # データベースインスタンスに対する Firewall の設定を行います。
    # 特に設定を指定しない場合全ネットワークからのアクセスを許容します。
    # firewallRules:
    #   - name:
    #     startIpAddress:
    #     endIpAddress:
    # パブリック ネットワーク アクセス利用する設定
    # true の場合、パブリック ネットワーク アクセスを許可します。
    # false の場合、プライベート リンクを介して行われた接続のみがこのサーバーに到達できます。 
    publicNetworkAccessEnabled: false

    # プライベートエンドポイントを利用する設定(SQL Server の場合のみ有効)。
    # create: true の場合、プライベートエンドポイントを作成します。vNetRule, firewallRulesは設定できません。
    # create: false の場合、プライベートエンドポイントは作成しません。 
    # privateEndpoint:
    #   vNetResourceGroup:
    #   vNetName:
    #   subnetName:
    #   privateDnsZone:
    #     create: true
        # create: true に設定した場合、作成するプラベートDNSゾーンのリソースグループを指定します。プライベートDNSゾーン名は固定です。
        # create: false に設定した場合、既存のプラベートDNSゾーンのリソースグループを指定します。プライベートDNSゾーン名は固定です。
        # resourceGroupName プライベートDNSゾーンのnetwork.azure.privateEndpoint.vNetResourceGroup が使用されます
        # resourceGroupName: 


    # Azure にて SQLServer を利用する場合のみ使用する設定値。
    # SQLデータベースおよびSQLデータウェアハウスデータベースの最小TLSバージョンを指定する。
    # 有効な値は、1.0、1.1、1.2、およびDisabledです。 
    minimumTlsVersion: "1.2"
    # SQLServerのコネクションポリシー
    # Default, Proxy, Redirectのいずれか。デフォルトは Default
    connectionPolicy: "Default"

  aws: {}
  #   # インスタンスに接続する subnet を指定する。必須。
  #   subnets: 
  #     - subnet-12345678
  #     - subnet-23456789
  #   # インスタンスに設定するセキュリティグループを指定する。
  #   # 指定がない場合、default VPC の default セキュリティグループ が設定されます。
  #   securityGroups:
  #     - sg-12345678
  #     - sg-23456789

########## データベース設定 ##########
# インスタンス作成時にデータベースを最初から作成したい場合に指定を行います。
# Google Cloud/Azure では複数のデータベースを作成可能です。
# AWS では1つのデータベースを作成可能です。リストに指定した最初の要素が反映されます。
databases: []
  # - 
  #   # 作成するデータベース名を指定します。
  #   name: testdb
  #   # 作成するデータベースの文字コード。Google Cloudでのみ有効な設定値です。
  #   # Postgres では UTF8 のみ指定可。MySQLでは utf8mb4 など https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html に記載されている値の中から設定可能です。
  #   charset: UTF8
  #   # 作成するデータベースに適用する照合順序。現在はAzureにてSQLServerを利用する場合のみ設定可能です。既存のデータベースの照合順序を変更した場合はデータベースが作り直されます。
  #   collation: SQL_Latin1_General_CP1_CI_AS

########## ユーザー設定 ##########
# インスタンスに作成する初期ユーザーの指定を行います。
# Google Cloud では 複数のユーザーを作成可能です。
# Azure/AWS ではマスタユーザとして一つのユーザーを作成可能です。リストに指定した最初の要素が反映されます。
users: []
  # - 
  #   # 作成するユーザー名を指定します。
  #   name:
  #   # 以下に設定した kms の値でユーザーのパスワードを設定します。
  #   secret:
  #     # シークレット名を指定する。英小文字・数字・ハイフンのみ使用可
  #     key: rdb-admin
  #     # AWSでのみ使用するパラメーター。
  #     # AWS SecretManagerではシークレット内に json 形式でキーを設定して値を保存するため、シークレット名の他にキー名の指定を行う。
  #     property: password

########## その他 HelmRelease用, external secret 用 ##########
# # HelmRelease構築時に自動で設定される設定なのでテスト実施時以外は触らない
# # クラウドのアカウント情報など設定
# global:
#   azure:
#     subscriptionID: 2d0ce241-563d-4082-8008-4ac0cbd394dd
#   customerId: msp1234567890
#   gcp:
#     projectId: test-managed-project
#   vendor: gcp

# RDBパッケージ内で利用する ServiceAccount に関する設定です。
# 基本的に変更の必要はありません。
serviceAccount:
  # Annotations to add to the service account
  annotations: {}
  # The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template
  name: ""

# KMSとSecret情報を連携するための設定です。
# 基本的に変更の必要はありませんが変更する場合はVAULTパッケージにて作成したsecretStoreを設定します。
secretStore:
  kind: ClusterSecretStore
  name: default

Schema reference

type

object

properties

  • databaseType

データベース種別。

type

string

enum

mysql, postgres, sqlserver

default

mysql

  • keepOnDelete

true の場合パッケージアンインストール時にインスタンスを保持する。

type

boolean

default

True

  • instance

インスタンス設定

type

object

properties

  • create

true の場合 RDB Instance (Azureの場合Server)を作成する。

既存のインスタンスを利用する場合は false を指定。

Azure, Google Cloudの場合利用する。

type

boolean

default

True

  • name

Instance (Azureの場合Server)名を指定。

type

string

default

default

  • machineType

インスタンスの VM 種別 (Azureの場合には、sku ( Standard_B1ms, Standard_D2ds_v4 など)、SQLServerの例: GP_S_Gen5_2,HS_Gen4_1,BC_Gen5_2, ElasticPool, Basic,S0, P2 ,DW100c, DS100)

type

string

  • location

インスタンスのロケーション。 GCP では Region に該当。

type

string

  • engineVersion

インスタンスで起動するデータベースのバージョン。Azure SQLServerの場合、有効な値は、2.0(v11サーバー用)および12.0(v12サーバー用)

type

string

  • tier

インスタンスの種別 (Azureの場合使用する)。選択したtierにより選択できるmachineTypeが異なる。Burstable -> Standard_Bxxx, GeneralPurpose -> Standard_Dxxx, MemoryOptimized -> Standard_Exxx。highAvailability=true(default)の場合、Burstableは選択不可

type

string

enum

Burstable, GeneralPurpose, MemoryOptimized

default

GeneralPurpose

  • storage

データベースストレージ設定。

type

object

properties

  • type

データベースストレージ種別 (AWSの場合使用する)

type

string

  • size

データベースストレージ容量 (Azure, AWSの場合使用する)

type

number

default

32

  • availability

可用性の設定。

type

object

properties

  • highAvailability

true の場合高可用性オプションが有効になる。

type

boolean

default

True

  • azure

Azure固有設定

type

object

properties

  • availabilityZone

可用性ゾーン。設定しない場合は優先設定なしとなる

type

string

enum

1, 2, 3

default

1

  • highAvailabilityMode

高可用性モード。highAvailability を true に設定した場合のみ有効。mysqlの場合: SameZone, ZoneRedundant, postgresqlの場合: ZoneRedundant が設定可能。

type

string

enum

SameZone, ZoneRedundant

default

ZoneRedundant

  • backup

自動バックアップ設定

type

object

properties

  • retentionPeriod

自動バックアップの保持期間(日数)。Google Cloud の場合 0〜365、AWSの場合 0〜35、Azureの場合 1〜35 で指定する。

type

number

default

7

  • azure

Azure設定

type

object

properties

  • geoRedundantBackup

バックアップの Geo 冗長を有効にする場合 true 。 MySQL/PostgreSQL(フレキシブルサーバ) を利用する場合のみ有効。

type

boolean

default

False

  • gcp

GCP設定

type

object

properties

  • startTime

自動バックアップの起動時刻。

GCP, AWS の場合は UTC で指定。Azureでは指定不可

type

string

default

17:00

  • aws

AWS設定

type

object

properties

  • startBackupWindow

自動バックアップのウインドウ時間の開始時刻。UTC で指定。startBackupWindow と endBackupWindow に指定された時刻の間でバックアップが開始される。

type

string

default

17:00

  • endBackupWindow

自動バックアップのウインドウ時間の終了時刻。UTC で指定。startBackupWindow と endBackupWindow に指定された時刻の間でバックアップが開始される。

type

string

default

17:30

  • network

ネットワーク設定

type

object / null

properties

  • azure

Azure固有設定

type

object / null

properties

  • firewallRules

データベースネットワークの Firewall 設定。(デフォルトでは全ネットワークからのアクセスを許容する。)

type

array

items

type

object

properties

  • name

Firewall ルール名

type

string

  • startIpAddress

IP アドレスレンジの開始アドレス。

type

string

  • endIpAddress

IP アドレスレンジの終了アドレス。

type

string

  • privateEndpoint

プライベートエンドポイントの設定

type

object

properties

  • vNetResourceGroup

プライベートエンドポイントを作成するVNETのリソースグループ名

type

string

  • vNetName

プライベートエンドポイントを作成するVNET名

type

string

  • subnetName

プライベートエンドポイントを作成するサブネット名

type

string

  • privateDnsZone

type

object

properties

  • create

プライベートDNSゾーンを作成するか。VNETに既存のdatabase用のプライベートDNSゾーンがリンクされている場合には、falseを指定します

type

boolean

  • resourceGroupName

プライベートDNSゾーンのリソースグループ名。指定しない場合、network.azure.privateEndpoint.vNetResourceGroup のリソースグループ。

type

string

  • publicNetworkAccessEnabled

サーバーにパブリック ネットワーク アクセスを許可するかどうか

type

boolean

  • minimumTlsVersion

サーバーに関連付けられたすべてのSQLデータベースおよびSQLデータウェアハウスデータベースの最小TLSバージョン。有効な値は、1.0、1.1、1.2、およびDisabledです。デフォルトは1.2です。

type

string

default

1.2

  • connectionPolicy

SQLServerのコネクションポリシー。Default, Proxy, Redirectのいずれか。デフォルトは Default

type

string

enum

Default, Proxy, Redirect

default

Default

  • aws

AWS固有設定

type

object / null

properties

  • subnets

RDB インスタンスをデプロイするサブネット ID のリスト。

type

array

items

サブネット ID

type

string

  • securityGroups

RDB インスタンスに設定するセキュリティグループのリスト。

type

array

items

セキュリティグループ ID

type

string

  • databases

データベースリスト

DB を追加する場合はこのリストに追加しパッケージをアップデートする。 AWS の場合はリストの第一要素のみが有効である。

type

array

items

type

object

properties

  • name

作成するデータベース名

type

string

  • charset

作成するデータベースの文字コード。Google Cloudでのみ有効。Postgres では UTF8 のみ指定可。MySQLでは utf8mb4 など(https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html 参照)

type

string

  • collation

作成するデータベースに適用する照合順序。現在はAzureにてSQLServerを利用する場合のみ設定可能。既存のデータベースの照合順序を変更した場合はデータベースが作り直される

type

string

default

Japanese_CI_AS

  • users

データベース初期ユーザーリスト。

ユーザーを追加する場合はこのリストにユーザーを追加してパッケージをアップデートする。 Azure, AWS の場合はリストの第一要素のみが有効でありマスタユーザとして作成される。

type

array

items

type

object

properties

  • name

ユーザー名

type

string

  • secret

マスタユーザーのパスワードを格納した KMS の情報

type

object

properties

  • property

ユーザーのパスワードを格納した KMS のシークレット内のプロパティ名 (AWSの場合のみ使用)

type

string

  • key

ユーザーのパスワードを格納した KMS のシークレット名。英小文字・数字・ハイフンのみ使用可

type

string

  • serviceAccount

RDB アクセス権限を持つ k8s serviceAccount を作成する。(GCPのみ)

type

object

properties

  • annotations

ServiceAccunt に設定する追加の Annotation

type

object / null

  • name

ServiceAccount 名。指定しない場合には名前を自動生成する

type

string

  • secretStore

参照する SecretStore の指定

type

object

properties

  • name

SecretStore の名前

type

string

  • type

SecretStore の種類

type

string

enum

SecretStore, ClusterSecretStore

Example

Example1-1. Azure mysql

apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata: 
  name: mysql
  namespace: staging
spec:
  chart:
    name: rdb
    version: <latest>
  settings:
    databaseType: mysql
    instance:
      create: true
      name: mysql-cnap-<customer id>-instance
      location: japaneast
      machineType: Standard_D2ds_v4
      engineVersion: "8.0.21"
      tier: GeneralPurpose
    network:
      azure:
        firewallRules:
          - name: allow-azure-services
            startIpAddress: 0.0.0.0
            endIpAddress: 0.0.0.0
        privateEndpoint:
          create: true
          vNetResourceGroup: cnap-stg-az-common-rg
          vNetName: cnap-vnet-01
          subnetName: db-subnet-mysql-private-endpoint
          privateDnsZone:
            create: true
    databases:
      - name: staging-db
    users:
      - name: maintainer
        secret:
          key: rdb-maintainer-password

Example1-2. Azure SQL Database

apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata: 
  name: sqlserver
  namespace: staging
spec:
  chart:
    name: rdb
    version: <latest>
  settings:
    databaseType: sqlserver
    instance:
      create: true
      name: sqlserver-cnap-<customer id>-name
      location: japaneast
      engineVersion: "12.0"
      machineType: "P1"
      storage:
        size: 2
    network:
      azure:
        firewallRules:
          - name: allow-azure-services
            startIpAddress: 0.0.0.0
            endIpAddress: 0.0.0.0
        publicNetworkAccessEnabled: true
        minimumTlsVersion: "1.2"
        connectionPolicy: "Redirect"
    databases:
      - name: cnap-sqldatabase-name
    users:
      - name: maintainer
        secret:
          key: rdb-maintainer-password

Example2. Google Cloud postgres

apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata:
  name: postgres
  namespace: staging
spec:
  chart:
    name: rdb
    version: <latest>
  settings:
    databaseType: postgres
    instance:
      create: true
      name: postgres
      engineVersion: "15"
      location: asia-northeast1
      machineType: db-custom-1-3840
      availability:
        highAvailability: false
      backup:
        gcp:
          enabled: true
    databases:
      - name: staging-db
        charset: UTF8
    users:
      - name: admin1
        secret:
          key: rdb-admin-password

Example3. AWS mysql

apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata:
  name: mysql
  namespace: staging
spec:
  chart:
    name: rdb
    version: <latest>
  settings:
    databaseType: mysql
    instance:
      name: mysql
      machineType: db.t3.micro
      location: ap-northeast-1
      engineVersion: "8.0"
      storage:
        type: gp2
        size: 20
      backup:
        retentionPeriod: 7
        aws:
          startTime: 16:00
          endTime: 17:00
      availability:
        highAvailability: true
    network:
      aws:
        subnets:
          - "subnet-0076f20d6d9c2d164"
          - "subnet-027f9b3f2470f697a"
    databases:
      - name: staging
    users:
      - name: admin
        secret:
          key: rdb-admin
          property: password

Change Log

1.2.6

Released on 2025-08-07

What's Changed

パッケージ内で利用しているライブラリの更新を行いました。

1.2.5

Released on 2025-05-15

What's Changed

パッケージ内で利用しているライブラリの更新を行いました。

1.2.4

Released on 2025-04-03

What's Changed

  • ドキュメントのvaluesの説明を変更しました

1.2.3

Released on 2025-03-03

What's Changed

AWSにおいて、network.aws.securityGroups を指定しない場合に、default セキュリティーグループを設定するように変更しました。