Plik szablonu klastra CycleCloud
Klastry CycleCloud są definiowane w deklaratywnych i hierarchicznych plikach tekstowych nazywanych szablonami. Do pobrania jest dostępnych kilka przykładowych szablonów klastrów CycleCloud
Uwaga
Plik szablonu klastra CycleCloud jest niewrażliwy na wielkość liter.
Hierarchia plików szablonu klastra CycleCloud
Plik szablonu klastra jest zorganizowany w strukturę hierarchiczną. Każda sekcja definiuje obiekt podstawowy, a nazwa obiektu jest wyświetlana w nagłówku sekcji (np. [cluster my-cluster]
). Liczba nawiasów kwadratowych reprezentuje rangę z mniejszą liczbą nawiasów wskazujących wyższą rangę. W górnej części hierarchii i jedynym wymaganym obiektem w pliku szablonu klastra jest [cluster]
obiekt. Konkretna kolejność sekcji nie jest ważna.
[cluster]
[[node, nodearray]]
[[[volume]]]
[[[network-interface]]]
[[[cluster-init]]]
[[[input-endpoint]]]
[[[configuration]]]
[environment]
[noderef]
[parameters]
[[parameters]]
[[[parameter]]]
Element [cluster]
może zawierać element [[node]]
, który może zawierać element [[[volume]]]
.
Element [[[volume]]]
musi znajdować się w obiekcie [[node]]
, który musi znajdować się w obiekcie [cluster]
.
Wiele obiektów odpowiada zasobom platformy Azure. Na przykład [[node]]
odpowiada maszynie wirtualnej platformy Azure, [[[volume]]]
odpowiada dyskowi platformy Azure i [[[network-interface]]]
odpowiada interfejsowi sieciowemu.
Atrybuty obiektu
Każdy obiekt może mieć atrybuty, które zarządzają zachowaniem obiektu:
[[node my-node]]
Attribute1 = Value1
Attribute2 = Value2
Parametry
Parametry klastra to zmienne ustawione w czasie tworzenia klastra. Mogą być używane w definicji dowolnego atrybutu.
[cluster MyCluster]
Attribute0 = $MyParameter
[[parameter MyParameter]]
DefaultValue = 200
Jest $
to znak specjalny, który określa wartość parametru według nazwy.
Parametry mają właściwości definiujące typ i kontrolujące sposób ich reprezentowania w selektorach interfejsu użytkownika klastra. Parametry są definiowane w momencie tworzenia klastra, aby można było je ustawić za pomocą flagi -p parameter-file.json
parametru wiersza polecenia lub przy użyciu interfejsu użytkownika klastra.
Analizowanie specjalne
Analizator szablonów może obsługiwać określoną logikę i specjalne definicje oraz funkcje przetwarzania wartości parametrów:
Attribute1 = ${ifThenElse(AccessSubnet !== undefined, AccessSubnet, ComputeSubnet)}
Specjalny analizator jest aktywowany za pomocą ${}
składni.
Obiekty szablonu
Są to obecnie obsługiwane obiekty szablonu: