Construcción Parameters-Default-sources
Puede utilizar esta construcción para reutilizar las definiciones de parámetros de otros StyleBooks.
Considere un caso en el que un parámetro o un grupo de parámetros se utiliza repetidamente en varios StyleBooks. Para evitar redefinir estos parámetros, cada vez que quiera crear un nuevo StyleBook, puede definirlos una vez y, a continuación, importar sus definiciones a los StyleBooks que los necesiten mediante la construcción parameters-default-sources.
Por ejemplo, si muchos de sus StyleBooks necesitan configurar una IP virtual, es posible que tenga que definir los mismos parámetros relacionados con las IP virtuales en cada nuevo StyleBook que cree. En su lugar, puede crear un StyleBook independiente llamado, por ejemplo, “vip-params”, donde defina todos los parámetros relacionados con él, como se muestra en el siguiente ejemplo:
-
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-->
A continuación, puede crear otros StyleBooks que utilicen estos parámetros. Lo que sigue es un ejemplo de tal 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-->
En StyleBook, acme-biz-app, primero se importan el espacio de nombres y la versión del StyleBook de vip-params mediante la sección “importar libros de estilos”. A continuación, se agrega la construcción parameters-default-sources y se especifica el nombre de StyleBook, es decir, vip-params. Esto tiene el mismo efecto que definir los parámetros del StyleBook de parámetros vip-params directamente en este StyleBook.
Puede incluir parámetros de varios StyleBooks porque los parameters-default-sources es una lista y se espera que cada elemento de la lista sea un StyleBook.
Además de incluir parámetros de otros StyleBooks, también puede definir sus propios parámetros mediante la sección de parámetros. La lista completa de parámetros del StyleBook es la combinación de los parámetros incluidos en otros StyleBook y los parámetros definidos en este StyleBook. Por lo tanto, la expresión $parameters hace referencia a esta combinación de parámetros.
Tenga en cuenta que si un parámetro se define tanto en un StyleBook importado como en el StyleBook actual, la definición del StyleBook actual anula la definición importada de otro StyleBook. Puede utilizar esto de manera eficaz personalizando algunos de los parámetros importados si es necesario, mientras usa el resto de los parámetros importados tal como están.
La construcción parameters-default-sources también se puede utilizar en parámetros anidados como se muestra:
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-->
Esto es similar a agregar los parámetros de los parámetros vip de StyleBook directamente como parámetros secundarios del parámetro vip-details en este StyleBook.