github.com/alibaba/sealer@v0.8.6-0.20220430115802-37a2bdaa8173/docs/api/clusterfile.md (about)

     1  # Clusterfile definition
     2  
     3  ```yaml
     4  apiVersion: sealer.aliyun.com/v1alpha1
     5  kind: Cluster
     6  metadata:
     7    name: my-cluster
     8    annotation:
     9      sealer.aliyun.com/etcd: "/data/etcd"
    10      sealer.aliyun.com/docker: "/var/lib/docker"
    11  spec:
    12    image: my-kubernetes:v1.18.3 # name of CloudImage
    13    env: # the cluster global ENV
    14    - DOMAIN="sealer.alibaba.com"
    15    provider: ALI_CLOUD # OR BAREMETAL , CONTAINER.
    16    ssh: # host ssh config
    17      passwd: xxx
    18      pk: xxx
    19      pkPasswd: xxx
    20      user: root
    21    network:
    22      podCIDR: 100.64.0.0/10
    23      svcCIDR: 10.96.0.0/22
    24    certSANS:
    25      - aliyun-inc.com
    26      - 10.0.0.2
    27  
    28    masters: # if provider is ALI_CLOUD or CONTAINER, you can specify the number of server, if BAREMETAL using ipList.
    29      cpu: 4
    30      memory: 8
    31      count: 3
    32      systemDisk: 100
    33      dataDisks:
    34      - 100
    35    # ipList:
    36    #  - 192.168.0.2
    37    #  - 192.168.0.3
    38    #  - 192.168.0.4
    39    nodes:
    40      cpu: 5
    41      memory: 8
    42      count: 3
    43      systemDisk: 100
    44      dataDisks:
    45      - 100
    46    # ipList:
    47    #  - 192.168.0.2
    48    #  - 192.168.0.3
    49    #  - 192.168.0.4
    50  
    51    status:
    52  ```
    53  
    54  If you want change other configurations like using external etcd cluster, you can overwrite the default kubeadm config,
    55  
    56  ```yaml
    57  FROM kubernetes:1.18.8
    58  COPY my-kubeadm.yaml.tmp kubeadm.yaml.tmp
    59  ```
    60  
    61  Clusterfile only care about the common configurations.
    62  
    63  ENV and annotations can help you to extend your config values. sealer will render it in your yaml if you put then in manifest dir.
    64  Also, sealer will generate a global.yaml witch contains all values, so if you're using helm, can use global config like this:
    65  
    66  ```shell script
    67  # global will overwrite the default value
    68  helm install chart name -f values.yaml -f global.yaml
    69  ```