func()

in fast-build-update-tool/internal/runner/fleet_updater.go [53:94]


func (f *FleetUpdater) UpdateInstances(ctx context.Context) (*FleetUpdateResults, error) {
	f.logger.Info("starting fleet update process")

	f.reportWriter.Preparing()

	fleet, err := f.lookupFleet(ctx)
	if err != nil {
		return nil, err
	}

	err = f.validateZipFile(ctx, fleet)
	if err != nil {
		return nil, err
	}

	sshPort, err := f.ensureSSHPortIsSet(ctx, fleet.OperatingSystem)
	if err != nil {
		return nil, err
	}

	err = f.ensureSSHPortIsOpenForFleet(ctx, sshPort)
	if err != nil {
		return nil, err
	}

	updateScript, err := f.generateUpdateScript(ctx, fleet)
	if err != nil {
		return nil, err
	}

	sshKey, err := f.loadSSHKey(ctx)
	if err != nil {
		return nil, err
	}

	instances, err := f.getInstances(ctx)
	if err != nil {
		return nil, err
	}

	return f.updateInstances(ctx, instances, sshKey, sshPort, fleet.OperatingSystem, updateScript)
}