Parameters-default-sources コンストラクト
このコンストラクトを使用して、他のStyleBookからパラメータ定義を再利用できます。
複数のStyleBookでパラメータまたはパラメータのグループが繰り返し使用されるシナリオを考えてみましょう。新しいStyleBookを作成するたびにこれらのパラメータを再定義するのを避けるために、一度定義し、parameters-default-sources コンストラクトを使用して、これらのパラメータを必要とするStyleBookにその定義をインポートできます。
たとえば、多くのStyleBookで仮想IPを構成する必要がある場合、作成する新しいStyleBookごとに仮想IPに関連する同じパラメータを定義しなければならないことがあります。代わりに、たとえば
vip-params という別のStyleBookを作成し、次の例に示すように、それに関連するすべてのパラメータをそこで定義できます。
-
name: vip-params
namespace: com.acme.commontypes
version: "1.0"
description: This StyleBook defines a typical virtual IP config.
private: true
schema-version: "1.0"
parameters:
-
name: lb-appname
label: Load Balanced Application Name
description: Name of the Load Balanced application
type: string
required: true
-
name: lb-virtual-ip
label: Load Balanced App Virtual IP address
description: Virtual IP address representing the Load Balanced application
type: ipaddress
required: true
-
name: lb-virtual-port
label: Load Balanced App Virtual Port
description: TCP port representing the Load Balanced application
type: tcp-port
default: 80
-
name: lb-service-type
label: Load Balanced App Protocol
description: Protocol used for the Load Balanced application.
type: string
default: HTTP
required: true
allowed-values:
- HTTP
- SSL
- TCP
その後、これらのパラメータを使用する他のStyleBookを作成できます。
-
name: acme-biz-app
namespace: com.acme.stylebooks
version: "1.0"
description: This stylebook defines the NetScaler configuration for Biz App
schema-version: "1.0"
import-stylebooks:
-
namespace: com.acme.commontypes
prefix: cmtypes
version: "1.0"
**parameters-default-sources:**
** - cmtypes::vip-params**
parameters:
-
name: monitorname
label: Monitor Name
description: Name of the monitor
type: string
required: true
-
name: type
label: Monitor Type
description: Type of the monitor
type: string
required: true
allowed-values:
- PING
- TCP
- HTTP
- HTTP-ECV
- TCP-ECV
- HTTP-INLINE
StyleBook
acme-biz-app では、まず「import-stylebooks」セクションを使用して vip-params StyleBookの名前空間とバージョンがインポートされます。次に、parameters-default-sources コンストラクトが追加され、StyleBook名、つまり vip-params が指定されます。このパラメータは、vip-params StyleBookのパラメータをこのStyleBookに直接定義するのと同じ効果があります。
parameters-default-sourcesはリストであり、リスト内の各項目はStyleBookであると想定されているため、複数のStyleBookからパラメータを含めることができます。
他のStyleBookからパラメータを含めることに加えて、parametersセクションを使用して独自のパラメータを定義することもできます。StyleBookのパラメータの完全なリストは、他のStyleBookから含まれるパラメータとこのStyleBookで定義されるパラメータの組み合わせです。したがって、式 $parameters はこのパラメータの組み合わせを指します。
インポートされたStyleBookと現在のStyleBookの両方でパラメータが定義されている場合、現在のStyleBookの定義が他のStyleBookからインポートされた定義を上書きします。このアプローチを使用すると、必要に応じてインポートされたパラメータの一部をカスタマイズしつつ、残りのインポートされたパラメータをそのまま使用することで、効果的に活用できます。
parameters-default-sources コンストラクトは、次のようにネストされたパラメータでも使用できます。
parameters:
-
name: vip-details
label: Virtual IP details
description: Details of the Virtual IP
type: object
required: true
parameters-default-sources:
- cmtypes::vip-params
このアプローチは、StyleBook
vip-params のパラメータを、このStyleBookの vip-details パラメータの子パラメータとして直接追加するのと似ています。