def _checkValidClusterName(self):
        """
        Cluster names are used for resource groups, security groups, virtual networks and subnets, and
        therefore, need to adhere to the naming requirements for each:
        * Between 2 and 64 characters
        * Using alphanumeric characters, underscores, hyphens, or periods.
        * Starts and ends with an alphanumeric character.
        More info on naming conventions:
        https://docs.microsoft.com/en-us/azure/architecture/best-practices/naming-conventions
        """
        p = re.compile('^[a-zA-Z0-9][a-zA-Z0-9_.\-]*[a-zA-Z0-9]$')
        if len(self.clusterName) < 2 or len(self.clusterName) > 64 or not p.match(self.clusterName):
            raise RuntimeError("Invalid cluster name (%s)."
                                " It must be between 2 and 64 characters and contain only alpha-numeric"
                                " characters, hyphens, underscores, and periods. It must start and"
                                " end only with alpha-numeric characters." % self.clusterName)