Konstrukt parameters-default-sources
Sie können dieses Konstrukt verwenden, um Parameterdefinitionen aus anderen StyleBooks wiederzuverwenden.
Betrachten Sie ein Szenario, in dem ein Parameter oder eine Gruppe von Parametern wiederholt in mehreren StyleBooks verwendet wird. Um eine Neudefinition dieser Parameter zu vermeiden, jedes Mal, wenn Sie ein neues StyleBook erstellen möchten, können Sie diese einmal definieren und ihre Definitionen dann in die StyleBooks importieren, die diese Parameter benötigen, indem Sie das parameters-default-sources-Konstrukt verwenden.
Wenn beispielsweise viele Ihrer StyleBooks eine virtuelle IP konfigurieren müssen, müssten Sie möglicherweise die gleichen Parameter, die sich auf virtuelle IPs beziehen, in jedem neuen StyleBook, das Sie erstellen, definieren. Stattdessen können Sie ein separates StyleBook erstellen, das beispielsweise “vip-params” genannt wird, in dem Sie alle zugehörigen Parameter definieren, wie im folgenden Beispiel gezeigt:
-
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-->
Dann können Sie andere StyleBooks erstellen, die diese Parameter verwenden. Es folgt ein Beispiel für ein solches 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-->
Im StyleBook acme-biz-app werden zunächst der Namespace und die Version des vip-params-StyleBooks mithilfe des Abschnitts “import-stylebooks” importiert. Anschließend wird das parameters-default-sources-Konstrukt hinzugefügt und der StyleBook-Name, d. h. vip-params, angegeben. Dies hat den gleichen Effekt, als würden die Parameter des vip-params-StyleBooks direkt in diesem StyleBook definiert.
Sie können Parameter aus mehreren StyleBooks einschließen, da parameters-default-sources eine Liste ist und jedes Element in der Liste ein StyleBook sein sollte.
Zusätzlich zum Einschließen von Parametern aus anderen StyleBooks können Sie auch Ihre eigenen Parameter mithilfe des Abschnitts parameters definieren. Die vollständige Liste der Parameter des StyleBooks ist die Kombination aus Parametern, die aus anderen StyleBooks eingeschlossen wurden, und Parametern, die in diesem StyleBook definiert sind. Daher bezieht sich der Ausdruck $parameters auf diese Kombination von Parametern.
Beachten Sie, dass, wenn ein Parameter sowohl in einem importierten StyleBook als auch im aktuellen StyleBook definiert ist, die Definition im aktuellen StyleBook die aus einem anderen StyleBook importierte Definition überschreibt. Sie können dies effektiv nutzen, indem Sie bei Bedarf einige der importierten Parameter anpassen, während Sie den Rest der importierten Parameter unverändert verwenden.
Das parameters-default-sources-Konstrukt kann auch in verschachtelten Parametern verwendet werden, wie gezeigt:
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-->
Dies ist vergleichbar damit, dass die Parameter des StyleBooks vip-params direkt als Kindparameter des vip-details-Parameters in diesem StyleBook hinzugefügt werden.