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
}