Skip to content

Commit 6b295ef

Browse files
committed
Merge remote-tracking branch 'origin/main' into podevaluator-to-pserver
Signed-off-by: Daniel Gyorgy <daniel.gyorgy@nokia.com>
2 parents c542f39 + 29467b4 commit 6b295ef

83 files changed

Lines changed: 30789 additions & 1981 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.template

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# PORCH_GHCR_PREFIX_URL=<custom registry>/kptdev/krm-functions-catalog
22
# DOCKERHUB_MIRROR=<mirror registry url>
33
# DB_MAVEN_MIRROR=<mirror repository url>
4+
# GRAFANA_ADMIN_PW=<password for grafana UI>

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ vendor/
22
apiserver.local.config/
33
/apiserver/porch
44
*.log
5+
*.csv
6+
load_test_results.txt
57
.env
68

79
# Development artifact path
@@ -40,6 +42,9 @@ __debug*
4042
### Jetbrains IDEs ###
4143
.idea/*
4244

45+
### Cursor IDEs ###
46+
.cursor
47+
4348
### Hugo ###
4449
# Generated files by hugo
4550
docs/.hugo_build.lock

controllers/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,8 @@ func newManager(scheme *runtime.Scheme) (ctrl.Manager, error) {
213213

214214
mgr, err := ctrl.NewManager(cfg, ctrl.Options{
215215
Scheme: scheme,
216+
// Disable controller-runtime's default :8080 /metrics listener. Port 8080 is reserved for
217+
// optional pprof (PORCH_PPROF_PORT); controller-runtime metrics are exposed on :9464 via OpenTelemetry.
216218
Metrics: metricsserver.Options{
217219
BindAddress: "0",
218220
},

controllers/packagerevisions/pkg/controllers/packagerevision/ownership.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@ package packagerevision
1717
import (
1818
"context"
1919
"fmt"
20+
"time"
2021

2122
porchv1alpha2 "github.com/kptdev/porch/api/porch/v1alpha2"
2223
configapi "github.com/kptdev/porch/api/porchconfig/v1alpha1"
24+
"github.com/kptdev/porch/internal/telemetry"
2325
"github.com/kptdev/porch/pkg/repository"
2426
apierrors "k8s.io/apimachinery/pkg/api/errors"
2527
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -66,6 +68,9 @@ func (r *PackageRevisionReconciler) handleDeletion(ctx context.Context, pr *porc
6668
// shared content cache. "Not found" errors are treated as success — there
6769
// is nothing to clean up if the package or repo doesn't exist in the cache.
6870
func (r *PackageRevisionReconciler) deleteFromGit(ctx context.Context, pr *porchv1alpha2.PackageRevision) error {
71+
start := time.Now()
72+
defer telemetry.RecordControllerOperation(telemetry.ResourcePackageRevision, "DELETE", start)
73+
6974
repoKey := repository.RepositoryKey{
7075
Namespace: pr.Namespace,
7176
Name: pr.Spec.RepositoryName,

controllers/packagerevisions/pkg/controllers/packagerevision/packagerevision_controller.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121

2222
porchv1alpha2 "github.com/kptdev/porch/api/porch/v1alpha2"
2323
"github.com/kptdev/porch/controllers/functionconfigs"
24+
"github.com/kptdev/porch/internal/telemetry"
2425
"github.com/kptdev/porch/pkg/repository"
2526
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2627
"k8s.io/apimachinery/pkg/runtime"
@@ -160,7 +161,9 @@ func (r *PackageRevisionReconciler) reconcileLifecycle(ctx context.Context, pr *
160161

161162
log.Info("lifecycle transition", "name", pr.Name, "current", current, "desired", desired)
162163

164+
start := time.Now()
163165
updated, err := r.ContentCache.UpdateLifecycle(ctx, repoKey, pr.Spec.PackageName, pr.Spec.WorkspaceName, desired)
166+
telemetry.RecordControllerOperation(telemetry.ResourcePackageRevision, "UPDATE", start)
164167
if err != nil {
165168
log.Error(err, "lifecycle transition failed")
166169
r.updateStatus(ctx, pr, nil, "", readyCondition(pr.Generation, metav1.ConditionFalse, porchv1alpha2.ReasonFailed, err.Error()))
@@ -201,6 +204,8 @@ func (r *PackageRevisionReconciler) reconcileSource(ctx context.Context, pr *por
201204
log := log.FromContext(ctx)
202205
log.Info("applying source", "type", creationSource, "name", pr.Name)
203206

207+
start := time.Now()
208+
204209
// TODO: CreateNewDraft always receives lifecycle=Draft — consider removing the lifecycle parameter from the interface.
205210
draft, err := r.ContentCache.CreateNewDraft(ctx, repoKey, pr.Spec.PackageName, pr.Spec.WorkspaceName, string(porchv1alpha2.PackageRevisionLifecycleDraft))
206211
if err != nil {
@@ -230,6 +235,8 @@ func (r *PackageRevisionReconciler) reconcileSource(ctx context.Context, pr *por
230235
)
231236
r.ensureLatestRevisionLabel(ctx, pr)
232237

238+
telemetry.RecordControllerOperation(telemetry.ResourcePackageRevision, "CREATE", start)
239+
233240
result := ctrl.Result{Requeue: true}
234241
return &result, nil
235242
}

controllers/packagerevisions/pkg/controllers/packagerevision/render.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"fmt"
2020
iofs "io/fs"
2121
"strings"
22+
"time"
2223

2324
fnresult "github.com/kptdev/kpt/api/fnresult/v1"
2425
kptfilev1 "github.com/kptdev/kpt/api/kptfile/v1"
@@ -27,6 +28,7 @@ import (
2728
"github.com/kptdev/kpt/pkg/lib/kptops"
2829
"github.com/kptdev/kpt/pkg/lib/runneroptions"
2930
porchv1alpha2 "github.com/kptdev/porch/api/porch/v1alpha2"
31+
"github.com/kptdev/porch/internal/telemetry"
3032
"github.com/kptdev/porch/pkg/repository"
3133
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3234
ctrl "sigs.k8s.io/controller-runtime"
@@ -172,6 +174,8 @@ func isPushOnRenderFailure(pr *porchv1alpha2.PackageRevision) bool {
172174
// executeRender performs the render, handles failure/stale, and writes results.
173175
func (r *PackageRevisionReconciler) executeRender(ctx context.Context, pr *porchv1alpha2.PackageRevision, repoKey repository.RepositoryKey) (*ctrl.Result, error) {
174176
log := log.FromContext(ctx)
177+
start := time.Now()
178+
defer telemetry.RecordControllerOperation(telemetry.ResourcePackageRevisionResources, "UPDATE", start)
175179

176180
resources, err := r.readPackageResources(ctx, repoKey, pr.Spec.PackageName, pr.Spec.WorkspaceName)
177181
if err != nil {

0 commit comments

Comments
 (0)