func New()

in pkg/clients/clients.go [65:96]


func New(ctx context.Context, config *config.Config) (*Clients, error) {
	clusterConfig, err := clientcmd.BuildConfigFromFlags(
		flags.F.APIServerHost, flags.F.KubeConfigFilePath)
	if err != nil {
		return nil, fmt.Errorf("Could not fetch cluster config, err: %v", err)
	}

	kubernetesClient := kubernetes.NewForConfigOrDie(clusterConfig)
	managedCertificateClient := versioned.NewForConfigOrDie(clusterConfig)

	oauthClient := oauth2.NewClient(ctx, config.Compute.TokenSource)
	oauthClient.Timeout = config.Compute.Timeout
	ssl, err := ssl.New(oauthClient, config.Compute.ProjectID)
	if err != nil {
		return nil, err
	}

	event, err := event.New(kubernetesClient)
	if err != nil {
		return nil, err
	}

	return &Clients{
		ConfigMap:          configmap.New(clusterConfig),
		Coordination:       kubernetesClient.CoordinationV1(),
		Core:               kubernetesClient.CoreV1(),
		Event:              event,
		Ingress:            ingress.New(kubernetesClient),
		ManagedCertificate: managedcertificate.New(managedCertificateClient),
		Ssl:                ssl,
	}, nil
}