-
Notifications
You must be signed in to change notification settings - Fork 19
[WIP] Stormforge 2.0.3 #26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 9 commits
31d58e0
8bf926e
5d5b793
3fec5c1
b9acf03
683ea96
63d2f17
51b6910
b13d358
e3810e0
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| # Optimize Live | ||
|
|
||
| StormForge Optimize Live applies machine learning to your existing observability metrics to make real-time, actionable recommendations to resource settings for any deployment active in Kubernetes | ||
|
|
||
|
|
||
| # Prerequisites | ||
|
|
||
| - Kubernetes version 1.16 or later | ||
|
|
||
| - Supported Metrics source (Prometheus or Datadog) along with Kube State Metrics. Check out the [Deploy Monitoring](https://docs.spectrocloud.com/clusters/cluster-management/monitoring/deploy-monitor-stack) guide to learn how to enable Prometheus with Palette. | ||
|
|
||
| - StormForge Command Line Interface Tool (v3.0.0+). Refer to the [StormForge CLI Install Guide](https://docs.stormforge.io/stormforge-cli/) for install steps. | ||
|
|
||
|
|
||
| - A [StormForge Account](https://app.stormforge.io/) | ||
|
|
||
|
|
||
|
|
||
|
|
||
| # Usage | ||
|
|
||
| StormForge Optimize Live applies machine learning to your existing observability metrics to make real-time, actionable recommendations to resource settings for any deployment running in Kubernetes. Save cloud resources and money, reduce the business risk of poorly performing applications, and get your developers focused on innovating, not tuning your Kubernetes environment. | ||
|
|
||
| You can use Stormforge with all the Palette-supported infrastructure providers. | ||
|
|
||
| To get started with Stormforge, check out the [Configuration](https://docs.stormforge.io/optimize-live/getting-started/configuration/) guide from Stormforge. | ||
|
|
||
|
|
||
| # References | ||
|
|
||
| - [Stormforge Documentation](https://docs.stormforge.io) | ||
|
|
||
|
|
||
| - [Stormforge FAQ](https://docs.stormforge.io/perftest/faq/) | ||
|
|
||
|
|
||
| - [Configuration using a CRD](https://docs.stormforge.io/optimize-live/guides/create-app-crd/) | ||
|
|
||
|
|
||
| - [Environment variables](https://docs.stormforge.io/optimize-live/reference/envvar/) | ||
|
|
||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| { | ||
| "name": "stormforge-optimize-live-agent", | ||
| "displayName": "Stormforge Optimize Live Agent", | ||
| "layer": "addon", | ||
| "version": "2.0.3", | ||
| "cloudTypes": [ | ||
| "all" | ||
| ], | ||
| "charts": [ | ||
| "charts/stormforge-agent-2.0.3.tgz" | ||
| ], | ||
| "addonType": "monitoring", | ||
| "annotations": {} | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| charts.stormforge-agent.authorization.clientID: | ||
| schema: '{{ required }}' | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. A hint will be useful in all these schema for novice users. Check doc on hints usage. Will give a tooltip in the UI for users to understand what these fields are. |
||
| charts.stormforge-agent.authorization.clientSecret: | ||
| schema: '{{ required | format "${password}" }}' | ||
|
|
||
| charts.stormforge-agent.stormforge.clusterName: | ||
| schema: '{{ required }}' | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,124 @@ | ||
| pack: | ||
| namespace: "stormforge-system" | ||
| content: | ||
| images: | ||
| - image: registry.stormforge.io/optimize/workload-agent:2.0.3 | ||
| charts: | ||
| - repo: https://registry.stormforge.io/chartrepo/library/ | ||
| name: stormforge-agent | ||
| version: 2.0.3 | ||
| #- repo: https://registry.stormforge.io/chartrepo/library/ | ||
| # name: stormforge-applier | ||
| # version: 2.0.3 | ||
|
|
||
| # Default values for optimize-live. | ||
| # This is a YAML-formatted file. | ||
| # Declare variables to be passed into your templates. | ||
|
|
||
| charts: | ||
| stormforge-agent: | ||
| ## | ||
| # StormForge Agent Settings | ||
| ## | ||
|
|
||
| ### Required Configuration ### | ||
|
|
||
| # The following required values will be supplied by `stormforge create auth`. | ||
| # | ||
| # --- | ||
| stormforge: | ||
| address: "https://api.stormforge.io/" | ||
| clusterName: | ||
| authorization: | ||
| clientID: | ||
| clientSecret: | ||
| issuer: "https://api.stormforge.io/" | ||
|
|
||
| ### End Required Configuration ### | ||
|
|
||
| # proxyUrl: "https://proxy.example.com" | ||
| # noProxy: "10.76.0.0/16" | ||
| # | ||
| # imagePullSecrets: | ||
| # - name: secret-name | ||
| resetSecret: false | ||
| workload: | ||
| autoDiscovery: true | ||
| denyNamespaces: | ||
| - kube-system | ||
| # `allowNamespaces` can be used as an alternative to `denyNamespaces`. Note | ||
| # that `allowNamespaces` and `denyNamespaces` are mututally exclusive; only | ||
| # one of them may be specified. | ||
| # `allowNamespaces` takes precedence over `denyNamespaces` in case both are | ||
| # specified. | ||
| allowNamespaces: [] | ||
| # - app-1 | ||
| # - app-2 | ||
| # - monitoring | ||
|
|
||
| debug: false | ||
| image: | ||
| repository: registry.stormforge.io/optimize/workload-agent | ||
| pullPolicy: IfNotPresent | ||
| tag: "2.0.3" | ||
| resources: | ||
| requests: | ||
| cpu: 250m | ||
| memory: 100M | ||
| limits: | ||
| cpu: 500m | ||
| memory: 1000M | ||
| prom: | ||
| image: | ||
| repository: prom/prometheus | ||
| pullPolicy: IfNotPresent | ||
| tag: v2.44.0 | ||
| resources: | ||
| requests: | ||
| cpu: 200m | ||
| memory: 100M | ||
| limits: | ||
| cpu: 1 | ||
| memory: 1000M | ||
| remoteWriteUrl: "https://in.stormforge.io/prometheus/write" | ||
| tokenUrl: "https://api.stormforge.io/oauth/token" | ||
| scrapeTimeout: 8s | ||
| serviceAccount: | ||
| create: true | ||
| name: "" | ||
| annotations: {} | ||
| rbac: | ||
| # If set to false, user needs to handle all rbac needed for agent + workload manager | ||
| # there is a minimum of rules for metrics required, see template | ||
| create: true | ||
| # Leverage k8s "view" role for resources, minimizing RBAC rules needed | ||
| # and creating an additional clusterrolebinding for the service account | ||
| useViewRole: true | ||
| additional: |- | ||
| # In this section, we add resources that are not usually part of the view role | ||
| - apiGroups: | ||
| - monitoring.coreos.com | ||
| resources: | ||
| - prometheuses | ||
| - alertmanagers | ||
| verbs: | ||
| - get | ||
| - list | ||
| - watch | ||
| - apiGroups: | ||
| - optimize.stormforge.io | ||
| resources: | ||
| - lives | ||
| verbs: | ||
| - get | ||
| - list | ||
| - watch | ||
| # Volume for WAL - https://grafana.com/blog/2021/04/12/how-to-troubleshoot-remote-write-issues-in-prometheus/ | ||
| # Assumption on needed_disk_space = (retention_time_in_seconds / scrapeInterval) * number_of_collected_metrics * bytes_per_sample )) * workloads_per_cluster | ||
| # Assuming each metric takes 512 bytes and 2000 workloads with 2 containers | ||
| # needed_disk_space = ((30 * 60 / 10) * 11 * 512) * 2000 ~= 200Mi | ||
| storageVolumeSize: 250Mi | ||
| agentRetentionMaxTime: 30m | ||
| nodeSelector: {} | ||
| tolerations: [] | ||
| affinity: {} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| # Optimize Live | ||
|
|
||
| StormForge Optimize Live applies machine learning to your existing observability metrics to make real-time, actionable recommendations to resource settings for any deployment active in Kubernetes | ||
|
|
||
|
|
||
| # Prerequisites | ||
|
|
||
| - Kubernetes version 1.16 or later | ||
|
|
||
| - Supported Metrics source (Prometheus or Datadog) along with Kube State Metrics. Check out the [Deploy Monitoring](https://docs.spectrocloud.com/clusters/cluster-management/monitoring/deploy-monitor-stack) guide to learn how to enable Prometheus with Palette. | ||
|
|
||
| - StormForge Command Line Interface Tool (v3.0.0+). Refer to the [StormForge CLI Install Guide](https://docs.stormforge.io/stormforge-cli/) for install steps. | ||
|
|
||
|
|
||
| - A [StormForge Account](https://app.stormforge.io/) | ||
|
|
||
|
|
||
|
|
||
|
|
||
| # Usage | ||
|
|
||
| StormForge Optimize Live applies machine learning to your existing observability metrics to make real-time, actionable recommendations to resource settings for any deployment running in Kubernetes. Save cloud resources and money, reduce the business risk of poorly performing applications, and get your developers focused on innovating, not tuning your Kubernetes environment. | ||
|
|
||
| You can use Stormforge with all the Palette-supported infrastructure providers. | ||
|
|
||
| To get started with Stormforge, check out the [Configuration](https://docs.stormforge.io/optimize-live/getting-started/configuration/) guide from Stormforge. | ||
|
|
||
|
|
||
| # References | ||
|
|
||
| - [Stormforge Documentation](https://docs.stormforge.io) | ||
|
|
||
|
|
||
| - [Stormforge FAQ](https://docs.stormforge.io/perftest/faq/) | ||
|
|
||
|
|
||
| - [Configuration using a CRD](https://docs.stormforge.io/optimize-live/guides/create-app-crd/) | ||
|
|
||
|
|
||
| - [Environment variables](https://docs.stormforge.io/optimize-live/reference/envvar/) | ||
|
|
||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| { | ||
| "name": "stormforge-applier", | ||
| "displayName": "Stormforge Optimize Live Applier", | ||
| "layer": "addon", | ||
| "version": "2.0.0-beta.9", | ||
| "cloudTypes": [ | ||
| "all" | ||
| ], | ||
| "charts": [ | ||
| "charts/stormforge-applier-2.0.0-beta.9.tgz" | ||
| ], | ||
| "addonType": "monitoring", | ||
| "annotations": {} | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These packs should have additional annotations to differentiate community vs spectrocloud managed. |
||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| pack: | ||
| namespace: "stormforge-system" | ||
| content: | ||
| images: | ||
| - image: registry.stormforge.io/optimize/applier:2.0.0-beta.9 | ||
| charts: | ||
| - repo: https://registry.stormforge.io/chartrepo/library/ | ||
| name: stormforge-applier | ||
| version: 2.0.0-beta.9 | ||
|
|
||
| # Default values for optimize-live-applier Spectro Cloud Pack. | ||
| # This is a YAML-formatted file. | ||
| # Declare variables to be passed into your templates. | ||
|
|
||
| charts: | ||
| applier: | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Chart name should be stormforge-applier |
||
| # Default settings for Stormforge Applier | ||
| image: | ||
| repository: registry.stormforge.io/optimize/applier | ||
| pullPolicy: IfNotPresent | ||
| tag: "2.0.0-beta.9" | ||
| serviceAccount: | ||
| create: true | ||
| name: "" | ||
| annotations: {} | ||
| # Fill these in as needed | ||
| # extraEnvVars: | ||
| # # Value here should be a parseable duration | ||
| # # cf. https://pkg.go.dev/time#ParseDuration | ||
| # - name: STORMFORGE_API_POLL_INTERVAL | ||
| # value: 5s | ||
| # - name: LOG_LEVEL | ||
| # value: debug | ||
| rbac: | ||
| # This setting will aggregate the applier's custom ClusterRole to your cluster's edit role | ||
| useEditRole: true | ||
| create: true | ||
| additional: |- | ||
| # In this section, add any resources that you want the applier to patch | ||
| - apiGroups: | ||
| - monitoring.coreos.com | ||
| resources: | ||
| - prometheuses | ||
| - alertmanagers | ||
| verbs: | ||
| - get | ||
| - list | ||
| - watch | ||
| - create | ||
| - patch | ||
| - apiGroups: | ||
| - optimize.stormforge.io | ||
| resources: | ||
| - lives | ||
| verbs: | ||
| - get | ||
| - list | ||
| - watch | ||
| - create | ||
| - patch | ||
| podSecurityContext: {} | ||
| securityContext: {} | ||
| resources: {} | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These packs should have additional annotations to differentiate community vs spectrocloud managed.