Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
6edd4e8
PAC-3765 - Upgrade crossplane pack to 2.2.0
edwin-villa Feb 24, 2026
7286b29
Merge pull request #1 from edwin-villa/PAC-3765
edwin-villa Feb 24, 2026
0ce7b5c
PAC-3779 - Upgrade trivy pack to 0.21.1
edwin-villa Feb 25, 2026
6093546
Merge branch 'spectrocloud:main' into main
edwin-villa Feb 25, 2026
ccfb6c3
PAC-3765 - Upgrade crossplane pack to 2.2.0
edwin-villa Feb 25, 2026
773d2ee
Merge branch 'main' into main
vishwanaths Feb 27, 2026
b0fb97a
PAC-3779 - Upgrade trivy pack to 0.21.1
edwin-villa Feb 27, 2026
b6960dd
PAC-3779 - Upgrade trivy pack to 0.21.1
edwin-villa Feb 27, 2026
8e37461
Merge pull request #2 from edwin-villa/PAC-3779
edwin-villa Mar 2, 2026
8111137
Merge branch 'spectrocloud:main' into main
edwin-villa Mar 2, 2026
be17e23
Merge branch 'spectrocloud:main' into main
edwin-villa Apr 27, 2026
7aa4e14
PAC-4030 - Upgrade fluentbit pack to 5.0.3
edwin-villa Apr 29, 2026
edc3df9
PAC-4030 - Upgrade fluentbit pack to 5.0.3
edwin-villa Apr 29, 2026
d7e12f8
Remove cks-trivy folder, not part of this PR
edwin-villa Apr 29, 2026
cf9b046
Merge branch 'spectrocloud:main' into main
edwin-villa May 21, 2026
b47e842
Merge branch 'spectrocloud:main' into main
edwin-villa May 27, 2026
10429a7
PAC-4131 - Upgrade crossplane pack to 2.3.0
edwin-villa May 27, 2026
d72aa59
Merge pull request #4 from edwin-villa/crossplane-2.3.0
edwin-villa May 28, 2026
f4064ba
Upgrade kubevious pack to 1.2.2
edwin-villa Jun 10, 2026
136c4a0
Merge branch 'spectrocloud:main' into main
edwin-villa Jun 12, 2026
ee3b8dd
Merge pull request #5 from edwin-villa/kubevious-1.2.2
edwin-villa Jun 12, 2026
cc69223
Merge branch 'spectrocloud:main' into main
edwin-villa Jun 16, 2026
2eb15a5
Upgrade fluentbit pack to 5.0.7
edwin-villa Jun 16, 2026
ded153a
Merge pull request #6 from edwin-villa/fluentbit-5.0.7
edwin-villa Jun 18, 2026
87b5f6b
Update values.yaml
edwin-villa Jun 19, 2026
5de1fb9
Upgrade stormforge-agent pack to 2.28.2
edwin-villa Jun 25, 2026
14947c2
Merge pull request #7 from edwin-villa/stormforge-agent-2.28.2
edwin-villa Jun 25, 2026
29b889d
Merge branch 'spectrocloud:main' into main
edwin-villa Jun 25, 2026
66c20cd
Merge branch 'spectrocloud:main' into main
edwin-villa Jul 2, 2026
0d48516
fix PR
edwin-villa Jul 17, 2026
a896235
Merge branch 'spectrocloud:main' into main
edwin-villa Jul 30, 2026
4aa9618
Upgrade stormforge-agent pack to 2.28.5
edwin-villa Jul 31, 2026
4b4af5a
Merge branch 'spectrocloud:main' into stormforge-agent-2.28.5
edwin-villa Aug 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 125 additions & 0 deletions packs/stormforge-agent-2.28.5/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# StormForge Agent

## Purpose

The StormForge Agent continuously observes workload behaviour across your Kubernetes
cluster and applies ML-driven resource recommendations (CPU/memory requests and limits)
to reduce waste and improve reliability. It consists of two components:

| Component | Role |
|-----------|------|
| **workload-agent** | Watches workloads, fetches recommendations from the StormForge API, and applies patches |
| **metrics-forwarder** | Lightweight Prometheus agent that scrapes cAdvisor & kube-state-metrics and remote-writes to StormForge |

---

## Prerequisites

| Requirement | Details |
|-------------|---------|
| Kubernetes | ≥ 1.29 |
| Helm | ≥ 3.8 (OCI support required) |
| Namespace | `stormforge-system` (created automatically by the chart) |
| StormForge account | Sign up at <https://app.stormforge.io> |
| OAuth2 credentials | `CLIENT_ID` and `CLIENT_SECRET` from **StormForge → Settings → API Access** or via `stormforge create auth` |
| Outbound HTTPS | Egress to `*.stormforge.io:443` and `in.stormforge.io:443` |

---

## Key `values.yaml` Parameters

### Required

| Parameter | Description |
|-----------|-------------|
| `clusterName` | Unique name for this cluster in the StormForge platform |
| `authorization.clientID` | OAuth2 client ID |
| `authorization.clientSecret` | OAuth2 client secret — use an ExternalSecret or SealedSecret |

### Workload Controller

| Parameter | Default | Description |
|-----------|---------|-------------|
| `workload.image.repository` | `registry.stormforge.io/optimize/workload-agent` | Image repository |
| `workload.image.tag` | `2.28.5` | Image tag |
| `workload.resources` | 20m CPU / 64Mi RAM | Resource requests |
| `workload.workloadSyncInterval` | `50m` | Heartbeat interval for active workloads |
| `workload.collectLabels` | `true` | Include workload labels in API sync |
| `workload.inactiveWorkloadsGC` | `true` | Garbage-collect stale workloads on the API |

### Metrics Forwarder (Prometheus)

| Parameter | Default | Description |
|-----------|---------|-------------|
| `prom.image.repository` | `quay.io/prometheus/prometheus` | Image repository (swap to `prom/prometheus` for Docker Hub) |
| `prom.image.tag` | `v3.13.1` | Prometheus version |
| `prom.resources` | 20m CPU / 64Mi RAM | Resource requests |
| `prom.scrapeInterval` | `30s` | Scrape cadence |
| `prom.remoteWriteUrl` | `https://in.stormforge.io/prometheus/write` | Remote-write endpoint |
| `storageVolumeSize` | `2G` | WAL volume size |

### Network / Proxy

| Parameter | Default | Description |
|-----------|---------|-------------|
| `proxyUrl` | `""` | HTTPS proxy for egress to StormForge (e.g. `https://proxy.corp.example.com/`) |
| `noProxy` | RFC-1918 ranges | Comma-separated list of addresses to bypass the proxy |

### Platform Flags

| Parameter | Default | Description |
|-----------|---------|-------------|
| `openshift` | `false` | Enable OpenShift compatibility |
| `gkeAutopilot` | `false` | Enable GKE Autopilot compatibility |
| `enableCostMetrics` | `false` | Collect cost-related node metrics |
| `nodeCPUPressureDetection` | `false` | Detect node CPU pressure via PSI (requires Linux ≥ 4.20, cgroup v2) |

### Feature Gates

| Parameter | Default | Description |
|-----------|---------|-------------|
| `featureGates.optimizeCronJobs` | `false` | CronJob optimization support |
| `featureGates.optimizeSparkOperator` | `false` | Spark Operator support |
| `featureGates.optimizeGithubARC` | `false` | GitHub Actions Runner Controller support |

---

## Minimal Configuration Example

```yaml
pack:
namespace: stormforge-system

charts:
stormforge-agent:
clusterName: "my-production-cluster"
authorization:
clientID: "{{ .spectrocontext.CLIENT_ID }}"
clientSecret: "{{ .spectrocontext.CLIENT_SECRET }}"
```

> **Security note:** Never commit `clientSecret` in plain text.
> secret management or reference a Kubernetes secret via `manageAuthSecret: false`
> and provision the secret externally.

---

## Disable Agent-Managed Auth Secret

If you prefer to manage the auth secret externally (e.g. with Vault or External Secrets Operator):

```yaml
charts:
stormforge-agent:
manageAuthSecret: false
authSecret: "my-external-auth-secret" # must exist in the target namespace
```

---

## Useful Links

- Documentation: <https://docs.stormforge.io>
- StormForge web app: <https://app.stormforge.io>
- Helm chart source: `oci://registry.stormforge.io/library/stormforge-agent`
- Changelog: <https://docs.stormforge.io/optimize-live/reference/agent-changelog/>
Binary file not shown.
12 changes: 12 additions & 0 deletions packs/stormforge-agent-2.28.5/charts/stormforge-agent/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v2
appVersion: 2.28.5
description: Bundled StormForge Agent and Prometheus in Agent Mode capturing telemetry
for StormForge systems.
home: https://www.stormforge.io/
icon: https://app.stormforge.io/img/logo.png
kubeVersion: '>= 1.16.x-0'
maintainers:
- name: grambot
name: stormforge-agent
type: application
version: 2.28.5
Loading
Loading