fling logo of Salt Supervisor Service

Salt Supervisor Service

version 0.1.0 — August 09, 2023

Contributors 5

View All

Comments 0

View All

Summary

Salt (sometimes referred to as SaltStack) is an open-source configuration management system capable of maintaining remote nodes in defined states. It is also a distributed remote execution system used to execute commands and query data on remote nodes. It was developed in order to bring the best solutions found in the world of remote execution together and make them better, faster, and more malleable. Salt accomplishes this through its ability to handle large loads of information, and not just dozens but hundreds and even thousands of individual servers quickly through a simple and manageable interface. VMware Aria Automation Config (formerly vRealize Automation SaltStack Config) is a modern configuration management platform with the performance, speed, and agility IT teams need to manage large, complex IT systems and improve efficiency at scale. VMware Aria Automation Config brings the power and innovation of Salt into VMware Aria Automation with additional enterprise-grade features and support.

VMware vSphere with Tanzu allows running Kubernetes workloads using your existing IT infrastructure, bridging the gap between IT and developers for cloud-native apps on-premises and in the cloud. vSphere Supervisor Services are vSphere certified Kubernetes operators that deliver Infrastructure-as-a-Service components and tightly-integrated Independent Software Vendor services to developers. You can install and manage Supervisor Services on vSphere with Tanzu environments so that to make them available for use with both traditional and Kubernetes workloads.

The Salt Supervisor Service allows DevOps teams to install and run Salt as a vSphere Supervisor Service on their on-premises data center and to automatically connect it to VMware Aria Automation Config SaaS.


Requirements

The Salt Supervisor Service adhere to the following prerequisites:

Instructions

Installing the Salt Supervisor Service

To install the Salt Supervisor Service follow these steps:

  1. Downloaded the salt-supervisor-service.zip file and uncompress the contents to a well-know location.
  2. Generate a CSP token by following the VMware Aria Automation Config - Generate an API token instructions. Save the token credentials to a secure location. This token will allow the salt-master component to automatically register itself within VMware Aria Automation Config SaaS.
  3. Connect to your Supervisor Cluster using the kubectl vsphere login command and list the available Storage Classes by running the following command: kubectl get storageclass. For example:
            [ ~ ]# kubectl get storageclass
            NAME                        PROVISIONER              RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
            vm-encryption-policy        csi.vsphere.vmware.com   Delete          Immediate           true                   8h
            wcpglobal-storage-profile   csi.vsphere.vmware.com   Delete          Immediate           true                   8h
            
  4. Login into your vCenter Client and go to Workload Management:
    Workload Management
  5. Click on Services and then on Add New Service:
    Add New Supervisor Service
  6. Register the service by uploading the salt-master.yml file retrieved from the downloaded zip file:
    Register Service - Upload
  7. After the file has been uploaded, a popup will appear with the details of the service to be registered. Click on the Finish button:
    Register Service
  8. Once the salt-master service is active, click on Actions and select Install on Supervisors:
    Install on Supervisors
  9. A popup will appear to install the service. Select the Supervisor Cluster(s) where you want to install the service:
    Select Supervisors
  10. At the YAML Service Config textarea paste the contents of the values.yml file retrieved from the downloaded zip file, updating the cspAPIToken property with the token generated at step 2, and the storageClassName property with one of the available Storage Classes retrieved at step 3 (you can also check the list of all available configuration properties):
    Service Config
  11. After clicking OK, a new vSphere Namespace will be created in the selected Supervisor Cluster(s) and the service will be automatically deployed:
    Namespace Status
  12. Go to the Network tab and select Services. You will find the External IP of your newly deployed Salt Supervisor Service. Use this IP when configuring the master property of your minions:
    Service External IP
  13. Go to VMware Aria Automation Config SaaS and expand the Administration menu, click on Master Keys, look for the Pending keys, and Accept your master's key:
    Pending Master Keys
  14. Then expand the Minion Keys menu, look for the Pending keys, and Accept your minion's key:
    Pending Minion Keys
  15. Now you can deploy your VMs and install a minion by using one of the following methods:
    • Manually (see the Salt install guide);
    • Using VMware Tools (note that you need to install the open-vm-tools-salt-minion package);
    • Using the SaltStack resource in a Cloud Template in VMware Aria Automation Assembler.

Available configuration properties:

Property Description Default Value
namespace The namespace in which to deploy salt-master Kubernetes resources default
name The name for the salt-master Kubernetes resources salt-master
saltMaster.requestsMemory The amount of memory to request for the salt-master container 6Gi
saltMinion.requestsMemory The amount of memory to request for the salt-minion container 2Gi
statefulSet.storageClassName The name of the Kubernetes Storage Class to use N/A
statefulSet.pkiDiskSize The size of the disk for the /etc/salt/pki directory 100Mi
statefulSet.cacheDiskSize The size of the disk for the /var/cache/salt directory 1Gi
statefulSet.srvDiskSize The size of the disk for the /srv directory 1Gi
ariaConfig.configURL The VMware Aria Automation Config URL https://ssc-gateway.mgmt.cloud.vmware.com
ariaConfig.cspURL The VMware Cloud Services (CSP) URL https://console.cloud.vmware.com
ariaConfig.cspAPIToken The VMware Cloud Services (CSP) API Token N/A

Uninstalling the Salt Supervisor Service

To uninstall your Salt Supervisor Service, go to your Supervisor Cluster in the vCenter Client, click on Configure, go to the Supervisor Services - Overview section, select your service and click on Uninstall:

Uninstall Service

The Salt Supervisor Service uses a Kubernetes StatefulSet to handle the persistent data of the salt components. The current version of Kubernetes used by the Supervisor Cluster does not handle the persistentVolumeClaimRetentionPolicy property that is set to Delete (which will automatically delete the associated Persistent Volumes after the StatefulSet is deleted), so you have to manually delete all the PersistentVolumes or the Supervisor Service uninstall will get stuck forever.

  1. Login to your Kubernetes Supervisor Cluster using the kubectl vsphere login
  2. Get the list the PersistentVolumeClaims by running the following command: kubectl -n <your-namespace-name> get pvc. For example:
                [ ~ ]# kubectl -n svc-salt-master-domain-c50 get pvc
                NAME                       STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                AGE
                etc-salt-master-d-salt-0   Bound    pvc-c43f5224-73ad-4bb8-afb4-66c4067d13f2   100Mi      RWO            wcpglobal-storage-profile   4h37m
                etc-salt-pki-salt-0        Bound    pvc-8ba6e71f-7c0c-4a99-a368-111cb3b995e7   100Mi      RWO            wcpglobal-storage-profile   4h37m
                srv-salt-0                 Bound    pvc-5f6081fd-1919-44c3-b322-d8a77bb1cc35   1Gi        RWO            wcpglobal-storage-profile   4h37m
                var-cache-salt-salt-0      Bound    pvc-bd206b51-8f14-4ba7-863d-23451e70fc70   1Gi        RWO            wcpglobal-storage-profile   4h37m
            
  3. Delete each pvc by running the following command: kubectl -n <your-namespace-name> delete pvc <pvc-name>. For example:
            [ ~ ]# kubectl -n svc-salt-master-domain-c50 delete pvc etc-salt-master-d-salt-0
            

After all the PersistentVolumeClaims have been deleted, Kubernetes will automatically delete all the associated PersistentVolumes, the associated Namespace will be deleted, and the uninstall process will successfully finish.

Changelog

Version 0.1.0

  • Initial version

Similar Flings

Apr 16, 2021
fling logo of vSphere Mobile Client

vSphere Mobile Client

version 2.2.0

vSphere Mobile Client enables administrators to monitor and manage vSphere.

May 23, 2022
fling logo of Virtual Machine Desired State Configuration

Virtual Machine Desired State Configuration

version 1.1.3 (4092207)

Virtual Machine Desired State Configuration (VMDSC) allows virtual administrators to specify VM CPU/Memory desired state which will take effect upon the next Guest OS reboot. This removes the burden of having to schedule a downtime window with the business/app owners.

Jul 25, 2023
fling logo of vSphere Diagnostic Tool

vSphere Diagnostic Tool

version 1.1.6

vSphere Diagnostic Tool is a python script that runs diagnostic commands on the Photon Appliance or ESXi platform to return useful troubleshooting data while running within the confines of the local environment with out upstream dependencies.