INGRESS

サービスメッシュ内の複数サービスをホストするためのロードバランサー設定を機能を提供します。

設定値

Chart

ingress

対応サービス

パッケージの機能

本パッケージでは、 クラスタにロードバランサーを追加するための以下の機能を提供します。

  • ロードバランサーの設定

  • Istio Gateway の設定

  • サービスメッシュ設定

  • TLS 証明書の発行/管理

  • ロードバランサーへの WAF 設定 (AWS,Azure の L7 alb のみ)

  • ロードバランサーでの OIDC 認証設定 (AWS, Google の L7 alb のみ)

  • Application Gateway の作成及び Ingress Controller のインストール (Azure のみ)

ロードバランサーの種類

本パッケージが作成できるロードバランサーには L7,L4 の二種類があり、それぞれ以下のような特徴があります。

L7 (alb)

ネットワークレイヤー 7 で HTTP/HTTPS 通信に対応したロードバランサー

  • HTTP(s)によるルーティング機能

  • WAF,認証プロキシ等への対応

  • マルチリージョンでの利用

HTTP(s)通信が目的の場合は L7 ロードバランサーの利用を推奨します。 HTTP(s)以外の通信への対応状況はクラウドベンダー毎に異なるため、個別に確認が必要です。

L4

ネットワークレイヤー 4 で TCP/UDP 通信に対応したロードバランサー

HTTP(s) 以外の通信要件が必要な場合にこちらを選択します。

通常 L4 ロードバランサーには HTTP ルーティング機能はありませんが、 CNAP クラスタでは Istio サービスメッシュに自動で組み込まれるため、 別途 nginx 等を導入することなく HTTP ルーティングを行うことができます。

事前準備

本パッケージがロードバランサーを作成するにあたり、 利用用途に応じて事前準備が必要になる場合があります。

DNS ゾーン

本パッケージは Kubernetes クラスタにロードバランサーを追加し、外部からクラスタ内ネットワークへの通信を可能にします。 ロードバランサーに割り当てられた IP アドレスの名前解決を行う場合は別途 DNS ゾーンの作成と、 ゾーンの委任が必要になります。

DNS ゾーンの追加には DNS パッケージを使用します。

重要

tls.certs[].typeletsencrypt を選択している場合、DNS 委任後証明書の自動発行に失敗する場合があります。 これは証明書の発行及び更新を管理している cert-manager の仕様の問題のため、 このような問題が発生した場合には、cert-manager の再起動を行うことで証明書が発行されるようになります。

kubectl rollout restart deployment -n cert-manager cert-manager-cert-manager

ネットワーク

プライベートネットワークにロードバランサーを作成する場合は、 ロードバランサーの先のネットワークを事前に準備しておく必要があります。 各クラウドベンダー毎に必要な設定手順が異なるため、後述のサンプルを参考にして、 ネットワークの設定を行います。

パブリックネットワークにロードバランサーを作成する場合は、事前準備は不要です。

固定 IP

本パッケージでパブリックネットワーク向けのロードバランサーに固定 IP を設定したい場合は、 事前に PUBLIC IP で IP を発行しておく必要があります。( loadBalancer.staticIp に設定する) IP の指定が無い場合は自動割り当てされた動的 IP が適用されます。 この IP はロードバランサーが削除されると開放され、再度作成した際には異なる IP が割り当てられます。

固定 IP の設定には利用するロードバランサーの設定ごとに以下の設定が必要になります。

vendor

loadBalancer.type

loadBalancer.private

staticIp.addresses

stawticIp.resourceRefs

備考

Azure



l7



fase



設定不要



- name: PUBLIC IP マニフェスト名
- namespace: managed-system
- resourceGroup: PublicIPAddress のリソースグループ名

Application Gateway と PublicIPAddress は
同じリソースグループに配置されている必要があります
リソースグループが指定されていない場合は、
CNAP 共有 Resource Group に配置されているものとして動作します

Azure

l7

true

  • IP アドレス

設定不要

Azure

l4

true/false

  • IP アドレス

設定不要

AWS

l7

false

設定不要

設定不要

EKS に自動割り当てされた IP が使用されます

AWS

l7

true

設定不要

設定不要

EKS に自動割り当てされた IP が使用されます

AWS

l4

false

設定不要

- name: PUBLIC IP マニフェスト名
- namespace: マニフェストの namespace
サブネットの数と同数の IP を指定します

AWS

l4

true

  • IP アドレス

設定不要

サブネットの数と同数の IP を指定します

Google

l7

true/false

設定不要

- name: PUBLIC IP マニフェスト名
- namespace: マニフェストの namespace


Google

l4

true/false

  • IP アドレス

設定不要

Gateway の作成

作成したロードバランサーに対応する Istio Gateway リソースを作成します。 BASIC-DEPLOYMENT パッケージで作成したアプリケーションはこの Gateway を指定することで、追加で作成したロードバランサーからのリクエストを 受け付けることができるようになります。

BASIC-DEPLOYMENT パッケージの spec.settings.network.gatewayName に Gateway リソースの名前を指定します。 Gateway リソースの名前は loadBalancer.gateway.name が指定されている場合はその値、指定されていない場合はリリース名 ( Application リソースの名前 )になります。

TLS 証明書

TLS 証明書は以下の3種類に対応しています。

Let's Encrypt

Cert Manager を利用し Let's Encrypt で発行します。 証明書の更新は自動で行われるため、更新作業は発生しません。

CNAP の Cert Manager はプライベート証明書には対応していないため、 プライベートネットワークにロードバランサーを作成する場合は、他の証明書を選択します。

CNAP は Cert Manager の ACME を利用した証明書発行に対応します。 デフォルトでは issuer として のマネージド DNS を利用した issuer が設定されており、 通常は tls.certs[].issuer の設定を行う必要はありません。

独自の issuer を設定する場合は Cert Manager issuer の ACME 設定を参考にして tls.certs[].issuer に solver の値を指定します。

http01 solver の例
tls:
  certs:
    - issuer:
        email: user@example2.com
        server: https://acme-v02.api.letsencrypt.org/directory
        solvers:
          - http01:
              ingress:
                class: istio
      type: letsencrypt
      secret:
        name: test-tls

クラウドマネージド

各クラウドベンダーが発行するマネージド証明書です。 証明書の発行及び更新は自動で行われるため、更新作業は発生しません。 (AWS L7 にのみ対応)

Example6. AWS L7 Public

セルフマネージド

独自に発行した証明書を利用する場合は、各クラウドベンダーのキーマネージメントサービス(KMS)に秘密鍵と証明書をそれぞれ登録しておくことにより利用できます。

証明書の自動更新は行われないため、期限が切れる前に KMS に登録された証明書を更新する必要があります。

Example

以下のExampleでは、 Application マニフェストの settings の部分の定義を載せています。 settings 以外のマニフェストは下記を参考にしてください。

apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata:
  name: ingress-l7
  namespace: staging
spec:
  chart:
    name: ingress
    version: <latest>
  settings:
    <ユーザ定義設定>

Example1. L4 (Azure, Google Cloud, AWS)

AWS L4 public
tls:
  certs:
    - type: letsencrypt
      secret:
        name: l4-tls
hosts:
  - domain: "*.<customer domain>"
    tlsSecret: l4-tls
    name: staging
loadBalancer:
  type: l4
  ports:
    - number: 443
      name: https
      protocol: HTTPS
      hostRefs:
        - staging

L4 ロードバランサーを利用する場合は、 loadBalancer.ports で利用するポートを明示的に指定する必要があります。 hostRefs にはポートを設定するホストの名前 hosts[].name を指定します。

サブネットの指定

L4 ロードバランサーに設定するサブネットの設定要件。

AWS
  • リストで複数指定可能

  • クラスタと同一のvpc上のsubnetのみ指定可能

  • public の場合

    • EKS が private subnet に構築されている時は指定必須、

    • EKS が public subnet に構築されている時はクラスタネットワークと別の public subnet を指定したい場合にのみ指定する

  • private の場合

    • EKS が private subnet に構築されている時は指定任意

    • EKS が public subnet に構築されている時は指定必須

    • 現状の CNAP では必ず public subnet に EKS が構築されるので、 事実上 private 接続の時には指定が必須

AWS L4 private
hosts:
  - domain: "*.<customer domain>"
    name: staging
loadBalancer:
  type: l4
  private: true
  subnets:
    - subnet-<subnet id>
    - subnet-<subnet id>
  ports:
  - number: 80
    name: http
    protocol: HTTP
    hostRefs:
      - staging
Azure
  • リスト形式で記載するが、リストの先頭の値が反映される

  • クラスタと同一のvnet上のsubnetのみ指定可能

  • (armIdではなく単純な)サブネット名を指定

  • public の場合は指定無効

  • private の場合は指定任意、クラスタネットワークと別の subnet を利用したい時に指定

Azure L4 private
hosts:
  - domain: "*"
    name: staging
loadBalancer:
  type: l4
  private: true
  staticIp: 
    addresses:
      - 10.0.255.20 # frontendSubnetName内のIP
  ports:
    - number: 80
      name: http
      protocol: HTTP
      hostRefs:
        - staging

ロードバランサーに割り当てる IP アドレスを明示する必要があります。 IP アドレスにはロードバランサーを作成するサブネット内の IP アドレスを loadBalancer.staticIp.addresses に指定します。

Google
  • リスト形式で記載するが、リストの先頭の値が反映される

  • クラスタと同一のvpc上のsubnetのみ指定可能

  • public の場合は指定無効

  • private の場合は指定任意、クラスタネットワークと別の subnet を利用したい時に指定

Example2. Azure L7 Public

tls:
  certs:
    - type: letsencrypt
      secret:
        name: test-tls
hosts:
  - domain: "*.<customer domain>"
    tlsSecret: test-tls
    name: staging
loadBalancer:
  type: l7
  private: false
  subnets:
    - appgw-subnet-01
  azure:
    appGateway:
      create: true
      vnet:
        name: cnap-vnet-01

Azure で L7 ロードバランサを作成する場合はロードバランサーを配置する subnet とそれを含む vnet を指定する必要があります。 それぞれ loaBalancer.azure.appGateway.vnet.name loadBalancer.subnets に設定します。 vnet のリソースグループはデフォルトで CNAP の共有リソースグループが指定されますが、 任意のリソースグループを指定する場合は loaBalancer.azure.appGateway.vnet.resourceGroup に設定します。

Azure ではパブリック、プライベート共に同一のロードバランサーに複数のドメイン設定を行うことはできません。 hoststls.certs のリストにはそれぞれ1つの設定のみ定義できます。

Example3. Azure L7 Private

hosts:
  - domain: "*.<customer domain>"
    name: staging
loadBalancer:
  type: l7
  private: true
  staticIp:
    create: false
    addresses:
      - 10.1.0.21
  subnets:
    - appgw-subnet-01
  azure:
    appGateway:
      create: true
      vnet:
        name: cnap-vnet-01

Azure プライベートネットワークで L7 ロードバランサーを作成する際には、 ロードバランサーに割り当てる IP アドレスを明示する必要があります。 IP アドレスにはロードバランサーを作成するサブネット内の IP アドレスを loadBalancer.staticIp.addresses に指定します。

Example4. Google Cloud L7 Public

tls:
  certs:
    - type: letsencrypt
      secret:
        name: test-tls
hosts:
  - domain: "*.<customer domain>"
    tlsSecret: test-tls
    name: staging
loadBalancer:
  type: l7
  staticIp:
    resourceRefs:
      - name: kimura-test-pip

Example5. Google Cloud L7 Private

hosts:
  - domain: "*.<customer domain>"
    name: staging
loadBalancer:
  type: l7
  private: true

Google でプライベートネットワークに L7 ロードバランサーを作成する際には、 クラスタの属する vpc ネットワーク内にプロキシサブネットを追加し、 ファイアウォールの設定を行っておく必要があります。

Example6. AWS L7 Public

hosts:
  - domain: "*.<customer domain>"
    tlsSecret: l7-tls
    name: staging
tls:
  certs:
    - type: cloudmanaged
  awsArn: arn:aws:acm:ap-northeast-1:<aws account id>:certificate/<certificate id>
loadBalancer:
  type: l7
  subnets:
    - subnet-<subnet id>
    - subnet-<subnet id>

AWS の alb で tls を使用する場合。証明書は cloudmanaged を選択する必要があります。 cloudmanaged を選択している場合は tls.awsArn に事前に発行した証明書の ARN を指定します。 証明書の ARN はロードバランサーに対して1つのみ設定することができます。

AWS で L7 パブリックネットワークにロードバランサーを作成する場合は、クラスタに設定されたサブネットを全て指定する必要があります。 また、ロードバランサーはサブネット毎に作成されるため、固定 IP を設定する場合はサブネットと同数の固定 IP を loadBalancer.staticIp.resourceRefs に指定する必要があります。

Example7. AWS L7 Private

hosts:
  - domain: "*.<customer domain>"
    name: staging
loadBalancer:
  type: l7
  private: true
  subnets:
    - subnet-<subnet id>
    - subnet-<subnet id>

Values

Default values

# yaml-language-server: $schema=./values.schema.json

global:
  vendor:
  azure:
    clientID:
    resourceGroups:
      cluster:
        name:

keepOnDelete: true

# AzureでかつL7の場合には、hosts は1つのみ定義できる。domainが異なる場合には、複数Ingressパッケージをインストールする。
hosts:
  - domain: # domain を指定するのはここだけにし、ingress には host を指定しない。
    tlsSecret: # tls.certs[].secret.name で作成した secret名 もしくは既存secret名を指定する。
    name: # port を割り当てる際のリファレンスに利用する任意の名前

tls: # tls cert を作成する場合設定する。(作成済みの cert を利用する場合は指定しない)
  certs: []
  #   - type: # letsencript/cloudmanaged/selfmanaged 証明書の種別
  #     issuer: # 指定しない場合は package-registry で作成したデフォルトの issuer を使用する。
  #     secret:
  #       key: # selfmanaged の場合のみキーマネージャー上の秘密鍵のキー名を指定。
  #       crt: # selfmanaged の場合のみキーマネージャー上の証明書のキー名を指定。
  #       name: # 出力される tls secret の名前
  #       secretStore: #selfmanaged の場合のみキーマネージャー上の証明書のキー名を指定。
  #         type: # SecretStore 名(default: default)
  #         name: # SecretStore の種別 (default: ClusterSecretStore)
  # awsArn: # aws のマネージド証明書を alb で利用する場合の arn

# aws https://kubernetes-sigs.github.io/aws-load-balancer-controller/v1.1/guide/ingress/annotation/
# azure https://github.com/Azure/application-gateway-kubernetes-ingress/blob/master/docs/annotations.md
# gc https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration?hl=ja
loadBalancer:
  # Ingressリソースの名前を明示的に変更したい場合のみ設定する
  # ingressName: ""
  # LB に固定 IP を設定する場合に指定、ephemeral の場合は設定しない。
  # L7 AWS の場合、固定IPを設定することは不可
  staticIp: {}
  #   addresses: [] 
  #   # ip アドレスを直接指定するケース、L4 Google Cloud および L4 Azure にて利用可能
  #   resourceRefs: 
  #   # public-ip パッケージにて 払い出し済みの global ip リソース名を指定するケース、L4/L7 Google Cloud、L4/L7 Azure、L4 AWS にて利用
  #     - name:
  #       # publuc-ip パッケージのリリース名を指定する。
  #       # 通常は [Applicationリソースのname]-application を指定すればよい。
  #       namespace:
  #       # publuc-ip パッケージをリリースした namespace を指定する。
  #       resourceGroup:
  #       # public-ip パッケージをリリースしたリソースグループ名を指定する。
  #       # Azureのみ指定、指定がない場合はcommonのリソースグループを参照する。
  type: l4 # l4/l7
  ports: [] # L4 の場合のみ指定する。L7 の場合は HTTPS を自動設定する。
    # - number:
    #   protocol:
    #   name:
    #   hostRefs: # host と port を関連付ける場合は hosts[].name の参照を指定する。異なる tlsSecret を使用している場合は port を分ける必要がある。
  # subnet指定のパターン
  # * L4
  #   * aws
  #     * リストで複数指定可能
  #     * クラスタと同一のvpc上のsubnetのみ指定可能
  #     * public の場合、EKS が private subnet に構築されている時は指定必須、EKS が public subnet に構築されている時は指定任意
  #       * クラスタネットワークと別の public subnet を指定したい場合に指定する
  #     * private の場合、EKS が private subnet に構築されている時は指定任意、EKS が public subnet に構築されている時は指定必須
  #       * 現状の CNAP では必ず public subnet に EKS が構築されるので、 事実上 private 接続の時には指定が必須
  #   * azure
  #     * リスト形式で記載するが、リストの先頭の値が反映される
  #     * クラスタと同一のvnet上のsubnetのみ指定可能
  #     * (armIdではなく単純な)サブネット名を指定
  #     * public の場合は指定無効
  #     * private の場合は指定任意、クラスタネットワークと別の subnet を利用したい時に指定
  #   * gcp
  #     * リスト形式で記載するが、リストの先頭の値が反映される
  #     * クラスタと同一のvpc上のsubnetのみ指定可能
  #     * public の場合は指定無効
  #     * private の場合は指定任意、クラスタネットワークと別の subnet を利用したい時に指定
  # * L7
  #   * aws
  #     * リストで複数指定可能
  #     * クラスタと同一のvpc上のsubnetのみ指定可能
  #     * public / private どちらの場合も指定必須
  #   * azure
  #     * リスト形式で記載するが、リストの先頭の値が反映される
  #     * クラスタと同一のvnet上のsubnetのみ指定可能
  #     * (armIdではなく単純な)サブネット名を指定
  #     * public / private どちらの場合も指定必須
  #   * gcp
  #     * リスト形式で記載するが、リストの先頭の値が反映される
  #     * クラスタと同一のvpc上のsubnetのみ指定可能
  #     * public / private どちらの場合も指定必須
  subnets: []
  extraRules: [] # Ingressとは別のサービスにルーティングする場合などIngressリソースのルーティングルールを別途追加したい場合のみ設定する
    # - host: kong-proxy.your.domain
    #   http:
    #     paths:
    #     - backend:
    #         service:
    #           name: kong-proxy
    #           port:
    #             number: 80
    #       path: /
    #       pathType: Prefix
  private: false # private network 用の場合は true
  auth: {} # alb で OIDC 認証を行うための設定 (azure は対応しない)
    # type: # 認証種別を指定する none/oidc/proxy
    # secret: # OIDC 設定に必要なパラメータを設定した kms secret を指定。
    # secretStore: # secret を取得する SecretStore を指定
    #   type: SecretStore の種別。 SecretStore もしくは ClusterSecretStore を指定 default: ClusterSecretStore
    #   name: 参照する SecretStore 名 default: default
    # aws:
    #   cognitoUserPool: (cognito を利用する場合の設定)
    #     arn:
    #     clientID:
    #     domain:
    # oidc: # OIDC 認証設定情報 (aws の場合設定、google の場合は loadBalancer.auth.secret 内で設定 )
    #   issuer:
    #   authorizationEndpoint
    #   tokeEndpoint:
    #   userInfoEndpoint:
    #
  waf: {}
    # waf を使用する場合のみ設定する。
    # waf を使用する場合は azure appGateway の sku が WAF_V2 になる。設定されていない場合は Standard_V2
    # policy: # 設定済み WAF の Policy 名(Azure のみ)
    # awsArn: # 設定済み WAF の ARN (AWS のみ)
  annotations: {} # Ingress リソースに設定する annotation
  # 以下を参考に path を設定する
  # https://kubernetes.io/ja/docs/concepts/services-networking/ingress/#ingress%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9
  paths: [] # デフォルトでは / に Gateway service が割り当てられるため設定の必要は無い。Gateway service によるルーティングを行ないたくない場合に設定する。
  azure:
    # Azure Application Gateway の設定
    appGateway:
    #   create: # appGateway を新規作成する場合は true
    #   name: # 既存の appGateway を使用する場合は name を指定する。
    #   location: # Azure L7 の場合のみ location を指定する必要あり。指定しない場合はクラスタのロケーションに作成
    #   resourceGroup: # 指定しない場合 common リソースグループに作成
    #   autoscale:
    #     minCapacity:
    #     maxCapacity:
    #   vnet:
    #     name: application gateway を配置する vnet 名
    #     resourceGroup: application gateway を配置する vnet resourceGroup
      agic: {}
      sslPolicyName: "AppGwSslPolicy20220101"
  # Istio Ingress Gateway の設定
  gateway:  # istio Gateway リソース及び Gateway サービスの設定
    name: # Gateway リソースに設定する名前 (デフォルトはリリース名)
    autoscale: # Gateway サービスのスケール設定
      minReplicas: 2
      maxReplicas: 5
  requestTimeout: 

monitoring: {} # 監視設定 (今後提供予定)

Schema reference

Values

https://github.com/sbopsv/MASTER-CONTAINER-HELM-STORAGE/blob/master/values.schema.json

type

object

properties

  • keepOnDelete

type

boolean

  • hosts

host の ドメインリスト

type

array

items

type

object

properties

  • domain

ドメイン名

type

string

  • tlsSecret

tls名のリファレンスを指定

type

string

  • name

任意の値。LoadBalancer portで指定するためのリファレンス

type

string

  • tls

tls 証明書関連設定

type

object

properties

  • awsArn

aws のマネージド証明書を alb で利用する場合の ACMの arn

type

string / null

  • certs

type

array

items

type

object

properties

  • type

letsencript/cloudmanaged/selfmanaged 証明書の種別

type

string

enum

letsencrypt, cloudmanaged, selfmanaged

  • issuer

指定しない場合は package-registry で作成したデフォルトの issuer を使用する

type

object

  • secret

type

object

properties

  • name

出力される tls シークレットの名前

type

string

  • crt

selfmanaged の場合のみキーマネージャー上の証明書のキー名を指定。

type

string

  • key

selfmanaged の場合のみキーマネージャー上の秘密鍵のキー名を指定。

type

string

  • secretStore

セルフマネージド tls 証明書を使用している場合の tls 証明書保存先 eso SecretStore の指定

type

object / null

properties

  • name

SecretStore 名

type

string

default

default

  • type

SecretStore の種別

type

string

enum

SecretStore, ClusterSecretStore

default

ClusterSecretStore

  • loadBalancer

type

object

properties

  • ingressName

Ingressリソースの名前

type

string

  • type

Load Balancer の種別

type

string

enum

l4, l7

default

l4

  • staticIp

type

object

properties

  • addresses

type

array

items

type

string

  • resourceRefs

type

array

items

type

object

properties

  • name

public-ip パッケージのリソース名

type

string

  • namespace

public-ip パッケージが作成した ip リソースの namespace

type

string

  • resourceGroup

IPリソースのリソースグループ(Azureのみ指定)

type

string

  • ports

L4 の場合のみ指定する。L7 の場合は HTTPS を自動設定する。

type

array

items

type

object

properties

  • number

port番号

type

number

  • protocol

プロトコル

type

string

  • name

port名

type

string

  • hostRefs

どのhostに紐づけるかをhost名(hosts[].name)で指定

type

array

items

type

string

  • subnets

AWS, Azureのみ。 aws privateの場合、subnet idを2つ以上指定。azure の 場合は public/private どちらの場合も subnet指定(リストだが一つのみ指定, subnet は Application Gateway と同じ Resource Group のものを指定する)

type

array

items

type

string

  • extraRules

ロードバランサの追加ルーティングルール設定。Ingressとは別のサービスにルーティングする場合などIngressリソースのルーティングルールを別途追加したい場合のみ設定する。形式はKubernetesのIngressリソースのspec.rulesと同じ

type

array

items

type

object

  • private

private network の場合はtrue

type

boolean

  • auth

alb で OIDC 認証を行うための設定 (azure は対応しない)

type

object

properties

  • type

認証種別を指定する none/oidc/proxy (cognito, google cloud iap は proxy を選択)

type

string

enum

none, oidc, proxy

  • secret

OIDC 設定に必要なパラメータを設定した kms secret を指定。

type

string

  • secretStore

secret を取得する SecretStore を指定

type

object

properties

  • name

SecretStore 名

type

string

default

default

  • type

SecretStore の種別

type

string

enum

SecretStore, ClusterSecretStore

default

ClusterSecretStore

  • aws

aws 固有の設定

type

object

properties

  • cognitoUserPool

Cognito を利用して認証を行う場合の UserPool の設定

type

object

properties

  • arn

cognitoUserPool の arn

type

string

  • clientID

cognitoUserPool の ClientID

type

string

  • domain

cognitoUserPool の domain

type

string

  • oidc

oidc を利用して認証する場合の設定(google の場合は設定を全て secret に含めるため設定不要)

type

object

properties

  • issuer

issuer uri

type

string

  • authorizationEndpoint

authorization endpoint の uri

type

string

  • tokenEndpoint

token 発行 endpoint の uri

type

string

  • userInfoEndpoint

User 情報 endpoint の uri

type

string

  • waf

waf を使用する場合のみ設定する. waf を使用する場合は azure appGateway の sku が WAF_V2 になる。設定されていない場合は Standard_V2

type

object

properties

  • policy

waf の設定参照. ingress で設定する

type

string

  • awsArn

AWSのみ, 紐付けしたい AWS WAF の arnを設定する

type

string

  • annotations

Ingress リソースに設定する annotation

type

object

  • paths

デフォルトでは / に Gateway service が割り当てられるので、設定の必要は無い。k8s 以外のリソースにルーティングしたい場合に設定する

type

array

items

type

string

  • azure

type

object

properties

  • appGateway

type

object

properties

  • create

appGateway を新規作成する場合は true

type

boolean

  • name

既存の appGateway を使用する場合は name を指定する

type

string

  • location

Azure L7 の場合のみ location を指定する必要あり。指定しない場合はクラスタのロケーションに作成

type

string

  • resourceGroup

指定しない場合 cnap 共有のリソースグループに作成

type

string

  • autoscale

type

object

properties

  • minCapacity

type

number

default

2

  • maxCapacity

type

number

default

10

  • vnet

type

object

properties

  • name

Application Gateway を配置する subnet を含む vnet

type

string

  • resourceGroup

Application Gateway を配置する subnet を含む vnet の Resource Group名

type

string

  • agic

type

object

properties

  • version

agic helm chart のバージョン

type

string

  • sslPolicyName

定義済みSSLプロファイル名

type

string

default

AppGwSslPolicy20220101

  • gateway

type

object

properties

  • name

Gateway リソースに設定する名前 (デフォルトはリリース名)

type

string / null

  • selectorName

Gateway リソースに設定する selector 名 (デフォルトはゲートウェイのリソース名)

type

string

  • version

type

string

  • autoscale

type

object

properties

  • minReplicas

type

number

default

2

  • maxReplicas

type

number

default

5

  • requestTimeout

リクエストタイムアウト時間 (秒)

type

number / null

Change Log

1.0.24

Released on 2025-08-07

What's Changed

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

1.0.23

Released on 2025-06-26

機能と改善

海外リージョンに対応するため、内部ロジックを改修しました。

1.0.22

Released on 2025-05-15

What's Changed

パッケージ内で利用しているライブラリの更新を行いました。
ドキュメントの修正を行いました。

1.0.21

Released on 2025-05-07

What's Changed

変更ログ

  • Hotfix quote requestTimeout