func parseKubernetesProviderID()

in internal/deployers/eksapi/k8s.go [285:305]


func parseKubernetesProviderID(rawProviderId string) (*KubernetesProviderID, error) {
	url, err := url.Parse(rawProviderId)
	if err != nil {
		return nil, fmt.Errorf("malformed provider ID: %s", rawProviderId)
	}
	if url.Scheme != "aws" {
		return nil, fmt.Errorf("usupported provider ID scheme: %s", url.Scheme)
	}
	if url.Path == "" {
		return nil, fmt.Errorf("provider ID path is empty: %s", rawProviderId)
	}
	// example: /us-west-2a/i-12345abcdefg
	parts := strings.Split(url.Path, "/")
	if len(parts) != 3 {
		return nil, fmt.Errorf("provider ID path does not have 3 parts: %s", url.Path)
	}
	return &KubernetesProviderID{
		AvailabilityZone: parts[1],
		InstanceID:       parts[2],
	}, nil
}