Project Keswick uses an API that is part of the vSphere Configuration Profiles feature, itself a desired state system, where the input is a document describing desired configuration, and an ESXi component that realizes that configuration. As part of the configuration files Project Keswick uses a Kubernetes custom resources exposing ESXi configuration, this provides a unified devops user interface experience for all configuration at an edge location.

The configuration file should be placed in your git repo with a name chosen by you ending in .yaml (for example, hostconfig.yaml). This will be used to configure the Keswick host once synchronised.

An example HostConfiguration object to set NTP configuration for a Keswick host is shown below.

apiVersion: esx.vmware.com/v1alpha1
kind: HostConfiguration
metadata:
  name: keswick-host-config
  namespace: esx-system
spec:
  layertype: Incremental
  profile: |
    {
      "esx": {
        "system": {
          "system_time": {
            "enabled": true,
            "protocol": "NTP",
            "ntp_config": {
              "server": [{
                  "hostname": "0.pool.ntp.org",
                  "command": "SERVER"
                },
                {
                  "hostname": "1.pool.ntp.org",
                  "command": "SERVER"
                }
              ]
            }
          }
        }
      }
    }

Configuration Apply Process

Configuration is applied to the Keswick host in the following way:

Dry ryn (CheckApply), returns errors if configuration document has any errors (for example, errors in profile)If a change is required to be done in host maintenance mode, then the host enters maintenance mode (all VM workload on this host is suspended).

The Apply step propagates the configuration change to Keswick and uses the ESXi APIs for the config changes to be applied & realized.

Depending on what configuration is being changed, if the change needs a reboot, immediate host reboot is initiated. If change needed entering maintenance mode before the apply phase, after the apply phase, the ESXi host exists maintenance mode (all previously suspended VM workloads are resumed).

Note: Not all configuration changes require maintenance mode or host reboot (for example, the above NTP configuration change requires neither). If a configuration change does require maintenance mode or a reboot, that indicates workload disruption and availability impact.