Skip to content

Commit

Permalink
Merge pull request #496 from gianlucam76/pprof
Browse files Browse the repository at this point in the history
Add pprof handlers
  • Loading branch information
gianlucam76 authored Mar 27, 2024
2 parents 556c3d7 + 2cfeed7 commit 971e224
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 7 deletions.
11 changes: 11 additions & 0 deletions cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import (
"context"
"flag"
"fmt"
"net/http"
"net/http/pprof"
"os"
"sync"
"syscall"
Expand Down Expand Up @@ -462,6 +464,15 @@ func getDiagnosticsOptions() metricsserver.Options {
BindAddress: diagnosticsAddress,
SecureServing: true,
FilterProvider: filters.WithAuthenticationAndAuthorization,
ExtraHandlers: map[string]http.Handler{
// Add pprof handler.
"/debug/pprof/": http.HandlerFunc(pprof.Index),
"/debug/pprof/cmdline": http.HandlerFunc(pprof.Cmdline),
"/debug/pprof/profile": http.HandlerFunc(pprof.Profile),
"/debug/pprof/symbol": http.HandlerFunc(pprof.Symbol),
"/debug/pprof/trace": http.HandlerFunc(pprof.Trace),
"/debug/pprof/heap": pprof.Handler("heap"),
},
}
}

Expand Down
16 changes: 9 additions & 7 deletions controllers/handlers_helm.go
Original file line number Diff line number Diff line change
Expand Up @@ -682,7 +682,8 @@ func repoAddOrUpdate(settings *cli.EnvSettings, name, url string, logger logr.Lo

// installRelease installs helm release in the CAPI cluster.
// No action in DryRun mode.
func installRelease(clusterSummary *configv1alpha1.ClusterSummary, settings *cli.EnvSettings, requestedChart *configv1alpha1.HelmChart,
func installRelease(ctx context.Context, clusterSummary *configv1alpha1.ClusterSummary,
settings *cli.EnvSettings, requestedChart *configv1alpha1.HelmChart,
kubeconfig string, values map[string]interface{}, logger logr.Logger) error {

// No-op in DryRun mode
Expand Down Expand Up @@ -741,7 +742,7 @@ func installRelease(clusterSummary *configv1alpha1.ClusterSummary, settings *cli
}

installClient.DryRun = false
_, err = installClient.Run(chartRequested, values)
_, err = installClient.RunWithContext(ctx, chartRequested, values)
if err != nil {
return err
}
Expand Down Expand Up @@ -810,7 +811,8 @@ func uninstallRelease(clusterSummary *configv1alpha1.ClusterSummary,

// upgradeRelease upgrades helm release in managed cluster.
// No action in DryRun mode.
func upgradeRelease(clusterSummary *configv1alpha1.ClusterSummary, settings *cli.EnvSettings, requestedChart *configv1alpha1.HelmChart,
func upgradeRelease(ctx context.Context, clusterSummary *configv1alpha1.ClusterSummary,
settings *cli.EnvSettings, requestedChart *configv1alpha1.HelmChart,
kubeconfig string, values map[string]interface{}, logger logr.Logger) error {

// No-op in DryRun mode
Expand Down Expand Up @@ -864,7 +866,7 @@ func upgradeRelease(clusterSummary *configv1alpha1.ClusterSummary, settings *cli
hisClient.Max = 1
_, err = hisClient.Run(requestedChart.ReleaseName)
if errors.Is(err, driver.ErrReleaseNotFound) {
err = upgradeRelease(clusterSummary, settings, requestedChart, kubeconfig, values, logger)
err = upgradeRelease(ctx, clusterSummary, settings, requestedChart, kubeconfig, values, logger)
if err != nil {
return err
}
Expand All @@ -874,7 +876,7 @@ func upgradeRelease(clusterSummary *configv1alpha1.ClusterSummary, settings *cli
}

upgradeClient.DryRun = false
_, err = upgradeClient.Run(requestedChart.ReleaseName, chartRequested, values)
_, err = upgradeClient.RunWithContext(ctx, requestedChart.ReleaseName, chartRequested, values)
if err != nil {
return err
}
Expand Down Expand Up @@ -1058,7 +1060,7 @@ func doInstallRelease(ctx context.Context, clusterSummary *configv1alpha1.Cluste
return err
}

err = installRelease(clusterSummary, settings, requestedChart, kubeconfig, values, logger)
err = installRelease(ctx, clusterSummary, settings, requestedChart, kubeconfig, values, logger)
if err != nil {
return err
}
Expand Down Expand Up @@ -1115,7 +1117,7 @@ func doUpgradeRelease(ctx context.Context, clusterSummary *configv1alpha1.Cluste
return err
}

err = upgradeRelease(clusterSummary, settings, requestedChart, kubeconfig, values, logger)
err = upgradeRelease(ctx, clusterSummary, settings, requestedChart, kubeconfig, values, logger)
if err != nil {
return err
}
Expand Down

0 comments on commit 971e224

Please sign in to comment.