func NewClients()

in gke-deploy/services/clients.go [57:97]


func NewClients(ctx context.Context, useGsutil, useGcloud, printCommands bool, serverDryRun bool) (*Clients, error) {
	oss, err := NewOS(ctx)
	if err != nil {
		return nil, err
	}
	var gs GcloudService
	if useGcloud {
		svc, err := NewGcloud(ctx, printCommands)
		if err != nil {
			return nil, err
		}
		gs = svc
	} else {
		gs = NewGcloudGoClient(ctx, false)
	}
	ks, err := NewKubectl(ctx, printCommands, serverDryRun)
	if err != nil {
		return nil, err
	}
	rs, err := NewRemote(ctx)
	if err != nil {
		return nil, err
	}

	var ss GcsService
	if useGsutil {
		gcs, err := NewGsutil(ctx, printCommands)
		if err != nil {
			return nil, err
		}
		ss = gcs
	}

	return &Clients{
		OS:      oss,
		Gcloud:  gs,
		Kubectl: ks,
		Remote:  rs,
		GCS:     ss,
	}, nil
}