GCPClusterConfiguration

Version: deckhouse.io/v1

  • apiVersion (string)

    Allowed values: deckhouse.io/v1, deckhouse.io/v1alpha1

    Required value.

  • kind (string)

    Allowed values: GCPClusterConfiguration

    Required value.

  • labels (object)

    A list of labels to attach to cluster resources.

    Note that you have to re-create all the machines to add new tags if tags were modified in the running cluster.

    You can learn more about the labels in the official documentation.

    Format — key: value.

  • layout (string)

    The way resources are located in the cloud.

    Standard - set Cloud NAT mode. More info…

    WithoutNAT - a dedicated VPC is created for the cluster. All cluster nodes have public IP addresses. More info…

    Allowed values: Standard, WithoutNAT

    Required value.

  • masterNodeGroup (object)

    Parameters of the master’s NodeGroup.

    Required value.

    • additionalLabels (object)

      Additional labels.

      More info….

      Example:

      project: cms-production
      severity: critical
      
    • additionalNetworkTags (array of strings)

      The list of additional tags.

      For example, you can use tags to apply firewall rules to instances. The detailed description of network tags is available in the official documentation.

    • instanceClass (object)

      Partial contents of the GCPInstanceClass fields.

      Required value.

      • disableExternalIP (boolean)

        Defines whether to disable external IP for an instance or not.

        This parameter is only available for the Standard layout.

        True means that nodes do not have public addresses and connect to the Internet over CloudNAT;

        False means that static public addresses are created for nodes, they are also used for One-to-one NAT.;

        Default: true

        Allowed values: true, false

      • diskSizeGb (integer)

        Instance disk size in gigabytes.

        Example: 20

      • image (string)

        Image to use while provisioning GCP servers.

        You can find a list of images in the documentation.

        Caution! Currently, only Ubuntu 18.04, Ubuntu 20.04, Centos 7 are supported and tested to work.

        Example: "projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911"

        Required value.

      • machineType (string)

        Machine type of GCP instance.

        Caution! Make sure that this type is present in all zones specified in the zones parameter.

        GCP lets you specify a custom amount of resources (CPU and RAM), e.g., custom-8-40960 or n2-custom-8-40960.

        Example: "n1-standard-4"

        Required value.

    • replicas (integer)

      The number of master nodes to create.

      Allowed values: 1 <= X

      Required value.

    • zones (array of strings)

      A limited set of zones in which nodes can be created.

  • nodeGroups (array of objects)

    An array of additional NodeGroups for creating static nodes (e.g., for dedicated front nodes or gateways).

    • additionalLabels (object)
    • additionalNetworkTags (array of strings)
    • instanceClass (object)

      Partial contents of the GCPInstanceClass fields.

      Required value.

      • disableExternalIP (boolean)

        Defines whether to disable external IP for an instance or not.

        This parameter is only available for the Standard layout.

        True means that nodes do not have public addresses and connect to the Internet over CloudNAT;

        False means that static public addresses are created for nodes, they are also used for One-to-one NAT.;

        Default: true

        Allowed values: true, false

      • diskSizeGb (integer)

        Instance disk size in gigabytes.

        Example: 20

      • image (string)

        Image to use while provisioning GCP servers.

        You can find a list of images in the documentation.

        Caution! Currently, only Ubuntu 18.04, Ubuntu 20.04, Centos 7 are supported and tested to work.

        Example: "projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911"

        Required value.

      • machineType (string)

        Machine type of GCP instance.

        Caution! Make sure that this type is present in all zones specified in the zones parameter.

        GCP lets you specify a custom amount of resources (CPU and RAM), e.g., custom-8-40960 or n2-custom-8-40960.

        Example: "n1-standard-4"

        Required value.

    • name (string)

      The name of the NodeGroup to use for generating node names.

      Required value.

    • nodeTemplate (object)

      Parameters of Node objects in Kubernetes to add after registering the node.

      • annotations (object)

        The same as the metadata.annotations (https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#objectmeta-v1-meta).

      • labels (object)

        The same as the metadata.labels standard (https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#objectmeta-v1-meta).

      • taints (array of objects)

        The same as the .spec.taints field of the Node object(https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#taint-v1-core). CAUTION! Only the effect, key, values fields are available

        • effect (string)

          Allowed values: NoSchedule, PreferNoSchedule, NoExecute

        • key (string)
        • value (string)
    • replicas (integer)

      The number of nodes to create.

      Required value.

    • zones (array of strings)

      A limited set of zones in which nodes can be created.

  • peeredVPCs (array of strings)

    A list of GCP VPC networks to peer with the cluster network.

    The service account must have access to all the VPCs listed. You have to configure the peering connection manually if no access is available.

  • provider (object)

    Parameters for connecting to the GCP API.

    Required value.

    • region (string)

      The name of the region where instances will be provisioned.

      Required value.

    • serviceAccountJSON (string)

      A key to the Service Account with Project Admin privileges (service account key) in the JSON format.

      How to create it a service account key.

      Required value.

  • sshKey (string)

    A public key to access nodes as user.

    Required value.

  • standard (object)

    Settings for the Standard layout.

    • cloudNATAddresses (array of strings)

      A list of public static IP addresses for Cloud NAT.

  • subnetworkCIDR (string)

    A subnet to use for cluster nodes.

    Pattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

  • withoutNAT (object)

    Settings for the WithoutNAT layout.

    • zones (array of strings)

      A limited set of zones in which nodes can be created.