パラメータ-デフォルトソース構成
この構造を使用すると、ほかのStyleBookのパラメーター定義を再利用できます。
パラメーターまたはパラメーターグループを複数のStyleBookで繰り返し使用するシナリオについて考えてみます。新しいStyleBookを作成するたびにこれらのパラメーターを再定義することを避けるために、パラメーターを一度定義してから、parameters-default-sources構造を使用して、これらのパラメーターを必要とするStyleBookにその定義をインポートできます。
たとえば、StyleBookの多くで仮想IPを構成する必要がある場合は、新しく作成する各StyleBookで仮想IPに関連する同じパラメーターの定義が必要になることがあります。代わりに、という別のStyleBookを作成できます。たとえば、次の例(vip-params
)に示すように、関連するすべてのパラメータを定義します。
-
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
<!--NeedCopy-->
次に、これらのパラメーターを使用する他の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
<!--NeedCopy-->
StyleBookacme-biz-app
では、まず、vip-params
StyleBookの名前空間とバージョンは、「import-stylebooks」セクションを使用してインポートされます。次に、 パラメーター default-sources 構造が追加され、StyleBook 名 (つまりvip-params
) が指定されます。このパラメータは、このStyleBookでvip-params
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
<!--NeedCopy-->
この方法は、StyleBookvip-params
のパラメータを、 このStyleBookのvip-details
パラメータの子パラメータとして直接追加することに似ています。