func createNodepoolController()

in virtualcluster/nodes_create.go [96:123]


func createNodepoolController(ctx context.Context, kubeCfgPath string, cfg *nodepoolConfig) (_cleanup func() error, _ error) {
	ch, err := manifests.LoadChart(virtualnodeControllerChartName)
	if err != nil {
		return nil, fmt.Errorf("failed to load virtual node controller chart: %w", err)
	}

	appliers, err := cfg.toNodeControllerHelmValuesAppliers()
	if err != nil {
		return nil, err
	}

	releaseCli, err := helmcli.NewReleaseCli(
		kubeCfgPath,
		virtualnodeReleaseNamespace,
		cfg.nodeControllerHelmReleaseName(),
		ch,
		virtualnodeReleaseLabels,
		appliers...,
	)
	if err != nil {
		return nil, fmt.Errorf("failed to create helm release client: %w", err)
	}

	if err := releaseCli.Deploy(ctx, 30*time.Minute); err != nil {
		return nil, fmt.Errorf("failed to deploy virtual node controller: %w", err)
	}
	return releaseCli.Uninstall, nil
}