-
Notifications
You must be signed in to change notification settings - Fork 3
feat: add docs using MkDocs #142
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
Conversation
WalkthroughThis update introduces a comprehensive overhaul of the KubeElasti project's documentation and supporting assets. It migrates and expands all documentation to a new MkDocs-based structure, adds new guides, architecture diagrams, and configuration examples, and modernizes the landing page with custom CSS and HTML. The update also revises manifests, Makefile targets, and repository references to align with the new "KubeElasti" branding. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant DocsWebsite
participant MkDocs
participant GitHub Actions
participant GitHub Pages
User->>DocsWebsite: Visit documentation site
DocsWebsite->>MkDocs: Serve static site (with new CSS, HTML sections)
GitHub Actions->>MkDocs: On push to main/rt-landing-page, build docs
MkDocs->>GitHub Pages: Deploy static site
User->>DocsWebsite: Access new guides, diagrams, and resources
sequenceDiagram
participant Operator
participant Resolver
participant Prometheus
participant Service
participant KEDA
loop Steady State
Operator->>Prometheus: Poll metrics
Prometheus-->>Operator: Return traffic data
Operator->>Service: Ensure pods >= 1
end
alt No traffic (scale down)
Operator->>Service: Redirect to Resolver (proxy mode)
Operator->>Service: Scale pods to 0
Operator->>KEDA: Pause autoscaler
end
alt Traffic resumes (scale up)
Resolver->>Operator: Notify incoming request
Operator->>Service: Scale pods to minTargetReplicas
Operator->>KEDA: Resume autoscaler
Service->>Resolver: Pods ready, switch to serve mode
Resolver->>Service: Forward queued requests
end
Estimated code review effort3 (30–60 minutes) Poem
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
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.
Actionable comments posted: 36
🔭 Outside diff range comments (3)
docs/getting-started.md (2)
70-75
: Rename “elasti” reference to match new brandingThe explanatory sentence still says “via elasti”, which is inconsistent with the rest of the guide that now refers to KubeElasti. Keeping two names in the same doc is confusing for newcomers.
-We will use a sample httpbin service to demonstrate how to configure a service to handle its traffic via elasti. +We will use a sample httpbin service to demonstrate how to route its traffic through **KubeElasti**.
141-146
: Uninstall section still mentions “Elasti”Now that the project is re-branded, the heading and sentence should say “KubeElasti” to avoid mixed terminology. The commands are fine (chart name can stay
elasti
if that’s the published package).-## Uninstall -To uninstall Elasti, **you will need to remove all the installed ElastiServices first.** Then, simply delete the installation file. +## Uninstall +To uninstall **KubeElasti**, **remove any existing ElastiServices first** and then delete the installation.docs/integration-keda.md (1)
21-23
: CLI path has an extra space – will failThere is an unintended space after the directory separator, so kubectl will look for a file literally called
config/
and treatdemo-application-keda.yaml
as a second argument.-kubectl apply -f ./playground/config/ demo-application-keda.yaml +kubectl apply -f ./playground/config/demo-application-keda.yaml
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (32)
docs/assets/modes.png
is excluded by!**/*.png
docs/images/architecture/1.png
is excluded by!**/*.png
docs/images/architecture/2.png
is excluded by!**/*.png
docs/images/architecture/3.png
is excluded by!**/*.png
docs/images/architecture/4.png
is excluded by!**/*.png
docs/images/architecture/flow.png
is excluded by!**/*.png
docs/images/awesome.gif
is excluded by!**/*.gif
docs/images/companies/truefoundry.png
is excluded by!**/*.png
docs/images/components.png
is excluded by!**/*.png
docs/images/grafana-dashboard.png
is excluded by!**/*.png
docs/images/hero.png
is excluded by!**/*.png
docs/images/hld.png
is excluded by!**/*.png
docs/images/keda-scale-down.png
is excluded by!**/*.png
docs/images/keda-with-elasti.png
is excluded by!**/*.png
docs/images/lld-operator.png
is excluded by!**/*.png
docs/images/lld-resolver.png
is excluded by!**/*.png
docs/images/logo/banner.png
is excluded by!**/*.png
docs/images/logo/favicon.ico
is excluded by!**/*.ico
docs/images/logo/logo_black_16x16.png
is excluded by!**/*.png
docs/images/logo/logo_black_180x180.png
is excluded by!**/*.png
docs/images/logo/logo_black_192x192.png
is excluded by!**/*.png
docs/images/logo/logo_black_32x32.png
is excluded by!**/*.png
docs/images/logo/logo_black_512x512.png
is excluded by!**/*.png
docs/images/logo/logo_black_full.png
is excluded by!**/*.png
docs/images/logo/logo_theme_200x200.png
is excluded by!**/*.png
docs/images/logo/logo_white_16x16.png
is excluded by!**/*.png
docs/images/logo/logo_white_180x180.png
is excluded by!**/*.png
docs/images/logo/logo_white_192x192.png
is excluded by!**/*.png
docs/images/logo/logo_white_32x32.png
is excluded by!**/*.png
docs/images/logo/logo_white_512x512.png
is excluded by!**/*.png
docs/images/logo/logo_white_full.png
is excluded by!**/*.png
docs/images/modes.png
is excluded by!**/*.png
📒 Files selected for processing (18)
.github/workflows/docs.yaml
(1 hunks).gitignore
(1 hunks)DEVELOPMENT.md
(1 hunks)Makefile
(1 hunks)README.md
(3 hunks)_config.yml
(0 hunks)docs/architecture.md
(1 hunks)docs/comparisons.md
(2 hunks)docs/configure-elastiservice.md
(3 hunks)docs/development.md
(1 hunks)docs/getting-started.md
(4 hunks)docs/index.md
(1 hunks)docs/integration-hpa.md
(1 hunks)docs/integration-keda.md
(2 hunks)docs/introduction.md
(1 hunks)docs/monitoring.md
(1 hunks)docs/stylesheets/extra.css
(1 hunks)mkdocs.yml
(1 hunks)
💤 Files with no reviewable changes (1)
- _config.yml
🧰 Additional context used
🪛 LanguageTool
docs/configure-elastiservice.md
[grammar] ~49-~49: Use correct spacing
Context: ... ### Which service to apply KubeElasti on This is defined using the `scaleTargetR...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~59-~59: Ensure spelling is correct
Context: ... down the service to 0 This is defined uing the triggers field in the spec. Current...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~59-~59: There might be a problem here.
Context: ...y, KubeElasti supports only one trigger type - prometheus
. The metadata field of the trigger def...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~59-~59: Correctly pair commas and coordinating conjunctions
Context: ...eElasti will check this metric every 30 seconds and if the values is less than 0(`thres...
(QB_NEW_EN_OTHER_ERROR_IDS_14)
[grammar] ~59-~59: Make sure to use plural and singular nouns correctly
Context: ...this metric every 30 seconds and if the values is less than 0(threshold
) it will sca...
(QB_NEW_EN_OTHER_ERROR_IDS_10)
[grammar] ~59-~59: There might be a mistake here.
Context: ...ry 30 seconds and if the values is less than 0(threshold
) it will scale down the s...
(QB_NEW_EN_OTHER)
[grammar] ~59-~59: Use correct spacing
Context: ...old`) it will scale down the service to 0. An example trigger is as follows: ``` ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~72-~72: There might be a mistake here.
Context: ...ll scale up the service again since the min replicas is 1. Hence KubeElasti needs t...
(QB_NEW_EN_OTHER)
[grammar] ~72-~72: Use a comma after introductory words or phrases
Context: ...vice again since the min replicas is 1. Hence KubeElasti needs to know about the Keda...
(QB_NEW_EN_OTHER_ERROR_IDS_19)
[grammar] ~72-~72: Use correct spacing
Context: ...er type supported as of now is only keda. - autoscaler.name: Name of the keda scale...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~75-~75: Use correct spacing
Context: ...da scaled object - autoscaler.type: keda ### When to scale up the service to 1 As s...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~77-~77: Use correct spacing
Context: ...da ### When to scale up the service to 1 As soon as the service is scaled down t...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~79-~79: Use articles correctly
Context: ...me before the pod scaled up are held in memory of the elasti-resolver and are processe...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~79-~79: Use correct spacing
Context: ...olver and are processed once the pod is up. We can configure the cooldownPeriod
t...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/integration-hpa.md
[grammar] ~7-~7: Use correct spacing
Context: ...ubeElasti takes care of scaling to/from zero. A setup is explained in the [getting st...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
DEVELOPMENT.md
[grammar] ~1-~1: Use correct spacing
Context: # Development link to the [development guide](https:/...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use correct spacing
Context: ...# Development link to the development guide
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/getting-started.md
[grammar] ~13-~13: There might be a mistake here.
Context: ...nstall ### 1. Install KubeElasti using helm Use Helm to install KubeElasti into you...
(QB_NEW_EN_OTHER)
[grammar] ~15-~15: Use correct spacing
Context: ...install KubeElasti into your Kubernetes cluster. bash helm install elasti oci://tfy.jfrog.io/tfy-helm/elasti --namespace elasti --create-namespace
Check out [values.yaml](https://github....
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~21-~21: Use correct spacing
Context: ...configuration options in the helm value file. ### 2. Verify the Installation Check the s...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~23-~23: Use correct spacing
Context: ...the helm value file. ### 2. Verify the Installation Check the status of your Helm release a...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~25-~25: Use correct spacing
Context: ...sure that the KubeElasti components are running: bash helm status elasti --namespace elasti kubectl get pods -n elasti
You will see 2 components running. 1. ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~106-~106: There might be a mistake here.
Context: ...`` ### 7. Apply the KubeElasti service configuration Apply the configuration to your Kuberne...
(QB_NEW_EN_OTHER)
[grammar] ~137-~137: There might be a problem here.
Context: ...r 5 (cooldownPeriod
in ElastiService) seconds. ## Uninstall To uninstall Elasti, **you will need to...
(QB_NEW_EN_MERGED_MATCH)
docs/integration-keda.md
[grammar] ~7-~7: Use colons correctly
Context: ...ons with KEDA --- # Integration with KEDA KubeElasti takes care of scaling up and...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[style] ~8-~8: Consider using a different adjective in this context to strengthen your wording.
Context: ...e when there is some traffic. KEDA is a good candidate for performing the scaling lo...
(GOOD_ALTERNATIVE)
[grammar] ~8-~8: There might be a problem here.
Context: ...rom minReplicas to maxReplicas based on it's triggers. Here we will see how to integrate KubeE...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~10-~10: Use correct spacing
Context: ...i with KEDA to build a complete scaling solution. ## Prerequisites - Make sure you have gone...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~44-~44: Use correct spacing
Context: ...ales up the service, it will resume the ScaledObject. With these changes, KubeElasti can reli...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~46-~46: There might be a mistake here.
Context: ...wn the service to zero when there is no traffic while keda can handle the scaling logic...
(QB_NEW_EN_OTHER)
[grammar] ~46-~46: There might be a problem here.
Context: ...rom minReplicas to maxReplicas based on it's triggers.
(QB_NEW_EN_MERGED_MATCH)
docs/architecture.md
[grammar] ~1-~1: Use correct spacing
Context: # KubeElasti Architecture KubeElasti comprises of two main compon...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~6-~6: Use the right verb tense
Context: ...It monitors ElastiService resources and scaled them to 0 or 1 as needed. - *Resolver...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~7-~7: Use correct spacing
Context: ...lasti-controller to scale up the target service. ## Flow Description 
[grammar] ~9-~9: Use correct spacing
Context: ...o scale up the target service. ## Flow Description { loading=lazy align=left width="400" }...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~12-~12: Use correct spacing
Context: ...g){ loading=lazy align=left width="400" } When we enable KubeElasti on a service,...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~14-~14: Use correct spacing
Context: ...on a service, the service operates in 3 modes: 1. Steady State: The service is receivin...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~19-~19: Use correct spacing
Context: ... and can be scaled up to the configured minTargetReplicas.
### Steady state flow of requests to servic...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~23-~23: Use correct spacing
Context: ...> ### Steady state flow of requests to service In this mode, all the requests are hand...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~25-~25: Use articles correctly
Context: ...resolved doesn't come into the picture. KubeElasti controller keeps polling prometheus wit...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~25-~25: Make sure you are using the right part of speech
Context: ...rometheus with the configured query and check the result with threshold value to see ...
(QB_NEW_EN_OTHER_ERROR_IDS_21)
[grammar] ~25-~25: Use articles correctly
Context: ...figured query and check the result with threshold value to see if the service can be scal...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~25-~25: Use correct spacing
Context: ...lue to see if the service can be scaled down.
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~31-~31: There might be a mistake here.
Context: ... ### Scale down to 0 when there are no requests If the query from prometheus returns a ...
(QB_NEW_EN_OTHER)
[grammar] ~33-~33: Use the right verb tense
Context: ...ded to the KubeElasti resolver and then modified the Rollout/deployment to have 0 replic...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~33-~33: Use correct spacing
Context: ... Keda is configured with minReplicas as 1.
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~39-~39: Use correct spacing
Context: ... Scale up from 0 when the first request arrives. Since the service is scaled down to 0, ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~41-~41: Know when to use “that” and “which”
Context: ...e pods once the pod is up. The requests which came to KubeElasti Resolver are retried...
(QB_NEW_EN_OTHER_ERROR_IDS_3)
[grammar] ~41-~41: Use prepositions correctly
Context: ...came to KubeElasti Resolver are retried till 5 mins and the response is sent back to...
(QB_NEW_EN_OTHER_ERROR_IDS_7)
[grammar] ~41-~41: There might be a mistake here.
Context: ... KubeElasti Resolver are retried till 5 mins and the response is sent back to the cl...
(QB_NEW_EN_OTHER)
[grammar] ~41-~41: There might be a mistake here.
Context: ...he client. If the pod takes more than 5 mins to come up, the request is dropped. <d...
(QB_NEW_EN_OTHER)
[grammar] ~41-~41: Use correct spacing
Context: ... than 5 mins to come up, the request is dropped.
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/comparisons.md
[grammar] ~5-~5: Use correct spacing
Context: ...Solutions --- # Comparisons with Other Solutions This document compares KubeElasti with ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~7-~7: There might be a problem here.
Context: ...ale-to-zero solutions in the Kubernetes ecosystem. ## Knative ### Overview Knative is a comprehensive pla...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~12-~12: Use correct spacing
Context: ... request-based autoscaling, and traffic management. ### Key Differences - Complexity: Knati...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~17-~17: There might be a problem here.
Context: ...bernetes patterns with simple CRD-based configuration. ## OpenFaaS ### Overview OpenFaaS is a framework for bu...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~22-~22: Use correct spacing
Context: ...oy serverless functions to any cloud or on-premises. ### Key Differences - Purpose: OpenFaaS...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~27-~27: Use correct spacing
Context: ...s (HPA/KEDA) while adding scale-to-zero capability. ## KEDA HTTP Add-on ### Overview KEDA HTT...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~38-~38: Use articles correctly
Context: ...nce the service has been scaled up. - Integration: - KEDA HTTP Add-on requires KEDA inst...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~40-~40: Use correct spacing
Context: ...rk standalone or integrate with KEDA if needed. ## Feature Comparison Table | Feature | K...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~42-~42: Use correct spacing
Context: ... KEDA if needed. ## Feature Comparison Table | Feature | KubeElasti | Knative | Open...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~49-~49: There might be a problem here.
Context: ...| Low | High | Medium | Low | | Request queueing | ✅ | ❌ (drops or delays) | ✅ | ❌ | Setup Co...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~49-~49: There might be a problem here.
Context: ... | | Request queueing | ✅ | ❌ (drops or delays) | ✅ | ❌ | Setup Complexity | Low | High | Me...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~49-~49:
Context: ...eueing | ✅ | ❌ (drops or delays) | ✅ | ❌ | Setup Complexity | Low | High | Medium ...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~50-~50: Use correct spacing
Context: ...mplexity | Low | High | Medium | Medium | ## When to Choose KubeElasti KubeElasti i...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~52-~52: Use correct spacing
Context: ... | Medium | Medium | ## When to Choose KubeElasti KubeElasti is the best choice when you:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/introduction.md
[grammar] ~3-~3: Use hyphens correctly
Context: ... when there is no traffic and automatic scale up to 0 when traffic arrives. Most Kuber...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~3-~3: Add a comma
Context: ...ic arrives. Most Kubernetes autoscaling solutions like HPA or Keda can scale from 1 to n ...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~3-~3: Use comma(s) to set off direct address
Context: ...netes autoscaling solutions like HPA or Keda can scale from 1 to n replicas based on...
(QB_NEW_EN_OTHER_ERROR_IDS_18)
[grammar] ~3-~3: Add a comma
Context: ...aling after 1 replica is handled by the autoscaler like HPA or Keda. > The name Elasti co...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~3-~3: Use correct spacing
Context: ...s handled by the autoscaler like HPA or Keda. > The name Elasti comes from a superhero ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: There might be a problem here.
Context: ...r Keda. > The name Elasti comes from a superhero "Elasti-Girl" from DC Comics. Her superpower is to e...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~5-~5: There might be a problem here.
Context: ...e inches in height. Kube just refers to kubernetes. Elasti powers in kubernetes! KubeElasti uses...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~5-~5: Use correct spacing
Context: ...refers to kubernetes. Elasti powers in kubernetes! KubeElasti uses a proxy mechanism that ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~7-~7: Use correct spacing
Context: ...e processed directly by the pods of the service. ## How It Works KubeElasti continuously m...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~9-~9: Use correct spacing
Context: ... by the pods of the service. ## How It Works KubeElasti continuously monitors an Ela...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~11-~11: Use correct spacing
Context: ...er a service should be active or scaled down. - Scaling Down: When all trigge...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~14-~14: Use correct spacing
Context: ...s incoming requests instead of dropping them. - Traffic Queueing in Proxy Mode: I...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~17-~17: Use correct spacing
Context: ...even when the service is scaled down to 0. - Scaling Up: If any trigger si...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~20-~20: Use correct spacing
Context: ... online, KubeElasti switches to Serve Mode. - Serve Mode: In Serve Mode, the ac...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~23-~23: Use correct spacing
Context: ...g a seamless return to full operational capacity. This allows KubeElasti to optimize reso...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~25-~25: Use correct spacing
Context: ...pt service availability when conditions change.
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~30-~30: Use correct spacing
Context: .../modes.png" width="600"> ## Key Features - Seamless Integration: KubeElasti inte...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[typographical] ~32-~32: To join two clauses or set off examples, consider using an em dash.
Context: ...ortlessly with your existing Kubernetes setup - whether you are using HPA or Keda. It ta...
(QB_NEW_EN_DASH_RULE_EM)
[grammar] ~32-~32: Use correct spacing
Context: ...w steps to enable scale to zero for any service. - Deployment and Argo Rollouts Support:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~34-~34: Use correct spacing
Context: ...ing it versatile for various deployment scenarios. - Prometheus Metrics Export: KubeElasti...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~36-~36: Use correct spacing
Context: ...ashboard into Grafana for comprehensive visualization. - Generic Service Support: KubeElasti w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~38-~38: There might be a problem here.
Context: ... service mesh solution can be used with KubeElasti. ## Limitations - Only HTTP is supported: KubeElasti cu...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~42-~42: There might be a mistake here.
Context: ...e will support more protocols like TCP, UDP etc. - **Only Deployment and Argo Rollo...
(QB_NEW_EN_OTHER)
[grammar] ~44-~44: There might be a mistake here.
Context: ...The only trigger currently supported is Prometheus Please checkout the comparison [here](c...
(QB_NEW_EN_OTHER)
[grammar] ~46-~46: Use the right verb tense
Context: ...rrently supported is Prometheus Please checkout the comparison here t...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
README.md
[grammar] ~14-~14: Use correct spacing
Context: ..." align="center">
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~16-~16: Use commas correctly
Context: ...ivated, KubeElasti processes the queued requests, so that no request is lost. This combina...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~16-~16: Use correct spacing
Context: ...e tool for efficient Kubernetes service management. > The name Elasti comes from a superhero ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~18-~18: There might be a problem here.
Context: ...gement. > The name Elasti comes from a superhero "Elasti-Girl" from DC Comics. Her superpower is to e...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~18-~18: There might be a problem here.
Context: ...e inches in height. Kube just refers to kubernetes. Elasti powers in kubernetes! > KubeElasti(So...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~18-~18: There might be a problem here.
Context: ...refers to kubernetes. Elasti powers in kubernetes! > KubeElasti(Sometimes referred to as just "Elasti"). # Conte...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~20-~20: There might be a problem here.
Context: ...ubeElasti(Sometimes referred to as just "Elasti"). # Contents - [Why use KubeElasti?](#why-use-kubeelast...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~35-~35: There might be a problem here.
Context: ...g-help) - Roadmap - Star History # Introduction KubeElasti is a Kubernetes-native solut...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~39-~39: Use hyphens correctly
Context: ... when there is no traffic and automatic scale up to 1 when traffic arrives. Most Kuber...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~39-~39: Add a comma
Context: ...ic arrives. Most Kubernetes autoscaling solutions like HPA or Keda can scale from 1 to n ...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~39-~39: Use comma(s) to set off direct address
Context: ...netes autoscaling solutions like HPA or Keda can scale from 1 to n replicas based on...
(QB_NEW_EN_OTHER_ERROR_IDS_18)
[grammar] ~39-~39: Add a comma
Context: ...aling after 1 replica is handled by the autoscaler like HPA or Keda. KubeElasti uses a pr...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~39-~39: Use correct spacing
Context: ...s handled by the autoscaler like HPA or Keda. KubeElasti uses a proxy mechanism that ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~41-~41: Use correct spacing
Context: ...e processed directly by the pods of the service.
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~47-~47: Use correct spacing
Context: ...odes.png" width="400px"> ## Key Features - Seamless Integration: KubeElasti inte...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[typographical] ~49-~49: To join two clauses or set off examples, consider using an em dash.
Context: ...ortlessly with your existing Kubernetes setup - whether you are using HPA or Keda. It ta...
(QB_NEW_EN_DASH_RULE_EM)
[grammar] ~49-~49: Use correct spacing
Context: ...w steps to enable scale to zero for any service. - Deployment and Argo Rollouts Support:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~51-~51: Use correct spacing
Context: ...ing it versatile for various deployment scenarios. - Prometheus Metrics Export: KubeElasti...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~53-~53: Use correct spacing
Context: ...ashboard into Grafana for comprehensive visualization. - Generic Service Support: KubeElasti w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~55-~55: Use correct spacing
Context: ... service mesh solution can be used with KubeElasti. - Autoscaler Integration: KubeElasti ca...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~57-~57: Use correct spacing
Context: ...h HPA and Keda. # Getting Started Details on how to inst...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~87-~87: Use correct spacing
Context: ...ng a 👍 reaction to the issue. ## Star History
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/monitoring.md
[grammar] ~3-~3: Use correct spacing
Context: ...arts/elasti/values.yaml) file to enable monitoring. This will create two ServiceMonitor cus...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: Use correct spacing
Context: ...rgets section to check if KubeElasti is listed. Once verification is complete, you can ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~7-~7: Use correct spacing
Context: ...the internal metrics and performance of KubeElasti.

(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/index.md
[grammar] ~154-~154: There might be a mistake here.
Context: ...You just created a scale-to-zero service
KubeElasti is easy to set up and configure. Follow our step-by-step guide to get started.
Full Installation GuideJoin Our Community
Get help, share your experience, and contribute to KubeElasti
Ready to optimize your Kubernetes resources?
Get Started with KubeElasti(QB_NEW_EN_OTHER)
docs/development.md
[grammar] ~1-~1: Use correct spacing
Context: # Development Guide Setting up your development environment...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use correct spacing
Context: ... the project. Follow these steps to get started: ## Dev Environment ### 1. Get required to...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: Use correct spacing
Context: ...low these steps to get started: ## Dev Environment ### 1. Get required tools Ensure you have ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~7-~7: There might be a mistake here.
Context: ...## Dev Environment ### 1. Get required tools Ensure you have the following tools ins...
(QB_NEW_EN_OTHER)
[grammar] ~9-~9: Use correct spacing
Context: ...ls Ensure you have the following tools installed: - Go: The programming language used for...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~13-~13: There might be a mistake here.
Context: ...ttps://www.docker.com/get-started). - kubectl:: Command-line tool for interacting with...
(QB_NEW_EN_OTHER)
[grammar] ~17-~17: There might be a mistake here.
Context: ... Helps in working with the project. - Istio: Required to test the project with istio...
(QB_NEW_EN_OTHER)
[grammar] ~17-~17: There might be a mistake here.
Context: ...io:** Required to test the project with istio. Install from [istio.io](https://istio.i...
(QB_NEW_EN_OTHER)
[grammar] ~17-~17: There might be a mistake here.
Context: ...t the project with istio. Install from istio.io - k6: Required to load test the project....
(QB_NEW_EN_OTHER)
[grammar] ~18-~18: There might be a mistake here.
Context: ... to load test the project. Install from k6.io ### 2. Clone the Repo...
(QB_NEW_EN_OTHER)
[grammar] ~20-~20: Use correct spacing
Context: ...6.io](https://k6.io/) ### 2. Clone the Repository Clone the KubeElasti repository from Gi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~22-~22: Use correct spacing
Context: ...ti repository from GitHub to your local machine: git clone https://github.com/truefoundry/KubeElasti.git cd KubeElasti
> Make sure you checkout the documentatio...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~29-~29: Use the right verb tense
Context: ....git cd KubeElasti ``` > Make sure you checkout the documentation and architecture befo...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~29-~29: Use correct spacing
Context: ...ion and architecture before making your changes. ### 3. Repository Structure Understanding ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~31-~31: Use correct spacing
Context: ...making your changes. ### 3. Repository Structure Understanding the repository structure ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~33-~33: Use correct spacing
Context: ...of the key directories and files in the repository: . ├── LICENSE ├── Makefile ├── README.md ├── charts ├── docs ├── go.work ├── go.work.sum ├── kustomization.yaml ├── operator ├── pkg ├── playground ├── resolver └── test
2 Main Modules: - ./operator
: Co...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~52-~52: There might be a problem here.
Context: ...round ├── resolver └── test ``` 2 Main Modules: - ./operator
: Contains the code for Kubernetes operat...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~54-~54: Use articles correctly
Context: ..../operator
: Contains the code for Kubernetes operator, created using kubebuilder. ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~54-~54: There might be a problem here.
Context: ... for Kubernetes operator, created using kubebuilder. . ├── Dockerfile ├── Makefile ├── api ├── cmd ├── config ├── go.mod ├── go.sum ├── internal └── test
- ./api
: Contains the folder named after the api...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~67-~67: Use commas correctly
Context: ...:** Contains the folder named after the apiVersion, and has custom resource type description...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~69-~69: There might be a mistake here.
Context: ...Kubernetes manifest files. - ./cmd
: Main files for the tool. - **`./inter...
(QB_NEW_EN_OTHER)
[grammar] ~70-~70: There might be a mistake here.
Context: ...n files for the tool. - ./internal
: Internal packages of the program. - *...
(QB_NEW_EN_OTHER)
[grammar] ~71-~71: There might be a mistake here.
Context: ...kages of the program. - ./Makefile
: Helps with working with the program. Us...
(QB_NEW_EN_OTHER)
[grammar] ~72-~72: There might be a mistake here.
Context: ...the available commands. - ./resolver
: Contains the code for resolver. - Fil...
(QB_NEW_EN_OTHER)
[grammar] ~73-~73: Use correct spacing
Context: ...e structure of it is similar to that of Operator. Other Directories: - **./playground
:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~75-~75: There might be a problem here.
Context: ... is similar to that of Operator. Other Directories: - ./playground
: Code to setup a playground to try and t...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~77-~77: Use the right verb tense
Context: ...ctories: - ./playground
: Code to setup a playground to try and test KubeElasti...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~78-~78: There might be a mistake here.
Context: ...to try and test KubeElasti. - ./test
: Load testing scripts. - ./pkg
: Co...
(QB_NEW_EN_OTHER)
[grammar] ~79-~79: There might be a mistake here.
Context: ...st:** Load testing scripts. - **
./pkg`:** Common packages, shared via Operator an...
(QB_NEW_EN_OTHER)
[grammar] ~80-~80: There might be a mistake here.
Context: ...via Operator and Resolve. - ./charts
: Helm chart template. - ./docs
: De...
(QB_NEW_EN_OTHER)
[grammar] ~81-~81: There might be a mistake here.
Context: ...ts:** Helm chart template. - **
./docs`:** Detailed documentation on the HLD, LLD ...
(QB_NEW_EN_OTHER)
[grammar] ~81-~81: Add a comma
Context: ...`:** Detailed documentation on the HLD, LLD and Architecture of KubeElasti. ## Set...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~81-~81: There might be a problem here.
Context: ...ion on the HLD, LLD and Architecture of KubeElasti. ## Setup Playground ### 1. Local Cluster If you don't already ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~85-~85: Use correct spacing
Context: ...sti. ## Setup Playground ### 1. Local Cluster If you don't already have a local Kuber...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~87-~87: Add a comma
Context: ...ter, you can set one up using Minikube, Kind or Docker-Desktop: ``` minikube start ...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~87-~87: Use hyphens correctly
Context: ... can set one up using Minikube, Kind or Docker-Desktop: minikube start
or ``` kind c...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~92-~92: There might be a problem here.
Context: ...ocker-Desktop: minikube start
or kind create cluster
or Enable it in Docker-Desktop ### 2. Sta...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~101-~101: Use hyphens correctly
Context: ...nd create cluster ``` or Enable it in Docker-Desktop ### 2. Start a Local Docker Registry ...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~103-~103: Use correct spacing
Context: ...er-Desktop ### 2. Start a Local Docker Registry Run a local Docker registry container, ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~105-~105: Use commas correctly
Context: ...r Registry Run a local Docker registry container, to push our images locally and access th...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~105-~105: Use correct spacing
Context: ...r images locally and access them in our cluster. docker run -d -p 5001:5000 --name registry registry:2
> You will need to add this registry to M...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~111-~111: Use hyphens correctly
Context: ...his registry to Minikube and Kind. With Docker-Desktop, it is automatically picked up if runnin...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~111-~111: There might be a problem here.
Context: ...s automatically picked up if running in same context. > Note: In MacOS, 5000 is not available, ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~113-~113: Use proper capitalization
Context: ...if running in same context. > Note: In MacOS, 5000 is not available, so we use 5001 ...
(QB_NEW_EN_OTHER_ERROR_IDS_6)
[grammar] ~113-~113: Use correct spacing
Context: ..., 5000 is not available, so we use 5001 instead. ### 3. [Optional] Install Istio Gateway to ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~124-~124: There might be a mistake here.
Context: ...nal] Install Istio Gateway to work with istio bash # Download the latest Istio release from the official Istio website. curl -L https://istio.io/downloadIstio | sh - # Move it to home directory mv istio-x.xx.x ~/.istioctl export PATH=$HOME/.istioctl/bin:$PATH istioctl install --set profile=default -y # Label the namespace where you want to deploy your application to enable Istio sidecar Injection kubectl create namespace demo kubectl label namespace demo istio-injection=enabled # Create a gateway kubectl apply -f ./playground/config/gateway.yaml
### 4. Deploy a demo service Run a demo ap...
(QB_NEW_EN_OTHER)
[grammar] ~143-~143: There might be a mistake here.
Context: .../gateway.yaml ``` ### 4. Deploy a demo service Run a demo application in your cluster....
(QB_NEW_EN_OTHER)
[grammar] ~145-~145: Use correct spacing
Context: ...service Run a demo application in your cluster. bash kubectl create namespace demo kubectl apply -f ./playground/config/demo-application.yaml -n demo # Create a Virtual Service to expose the demo service if you are using istio kubectl apply -f ./playground/config/demo-virtualService.yaml -n demo
### 5. Build & Publish Resolver Go into th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~155-~155: Use correct spacing
Context: ...aml -n demo ``` ### 5. Build & Publish Resolver Go into the resolver directory and run ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~157-~157: Use correct spacing
Context: ...directory and run the build and publish command. bash cd resolver make docker-build docker-push IMG=localhost:5001/elasti-resolver:v1alpha1
### 6. Build & Publish Operator Go into th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~164-~164: Use correct spacing
Context: ...er:v1alpha1 ``` ### 6. Build & Publish Operator Go into the operator directory and run ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~166-~166: Use correct spacing
Context: ...directory and run the build and publish command. bash cd operator make docker-build docker-push IMG=localhost:5001/elasti-operator:v1alpha1
### 7. Deploy Locally Make sure you have c...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~173-~173: Use correct spacing
Context: ...ti-operator:v1alpha1 ``` ### 7. Deploy Locally Make sure you have configured the local...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~175-~175: Use correct spacing
Context: ...ollow below steps from the project home directory: bash kubectl create namespace elasti helm template elasti ./charts/elasti -n elasti -f ./playground/infra/elasti-demo-values.yaml | kubectl apply -f -
If you want to enable monitoring, pleas...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~182-~182: Use correct spacing
Context: ...e enableMonitoring
true in the values file. ### 8. Create ElastiService Resource Using...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~184-~184: There might be a problem here.
Context: ...oring` true in the values file. ### 8. Create ElastiService Resource Using the [ElastiService Defination](#1...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~186-~186: There might be a mistake here.
Context: ...vice Resource Using the ElastiService Defination, create a manif...
(QB_NEW_EN_OTHER)
[grammar] ~186-~186: Use articles correctly
Context: ...file for your service and apply it. For demo, we use the below manifest. ```bash kub...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~186-~186: Use correct spacing
Context: ...nd apply it. For demo, we use the below manifest. bash kubectl -n demo apply -f ./playground/config/demo-elastiService.yaml
### 9. Test the service #### 9.1 Create a ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~192-~192: There might be a mistake here.
Context: ...elastiService.yaml ### 9. Test the service #### 9.1 Create a watch on the service
b...
(QB_NEW_EN_OTHER)
[grammar] ~194-~194: There might be a mistake here.
Context: ...service #### 9.1 Create a watch on the service bash kubectl -n demo get elastiservice httpbin -w
#### 9.2 Scale down the service ```bash kub...
(QB_NEW_EN_OTHER)
[grammar] ~200-~200: Use correct spacing
Context: ...httpbin -w #### 9.2 Scale down the service
bash kubectl -n demo scale deployment httpbin --replicas=0 #### 9.3 Create a load on the service
ba...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~206-~206: There might be a mistake here.
Context: ...as=0 #### 9.3 Create a load on the service
bash kubectl run -it --rm curl --image=alpine/curl -- http://httpbin.demo.svc.cluster.local/headers ``` You should see the target service pod g...
(QB_NEW_EN_OTHER)
[grammar] ~212-~212: Use articles correctly
Context: ...arget service pod getting scaled up and response from the new pod. ## Testing This sec...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~212-~212: There might be a problem here.
Context: ...ing scaled up and response from the new pod. ## Testing This section outlines how to run integr...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~216-~216: Use commas correctly
Context: ...section outlines how to run integration tests, and performance tests using k6. 1. **Up...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~216-~216: Use correct spacing
Context: ...tion tests, and performance tests using k6. 1. Update k6 tests Update the `./tes...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~218-~218: There might be a mistake here.
Context: ...ormance tests using k6. 1. Update k6 tests Update the ./test/load.js
file, to ad...
(QB_NEW_EN_OTHER)
[grammar] ~220-~220: Use commas correctly
Context: ...tests** Update the ./test/load.js
file, to add your url for testing, and update ...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~220-~220: Use correct spacing
Context: ...update other configurations in the same file. 2. Run load.js Run the following com...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~222-~222: There might be a mistake here.
Context: ...figurations in the same file. 2. Run load.js Run the following command to run the te...
(QB_NEW_EN_OTHER)
[grammar] ~224-~224: There might be a problem here.
Context: ... Run the following command to run the test. chmod +x ./test/generate_load.sh cd ./test ./generate_load.sh
3. Run E2E tests Use the KUTTL framewor...
(QB_NEW_EN_MERGED_MATCH)
[style] ~232-~232: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...test ./generate_load.sh ``` 3. Run E2E tests Use the KUTTL framework to...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~232-~232: There might be a mistake here.
Context: ..../generate_load.sh ``` 3. Run E2E tests Use the KUTTL framework to execute Elas...
(QB_NEW_EN_OTHER)
[grammar] ~234-~234: Use correct spacing
Context: ...s end-to-end tests in a real Kubernetes environment: bash cd ./tests/e2e make setup # Sets up environment make test # Runs tests
For detailed information about the E2E ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~242-~242: There might be a problem here.
Context: ...ation about the E2E test framework, see tests/e2e/README.md. ## Monitoring bash # First, add the prometheus-community Helm repository. helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update # Install the kube-prometheus-stack chart. This chart includes Prometheus and Grafana. kubectl create namespace prometheus helm install prometheus-stack prometheus-community/kube-prometheus-stack -n prometheus # Port-forward to access the dashboard kubectl port-forward -n prometheus services/prometheus-stack-grafana 3000:80 # Get the admin user. kubectl get secret --namespace prometheus prometheus-stack-grafana -o jsonpath="{.data.admin-user}" | base64 --decode ; echo # Get the admin password. kubectl get secret --namespace prometheus prometheus-stack-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
Post this, you can use [`./playground/i...
(QB_NEW_EN_MERGED_MATCH)
🪛 markdownlint-cli2 (0.17.2)
docs/configure-elastiservice.md
72-72: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
docs/integration-hpa.md
6-6: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
6-6: Multiple top-level headings in the same document
(MD025, single-title, single-h1)
DEVELOPMENT.md
3-3: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
docs/getting-started.md
15-15: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
docs/integration-keda.md
7-7: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
7-7: Multiple top-level headings in the same document
(MD025, single-title, single-h1)
46-46: Files should end with a single newline character
(MD047, single-trailing-newline)
docs/architecture.md
3-3: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
11-11: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
16-16: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
21-21: Inline HTML
Element: br
(MD033, no-inline-html)
21-21: Inline HTML
Element: br
(MD033, no-inline-html)
27-27: Inline HTML
Element: div
(MD033, no-inline-html)
28-28: Inline HTML
Element: img
(MD033, no-inline-html)
28-28: Images should have alternate text (alt text)
(MD045, no-alt-text)
33-33: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
35-35: Inline HTML
Element: div
(MD033, no-inline-html)
36-36: Inline HTML
Element: img
(MD033, no-inline-html)
36-36: Images should have alternate text (alt text)
(MD045, no-alt-text)
39-39: Trailing punctuation in heading
Punctuation: '.'
(MD026, no-trailing-punctuation)
43-43: Inline HTML
Element: div
(MD033, no-inline-html)
44-44: Inline HTML
Element: img
(MD033, no-inline-html)
44-44: Images should have alternate text (alt text)
(MD045, no-alt-text)
47-47: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
48-48: Inline HTML
Element: div
(MD033, no-inline-html)
49-49: Inline HTML
Element: img
(MD033, no-inline-html)
49-49: Images should have alternate text (alt text)
(MD045, no-alt-text)
docs/comparisons.md
5-5: Multiple top-level headings in the same document
(MD025, single-title, single-h1)
11-11: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
14-14: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
15-15: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
21-21: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
24-24: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
25-25: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
49-49: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
49-49: Hard tabs
Column: 19
(MD010, no-hard-tabs)
49-49: Hard tabs
Column: 23
(MD010, no-hard-tabs)
49-49: Hard tabs
Column: 45
(MD010, no-hard-tabs)
49-49: Hard tabs
Column: 49
(MD010, no-hard-tabs)
49-49: Hard tabs
Column: 53
(MD010, no-hard-tabs)
49-49: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe
(MD055, table-pipe-style)
docs/introduction.md
5-5: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
26-26: Inline HTML
Element: div
(MD033, no-inline-html)
27-27: Inline HTML
Element: img
(MD033, no-inline-html)
27-27: Images should have alternate text (alt text)
(MD045, no-alt-text)
README.md
18-18: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
19-19: Blank line inside blockquote
(MD028, no-blanks-blockquote)
43-43: Inline HTML
Element: div
(MD033, no-inline-html)
44-44: Inline HTML
Element: img
(MD033, no-inline-html)
44-44: Images should have alternate text (alt text)
(MD045, no-alt-text)
docs/monitoring.md
9-9: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
10-10: Inline HTML
Element: figure
(MD033, no-inline-html)
12-12: Inline HTML
Element: figcaption
(MD033, no-inline-html)
13-13: Files should end with a single newline character
(MD047, single-trailing-newline)
docs/index.md
11-11: Inline HTML
Element: div
(MD033, no-inline-html)
11-11: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
12-12: Inline HTML
Element: div
(MD033, no-inline-html)
13-13: Inline HTML
Element: div
(MD033, no-inline-html)
15-15: Inline HTML
Element: h1
(MD033, no-inline-html)
17-17: Inline HTML
Element: p
(MD033, no-inline-html)
18-18: Inline HTML
Element: p
(MD033, no-inline-html)
19-19: Inline HTML
Element: br
(MD033, no-inline-html)
19-19: Inline HTML
Element: br
(MD033, no-inline-html)
20-20: Inline HTML
Element: b
(MD033, no-inline-html)
20-20: Inline HTML
Element: b
(MD033, no-inline-html)
20-20: Inline HTML
Element: b
(MD033, no-inline-html)
21-21: Inline HTML
Element: div
(MD033, no-inline-html)
22-22: Inline HTML
Element: a
(MD033, no-inline-html)
23-23: Inline HTML
Element: a
(MD033, no-inline-html)
26-26: Inline HTML
Element: div
(MD033, no-inline-html)
27-27: Inline HTML
Element: img
(MD033, no-inline-html)
42-42: Inline HTML
Element: div
(MD033, no-inline-html)
43-43: Inline HTML
Element: h2
(MD033, no-inline-html)
44-44: Inline HTML
Element: div
(MD033, no-inline-html)
45-45: Inline HTML
Element: div
(MD033, no-inline-html)
46-46: Inline HTML
Element: div
(MD033, no-inline-html)
47-47: Inline HTML
Element: h3
(MD033, no-inline-html)
48-48: Inline HTML
Element: p
(MD033, no-inline-html)
50-50: Inline HTML
Element: div
(MD033, no-inline-html)
51-51: Inline HTML
Element: div
(MD033, no-inline-html)
52-52: Inline HTML
Element: h3
(MD033, no-inline-html)
53-53: Inline HTML
Element: p
(MD033, no-inline-html)
55-55: Inline HTML
Element: div
(MD033, no-inline-html)
56-56: Inline HTML
Element: div
(MD033, no-inline-html)
57-57: Inline HTML
Element: h3
(MD033, no-inline-html)
58-58: Inline HTML
Element: p
(MD033, no-inline-html)
60-60: Inline HTML
Element: div
(MD033, no-inline-html)
61-61: Inline HTML
Element: div
(MD033, no-inline-html)
62-62: Inline HTML
Element: h3
(MD033, no-inline-html)
63-63: Inline HTML
Element: p
(MD033, no-inline-html)
65-65: Inline HTML
Element: div
(MD033, no-inline-html)
66-66: Inline HTML
Element: div
(MD033, no-inline-html)
67-67: Inline HTML
Element: h3
(MD033, no-inline-html)
68-68: Inline HTML
Element: p
(MD033, no-inline-html)
70-70: Inline HTML
Element: div
(MD033, no-inline-html)
71-71: Inline HTML
Element: div
(MD033, no-inline-html)
72-72: Inline HTML
Element: h3
(MD033, no-inline-html)
73-73: Inline HTML
Element: p
(MD033, no-inline-html)
79-79: Inline HTML
Element: div
(MD033, no-inline-html)
80-80: Inline HTML
Element: h2
(MD033, no-inline-html)
81-81: Inline HTML
Element: div
(MD033, no-inline-html)
82-82: Inline HTML
Element: div
(MD033, no-inline-html)
83-83: Inline HTML
Element: img
(MD033, no-inline-html)
85-85: Inline HTML
Element: div
(MD033, no-inline-html)
86-86: Inline HTML
Element: div
(MD033, no-inline-html)
87-87: Inline HTML
Element: div
(MD033, no-inline-html)
88-88: Inline HTML
Element: div
(MD033, no-inline-html)
89-89: Inline HTML
Element: h3
(MD033, no-inline-html)
90-90: Inline HTML
Element: p
(MD033, no-inline-html)
93-93: Inline HTML
Element: div
(MD033, no-inline-html)
94-94: Inline HTML
Element: div
(MD033, no-inline-html)
95-95: Inline HTML
Element: div
(MD033, no-inline-html)
96-96: Inline HTML
Element: h3
(MD033, no-inline-html)
97-97: Inline HTML
Element: p
(MD033, no-inline-html)
100-100: Inline HTML
Element: div
(MD033, no-inline-html)
101-101: Inline HTML
Element: div
(MD033, no-inline-html)
102-102: Inline HTML
Element: div
(MD033, no-inline-html)
103-103: Inline HTML
Element: h3
(MD033, no-inline-html)
104-104: Inline HTML
Element: p
(MD033, no-inline-html)
107-107: Inline HTML
Element: div
(MD033, no-inline-html)
108-108: Inline HTML
Element: div
(MD033, no-inline-html)
109-109: Inline HTML
Element: div
(MD033, no-inline-html)
110-110: Inline HTML
Element: h3
(MD033, no-inline-html)
111-111: Inline HTML
Element: p
(MD033, no-inline-html)
119-119: Inline HTML
Element: div
(MD033, no-inline-html)
120-120: Inline HTML
Element: h2
(MD033, no-inline-html)
122-122: Trailing spaces
Expected: 0 or 2; Actual: 5
(MD009, no-trailing-spaces)
122-122: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
123-123: Inline HTML
Element: div
(MD033, no-inline-html)
124-124: Inline HTML
Element: div
(MD033, no-inline-html)
125-125: Inline HTML
Element: pre
(MD033, no-inline-html)
125-125: Inline HTML
Element: code
(MD033, no-inline-html)
125-125: Inline HTML
Element: span
(MD033, no-inline-html)
126-126: Inline HTML
Element: span
(MD033, no-inline-html)
126-126: Inline HTML
Element: span
(MD033, no-inline-html)
128-128: Inline HTML
Element: span
(MD033, no-inline-html)
129-129: Inline HTML
Element: span
(MD033, no-inline-html)
130-130: Inline HTML
Element: span
(MD033, no-inline-html)
131-131: Inline HTML
Element: span
(MD033, no-inline-html)
132-132: Inline HTML
Element: span
(MD033, no-inline-html)
134-134: Inline HTML
Element: span
(MD033, no-inline-html)
135-135: Inline HTML
Element: span
(MD033, no-inline-html)
137-137: Inline HTML
Element: span
(MD033, no-inline-html)
138-138: Inline HTML
Element: span
(MD033, no-inline-html)
139-139: Inline HTML
Element: span
(MD033, no-inline-html)
141-141: Inline HTML
Element: span
(MD033, no-inline-html)
142-142: Inline HTML
Element: span
(MD033, no-inline-html)
143-143: Inline HTML
Element: span
(MD033, no-inline-html)
145-145: Inline HTML
Element: span
(MD033, no-inline-html)
147-147: Inline HTML
Element: span
(MD033, no-inline-html)
148-148: Inline HTML
Element: span
(MD033, no-inline-html)
149-149: Inline HTML
Element: span
(MD033, no-inline-html)
150-150: Inline HTML
Element: span
(MD033, no-inline-html)
151-151: Inline HTML
Element: span
(MD033, no-inline-html)
154-154: Inline HTML
Element: span
(MD033, no-inline-html)
158-158: Inline HTML
Element: div
(MD033, no-inline-html)
159-159: Inline HTML
Element: p
(MD033, no-inline-html)
160-160: Inline HTML
Element: a
(MD033, no-inline-html)
165-165: Inline HTML
Element: div
(MD033, no-inline-html)
166-166: Inline HTML
Element: h2
(MD033, no-inline-html)
167-167: Inline HTML
Element: p
(MD033, no-inline-html)
168-168: Inline HTML
Element: div
(MD033, no-inline-html)
169-169: Inline HTML
Element: a
(MD033, no-inline-html)
170-170: Inline HTML
Element: span
(MD033, no-inline-html)
171-171: Inline HTML
Element: span
(MD033, no-inline-html)
173-173: Inline HTML
Element: a
(MD033, no-inline-html)
174-174: Inline HTML
Element: span
(MD033, no-inline-html)
175-175: Inline HTML
Element: span
(MD033, no-inline-html)
177-177: Inline HTML
Element: a
(MD033, no-inline-html)
178-178: Inline HTML
Element: span
(MD033, no-inline-html)
179-179: Inline HTML
Element: span
(MD033, no-inline-html)
184-184: Inline HTML
Element: div
(MD033, no-inline-html)
185-185: Inline HTML
Element: h2
(MD033, no-inline-html)
186-186: Inline HTML
Element: a
(MD033, no-inline-html)
189-189: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
docs/development.md
24-24: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
35-35: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
55-55: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
55-55: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
66-66: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
89-89: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
95-95: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
107-107: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
112-112: Blank line inside blockquote
(MD028, no-blanks-blockquote)
186-186: Link fragments should be valid
(MD051, link-fragments)
226-226: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🪛 checkmake (0.2.2)
Makefile
[warning] 53-53: Missing required phony target "all"
(minphony)
[warning] 53-53: Missing required phony target "clean"
(minphony)
🪛 YAMLlint (1.37.1)
.github/workflows/docs.yaml
[warning] 2-2: truthy value should be one of [false, true]
(truthy)
[error] 21-21: trailing spaces
(trailing-spaces)
[error] 25-25: trailing spaces
(trailing-spaces)
[error] 28-28: trailing spaces
(trailing-spaces)
[error] 29-29: no new line character at the end of file
(new-line-at-end-of-file)
mkdocs.yml
[error] 81-81: trailing spaces
(trailing-spaces)
[error] 99-99: trailing spaces
(trailing-spaces)
[error] 100-100: wrong indentation: expected 6 but found 4
(indentation)
[error] 103-103: trailing spaces
(trailing-spaces)
[error] 104-104: wrong indentation: expected 6 but found 4
(indentation)
[error] 106-106: trailing spaces
(trailing-spaces)
[error] 107-107: wrong indentation: expected 6 but found 4
(indentation)
[error] 111-111: too many blank lines (1 > 0)
(empty-lines)
🪛 Biome (1.9.4)
docs/stylesheets/extra.css
[error] 162-162: Unexpected shorthand property animation after animation-delay
(lint/suspicious/noShorthandPropertyOverrides)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Run Kuttl E2E Tests
🔇 Additional comments (1)
docs/development.md (1)
67-72
: Minor phrasing & article usage“Kubernetes operator” should be preceded by an article for grammatical accuracy.
-Contains the code for Kubernetes operator, created using kubebuilder. +Contains the code for the Kubernetes operator, created with Kubebuilder.Likely an incorrect or invalid review comment.
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.
Actionable comments posted: 39
🔭 Outside diff range comments (3)
CONTRIBUTING.md (1)
1-3
: Repository has been rebranded – update title and body
The file still reads “Elasti” in multiple places even though the repo is now “KubeElasti”. Consider a search-and-replace to keep the branding consistent.docs/src/integration-hpa.md (1)
6-10
: Front-matter already sets the title – drop the duplicate H1 & fix spacingYou currently have two top-level headings which violates MD025 and hurts MkDocs navigation.
-# Integration with HPA -KubeElasti works seamlessly ... +# Integration with HPA + +KubeElasti works seamlessly ...…becomes
-# Integration with HPA +# Overview KubeElasti works seamlessly ...Also insert a blank line after the heading to satisfy MD022.
docs/src/getting-started.md (1)
95-97
: Fix incorrect Kubernetes Kind (deployments
→Deployment
)
ThescaleTargetRef.kind
field must be the singular, capitalizedDeployment
; otherwise the CRD will fail to reconcile.- kind: deployments + kind: Deployment
♻️ Duplicate comments (4)
docs/stylesheets/extra.css (3)
162-163
:animation-delay
immediately overridden
Line 162 setsanimation-delay
, then line 163’s shorthandanimation
discards it – same issue flagged previously.- animation-delay: 0.2s; - animation: fadeIn 0.8s ease-out 0.2s both; + /* merged into single shorthand */ + animation: fadeIn 0.8s ease-out 0.2s both;
53-55
: Non-standard:-webkit-any()
selector
Still present – it is legacy, may be blocked by CSP, and offers no benefit when:is()
is also provided.-a.md-header__button.md-logo :-webkit-any(img, svg), +/* -webkit-any removed for portability */
803-805
: Fixed width causes truncation on small screens
Usemin-width
so the card can grow when the text is longer; flagged in the last review and still applicable.- .community-link { - width: 120px; + .community-link { + min-width: 120px;DEVELOPMENT.md (1)
1-3
: Minor copy nit – end the sentence with a period-Refer to the comprehensive [development guide](https://github.com/truefoundry/KubeElasti/blob/main/docs/development.md). +Refer to the comprehensive [development guide](https://github.com/truefoundry/KubeElasti/blob/main/docs/development.md).(Feel free to ignore if you prefer the breezier style.)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (2)
docs/images/hld.png
is excluded by!**/*.png
pkg/go.sum
is excluded by!**/*.sum
📒 Files selected for processing (27)
.github/workflows/docs.yaml
(1 hunks).gitignore
(1 hunks)CHANGELOG.md
(1 hunks)CONTRIBUTING.md
(1 hunks)DEVELOPMENT.md
(1 hunks)Makefile
(1 hunks)README.md
(2 hunks)docs/architecture.md
(0 hunks)docs/configure-elastiservice.md
(0 hunks)docs/development.md
(0 hunks)docs/src/arch-monitoring.md
(1 hunks)docs/src/architecture.md
(1 hunks)docs/src/comparisons.md
(1 hunks)docs/src/configure-elastiservice.md
(1 hunks)docs/src/dev-env.md
(1 hunks)docs/src/dev-playground.md
(1 hunks)docs/src/dev-test-e2e.md
(1 hunks)docs/src/dev-test-load.md
(1 hunks)docs/src/dev-test-monitoring.md
(1 hunks)docs/src/getting-started.md
(5 hunks)docs/src/integration-hpa.md
(1 hunks)docs/src/integration-keda.md
(1 hunks)docs/src/introduction.md
(1 hunks)docs/src/message.md
(1 hunks)docs/stylesheets/extra.css
(1 hunks)mkdocs.yml
(1 hunks)tests/e2e/README.md
(0 hunks)
💤 Files with no reviewable changes (4)
- docs/development.md
- tests/e2e/README.md
- docs/configure-elastiservice.md
- docs/architecture.md
🧰 Additional context used
🪛 LanguageTool
CONTRIBUTING.md
[grammar] ~27-~27: Use correct spacing
Context: ...discuss ideas, head over to our GitHub Discussions. ## 📝 Pull Requests If you're ready to co...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
CHANGELOG.md
[grammar] ~17-~17: Use articles correctly
Context: ... All the unreleased changes are listed under Unreleased
section. ## History - [C...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~17-~17: There might be a problem here.
Context: ...d changes are listed under Unreleased
section. ## History - Changelog - [0.1.14](#1...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~24-~24: There might be a problem here.
Context: ...14](#114) - History - Unreleased ## Unreleased
(QB_NEW_EN_MERGED_MATCH)
DEVELOPMENT.md
[grammar] ~1-~1: Use correct spacing
Context: # Development Refer to the comprehensive [development...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/integration-hpa.md
[grammar] ~7-~7: Use correct spacing
Context: ...ubeElasti takes care of scaling to/from zero. A setup is explained in the [getting st...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/dev-test-load.md
[grammar] ~1-~1: Use correct spacing
Context: # Load testing ### 1. Update k6 tests Update the `./te...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: There might be a mistake here.
Context: # Load testing ### 1. Update k6 tests Update the ./test/load.js
file, to ad...
(QB_NEW_EN_OTHER)
[grammar] ~5-~5: Use commas correctly
Context: ...6 tests Update the ./test/load.js
file, to add your url for testing, and update ...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~5-~5: Use correct spacing
Context: ...update other configurations in the same file. ### 2. Run load.js Run the following co...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~7-~7: There might be a mistake here.
Context: ...gurations in the same file. ### 2. Run load.js Run the following command to run the te...
(QB_NEW_EN_OTHER)
[grammar] ~9-~9: There might be a problem here.
Context: ... Run the following command to run the test. chmod +x ./test/generate_load.sh cd ./test ./generate_load.sh
(QB_NEW_EN_MERGED_MATCH)
docs/src/getting-started.md
[grammar] ~13-~13: There might be a mistake here.
Context: ...nstall ### 1. Install KubeElasti using helm Use Helm to install KubeElasti into you...
(QB_NEW_EN_OTHER)
[grammar] ~15-~15: Use correct spacing
Context: ...install KubeElasti into your Kubernetes cluster. bash helm install elasti oci://tfy.jfrog.io/tfy-helm/elasti --namespace elasti --create-namespace
Check out [values.yaml](https://github....
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~21-~21: Use correct spacing
Context: ...configuration options in the helm value file. ### 2. Verify the Installation Check the s...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~23-~23: Use correct spacing
Context: ...the helm value file. ### 2. Verify the Installation Check the status of your Helm release a...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~25-~25: Use correct spacing
Context: ...sure that the KubeElasti components are running: bash helm status elasti --namespace elasti kubectl get pods -n elasti
You will see 2 components running. 1. ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~106-~106: There might be a mistake here.
Context: ...`` ### 7. Apply the KubeElasti service configuration Apply the configuration to your Kuberne...
(QB_NEW_EN_OTHER)
[grammar] ~137-~137: There might be a problem here.
Context: ...r 5 (cooldownPeriod
in ElastiService) seconds. ## Uninstall To uninstall Elasti, **you will need to...
(QB_NEW_EN_MERGED_MATCH)
README.md
[grammar] ~14-~14: Use correct spacing
Context: ..." align="center">
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~16-~16: Use commas correctly
Context: ...ivated, KubeElasti processes the queued requests, so that no request is lost. This combina...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~16-~16: Use correct spacing
Context: ...e tool for efficient Kubernetes service management. > The name Elasti comes from a superhero ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~18-~18: There might be a problem here.
Context: ...gement. > The name Elasti comes from a superhero "Elasti-Girl" from DC Comics. Her superpower is to e...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~18-~18: There might be a problem here.
Context: ...e inches in height. Kube just refers to kubernetes. Elasti powers in kubernetes! > KubeElasti(So...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~18-~18: There might be a problem here.
Context: ...refers to kubernetes. Elasti powers in kubernetes! > KubeElasti(Sometimes referred to as just "Elasti"). # Conte...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~20-~20: There might be a problem here.
Context: ...ubeElasti(Sometimes referred to as just "Elasti"). # Contents - [Why use KubeElasti?](#why-use-kubeelast...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~35-~35: There might be a problem here.
Context: ...g-help) - Roadmap - Star History # Introduction KubeElasti is a Kubernetes-native solut...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~39-~39: Use hyphens correctly
Context: ... when there is no traffic and automatic scale up to 1 when traffic arrives. Most Kuber...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~39-~39: Add a comma
Context: ...ic arrives. Most Kubernetes autoscaling solutions like HPA or Keda can scale from 1 to n ...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~39-~39: Use comma(s) to set off direct address
Context: ...netes autoscaling solutions like HPA or Keda can scale from 1 to n replicas based on...
(QB_NEW_EN_OTHER_ERROR_IDS_18)
[grammar] ~39-~39: Add a comma
Context: ...aling after 1 replica is handled by the autoscaler like HPA or Keda. KubeElasti uses a pr...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~39-~39: Use correct spacing
Context: ...s handled by the autoscaler like HPA or Keda. KubeElasti uses a proxy mechanism that ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~41-~41: Use correct spacing
Context: ...e processed directly by the pods of the service.
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~47-~47: Use correct spacing
Context: ...odes.png" width="400px"> ## Key Features - Seamless Integration: KubeElasti inte...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[typographical] ~49-~49: To join two clauses or set off examples, consider using an em dash.
Context: ...ortlessly with your existing Kubernetes setup - whether you are using HPA or Keda. It ta...
(QB_NEW_EN_DASH_RULE_EM)
[grammar] ~49-~49: Use correct spacing
Context: ...w steps to enable scale to zero for any service. - Deployment and Argo Rollouts Support:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~51-~51: Use correct spacing
Context: ...ing it versatile for various deployment scenarios. - Prometheus Metrics Export: KubeElasti...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~53-~53: Use correct spacing
Context: ...ashboard into Grafana for comprehensive visualization. - Generic Service Support: KubeElasti w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~55-~55: Use correct spacing
Context: ... service mesh solution can be used with KubeElasti. - Autoscaler Integration: KubeElasti ca...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~57-~57: Use correct spacing
Context: ...h HPA and Keda. # Getting Started Details on how to inst...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~59-~59: Use correct spacing
Context: .../docs/integrations.md#keda). # Getting Started Details on how to install and configure...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~61-~61: Use correct spacing
Context: ...ing Started](./docs/getting-started.md) guide. # Configure KubeElasti Check out the dif...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~63-~63: There might be a mistake here.
Context: ...getting-started.md) guide. # Configure KubeElasti Check out the different ways to configu...
(QB_NEW_EN_OTHER)
[grammar] ~65-~65: There might be a problem here.
Context: ...ion](./docs/configure-elastiservice.md) guide. # Monitoring Monitoring details can be found in the ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~81-~81: There might be a problem here.
Context: ...section for getting help and discussing ideas. # Roadmap We are maintaining the future roadmap u...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~85-~85: Use correct spacing
Context: ...for them by adding a 👍 reaction to the issue. ## Star History [
[grammar] ~87-~87: Use correct spacing
Context: ...ng a 👍 reaction to the issue. ## Star History
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/comparisons.md
[grammar] ~5-~5: Use correct spacing
Context: ...Solutions --- # Comparisons with Other Solutions This document compares KubeElasti with ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~7-~7: There might be a problem here.
Context: ...ale-to-zero solutions in the Kubernetes ecosystem. ## Knative ### Overview Knative is a comprehensive pla...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~12-~12: Use correct spacing
Context: ... request-based autoscaling, and traffic management. ### Key Differences - Complexity: Knati...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~17-~17: There might be a problem here.
Context: ...bernetes patterns with simple CRD-based configuration. ## OpenFaaS ### Overview OpenFaaS is a framework for bu...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~22-~22: Use correct spacing
Context: ...oy serverless functions to any cloud or on-premises. ### Key Differences - Purpose: OpenFaaS...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~27-~27: Use correct spacing
Context: ...s (HPA/KEDA) while adding scale-to-zero capability. ## KEDA HTTP Add-on ### Overview KEDA H...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~29-~29: Use correct spacing
Context: ...ale-to-zero capability. ## KEDA HTTP Add-on ### Overview KEDA HTTP Add-on is an extensi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~32-~32: Use correct spacing
Context: ...-based scaling, including scale-to-zero functionality. ### Key Differences - Request Handling:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~34-~34: Use colons correctly
Context: ...g scale-to-zero functionality. ### Key Differences - Request Handling: - KEDA htt...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~38-~38: Use articles correctly
Context: ...nce the service has been scaled up. - Integration: - KEDA HTTP Add-on requires KEDA in...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~40-~40: Use correct spacing
Context: ...rk standalone or integrate with KEDA if needed. ## Feature Comparison Table | Feature |...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~42-~42: Use correct spacing
Context: ...EDA if needed. ## Feature Comparison Table | Feature | KubeElasti | Knative | Open...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~50-~50: Use correct spacing
Context: ...mplexity | Low | High | Medium | Medium | ## When to Choose KubeElasti KubeElasti...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~52-~52: Use correct spacing
Context: ... Medium | Medium | ## When to Choose KubeElasti KubeElasti is the best choice when you:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~54-~54: Use correct spacing
Context: ...i** KubeElasti is the best choice when you: 1. Need to add scale-to-zero capability to...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/arch-monitoring.md
[grammar] ~1-~1: Use correct spacing
Context: # Monitoring Set .global.enableMonitoring
to `true...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use correct spacing
Context: ...arts/elasti/values.yaml) file to enable monitoring. This will create two ServiceMonitor cus...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: Use correct spacing
Context: ...rgets section to check if KubeElasti is listed. Once verification is complete, you can ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~7-~7: Use correct spacing
Context: ...the internal metrics and performance of KubeElasti.
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/dev-test-monitoring.md
[grammar] ~1-~1: There might be a problem here.
Context: # Test Monitoring bash # First, add the prometheus-community Helm repository. helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update # Install the kube-prometheus-stack chart. This chart includes Prometheus and Grafana. kubectl create namespace prometheus helm install prometheus-stack prometheus-community/kube-prometheus-stack -n prometheus # Port-forward to access the dashboard kubectl port-forward -n prometheus services/prometheus-stack-grafana 3000:80 # Get the admin user. kubectl get secret --namespace prometheus prometheus-stack-grafana -o jsonpath="{.data.admin-user}" | base64 --decode ; echo # Get the admin password. kubectl get secret --namespace prometheus prometheus-stack-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
Post this, you can use [`./playground/i...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~23-~23: Use correct spacing
Context: ...ashboard.yaml) to import the KubeElasti dashboard.
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/message.md
[grammar] ~1-~1: Use correct spacing
Context: graph TB %% ─────────────────────────── %...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~8-~8: Use correct spacing
Context: ...ph INGRESS [" "] Gateway[Gateway] end subgraph CONTROL_PLANE ["KubeElasti"] ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~15-~15: There might be a problem here.
Context: ...ator[Operator] Resolver[Resolver] end LoadGen[Internal-load-generator-pod] subgraph ELASTI_...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~21-~21: Use correct spacing
Context: ...s"] ESCRD((ElastiService
CRD)) end TargetSVC{Target-SVC} TargetSVC_PVT{Target‑SVC
Private} subgraph ENDPOINT ["Endpoints"] SVC...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~33-~33: Use correct spacing
Context: ...et-SVC-to-resolver
endpointSlice]) end %% ─────────────────────────── %% TR...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~35-~35:
Context: ...resolver
endpointSlice]) end %% ─────────────────────────── %% TRAFFIC FLOWS (solid) %% ───────────...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~36-~36: There might be a problem here.
Context: ...─────────────────── %% TRAFFIC FLOWS (solid) %% ─────────────────────────── Gateway -->|1: traffic| TargetSVC LoadGen -->...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~38-~38:
Context: ...───────────── Gateway -->|1: traffic| TargetSVC LoadGen -->|1: traffic| TargetSVC %% Serve‑m...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~39-~39: Use correct spacing
Context: ...ic| TargetSVC LoadGen -->|1: traffic| TargetSVC %% Serve‑mode path TargetSVC -->|2: S...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~46-~46:
Context: ..._EPS SVC_EPS --> Pod %% Proxy‑mode path TargetSVC -->|7: Proxy Mode| ResEPS ResEPS -->|...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~47-~47:
Context: ...ode path TargetSVC -->|7: Proxy Mode| ResEPS ResEPS -->|9: Req| Resolver Resolver -->|11:...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~48-~48:
Context: ...Proxy Mode| ResEPS ResEPS -->|9: Req| Resolver Resolver -->|11: Send Proxy Request
once pod ...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~49-~49:
Context: ...: Send Proxy Request
once pod ready| TargetSVC_PVT TargetSVC_PVT -->|12: Send and Receive Req| Pod %%...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~50-~50: Use correct spacing
Context: ...etSVC_PVT -->|12: Send and Receive Req| Pod %% ─────────────────────────── %% OP...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~52-~52:
Context: ...-->|12: Send and Receive Req| Pod %% ─────────────────────────── %% OPERATOR / WATCH (dashed) %% ───────...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~53-~53: There might be a problem here.
Context: ...──────────────── %% OPERATOR / WATCH (dashed) %% ─────────────────────────── ESCRD -. "0: Watch CRD" .-> Operator Operat...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~55-~55: There might be a mistake here.
Context: ...────────────────── ESCRD -. "0: Watch CRD" .-> Operator Operator -. "0: Watch S...
(QB_NEW_EN_OTHER)
[grammar] ~55-~55:
Context: ...───────── ESCRD -. "0: Watch CRD" .-> Operator Operator -. "0: Watch ScaleTargetRef" .-> Operat...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~56-~56:
Context: ...erator -. "0: Watch ScaleTargetRef" .-> Operator Operator -. "4: When target scaled to 0" .-> Ope...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~57-~57: There might be a mistake here.
Context: ...or Operator -. "4: When target scaled to 0" .-> Operator Operator -. "4: Create ...
(QB_NEW_EN_OTHER)
[grammar] ~57-~57:
Context: ...tor -. "4: When target scaled to 0" .-> Operator Operator -. "4: Create + add resolver POD IPs" ....
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~58-~58: There might be a mistake here.
Context: ...erator -. "4: Create + add resolver POD IPs" .-> ResEPS Operator -. "5: Watch Res...
(QB_NEW_EN_OTHER)
[grammar] ~58-~58: Use correct spacing
Context: ... "4: Create + add resolver POD IPs" .-> ResEPS Operator -. "5: Watch Resolver → endpointslice" ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~59-~59: Use correct spacing
Context: ..."5: Watch Resolver → endpointslice" .-> Resolver Operator -. "6: Create PVT SVC" .-> TargetSVC_PV...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~60-~60:
Context: ...r Operator -. "6: Create PVT SVC" .-> TargetSVC_PVT Operator -. "7: Watch public SVC → private SVC" ...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~61-~61: There might be a mistake here.
Context: ...rator -. "7: Watch public SVC → private SVC" .-> TargetSVC Operator -. "12: Send ...
(QB_NEW_EN_OTHER)
[grammar] ~61-~61: Use correct spacing
Context: ..."7: Watch public SVC → private SVC" .-> TargetSVC Operator -. "12: Send Traffic Info" .-> Resolver...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~62-~62:
Context: ...Operator -. "12: Send Traffic Info" .-> Resolver Resolver -. "13: Scale ScaleTargetRef
and re...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~63-~63: There might be a problem here.
Context: ...er -. "13: Scale ScaleTargetRef
and reverse 4,5" .-> Operator Pod -. "3: Pod scaled ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~63-~63: There might be a problem here.
Context: ...ScaleTargetRef
and reverse 4,5" .-> Operator Pod -. "3: Pod scaled to 0 via HPA/KEDA" .-> O...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~65-~65: There might be a mistake here.
Context: ...rator Pod -. "3: Pod scaled to 0 via HPA/KEDA" .-> Operator
(QB_NEW_EN_OTHER)
docs/src/dev-test-e2e.md
[grammar] ~1-~1: There might be a problem here.
Context: # End-to-End Testing Use the KUTTL framework to execute Elas...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~4-~4: Use correct spacing
Context: ...s end-to-end tests in a real Kubernetes environment: bash cd ./tests/e2e make setup # Sets up environment make test # Runs tests
For detailed information about the E2E ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~12-~12: Use correct spacing
Context: ...ation about the E2E test framework, see tests/e2e/README.md. ## Testing Flow The E2E testing pipeline ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~14-~14: Use correct spacing
Context: .../main/tests/e2e/README.md). ## Testing Flow The E2E testing pipeline follows these ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~16-~16: Use correct spacing
Context: ...testing pipeline follows these detailed steps: 1. Registry Setup 1. A Docker regist...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~19-~19: There might be a mistake here.
Context: ...p** 1. A Docker registry is started on port 5002
2. This registry will store the locally bui...
(QB_NEW_EN_OTHER)
[grammar] ~20-~20: There might be a mistake here.
Context: ...the locally built operator and resolver images 2. Kind Cluster Creation 1. A Kind c...
(QB_NEW_EN_OTHER)
[grammar] ~24-~24: There might be a mistake here.
Context: ...ration in kind-config.yaml
2. The registry is connected to the Kind network to all...
(QB_NEW_EN_OTHER)
[grammar] ~24-~24: There might be a mistake here.
Context: ...cted to the Kind network to allow image pulling 3. Image Building and Publishing 1. ...
(QB_NEW_EN_OTHER)
[grammar] ~28-~28: There might be a mistake here.
Context: ...ator and resolver images are built from source 2. Images are tagged and pushed to ...
(QB_NEW_EN_OTHER)
[grammar] ~29-~29: There might be a mistake here.
Context: ...ages are tagged and pushed to the local registry 4. Dependency Installation 1. **Isti...
(QB_NEW_EN_OTHER)
[grammar] ~32-~32: There might be a mistake here.
Context: ...he ingress gateway for routing external traffic 2. Prometheus: Installed for me...
(QB_NEW_EN_OTHER)
[grammar] ~33-~33: There might be a mistake here.
Context: ...s collection (without Grafana to reduce overhead) 3. KEDA: Installed for event-dr...
(QB_NEW_EN_OTHER)
[grammar] ~34-~34: There might be a mistake here.
Context: ... Installed for event-driven autoscaling capabilities 4. Elasti: The operator and CRD...
(QB_NEW_EN_OTHER)
[grammar] ~35-~35: There might be a mistake here.
Context: ...e operator and CRDs are installed using Helm 5. Test Initialization 1. Persistent...
(QB_NEW_EN_OTHER)
[grammar] ~38-~38: There might be a mistake here.
Context: ...s are applied via the kuttl-test.yaml
config 2. These resources are shared across all test ca...
(QB_NEW_EN_OTHER)
[grammar] ~39-~39: There might be a mistake here.
Context: ...se resources are shared across all test cases 6. Test Execution 1. Tests are execu...
(QB_NEW_EN_OTHER)
[grammar] ~42-~42: There might be a mistake here.
Context: ...cuted in order based on their numerical prefix 2. Each folder in the tests/
dire...
(QB_NEW_EN_OTHER)
[grammar] ~43-~43: There might be a mistake here.
Context: ...s/` directory represents an independent test 3. Each file within a test folder r...
(QB_NEW_EN_OTHER)
[grammar] ~44-~44: There might be a mistake here.
Context: ... a test folder represents steps of that test 4. Tests can run in parallel if ena...
(QB_NEW_EN_OTHER)
[grammar] ~45-~45: There might be a mistake here.
Context: ...with no cross-dependencies between test folders 7. Test Cleanup 1. Resources are cle...
(QB_NEW_EN_OTHER)
[grammar] ~48-~48: There might be a mistake here.
Context: ...esources are cleaned up after each test completes mermaid graph TD A[Start Registry:5002] --> B[Create Kind Cluster] B --> C[Build & Publish Images to Registry] C --> D[Install Dependencies] subgraph "Dependencies Setup" D --> D1[Install Istio Ingress] D --> D2[Install Prometheus] D --> D3[Install KEDA] D --> D4[Install Elasti] end D1 & D2 & D3 & D4 --> E[Apply KUTTL Config Resources] E --> F[Run KUTTL Tests] F --> G1[Test 00-Scenario-x] F --> Ga1[Test 01-Scenario-y] F --> Gb1[Test 02-Scenario-z] subgraph "Parallel Test Execution" G1 --> G2[01-Step] G2 --> G3[02-Step] G3 --> G4[03-Step] end subgraph "Parallel Test Execution" Ga1 --> Ga2[01-Step] Ga2 --> Ga3[02-Step] Ga3 --> Ga4[03-Step] end subgraph "Parallel Test Execution" Gb1 --> Gb2[01-Step] Gb2 --> Gb3[02-Step] Gb3 --> Gb4[03-Step] end G4 --> H[Cleanup Resources] Ga4 --> H Gb4 --> H
## Test configuration The test configurat...
(QB_NEW_EN_OTHER)
[grammar] ~93-~93: Use correct spacing
Context: ... Ga4 --> H Gb4 --> H ``` ## Test configuration The test configuration is defined in th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~96-~96: Use correct spacing
Context: ...ault. This is the timeout for each test step. ## Testing Environment The testing enviro...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~98-~98: Use correct spacing
Context: ...timeout for each test step. ## Testing Environment The testing environment consists of: `...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~100-~100: Use correct spacing
Context: ...nment The testing environment consists of: mermaid flowchart TB subgraph "Kind Cluster" subgraph "elasti namespace" OP[Elasti Operator] CRD[Elasti CRDs] end subgraph "monitoring namespace" PROM[Prometheus Server] end subgraph "default namespace" D[Test Deployment] ES[ElastiService CR] TF[Traffic Generator] end PROM -- metrics --> OP OP -- monitors --> ES ES -- controls --> D TF -- generates traffic --> D end
## Adding New Tests To add a new test sce...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~127-~127: Use correct spacing
Context: ...raffic --> D end ``` ## Adding New Tests To add a new test scenario: 1. Create ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~129-~129: Use correct spacing
Context: ... ## Adding New Tests To add a new test scenario: 1. Create a new directory in the `tests/e2...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~132-~132: Use commas correctly
Context: ... 2. Define test steps with commands and assertions, in the directory using `-<step-n...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~132-~132: Use articles correctly
Context: ...mmands and assertions, in the directory using <number>-<step-name>.yaml
format. 3. ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~133-~133: There might be a mistake here.
Context: .... Add any supporting files or manifests needed 4. To run the test individually, use: ```b...
(QB_NEW_EN_OTHER)
[grammar] ~134-~134: Use correct spacing
Context: ...needed 4. To run the test individually, use: bash make test T=<number>-<test-name>
## KUTTL Test Files Structure KUTTL tests...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~139-~139: Use correct spacing
Context: ... ``` ## KUTTL Test Files Structure KUTTL tests follow a specific structure...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~141-~141: Use correct spacing
Context: ...tructure KUTTL tests follow a specific structure: bash tests/ └── 00-elasti-setup/ # Test case (folder named with numbered prefix) ├── 00-apply.yaml # First step - apply resources, created the required scenario. ├── 01-wait.yaml # Second step - wait for resources to be ready. └── 02-assert.yaml # Third step - assertion
- **Each directory represents an individual...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~151-~151: There might be a mistake here.
Context: ...Each directory represents an individual test** (This number doesn't determine order,...
(QB_NEW_EN_OTHER)
[grammar] ~151-~151: There might be a mistake here.
Context: ...l test** (This number doesn't determine order, that works only for steps inside the di...
(QB_NEW_EN_OTHER)
[grammar] ~151-~151: There might be a mistake here.
Context: ...r, that works only for steps inside the directory) - Each file within a test directory **...
(QB_NEW_EN_OTHER)
[grammar] ~152-~152: There might be a mistake here.
Context: ...t directory represents a step in that test - Steps follow naming convention with...
(QB_NEW_EN_OTHER)
[grammar] ~153-~153: Make sure to use plural and singular nouns correctly
Context: ...* - Steps follow naming convention with prefix 00-, 01-, etc. for execution ordering ...
(QB_NEW_EN_OTHER_ERROR_IDS_10)
[grammar] ~153-~153: There might be a mistake here.
Context: ...ith prefix 00-, 01-, etc. for execution ordering - For example, 00-assert.yaml
is ...
(QB_NEW_EN_OTHER)
[grammar] ~155-~155: Use articles correctly
Context: ...n. - Same doesn't apply for folders in tests/e2e/tests/
directory. We still ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~155-~155: Use correct spacing
Context: ...he same naming for them just to keep it consistent. ### Run Single Test ```bash make test T=00...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~157-~157: Use correct spacing
Context: ... to keep it consistent. ### Run Single Test bash make test T=00-elasti-setup
### Example Test Structure ```yaml # Test ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~163-~163: Use correct spacing
Context: ...T=00-elasti-setup ### Example Test Structure
yaml # Test step to assert elasti operator, resolver and target deployment are running, and if elasti service is in serve mode. apiVersion: apps/v1 kind: Deployment metadata: name: elasti-operator-controller-manager namespace: elasti status: readyReplicas: 1 --- apiVersion: apps/v1 kind: Deployment metadata: name: elasti-resolver namespace: elasti status: readyReplicas: 1 --- apiVersion: apps/v1 kind: Deployment metadata: name: target-deployment namespace: default status: readyReplicas: 1 --- apiVersion: elasti.truefoundry.com/v1alpha1 kind: ElastiService metadata: name: target-elastiservice namespace: default status: mode: serve ``` !!! tip Refer to [Kuttle Docs](htt...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~200-~200: There might be a mistake here.
Context: ... default status: mode: serve ``` !!! tip Refer to [Kuttle Docs](https://kuttl.dev...
(QB_NEW_EN_OTHER)
[grammar] ~201-~201: Use correct spacing
Context: ...ocs/testing/steps.html#format) for more information. ## Tips for Writing KUTTL Tests 1. **Nami...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~203-~203: There might be a problem here.
Context: ...information. ## Tips for Writing KUTTL Tests 1. Naming Convention: Use numerical prefixes wi...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~206-~206: There might be a mistake here.
Context: ...ch test folder should be independent of others 3. Use Timeouts Wisely: Set appropr...
(QB_NEW_EN_OTHER)
[grammar] ~207-~207: There might be a mistake here.
Context: ...e timeouts for operations that may take time 4. Resource Sharing: Put shared res...
(QB_NEW_EN_OTHER)
[grammar] ~208-~208: Use articles correctly
Context: ...esource Sharing**: Put shared resources in kuttl-test.yaml
commands section 5. *...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~208-~208: There might be a mistake here.
Context: ...resources in kuttl-test.yaml
commands section 5. Debugging: Use `kubectl kuttl te...
(QB_NEW_EN_OTHER)
[grammar] ~209-~209: Use a period to end declarative sentences
Context: ...--debug` for verbose output during test development
(QB_NEW_EN_OTHER_ERROR_IDS_25)
docs/src/dev-env.md
[grammar] ~1-~1: Use correct spacing
Context: # Dev Environment Setting up your development environment...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use correct spacing
Context: ... the project. Follow these steps to get started: ## 1. Get required tools Ensure you have ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: There might be a mistake here.
Context: ...eps to get started: ## 1. Get required tools Ensure you have the following tools ins...
(QB_NEW_EN_OTHER)
[grammar] ~7-~7: Use correct spacing
Context: ...ls Ensure you have the following tools installed: - Go: The programming language used for...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~11-~11: There might be a mistake here.
Context: ...ttps://www.docker.com/get-started). - kubectl:: Command-line tool for interacting with...
(QB_NEW_EN_OTHER)
[grammar] ~15-~15: There might be a mistake here.
Context: ... Helps in working with the project. - Istio: Required to test the project with istio...
(QB_NEW_EN_OTHER)
[grammar] ~15-~15: There might be a mistake here.
Context: ...io:** Required to test the project with istio. Install from [istio.io](https://istio.i...
(QB_NEW_EN_OTHER)
[grammar] ~15-~15: There might be a mistake here.
Context: ...t the project with istio. Install from istio.io - k6: Required to load test the project....
(QB_NEW_EN_OTHER)
[grammar] ~16-~16: There might be a mistake here.
Context: ... to load test the project. Install from k6.io ## 2. Clone the Repos...
(QB_NEW_EN_OTHER)
[grammar] ~18-~18: Use correct spacing
Context: ...k6.io](https://k6.io/) ## 2. Clone the Repository Clone the KubeElasti repository from Gi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~20-~20: Use correct spacing
Context: ...ti repository from GitHub to your local machine: git clone https://github.com/truefoundry/KubeElasti.git cd KubeElasti
!!! tip "Make sure you checkout the doc...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~27-~27: Use colons correctly
Context: .../KubeElasti.git cd KubeElasti ``` !!! tip "Make sure you checkout the documentati...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~27-~27: Use the right verb tense
Context: ... KubeElasti ``` !!! tip "Make sure you checkout the documentation and architecture befo...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~27-~27: Use correct spacing
Context: ...ion and architecture before making your changes." ## 3. Repository Structure Understanding ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~29-~29: Use correct spacing
Context: ...making your changes." ## 3. Repository Structure Understanding the repository structure ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~31-~31: Use correct spacing
Context: ...of the key directories and files in the repository: . ├── LICENSE ├── Makefile ├── README.md ├── charts ├── docs ├── go.work ├── go.work.sum ├── kustomization.yaml ├── operator ├── pkg ├── playground ├── resolver └── test
2 Main Modules: - ./operator
: Co...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~50-~50: There might be a problem here.
Context: ...round ├── resolver └── test ``` 2 Main Modules: - ./operator
: Contains the code for Kubernetes operat...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~52-~52: Use articles correctly
Context: ..../operator
: Contains the code for Kubernetes operator, created using kubebuilder. ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~52-~52: There might be a problem here.
Context: ... for Kubernetes operator, created using kubebuilder. . ├── Dockerfile ├── Makefile ├── api ├── cmd ├── config ├── go.mod ├── go.sum ├── internal └── test
- ./api
: Contains the folder named after the api...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~65-~65: Use commas correctly
Context: ...:** Contains the folder named after the apiVersion, and has custom resource type description...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~67-~67: There might be a mistake here.
Context: ...Kubernetes manifest files. - ./cmd
: Main files for the tool. - **`./inter...
(QB_NEW_EN_OTHER)
[grammar] ~68-~68: There might be a mistake here.
Context: ...n files for the tool. - ./internal
: Internal packages of the program. - *...
(QB_NEW_EN_OTHER)
[grammar] ~69-~69: There might be a mistake here.
Context: ...kages of the program. - ./Makefile
: Helps with working with the program. Us...
(QB_NEW_EN_OTHER)
[grammar] ~70-~70: There might be a mistake here.
Context: ...the available commands. - ./resolver
: Contains the code for resolver. - Fil...
(QB_NEW_EN_OTHER)
[grammar] ~71-~71: Use correct spacing
Context: ...e structure of it is similar to that of Operator. Other Directories: - **./playground
:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~73-~73: There might be a problem here.
Context: ... is similar to that of Operator. Other Directories: - ./playground
: Code to setup a playground to try and t...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~75-~75: Use the right verb tense
Context: ...ctories: - ./playground
: Code to setup a playground to try and test KubeElasti...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~76-~76: There might be a mistake here.
Context: ...to try and test KubeElasti. - ./test
: Load testing scripts. - ./pkg
: Co...
(QB_NEW_EN_OTHER)
[grammar] ~77-~77: There might be a mistake here.
Context: ...st:** Load testing scripts. - **
./pkg`:** Common packages, shared via Operator an...
(QB_NEW_EN_OTHER)
[grammar] ~78-~78: There might be a mistake here.
Context: ...via Operator and Resolve. - ./charts
: Helm chart template. - ./docs
: De...
(QB_NEW_EN_OTHER)
[grammar] ~79-~79: There might be a mistake here.
Context: ...ts:** Helm chart template. - **
./docs`:** Detailed documentation on the HLD, LLD ...
(QB_NEW_EN_OTHER)
[grammar] ~79-~79: Add a comma
Context: ...`:** Detailed documentation on the HLD, LLD and Architecture of KubeElasti.
(QB_NEW_EN_OTHER_ERROR_IDS_22)
docs/src/configure-elastiservice.md
[grammar] ~1-~1: Use correct spacing
Context: # Configure ElastiService To enable scale to 0 on any deployment,...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use the right verb tense
Context: # Configure ElastiService To enable scale to 0 on any deployment, we will need to...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~3-~3: There might be a problem here.
Context: ... ElastiService custom resource for that deployment. A ElastiService custom resource has the followin...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~5-~5: Use correct spacing
Context: ...rvice custom resource has the following structure: yaml title="elasti-service.yaml" linenums="1" apiVersion: elasti.truefoundry.com/v1alpha1 kind: ElastiService metadata: name: <service-name> # (1) namespace: <service-namespace> # (2) spec: minTargetReplicas: <min-target-replicas> # (3) service: <service-name> cooldownPeriod: <cooldown-period> # (4) scaleTargetRef: apiVersion: <apiVersion> # (5) kind: <kind> # (6) name: <deployment-or-rollout-name> # (7) triggers: - type: <trigger-type> # (8) metadata: query: <query> # (9) serverAddress: <server-address> # (10) threshold: <threshold> # (11) autoscaler: name: <autoscaler-object-name> type: <autoscaler-type>
1. Replace it with the service you want ma...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[style] ~34-~34: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...t with the namespace of the service. 3. Replace it with the min replicas to bring up wh...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~34-~34: Make sure you are using the right part of speech
Context: ... of the service. 3. Replace it with the min replicas to bring up when first request...
(QB_NEW_EN_OTHER_ERROR_IDS_21)
[grammar] ~34-~34: Use articles correctly
Context: ... with the min replicas to bring up when first request arrives. Minimum: 1 4. Replace ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~35-~35: Use the right verb tense
Context: ...ait after scaling up before considering scale down. Default: 900 seconds (15 minutes)...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~36-~36: Use hyphens correctly
Context: ...roj.io/v1alpha1in case you are using argo-rollouts. 6. Kind should be either be
...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~39-~39: There might be a problem here.
Context: ...y, KubeElasti supports only one trigger type - prometheus
. 9. Replace it with the trigger query...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~44-~44: Use correct spacing
Context: ...he autoscaler type. In this case, it is keda
. The key fields to be specified in the s...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~46-~46: There might be a mistake here.
Context: ... key fields to be specified in the spec are: - <service-name>
: Replace it with the service you want ...
(QB_NEW_EN_OTHER)
[grammar] ~50-~50: Use articles correctly
Context: ...plicas>: Min replicas to bring up when first request arrives. - Minimum: 1 -
<s...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~51-~51: Use colons correctly
Context: ...n first request arrives. - Minimum: 1 - <scaleTargetRef>
: Reference to the scale target similar to the one ...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~55-~55: Use articles correctly
Context: ...loyment-or-rollout-name>`: Replace with name of the rollout or the deployment for th...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~55-~55: Use articles correctly
Context: ...e scaled up to min-target-replicas when first request comes - cooldownPeriod
: Minim...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~55-~55: Use correct spacing
Context: ... min-target-replicas when first request comes - cooldownPeriod
: Minimum time (in seconds) to wait after...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~56-~56: Use the right verb tense
Context: ...ait after scaling up before considering scale down. - Default: 900 seconds (15 m...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~59-~59: Make sure to use plural and singular nouns correctly
Context: ...04800 seconds (7 days) - Minimum: 1 seconds (1 second) - triggers
: List of condit...
(QB_NEW_EN_OTHER_ERROR_IDS_10)
[grammar] ~63-~63: Use correct spacing
Context: ...oscaler-object-name>`: Name of the KEDA ScaledObject ## Configuration Explanation The section ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~66-~66: Use correct spacing
Context: ...he KEDA ScaledObject ## Configuration Explanation The section below explains how are the ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~70-~70: Use correct spacing
Context: ...i. ### Which service KubeElasti should manage This is defined using the `scaleTargetR...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~72-~72: Use correct spacing
Context: ...using the scaleTargetRef
field in the spec. - scaleTargetRef.kind
: should be either be deployments
or...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~75-~75: There might be a mistake here.
Context: ...ollouts). - scaleTargetRef.apiVersion
will be apps/v1
if you are using deploymen...
(QB_NEW_EN_OTHER)
[grammar] ~75-~75: Use hyphens correctly
Context: ...roj.io/v1alpha1in case you are using argo-rollouts. -
scaleTargetRef.name` shoul...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~76-~76: Use correct spacing
Context: ... argo-rollouts. - scaleTargetRef.name
should exactly match the name of the deploymen...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~76-~76: Use correct spacing
Context: ...tly match the name of the deployment or rollout. ### When to scale down the service to 0 Th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~78-~78: Use correct spacing
Context: ... ### When to scale down the service to 0 This is defined using the triggers
fi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~80-~80: There might be a problem here.
Context: ...y, KubeElasti supports only one trigger type - prometheus
. The metadata
section holds trigger...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~81-~81: There might be a problem here.
Context: ...etadata` section holds trigger-specific data: * query - the Prometheus query to evaluate * serverAddress...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~84-~84: There might be a mistake here.
Context: ... the Prometheus query to evaluate * serverAddress - address of the Prometheus server ...
(QB_NEW_EN_OTHER)
[grammar] ~85-~85: There might be a problem here.
Context: ... address of the Prometheus server * threshold - numeric threshold that triggers scale-down F...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~85-~85: Use correct spacing
Context: ...old** - numeric threshold that triggers scale-down For example, you can query the number o...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~88-~88: There might be a mistake here.
Context: ...onds, and if the value is below the threshold it scales the service to 0. An example...
(QB_NEW_EN_OTHER)
[grammar] ~88-~88: Use correct spacing
Context: ... the threshold it scales the service to 0. An example trigger is as follows: ```y...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~90-~90: Use correct spacing
Context: ...service to 0. An example trigger is as follows: yaml triggers: - type: prometheus metadata: query: sum(rate(nginx_ingress_controller_nginx_process_requests_total[1m])) or vector(0) serverAddress: http://kube-prometheus-stack-prometheus.monitoring.svc.cluster.local:9090 threshold: 0.5
Once the service is scaled down to 0, w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~101-~101: There might be a mistake here.
Context: ...ll scale up the service again since the min replicas is 1. Hence, KubeElasti needs ...
(QB_NEW_EN_OTHER)
[grammar] ~101-~101: Use correct spacing
Context: ...only supported autoscaler type is keda. yaml autoscaler: name: <autoscaler-object-name> type: keda
### When to scale up the service to 1 As s...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~109-~109: Use correct spacing
Context: ...`` ### When to scale up the service to 1 As soon as the service is scaled down t...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~111-~111: Use articles correctly
Context: ...me before the pod scaled up are held in memory of the elasti-resolver and are processe...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~111-~111: Use correct spacing
Context: ...olver and are processed once the pod is up. We can configure the cooldownPeriod
t...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~113-~113: Use the right verb tense
Context: ...ait after scaling up before considering scale down.
(QB_NEW_EN_OTHER_ERROR_IDS_13)
docs/src/introduction.md
[grammar] ~1-~1: There might be a problem here.
Context: # Introduction KubeElasti(Sometimes referred to as just "Elasti") is a Kube...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~3-~3: Add a comma
Context: ...ic arrives. Most Kubernetes autoscaling solutions like HPA or Keda can scale from 1 to n ...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~3-~3: Use comma(s) to set off direct address
Context: ...netes autoscaling solutions like HPA or Keda can scale from 1 to n replicas based on...
(QB_NEW_EN_OTHER_ERROR_IDS_18)
[grammar] ~3-~3: Add a comma
Context: ...aling after 1 replica is handled by the autoscaler like HPA or Keda. !!! Info The nam...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~3-~3: Use correct spacing
Context: ...s handled by the autoscaler like HPA or Keda. !!! Info The name Elasti comes from...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~6-~6: There might be a problem here.
Context: ...! Info The name Elasti comes from a superhero "Elasti-Girl" from DC Comics. Her superpower is to e...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~6-~6: There might be a problem here.
Context: ...ile "Elasti" highlights elastic scaling super-powers. KubeElasti uses a proxy mechanism that ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~8-~8: Use correct spacing
Context: ...e processed directly by the pods of the service. ## How It Works KubeElasti continuously m...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~10-~10: Use correct spacing
Context: ... by the pods of the service. ## How It Works KubeElasti continuously monitors an Ela...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~12-~12: Use correct spacing
Context: ...er a service should be active or scaled down. - Scaling Down: When all trigge...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~15-~15: Use correct spacing
Context: ...s incoming requests instead of dropping them. - Traffic Queueing in Proxy Mode: I...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~18-~18: Use correct spacing
Context: ...even when the service is scaled down to 0. - Scaling Up: If any trigger si...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~21-~21: Use correct spacing
Context: ... online, KubeElasti switches to Serve Mode. - Serve Mode: In Serve Mode, the ac...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~24-~24: Use correct spacing
Context: ...g a seamless return to full operational capacity. This allows KubeElasti to optimize reso...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~26-~26: Use correct spacing
Context: ...pt service availability when conditions change. mermaid --- title: Lifecycle modes of KubeElasti (Proxy, Serve) displayMode: compact config: layout: elk look: classic theme: dark --- flowchart TB %% Proxy Mode subgraph Proxy_Mode["Proxy Mode | Pods = 0"] direction TB Service1[Service] Proxy[Elasti Proxy] Pod1[Pod] Service1 -->|Traffic| Proxy Proxy -->|1: Queue Req if Pod = 0| Proxy Proxy -->|2: Scale| Pod1 Proxy -->|3: Send Req| Pod1 end %% Serve Mode subgraph Serve_Mode["Serve Mode | Pods ≥ 1"] direction TB Service2[Service] Pod2[Pod] Service2 -->|1: Req Sent| Pod2 end
## Key Features - **Seamless Integration:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~66-~66: Use correct spacing
Context: ... Req Sent| Pod2 end ``` ## Key Features - Seamless Integration: KubeElasti inte...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[typographical] ~68-~68: To join two clauses or set off examples, consider using an em dash.
Context: ...ortlessly with your existing Kubernetes setup - whether you are using HPA or Keda. It ta...
(QB_NEW_EN_DASH_RULE_EM)
[grammar] ~68-~68: Use correct spacing
Context: ...w steps to enable scale to zero for any service. - Deployment and Argo Rollouts Support:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~70-~70: Use correct spacing
Context: ...ing it versatile for various deployment scenarios. - Prometheus Metrics Export: KubeElasti...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~72-~72: Use correct spacing
Context: ...ashboard into Grafana for comprehensive visualization. - Generic Service Support: KubeElasti w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~74-~74: There might be a problem here.
Context: ... service mesh solution can be used with KubeElasti. ## Limitations - Only HTTP is supported: KubeElasti cu...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~78-~78: There might be a mistake here.
Context: ...e will support more protocols like TCP, UDP etc. - **Only Deployment and Argo Rollo...
(QB_NEW_EN_OTHER)
[grammar] ~80-~80: There might be a mistake here.
Context: ...The only trigger currently supported is Prometheus Please checkout the comparison [here](c...
(QB_NEW_EN_OTHER)
[grammar] ~82-~82: Use the right verb tense
Context: ...rrently supported is Prometheus Please checkout the comparison here t...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
docs/src/integration-keda.md
[grammar] ~7-~7: Use colons correctly
Context: ...ons with KEDA --- # Integration with KEDA KubeElasti takes care of scaling up and...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[style] ~8-~8: Consider using a different adjective in this context to strengthen your wording.
Context: ...e when there is some traffic. KEDA is a good candidate for performing the scaling lo...
(GOOD_ALTERNATIVE)
[grammar] ~8-~8: Use correct spacing
Context: ...minReplicas to maxReplicas based on its triggers. Here we will see how to integrate KubeE...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~10-~10: Use correct spacing
Context: ...i with KEDA to build a complete scaling solution. ## Prerequisites - Make sure you have gone...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~14-~14: Use hyphens correctly
Context: ...is integration. - KEDA installed in the cluster - [KEDA Installation](https://keda.sh/docs/...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~14-~14: Use correct spacing
Context: ...- KEDA installed in the cluster - KEDA Installation ## Steps ### 1. Create a keda scaler for t...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~17-~17: There might be a mistake here.
Context: ...eps ### 1. Create a keda scaler for the service Let's create a keda scaler for the http...
(QB_NEW_EN_OTHER)
[grammar] ~19-~19: Use correct spacing
Context: ...'s create a keda scaler for the httpbin service. shell kubectl apply -f ./playground/config/ demo-application-keda.yaml
Note that the same prometheus query is ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~24-~24: Correctly pair commas and coordinating conjunctions
Context: ... started](getting-started.md) guide for ElastiService and the namespace is the same as the na...
(QB_NEW_EN_OTHER_ERROR_IDS_14)
[grammar] ~24-~24: Use correct spacing
Context: ...space that the ElastiService is created in. Refer to the [keda documentation](https...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~26-~26: Use correct spacing
Context: ...c/) for more details on configuring the ScaledObject. ### 2. Update ElastiService to work with th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~28-~28: Ensure spelling is correct
Context: ...guring the ScaledObject. ### 2. Update ElastiService to work with the keda scaler We will u...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~28-~28: There might be a mistake here.
Context: ...ate ElastiService to work with the keda scaler We will update the ElastiService to spe...
(QB_NEW_EN_OTHER)
[grammar] ~30-~30: Use correct spacing
Context: ...e following fields to the ElastiService object: yaml spec: autoscaler: name: httpbin-scaled-object type: keda
Patch the ElastiService object with the...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~38-~38: Use correct spacing
Context: ...the ElastiService object with the above changes. shell kubectl patch elastiservice httpbin-elasti -n elasti-demo -p '{"spec":{"autoscaler":{"name": "httpbin-scaled-object", "type": "keda"}}}' --type=merge
Now when KubeElasti scales down the ser...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~44-~44: Use correct spacing
Context: ...ales up the service, it will resume the ScaledObject. With these changes, KubeElasti can reli...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~46-~46: There might be a mistake here.
Context: ...wn the service to zero when there is no traffic while keda can handle the scaling logic...
(QB_NEW_EN_OTHER)
[grammar] ~46-~46: There might be a problem here.
Context: ...rom minReplicas to maxReplicas based on it's triggers.
(QB_NEW_EN_MERGED_MATCH)
docs/src/dev-playground.md
[grammar] ~1-~1: Use correct spacing
Context: ## 1. Local Cluster If you don't already have a local Kuber...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Add a comma
Context: ...ter, you can set one up using Minikube, Kind or Docker-Desktop: === "Kind" ```...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~3-~3: Use hyphens correctly
Context: ... can set one up using Minikube, Kind or Docker-Desktop: === "Kind" ``` bash kind crea...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~5-~5: Use correct spacing
Context: ... Minikube, Kind or Docker-Desktop: === "Kind" bash kind create cluster
=== "Minikube" ``` bash miniku...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~11-~11: Use correct spacing
Context: ...sh kind create cluster === "Minikube"
bash minikube start ``` === "Docker-Desktop" Enable it in ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~17-~17: Use hyphens correctly
Context: ...`` bash minikube start ``` === "Docker-Desktop" Enable it in Docker-Desktop ##...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~24-~24: Use correct spacing
Context: ...-Desktop ## 2. Start a Local Docker Registry Run a local Docker registry container, ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~26-~26: Use commas correctly
Context: ...r Registry Run a local Docker registry container, to push our images locally and access th...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~26-~26: Use correct spacing
Context: ...r images locally and access them in our cluster. docker run -d -p 5001:5000 --name registry registry:2
!!! tip "Add registry to Minikube and K...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~32-~32: There might be a mistake here.
Context: ...000 --name registry registry:2 ``` !!! tip "Add registry to Minikube and Kind" Y...
(QB_NEW_EN_OTHER)
[grammar] ~32-~32: There might be a mistake here.
Context: ... !!! tip "Add registry to Minikube and Kind" You will need to add this registry to M...
(QB_NEW_EN_OTHER)
[grammar] ~33-~33: Use hyphens correctly
Context: ...his registry to Minikube and Kind. With Docker-Desktop, it is automatically picked up if runnin...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~33-~33: There might be a problem here.
Context: ...s automatically picked up if running in same context. !!! tip "Note" In MacOS, 5000 is no...
(QB_NEW_EN_MERGED_MATCH)
[style] ~34-~34: Using many exclamation marks might seem excessive (in this case: 6 exclamation marks for a text that’s 2137 characters long)
Context: ... picked up if running in same context. !!! tip "Note" In MacOS, 5000 is not av...
(EN_EXCESSIVE_EXCLAMATION)
[grammar] ~35-~35: There might be a mistake here.
Context: ...ked up if running in same context. !!! tip "Note" In MacOS, 5000 is not availabl...
(QB_NEW_EN_OTHER)
[grammar] ~35-~35: There might be a problem here.
Context: ...running in same context. !!! tip "Note" In MacOS, 5000 is not available, so we use 5001 ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~36-~36: Use correct spacing
Context: ..., 5000 is not available, so we use 5001 instead. ## 3. [Optional] Install Ingress Controlle...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~39-~39: Use correct spacing
Context: ...ead. ## 3. [Optional] Install Ingress Controller === "NGINX" Install the NGINX In...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~41-~41: Use correct spacing
Context: ...tional] Install Ingress Controller === "NGINX" Install the NGINX Ingress Controller using Helm: shell helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update kubectl create namespace nginx helm install ingress-nginx ingress-nginx/ingress-nginx -n nginx
=== "Istio" ```shell # Down...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~51-~51:
Context: ...x/ingress-nginx -n nginx === "Istio"
shell # Download the latest Istio relea...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~53-~53: Use correct spacing
Context: ...elease from the official Istio website. curl -L https://istio.io/downloadIstio | sh ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~54-~54:
Context: ... -L https://istio.io/downloadIstio | sh - # Move it to home directory mv isti...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~55-~55: There might be a problem here.
Context: ...downloadIstio | sh - # Move it to home directory mv istio-x.xx.x ~/.istioctl export...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~56-~56: There might be a problem here.
Context: ...to home directory mv istio-x.xx.x ~/.istioctl export PATH=$HOME/.istioctl/bin:$PATH istioctl install --set profile=default -y # Label the namespace where you want to deploy your application to enable Istio sidecar Injection kubectl create namespace demo kubectl label namespace demo istio-injection=enabled # Create a gateway kubectl apply -f ./playground/config/gateway.yaml ``` ## 4. Deploy a demo service Run a demo ap...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~69-~69: There might be a mistake here.
Context: ...way.yaml ``` ## 4. Deploy a demo service Run a demo application in your cluster....
(QB_NEW_EN_OTHER)
[grammar] ~71-~71: Use correct spacing
Context: ...service Run a demo application in your cluster. bash kubectl create namespace demo kubectl apply -f ./playground/config/demo-application.yaml -n demo # Create a Virtual Service to expose the demo service if you are using istio kubectl apply -f ./playground/config/demo-virtualService.yaml -n demo
## 5. Build & Publish Resolver Go into th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~81-~81: Use correct spacing
Context: ...yaml -n demo ``` ## 5. Build & Publish Resolver Go into the resolver directory and run ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~83-~83: Use correct spacing
Context: ...directory and run the build and publish command. bash cd resolver make docker-build docker-push IMG=localhost:5001/elasti-resolver:v1alpha1
## 6. Build & Publish Operator Go into th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~90-~90: Use correct spacing
Context: ...ver:v1alpha1 ``` ## 6. Build & Publish Operator Go into the operator directory and run ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~92-~92: Use correct spacing
Context: ...directory and run the build and publish command. bash cd operator make docker-build docker-push IMG=localhost:5001/elasti-operator:v1alpha1
## 7. Deploy Locally Make sure you have c...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~99-~99: Use correct spacing
Context: ...sti-operator:v1alpha1 ``` ## 7. Deploy Locally Make sure you have configured the local...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~101-~101: Use correct spacing
Context: ...ollow below steps from the project home directory: bash kubectl create namespace elasti helm template elasti ./charts/elasti -n elasti -f ./playground/infra/elasti-demo-values.yaml | kubectl apply -f -
If you want to enable monitoring, pleas...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~108-~108: Use correct spacing
Context: ...e enableMonitoring
true in the values file. ## 8. Create ElastiService Resource Using...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~110-~110: There might be a problem here.
Context: ...toring` true in the values file. ## 8. Create ElastiService Resource Using the [ElastiService Defination](./...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~112-~112: There might be a mistake here.
Context: ...vice Resource Using the [ElastiService Defination](./configure-elastiservice.md#configure-elastiservic...
(QB_NEW_EN_OTHER)
[grammar] ~112-~112: Use articles correctly
Context: ...file for your service and apply it. For demo, we use the below manifest. ```bash kub...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~112-~112: Use correct spacing
Context: ...nd apply it. For demo, we use the below manifest. bash kubectl -n demo apply -f ./playground/config/demo-elastiService.yaml
## 9. Test the service ### 9.1 Create a w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~118-~118: There might be a mistake here.
Context: ...-elastiService.yaml ## 9. Test the service ### 9.1 Create a watch on the service
b...
(QB_NEW_EN_OTHER)
[grammar] ~120-~120: There might be a mistake here.
Context: ... service ### 9.1 Create a watch on the service bash kubectl -n demo get elastiservice httpbin -w
### 9.2 Scale down the service ```bash kub...
(QB_NEW_EN_OTHER)
[grammar] ~126-~126: Use correct spacing
Context: ... httpbin -w ### 9.2 Scale down the service
bash kubectl -n demo scale deployment httpbin --replicas=0 ### 9.3 Create a load on the service
ba...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~132-~132: There might be a mistake here.
Context: ...cas=0 ### 9.3 Create a load on the service
bash kubectl run -it --rm curl --image=alpine/curl -- http://httpbin.demo.svc.cluster.local/headers ``` You should see the target service pod g...
(QB_NEW_EN_OTHER)
[grammar] ~138-~138: Use articles correctly
Context: ...arget service pod getting scaled up and response from the new pod.
(QB_NEW_EN_OTHER_ERROR_IDS_11)
docs/src/architecture.md
[grammar] ~1-~1: Use correct spacing
Context: # KubeElasti Architecture KubeElasti comprises two main component...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~4-~4: Use correct spacing
Context: ...rises two main components: operator and resolver. - Controller/Operator: A Kubernetes con...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~6-~6: Use correct spacing
Context: ... resources and scales them to 0 or 1 as needed. - Resolver: A service that intercepts i...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~8-~8: Use correct spacing
Context: ...lasti-controller to scale up the target service. mermaid %% KubeElasti Architecture — Compact Layout flowchart TB %% ─── ZONES ─── subgraph Ingress Gateway[Gateway] end subgraph ControlPlane["KubeElasti"] Operator[Operator] Resolver[Resolver] end subgraph ElastiCRD["ElastiService CRD"] ESCRD((ElastiService<br>CRD)) end subgraph Endpoints EP([Endpoints]) EPS([EndpointSlices]) end LoadGen[[Load Generator]] TargetSVC{{Target‑SVC}} TargetSVC_PVT{{Target‑SVC<br>Private}} Pod[[target‑pod]] %% ─── Serve Mode ─── Gateway -->|1: traffic| TargetSVC LoadGen -->|1: traffic| TargetSVC TargetSVC -->|2: Serve Mode| EP --> EPS --> Pod %% ─── Proxy Mode ─── TargetSVC -->|7: Proxy Mode| EPS EPS -->|9: Req| Resolver Resolver -->|11: Proxy → Private SVC| TargetSVC_PVT -->|12: Deliver| Pod %% ─── Controller Logic ─── ESCRD -. "0: Watch CRD" .-> Operator Operator -. "0: Watch ScaleTargetRef" .-> Operator Operator -. "4: Target scaled to 0" .-> Operator Operator -. "4: Add resolver IPs" .-> EPS Operator -. "5: Watch resolver → slice" .-> Resolver Operator -. "6: Create private SVC" .-> TargetSVC_PVT Operator -. "7: Watch pub SVC → private" .-> TargetSVC Operator -. "12: Send traffic info" .-> Resolver Resolver -. "13: Scale up targetRef" .-> Operator Pod -. "3: Pod scaled to 0 (HPA/KEDA)" .-> Operator %% STYLES class Gateway,TargetSVC,TargetSVC_PVT,EP,EPS,Pod,LoadGen user class ESCRD required class Operator,Resolver control
## Operator Architecture ``` mermaid --- ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~69-~69: Use correct spacing
Context: ...ator,Resolver control ## Operator Architecture
mermaid --- title: Operator Architecture displayMode: compact config: layout: dagre look: classic theme: forest --- flowchart LR %% === API === subgraph "API Layer" CRD["ElastiService CRD
api/v1alpha1"]:::core GroupVersion["Group/Version
groupversion_info.go"]:::core end %% === CONTROLLER === subgraph "Controller Layer" direction TB Reconciler["Reconciler
elastiservice_controller.go"]:::core Lifecycle["Lifecycle Mgmt
opsCRD.go"]:::core Deploy["Deploy Mgmt
opsDeployment.go"]:::core SVCs["Service Mgmt
opsServices.go"]:::core EPSlices["EndpointSlice Mgmt
opsEndpointslices.go"]:::core Rollouts["Rollout Mgmt
opsRollout.go"]:::core Modes["Mode Switching
opsModes.go"]:::core Informers["Informer Interface
opsInformer.go"]:::core end CRD -->|watches| Reconciler GroupVersion --> Reconciler Reconciler -->|manages| Deploy & SVCs & EPSlices & Rollouts & Modes Reconciler -->|uses| Informers %% === RESOURCE MGMT === subgraph "Resource Management" CRDReg["CRD Registry
crddirectory/"]:::core Server["ElastiServer
elastiserver/"]:::http Prom["Prometheus Client
prom/"]:::metrics end Reconciler -->|updates| CRDReg Server -->|scale requests| Reconciler Prom -->|collects| Reconciler %% === INFRASTRUCTURE === subgraph "Infrastructure & Boot" Main["Entry Point
main.go"]:::core InfMgr["Informer Manager
informer/"]:::core end Main -->|initializes| InfMgr -->|manages| Informers %% === OBSERVABILITY === subgraph "Observability" Metrics["/metrics endpoint"]:::metrics end Reconciler -->|exposes| Metrics Prom -->|scrapes| Metrics %% === DATA FLOW === subgraph "Scaling Logic" ScaleLogic["ScaleTargetFromZero"]:::core end Server -->|trigger scale| ScaleLogic Reconciler -->|syncs state| ScaleLogic %% === EXTERNAL === subgraph "External Dependencies" K8s["Kubernetes API
client-go"]:::external Kustomize["Kustomize"]:::external Sentry["Sentry"]:::external end Reconciler -->|uses| K8s Main --> Kustomize & Sentry ## Resolver Architecture
mermaid flo...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~154-~154: Use correct spacing
Context: ...-> Kustomize & Sentry ## Resolver Architecture
mermaid flowchart LR %% ── USER & ENTRY ───────────────────── User(("Client")) --> RP["Proxy
:8012"] --> Main["Main
cmd/main.go"] --> IS["Metrics
:8013"] %% ── K8s RESOURCES ──────────────────── subgraph K8s["K8s"] Deploy["Deployment"] --> SVC["Service"] Deploy --> Mon["Monitoring
configs"] end Main --> Deploy %% ── CORE MODULES ───────────────────── subgraph Mods["Core Modules"] Handler["Handler"]:::core Hosts["Hosts"]:::core Thr["Throttle"]:::core Oper["Operator Comm"]:::core Obs["Observability"]:::core end Main -- uses --> Handler & Hosts & Thr & Oper & Obs %% Request flow (compact arrows) Handler --> Hosts Handler --> Thr Thr --> Handler Handler --> Obs Handler -.-> Sentry["Sentry"] %% Operator comm Handler -.-> Oper Oper -.-> OpSvc["Operator Svc"] %% External deps Thr -.-> K8sAPI["K8s API"] Obs -.-> Prom["Prometheus"] ## Flow Description
mermaid graph LR ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~198-~198: Use correct spacing
Context: ...-.-> Prom["Prometheus"] ## Flow Description
mermaid graph LR A["Steady State(regular traffic flow)"] --> B["No Traffic, scale service to 0"] B --> C["New Incoming Traffic, scale service to 1"] C --> A ``` When we enable KubeElasti on a service,...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~207-~207: Use correct spacing
Context: ...on a service, the service operates in 3 modes: 1. Steady State: The service is receivin...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~212-~212: There might be a problem here.
Context: ... and can be scaled up to the configured minTargetReplicas.
### Steady state flow of requests to service In th...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~216-~216: There might be a problem here.
Context: ...
### Steady state flow of requests to service In this mode, all requests are handled ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~218-~218: Use articles correctly
Context: ...solver** doesn't come into the picture. KubeElasti controller keeps polling prometheus wit...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~218-~218: Make sure you are using the right part of speech
Context: ...rometheus with the configured query and check the result with threshold value to see ...
(QB_NEW_EN_OTHER_ERROR_IDS_21)
[grammar] ~218-~218: Use articles correctly
Context: ...figured query and check the result with threshold value to see if the service can be scal...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~218-~218: Use correct spacing
Context: ...lue to see if the service can be scaled down. mermaid --- title: No incoming requests for the configured time period displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] C -->|Active| D[Pods] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -.->|Inactive| F E -->|Poll configured metric every 30 seconds to check if the service can be scaled to 0| S[Prometheus]
### Scale down to 0 when there are no reque...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~246-~246: There might be a mistake here.
Context: ... ### Scale down to 0 when there are no requests If the query from prometheus returns a ...
(QB_NEW_EN_OTHER)
[grammar] ~248-~248: Use the right verb tense
Context: ...ded to the KubeElasti resolver and then modified the Rollout/deployment to have 0 replic...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~248-~248: Use correct spacing
Context: ... Keda is configured with minReplicas as 1. mermaid --- title: No incoming requests for the configured time period displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -->|Active| F E -->|Scale replicas to 0| D C -.->|Inactive| D
### Scale up from 0 when the first request ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~275-~275: Use correct spacing
Context: ... Scale up from 0 when the first request arrives. Since the service is scaled down to 0, ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~277-~277: Know when to use “that” and “which”
Context: ...e pods once the pod is up. The requests which came to KubeElasti Resolver are retried...
(QB_NEW_EN_OTHER_ERROR_IDS_3)
[style] ~277-~277: Consider using the more formal “until”.
Context: ...came to KubeElasti Resolver are retried till 5 mins and the response is sent back to...
(TILL)
[grammar] ~277-~277: There might be a mistake here.
Context: ... KubeElasti Resolver are retried till 5 mins and the response is sent back to the cl...
(QB_NEW_EN_OTHER)
[grammar] ~277-~277: There might be a mistake here.
Context: ...he client. If the pod takes more than 5 mins to come up, the request is dropped. ``...
(QB_NEW_EN_OTHER)
[grammar] ~277-~277: Use correct spacing
Context: ... than 5 mins to come up, the request is dropped. mermaid --- title: First request to pod arrives displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] C -.->|Inactive| F[0 Pods] subgraph Elasti Components D[Elasti Controller] E[Elasti Resolver] end C -->|Active| E E -->|Hold request in memory and forward once ready| F D -->|Scale replicas up from 0| F
mermaid --- title: State after the first replica is up displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User] -->|Request| B[Ingress] B --> C[Service] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -->|Active| G[Pods] E -->|Check metric if workload can be scaled to 0| H[Prometheus] C -.- |Inactive| F
(QB_NEW_EN_OTHER_ERROR_IDS_5)
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md
7-7: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
8-8: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
8-8: Bare URL used
(MD034, no-bare-urls)
9-9: Bare URL used
(MD034, no-bare-urls)
10-10: Bare URL used
(MD034, no-bare-urls)
11-11: Bare URL used
(MD034, no-bare-urls)
12-12: Bare URL used
(MD034, no-bare-urls)
13-13: Bare URL used
(MD034, no-bare-urls)
14-14: Bare URL used
(MD034, no-bare-urls)
15-15: Bare URL used
(MD034, no-bare-urls)
21-21: Unordered list style
Expected: asterisk; Actual: dash
(MD004, ul-style)
22-22: Unordered list style
Expected: asterisk; Actual: dash
(MD004, ul-style)
23-23: Unordered list style
Expected: asterisk; Actual: dash
(MD004, ul-style)
24-24: Unordered list style
Expected: asterisk; Actual: dash
(MD004, ul-style)
docs/src/integration-hpa.md
6-6: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
6-6: Multiple top-level headings in the same document
(MD025, single-title, single-h1)
docs/src/dev-test-load.md
3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
11-11: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
15-15: Files should end with a single newline character
(MD047, single-trailing-newline)
docs/src/getting-started.md
15-15: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
84-84: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
README.md
10-10: Inline HTML
Element: img
(MD033, no-inline-html)
10-10: Images should have alternate text (alt text)
(MD045, no-alt-text)
18-18: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
19-19: Blank line inside blockquote
(MD028, no-blanks-blockquote)
43-43: Inline HTML
Element: div
(MD033, no-inline-html)
44-44: Inline HTML
Element: img
(MD033, no-inline-html)
44-44: Images should have alternate text (alt text)
(MD045, no-alt-text)
docs/src/comparisons.md
1-1: Inline HTML
Element: p
(MD033, no-inline-html)
1-1: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
2-2: Inline HTML
Element: img
(MD033, no-inline-html)
5-5: Inline HTML
Element: p
(MD033, no-inline-html)
6-6: Inline HTML
Element: a
(MD033, no-inline-html)
7-7: Inline HTML
Element: img
(MD033, no-inline-html)
7-7: Images should have alternate text (alt text)
(MD045, no-alt-text)
9-9: Inline HTML
Element: a
(MD033, no-inline-html)
10-10: Inline HTML
Element: img
(MD033, no-inline-html)
10-10: Images should have alternate text (alt text)
(MD045, no-alt-text)
18-18: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
19-19: Blank line inside blockquote
(MD028, no-blanks-blockquote)
43-43: Inline HTML
Element: div
(MD033, no-inline-html)
44-44: Inline HTML
Element: img
(MD033, no-inline-html)
44-44: Images should have alternate text (alt text)
(MD045, no-alt-text)
docs/src/arch-monitoring.md
3-3: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
docs/src/dev-test-monitoring.md
25-25: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
docs/src/message.md
2-2: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
10-10: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
11-11: Multiple consecutive blank lines
Expected: 1; Actual: 3
(MD012, no-multiple-blanks)
20-20: Inline HTML
Element: br
(MD033, no-inline-html)
23-23: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
24-24: Multiple consecutive blank lines
Expected: 1; Actual: 3
(MD012, no-multiple-blanks)
28-28: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
30-30: Inline HTML
Element: br
(MD033, no-inline-html)
31-31: Inline HTML
Element: br
(MD033, no-inline-html)
32-32: Inline HTML
Element: br
(MD033, no-inline-html)
49-49: Inline HTML
Element: br
(MD033, no-inline-html)
63-63: Inline HTML
Element: br
(MD033, no-inline-html)
65-65: Files should end with a single newline character
(MD047, single-trailing-newline)
docs/src/dev-test-e2e.md
26-26: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
50-50: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
135-135: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
154-154: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
155-155: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
200-200: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
docs/src/dev-env.md
3-3: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
10-10: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
docs/src/configure-elastiservice.md
3-3: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
36-36: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
37-37: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
39-39: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
51-51: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
56-56: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
57-57: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
58-58: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
59-59: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
62-62: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
63-63: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
65-65: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
72-72: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
74-74: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
75-75: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
76-76: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
80-80: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
83-83: Unordered list style
Expected: dash; Actual: asterisk
(MD004, ul-style)
84-84: Unordered list style
Expected: dash; Actual: asterisk
(MD004, ul-style)
85-85: Unordered list style
Expected: dash; Actual: asterisk
(MD004, ul-style)
113-113: Files should end with a single newline character
(MD047, single-trailing-newline)
docs/src/integration-keda.md
7-7: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
7-7: Multiple top-level headings in the same document
(MD025, single-title, single-h1)
12-12: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
13-13: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
16-16: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
23-23: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
31-31: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
46-46: Files should end with a single newline character
(MD047, single-trailing-newline)
docs/src/dev-playground.md
1-1: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
21-21: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
22-22: Multiple consecutive blank lines
Expected: 1; Actual: 3
(MD012, no-multiple-blanks)
23-23: Multiple consecutive blank lines
Expected: 1; Actual: 4
(MD012, no-multiple-blanks)
28-28: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
28-28: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
38-38: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
54-54: Bare URL used
(MD034, no-bare-urls)
73-73: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
85-85: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
94-94: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
103-103: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
114-114: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
122-122: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
128-128: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
134-134: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
docs/src/architecture.md
3-3: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
10-10: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
156-156: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
209-209: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
214-214: Inline HTML
Element: br
(MD033, no-inline-html)
214-214: Inline HTML
Element: br
(MD033, no-inline-html)
248-248: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
275-275: Trailing punctuation in heading
Punctuation: '.'
(MD026, no-trailing-punctuation)
306-306: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
🪛 checkmake (0.2.2)
Makefile
[warning] 55-55: Missing required phony target "all"
(minphony)
[warning] 55-55: Missing required phony target "clean"
(minphony)
🪛 Biome (1.9.4)
docs/stylesheets/extra.css
[error] 163-163: Unexpected shorthand property animation after animation-delay
(lint/suspicious/noShorthandPropertyOverrides)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/operator)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/resolver)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/pkg)
- GitHub Check: Run Kuttl E2E Tests
🔇 Additional comments (4)
.gitignore (1)
13-13
: Trailing slash added – fix confirmed
site/
now explicitly ignores the MkDocs build directory and avoids accidentally ignoring a file namedsite
..github/workflows/docs.yaml (1)
1-30
: Workflow looks good – previous YAML issues resolved
"on":
is now quoted, trailing-space warnings are gone, and the cache key is deterministic. No further action required.docs/src/message.md (1)
49-50
: Inline<br>
breaks markdownlint MD033Prefer
|
in Mermaid labels or wrap text to avoid HTML; if keeping<br>
, ignore via<!-- markdownlint-disable MD033 -->
before the diagram.docs/src/dev-test-e2e.md (1)
12-13
: Link may be stale after this PR.
tests/e2e/README.md
is reported as removed in the PR description. Verify that the file still exists or update the link to the new location.
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.
Actionable comments posted: 17
🔭 Outside diff range comments (2)
README.md (1)
2-2
: Update the banner’s alt text to match the new branding
alt="elasti icon"
still references the old name.-<img src="./docs/logo/banner.png" alt="elasti icon"> +<img src="./docs/logo/banner.png" alt="KubeElasti logo">docs/src/getting-started.md (1)
142-148
: Stale product name in “Uninstall” section
To uninstall Elasti
should be updated toTo uninstall KubeElasti
for consistency with the rest of the docs.
♻️ Duplicate comments (13)
docs/src/comparisons.md (2)
1-2
: Duplicate top-level heading – remove to avoid MD025 violation
Front-matter already exposes the page title; this extra# Comparisons with Other Solutions
causes duplicate H1s.
45-46
: Typographical dash & casing in “Request queueing” rowPrefer an em-dash and sentence-case note for consistency:
-| Request queueing | ✅ | ❌ (drops or delays) | ✅ | ❌ | +| Request queueing | ✅ | ❌ (drops — delays) | ✅ | ❌ |docs/src/dev-test-monitoring.md (1)
7-9
: Extraneous blank line inside fenced blockThe double blank line before the comment violates MD012 and clutters copy-paste.
helm repo update - # Install the kube-prometheus-stack chart. …
docs/src/arch-monitoring.md (1)
3-8
: Trailing spaces still presentLines 3-7 end with stray spaces flagged by MD009. Delete them to stay lint-clean.
README.md (2)
10-10
: Missing alt text on the status-badge image
This was raised earlier and remains unresolved. Add descriptive alt text for accessibility.-<img src="https://github.com/truefoundry/KubeElasti/actions/workflows/lint-and-test.yaml/badge.svg" align="center"> +<img src="https://github.com/truefoundry/KubeElasti/actions/workflows/lint-and-test.yaml/badge.svg" + alt="Lint & Test workflow status" align="center">
16-18
: Paragraph is still a 70-word run-on sentenceConsider splitting for readability as suggested in the previous review.
docs/index.md (1)
80-80
: Improve alt text for the lifecycle diagramThe image alt text “KubeElasti Modes” is vague. A more descriptive alternative aids accessibility.
-<img src="images/modes.png" alt="KubeElasti Modes"> +<img src="images/modes.png" alt="Diagram showing KubeElasti scale-to-zero lifecycle">docs/src/introduction.md (1)
68-68
: Use an em-dash instead of hyphen.
setup-whether
→setup—whether
. Same issue flagged earlier.docs/src/configure-elastiservice.md (4)
5-5
: Grammar: “An ElastiService…”Still starts with “A ElastiService”.
15-16
: YAML field should beserviceName
.Example still shows
service
. This will not match the CRD.
53-55
:kind
values must be singular & PascalCase.Bullet still says
rollouts/deployments
. Should beRollout/Deployment
.
32-32
: Branding consistency.
elasti
(lower-case) should beKubeElasti
.-Replace it with the service you want managed by elasti. +Replace it with the service you want managed by KubeElasti.docs/src/architecture.md (1)
239-240
: Capitalize “Prometheus” and fix verb tense.Proper nouns should be capitalized, and present tense fits the narrative better.
-If the query from prometheus returns a value less than the threshold, KubeElasti will scale down the service to 0. Before it scales to 0, it redirects the requests to be forwarded to the KubeElasti resolver and then modified the Rollout/deployment to have 0 replicas. +If the query from Prometheus returns a value less than the threshold, KubeElasti scales the service down to 0. Before scaling, it redirects incoming requests to the KubeElasti resolver and then modifies the Rollout/Deployment to have 0 replicas.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (16)
README.md
(2 hunks)docs/index.md
(1 hunks)docs/src/arch-monitoring.md
(1 hunks)docs/src/architecture.md
(1 hunks)docs/src/comparisons.md
(1 hunks)docs/src/configure-elastiservice.md
(1 hunks)docs/src/dev-env.md
(1 hunks)docs/src/dev-playground.md
(1 hunks)docs/src/dev-test-e2e.md
(1 hunks)docs/src/dev-test-load.md
(1 hunks)docs/src/dev-test-monitoring.md
(1 hunks)docs/src/getting-started.md
(5 hunks)docs/src/integration-keda.md
(1 hunks)docs/src/introduction.md
(1 hunks)docs/stylesheets/extra.css
(1 hunks)mkdocs.yml
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/src/comparisons.md
[grammar] ~3-~3: There might be a problem here.
Context: ...ale-to-zero solutions in the Kubernetes ecosystem. ## Knative ### Overview Knative is a comprehensive pla...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~8-~8: Use correct spacing
Context: ... request-based autoscaling, and traffic management. ### Key Differences - Complexity: Knati...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~13-~13: There might be a problem here.
Context: ...bernetes patterns with simple CRD-based configuration. ## OpenFaaS ### Overview OpenFaaS is a framework for bu...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~18-~18: Use correct spacing
Context: ...oy serverless functions to any cloud or on-premises. ### Key Differences - Purpose: OpenFaaS...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~23-~23: Use correct spacing
Context: ...s (HPA/KEDA) while adding scale-to-zero capability. ## KEDA HTTP Add-on ### Overview KEDA H...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~25-~25: Use correct spacing
Context: ...ale-to-zero capability. ## KEDA HTTP Add-on ### Overview KEDA HTTP Add-on is an extensi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~28-~28: Use correct spacing
Context: ...-based scaling, including scale-to-zero functionality. ### Key Differences - Request Handling:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~30-~30: Use colons correctly
Context: ...g scale-to-zero functionality. ### Key Differences - Request Handling: - KEDA htt...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~34-~34: Use articles correctly
Context: ...nce the service has been scaled up. - Integration: - KEDA HTTP Add-on requires KEDA in...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~36-~36: Use correct spacing
Context: ...rk standalone or integrate with KEDA if needed. ## Feature Comparison Table | Feature |...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~38-~38: Use correct spacing
Context: ...EDA if needed. ## Feature Comparison Table | Feature | KubeElasti | Knative | Open...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~46-~46: Use correct spacing
Context: ...mplexity | Low | High | Medium | Medium | ## When to Choose KubeElasti KubeElasti...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~48-~48: Use correct spacing
Context: ... Medium | Medium | ## When to Choose KubeElasti KubeElasti is the best choice when you:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~50-~50: Use correct spacing
Context: ...i** KubeElasti is the best choice when you: 1. Need to add scale-to-zero capability to...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/dev-test-load.md
[grammar] ~1-~1: Use correct spacing
Context: # Load testing ## 1. Update k6 tests Update `./test/l...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: There might be a mistake here.
Context: # Load testing ## 1. Update k6 tests Update ./test/load.js
to set your tar...
(QB_NEW_EN_OTHER)
[grammar] ~5-~5: Use correct spacing
Context: ... URL and adjust any other configuration values. ## 2. Run load.js Run the following co...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~7-~7: There might be a mistake here.
Context: ... other configuration values. ## 2. Run load.js Run the following command to run the te...
(QB_NEW_EN_OTHER)
[grammar] ~9-~9: There might be a problem here.
Context: ... Run the following command to run the test. bash chmod +x ./test/generate_load.sh cd ./test ./generate_load.sh
(QB_NEW_EN_MERGED_MATCH)
README.md
[grammar] ~14-~14: Use correct spacing
Context: ..." align="center">
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~16-~16: Use commas correctly
Context: ...ivated, KubeElasti processes the queued requests, so that no request is lost. This combina...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~16-~16: Use correct spacing
Context: ...e tool for efficient Kubernetes service management. > The name Elasti comes from a superhero ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~18-~18: There might be a problem here.
Context: ...gement. > The name Elasti comes from a superhero "Elasti-Girl" from DC Comics. Her superpower is to e...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~18-~18: There might be a problem here.
Context: ...e inches in height. Kube just refers to kubernetes. Elasti powers in kubernetes! > KubeElasti(So...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~18-~18: There might be a problem here.
Context: ...refers to kubernetes. Elasti powers in kubernetes! > KubeElasti(Sometimes referred to as just "Elasti"). # Conte...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~20-~20: There might be a problem here.
Context: ...ubeElasti(Sometimes referred to as just "Elasti"). # Contents - [Why use KubeElasti?](#why-use-kubeelast...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~35-~35: There might be a problem here.
Context: ...g-help) - Roadmap - Star History # Introduction KubeElasti is a Kubernetes-native solut...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~39-~39: Use hyphens correctly
Context: ... when there is no traffic and automatic scale up to 1 when traffic arrives. Most Kuber...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~39-~39: Add a comma
Context: ...ic arrives. Most Kubernetes autoscaling solutions like HPA or Keda can scale from 1 to n ...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~39-~39: Use comma(s) to set off direct address
Context: ...netes autoscaling solutions like HPA or Keda can scale from 1 to n replicas based on...
(QB_NEW_EN_OTHER_ERROR_IDS_18)
[grammar] ~39-~39: Add a comma
Context: ...aling after 1 replica is handled by the autoscaler like HPA or Keda. KubeElasti uses a pr...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~39-~39: Use correct spacing
Context: ...s handled by the autoscaler like HPA or Keda. KubeElasti uses a proxy mechanism that ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~41-~41: Use correct spacing
Context: ...e processed directly by the pods of the service.
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~47-~47: Use correct spacing
Context: ...odes.png" width="400px"> ## Key Features - Seamless Integration: KubeElasti inte...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[typographical] ~49-~49: To join two clauses or set off examples, consider using an em dash.
Context: ...ortlessly with your existing Kubernetes setup - whether you are using HPA or Keda. It ta...
(QB_NEW_EN_DASH_RULE_EM)
[grammar] ~49-~49: Use correct spacing
Context: ...w steps to enable scale to zero for any service. - Deployment and Argo Rollouts Support:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~51-~51: Use correct spacing
Context: ...ing it versatile for various deployment scenarios. - Prometheus Metrics Export: KubeElasti...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~53-~53: Use correct spacing
Context: ...ashboard into Grafana for comprehensive visualization. - Generic Service Support: KubeElasti w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~55-~55: Use correct spacing
Context: ... service mesh solution can be used with KubeElasti. - Autoscaler Integration: KubeElasti ca...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~57-~57: Use correct spacing
Context: ...HPA](./docs/src/integration-hpa.md) and Keda. # Getting Started Details on how to inst...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~59-~59: Use correct spacing
Context: ...cs/src/integration-keda.md). # Getting Started Details on how to install and configure...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~61-~61: Use correct spacing
Context: ...Started](./docs/src/getting-started.md) guide. # Configure KubeElasti Check out the dif...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~63-~63: There might be a mistake here.
Context: ...getting-started.md) guide. # Configure KubeElasti Check out the different ways to configu...
(QB_NEW_EN_OTHER)
[grammar] ~65-~65: There might be a problem here.
Context: ...(./docs/src/configure-elastiservice.md) guide. # Monitoring Monitoring details can be found in the ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~69-~69: There might be a problem here.
Context: ...itoring](./docs/src/arch-monitoring.md) guide. # Development Refer to [DEVELOPMENT.md](./DEVELOPMENT...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~81-~81: There might be a problem here.
Context: ...section for getting help and discussing ideas. # Roadmap We are maintaining the future roadmap u...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~85-~85: Use correct spacing
Context: ...for them by adding a 👍 reaction to the issue. ## Star History [
[grammar] ~87-~87: Use correct spacing
Context: ...ng a 👍 reaction to the issue. ## Star History
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/dev-test-monitoring.md
[grammar] ~1-~1: There might be a problem here.
Context: # Test Monitoring bash # First, add the prometheus-community Helm repository. helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update # Install the kube-prometheus-stack chart. This chart includes Prometheus and Grafana. kubectl create namespace prometheus helm install prometheus-stack prometheus-community/kube-prometheus-stack -n prometheus # Port-forward to access the dashboard kubectl port-forward -n prometheus services/prometheus-stack-grafana 3000:80 # Get the admin user. kubectl get secret --namespace prometheus prometheus-stack-grafana -o jsonpath="{.data.admin-user}" | base64 --decode ; echo # Get the admin password. kubectl get secret --namespace prometheus prometheus-stack-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
After this, you can use [`./playground/...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~22-~22: Use correct spacing
Context: ...ashboard.yaml) to import the KubeElasti dashboard.
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/getting-started.md
[grammar] ~13-~13: There might be a mistake here.
Context: ...nstall ### 1. Install KubeElasti using helm Use Helm to install KubeElasti into you...
(QB_NEW_EN_OTHER)
[grammar] ~15-~15: Use correct spacing
Context: ...install KubeElasti into your Kubernetes cluster. bash helm install elasti oci://tfy.jfrog.io/tfy-helm/elasti --namespace elasti --create-namespace
Check out [values.yaml](https://github....
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~21-~21: Use correct spacing
Context: ...configuration options in the helm value file. ### 2. Verify the Installation Check the s...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~23-~23: Use correct spacing
Context: ...the helm value file. ### 2. Verify the Installation Check the status of your Helm release a...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~25-~25: Use correct spacing
Context: ...sure that the KubeElasti components are running: bash helm status elasti --namespace elasti kubectl get pods -n elasti
You will see 2 components running. 1. ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~107-~107: There might be a mistake here.
Context: ...`` ### 7. Apply the KubeElasti service configuration Apply the configuration to your Kuberne...
(QB_NEW_EN_OTHER)
[grammar] ~138-~138: There might be a problem here.
Context: ...r 5 (cooldownPeriod
in ElastiService) seconds. ## Uninstall To uninstall Elasti, **you will need to...
(QB_NEW_EN_MERGED_MATCH)
docs/src/arch-monitoring.md
[grammar] ~1-~1: Use correct spacing
Context: # Monitoring Set .global.enableMonitoring
to `true...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use correct spacing
Context: ...arts/elasti/values.yaml) file to enable monitoring. This will create two ServiceMonitor cus...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: Use correct spacing
Context: ...rgets section to check if KubeElasti is listed. Once verification is complete, you can ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~7-~7: Use correct spacing
Context: ...the internal metrics and performance of KubeElasti.
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/dev-playground.md
[grammar] ~1-~1: Use correct spacing
Context: # Playground ## 1. Local Cluster If you don't already ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use correct spacing
Context: # Playground ## 1. Local Cluster If you don't already have a local Kuber...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: Add a comma
Context: ...ter, you can set one up using Minikube, Kind or Docker-Desktop: === "Kind" ```...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~5-~5: Use hyphens correctly
Context: ... can set one up using Minikube, Kind or Docker-Desktop: === "Kind" ``` bash kind crea...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~7-~7: Use correct spacing
Context: ... Minikube, Kind or Docker-Desktop: === "Kind" bash kind create cluster
=== "Minikube" ``` bash miniku...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~13-~13: Use correct spacing
Context: ...sh kind create cluster === "Minikube"
bash minikube start ``` === "Docker-Desktop" Enable it in ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~19-~19: Use hyphens correctly
Context: ...`` bash minikube start ``` === "Docker-Desktop" Enable it in Docker-Desktop ##...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~26-~26: Use correct spacing
Context: ...-Desktop ## 2. Start a Local Docker Registry Run a local Docker registry container, ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~28-~28: Use commas correctly
Context: ...r Registry Run a local Docker registry container, to push our images locally and access th...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~28-~28: Use correct spacing
Context: ...r images locally and access them in our cluster. bash docker run -d -p 5001:5000 --name registry registry:2
!!! tip "Add registry to Minikube and K...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~34-~34: There might be a mistake here.
Context: ...000 --name registry registry:2 ``` !!! tip "Add registry to Minikube and Kind" Y...
(QB_NEW_EN_OTHER)
[grammar] ~34-~34: There might be a mistake here.
Context: ... !!! tip "Add registry to Minikube and Kind" You will need to add this registry to M...
(QB_NEW_EN_OTHER)
[grammar] ~35-~35: Use hyphens correctly
Context: ...his registry to Minikube and Kind. With Docker-Desktop, it is automatically picked up if runnin...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~35-~35: There might be a problem here.
Context: ...s automatically picked up if running in same context. !!! tip "Note" In MacOS, 5000 is no...
(QB_NEW_EN_MERGED_MATCH)
[style] ~36-~36: Using many exclamation marks might seem excessive (in this case: 6 exclamation marks for a text that’s 2148 characters long)
Context: ... picked up if running in same context. !!! tip "Note" In MacOS, 5000 is not av...
(EN_EXCESSIVE_EXCLAMATION)
[grammar] ~37-~37: There might be a mistake here.
Context: ...ked up if running in same context. !!! tip "Note" In MacOS, 5000 is not availabl...
(QB_NEW_EN_OTHER)
[grammar] ~37-~37: There might be a problem here.
Context: ...running in same context. !!! tip "Note" In MacOS, 5000 is not available, so we use 5001 ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~38-~38: Use correct spacing
Context: ..., 5000 is not available, so we use 5001 instead. ## 3. [Optional] Install Ingress Controlle...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~41-~41: Use correct spacing
Context: ...ead. ## 3. [Optional] Install Ingress Controller === "NGINX" Install the NGINX In...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~43-~43: Use correct spacing
Context: ...tional] Install Ingress Controller === "NGINX" Install the NGINX Ingress Controller using Helm: bash helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update kubectl create namespace nginx helm install ingress-nginx ingress-nginx/ingress-nginx -n nginx
=== "Istio" ```shell # Down...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~53-~53:
Context: ...x/ingress-nginx -n nginx === "Istio"
shell # Download the latest Istio relea...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~55-~55: Use correct spacing
Context: ...elease from the official Istio website. curl -L https://istio.io/downloadIstio | sh ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~56-~56:
Context: ... -L https://istio.io/downloadIstio | sh - # Move it to home directory mv isti...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~57-~57: There might be a problem here.
Context: ...downloadIstio | sh - # Move it to home directory mv istio-x.xx.x ~/.istioctl export...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~58-~58: There might be a problem here.
Context: ...to home directory mv istio-x.xx.x ~/.istioctl export PATH=$HOME/.istioctl/bin:$PATH istioctl install --set profile=default -y # Label the namespace where you want to deploy your application to enable Istio sidecar Injection kubectl create namespace demo kubectl label namespace demo istio-injection=enabled # Create a gateway kubectl apply -f ./playground/config/gateway.yaml ``` ## 4. Deploy a demo service Run a demo ap...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~71-~71: There might be a mistake here.
Context: ...way.yaml ``` ## 4. Deploy a demo service Run a demo application in your cluster....
(QB_NEW_EN_OTHER)
[grammar] ~73-~73: Use correct spacing
Context: ...service Run a demo application in your cluster. bash kubectl create namespace demo kubectl apply -f ./playground/config/demo-application.yaml -n demo # Create a Virtual Service to expose the demo service if you are using istio kubectl apply -f ./playground/config/demo-virtualService.yaml -n demo
## 5. Build & Publish Resolver Go into th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~83-~83: Use correct spacing
Context: ...yaml -n demo ``` ## 5. Build & Publish Resolver Go into the resolver directory and run ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~85-~85: Use correct spacing
Context: ...directory and run the build and publish command. bash cd resolver make docker-build docker-push IMG=localhost:5001/elasti-resolver:v1alpha1
## 6. Build & Publish Operator Go into th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~92-~92: Use correct spacing
Context: ...ver:v1alpha1 ``` ## 6. Build & Publish Operator Go into the operator directory and run ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~94-~94: Use correct spacing
Context: ...directory and run the build and publish command. bash cd operator make docker-build docker-push IMG=localhost:5001/elasti-operator:v1alpha1
## 7. Deploy Locally Make sure you have c...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~101-~101: Use correct spacing
Context: ...sti-operator:v1alpha1 ``` ## 7. Deploy Locally Make sure you have configured the local...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~103-~103: Use correct spacing
Context: ...ollow below steps from the project home directory: bash kubectl create namespace elasti helm template elasti ./charts/elasti -n elasti -f ./playground/infra/elasti-demo-values.yaml | kubectl apply -f -
If you want to enable monitoring, pleas...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~110-~110: Use correct spacing
Context: ...e enableMonitoring
true in the values file. ## 8. Create ElastiService Resource Using...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~112-~112: There might be a problem here.
Context: ...toring` true in the values file. ## 8. Create ElastiService Resource Using the [ElastiService Definition](./...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~114-~114: Use articles correctly
Context: ...file for your service and apply it. For demo, we use the below manifest. ```bash kub...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~114-~114: Use correct spacing
Context: ...nd apply it. For demo, we use the below manifest. bash kubectl -n demo apply -f ./playground/config/demo-elastiService.yaml
## 9. Test the service ### 9.1 Create a w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~120-~120: There might be a mistake here.
Context: ...-elastiService.yaml ## 9. Test the service ### 9.1 Create a watch on the service
b...
(QB_NEW_EN_OTHER)
[grammar] ~122-~122: There might be a mistake here.
Context: ... service ### 9.1 Create a watch on the service bash kubectl -n demo get elastiservice httpbin -w
### 9.2 Scale down the service ```bash kub...
(QB_NEW_EN_OTHER)
[grammar] ~128-~128: Use correct spacing
Context: ... httpbin -w ### 9.2 Scale down the service
bash kubectl -n demo scale deployment httpbin --replicas=0 ### 9.3 Create a load on the service
ba...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~134-~134: There might be a mistake here.
Context: ...cas=0 ### 9.3 Create a load on the service
bash kubectl run -it --rm curl --image=alpine/curl -- http://httpbin.demo.svc.cluster.local/headers ``` You should see the target service pod g...
(QB_NEW_EN_OTHER)
[grammar] ~140-~140: Use articles correctly
Context: ...arget service pod getting scaled up and response from the new pod.
(QB_NEW_EN_OTHER_ERROR_IDS_11)
docs/index.md
[grammar] ~149-~149: There might be a mistake here.
Context: ...You just created a scale-to-zero service
KubeElasti is easy to set up and configure. Follow our step-by-step guide to get started.
Full Installation GuideJoin Our Community
Get help, share your experience, and contribute to KubeElasti
Ready to optimize your Kubernetes resources?
Get Started with KubeElasti(QB_NEW_EN_OTHER)
docs/src/integration-keda.md
[style] ~2-~2: Consider using a different adjective in this context to strengthen your wording.
Context: ...e when there is some traffic. KEDA is a good candidate for performing the scaling lo...
(GOOD_ALTERNATIVE)
[grammar] ~2-~2: Use correct spacing
Context: ...minReplicas to maxReplicas based on its triggers. Here we will see how to integrate KubeE...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~4-~4: Use correct spacing
Context: ...i with KEDA to build a complete scaling solution. ## Prerequisites - Make sure you have gone...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~8-~8: Use hyphens correctly
Context: ...is integration. - KEDA installed in the cluster - [KEDA Installation](https://keda.sh/docs/...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~8-~8: There might be a problem here.
Context: ...- KEDA installed in the cluster - KEDA Installation ## Steps ### 1. Create a keda scaler for the service...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~12-~12: There might be a mistake here.
Context: ...ps ### 1. Create a keda scaler for the service Let's create a keda scaler for the http...
(QB_NEW_EN_OTHER)
[grammar] ~14-~14: Use correct spacing
Context: ...'s create a keda scaler for the httpbin service. shell kubectl apply -f ./playground/config/demo-application-keda.yaml
Note that the same prometheus query is ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~19-~19: Correctly pair commas and coordinating conjunctions
Context: ... started](getting-started.md) guide for ElastiService and the namespace is the same as the na...
(QB_NEW_EN_OTHER_ERROR_IDS_14)
[grammar] ~19-~19: Use correct spacing
Context: ...space that the ElastiService is created in. Refer to the [keda documentation](https...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~21-~21: Use correct spacing
Context: ...c/) for more details on configuring the ScaledObject. ### 2. Update ElastiService to work with th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~23-~23: Ensure spelling is correct
Context: ...guring the ScaledObject. ### 2. Update ElastiService to work with the keda scaler We will u...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~23-~23: There might be a mistake here.
Context: ...ate ElastiService to work with the keda scaler We will update the ElastiService to spe...
(QB_NEW_EN_OTHER)
[grammar] ~25-~25: Use correct spacing
Context: ...e following fields to the ElastiService object: yaml spec: autoscaler: name: httpbin-scaled-object type: keda
Patch the ElastiService object with the...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~33-~33: Use correct spacing
Context: ...the ElastiService object with the above changes. shell kubectl patch elastiservice httpbin-elasti -n elasti-demo -p '{"spec":{"autoscaler":{"name": "httpbin-scaled-object", "type": "keda"}}}' --type=merge
Now when KubeElasti scales down the ser...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~39-~39: Use correct spacing
Context: ...ales up the service, it will resume the ScaledObject. With these changes, KubeElasti can reli...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~41-~41: There might be a mistake here.
Context: ...wn the service to zero when there is no traffic while keda can handle the scaling logic...
(QB_NEW_EN_OTHER)
docs/src/introduction.md
[grammar] ~1-~1: Use correct spacing
Context: # Introduction KubeElasti (Sometimes referred to as ju...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Add a comma
Context: ...ic arrives. Most Kubernetes autoscaling solutions like HPA or Keda can scale from 1 to n ...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~3-~3: Use comma(s) to set off direct address
Context: ...netes autoscaling solutions like HPA or Keda can scale from 1 to n replicas based on...
(QB_NEW_EN_OTHER_ERROR_IDS_18)
[grammar] ~3-~3: Add a comma
Context: ...aling after 1 replica is handled by the autoscaler like HPA or Keda. !!! Info The nam...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~3-~3: Use correct spacing
Context: ...s handled by the autoscaler like HPA or Keda. !!! Info The name Elasti comes from...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~6-~6: There might be a problem here.
Context: ...! Info The name Elasti comes from a superhero "Elasti-Girl" from DC Comics. Her superpower is to e...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~6-~6: There might be a problem here.
Context: ...ile "Elasti" highlights elastic scaling super-powers. KubeElasti uses a proxy mechanism that ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~8-~8: Use correct spacing
Context: ...e processed directly by the pods of the service. ## How It Works KubeElasti continuously m...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~10-~10: Use correct spacing
Context: ... by the pods of the service. ## How It Works KubeElasti continuously monitors an Ela...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~12-~12: Use correct spacing
Context: ...er a service should be active or scaled down. - Scaling Down: When all trigge...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~15-~15: Use correct spacing
Context: ...s incoming requests instead of dropping them. - Traffic Queueing in Proxy Mode: I...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~18-~18: Use correct spacing
Context: ...even when the service is scaled down to 0. - Scaling Up: If any trigger si...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~21-~21: Use correct spacing
Context: ... online, KubeElasti switches to Serve Mode. - Serve Mode: In Serve Mode, the ac...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~24-~24: Use correct spacing
Context: ...g a seamless return to full operational capacity. This allows KubeElasti to optimize reso...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~26-~26: Use correct spacing
Context: ...pt service availability when conditions change. mermaid --- title: Lifecycle modes of KubeElasti (Proxy, Serve) displayMode: compact config: layout: elk look: classic theme: dark --- flowchart TB %% Proxy Mode subgraph Proxy_Mode["Proxy Mode | Pods = 0"] direction TB Service1[Service] Proxy[Elasti Proxy] Pod1[Pod] Service1 -->|Traffic| Proxy Proxy -->|1: Queue Req if Pod = 0| Proxy Proxy -->|2: Scale| Pod1 Proxy -->|3: Send Req| Pod1 end %% Serve Mode subgraph Serve_Mode["Serve Mode | Pods ≥ 1"] direction TB Service2[Service] Pod2[Pod] Service2 -->|1: Req Sent| Pod2 end
## Key Features - **Seamless Integration:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~66-~66: Use correct spacing
Context: ... Req Sent| Pod2 end ``` ## Key Features - Seamless Integration: KubeElasti inte...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[typographical] ~68-~68: To join two clauses or set off examples, consider using an em dash.
Context: ...ortlessly with your existing Kubernetes setup-whether you are using HPA or Keda. It takes jus...
(QB_NEW_EN_DASH_RULE_EM)
[grammar] ~68-~68: Use correct spacing
Context: ...w steps to enable scale to zero for any service. - Deployment and Argo Rollouts Support:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~70-~70: Use correct spacing
Context: ...ing it versatile for various deployment scenarios. - Prometheus Metrics Export: KubeElasti...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~72-~72: Use correct spacing
Context: ...ashboard into Grafana for comprehensive visualization. - Generic Service Support: KubeElasti w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~74-~74: There might be a problem here.
Context: ... service mesh solution can be used with KubeElasti. ## Limitations - Only HTTP is supported: KubeElasti cu...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~78-~78: There might be a mistake here.
Context: ...e will support more protocols like TCP, UDP etc. - **Only Deployment and Argo Rollo...
(QB_NEW_EN_OTHER)
[grammar] ~80-~80: There might be a mistake here.
Context: ...The only trigger currently supported is Prometheus Please checkout the comparison [here](c...
(QB_NEW_EN_OTHER)
[grammar] ~82-~82: Use the right verb tense
Context: ...rrently supported is Prometheus Please checkout the comparison here t...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
docs/src/configure-elastiservice.md
[grammar] ~1-~1: Use correct spacing
Context: # Configure ElastiService To enable scale to 0 on any deployment,...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use the right verb tense
Context: # Configure ElastiService To enable scale to 0 on any deployment, we will need to...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~3-~3: Use correct spacing
Context: ... ElastiService custom resource for that deployment. An ElastiService custom resource has th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: Ensure spelling is correct
Context: ...stom resource for that deployment. An ElastiService custom resource has the following struc...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~5-~5: Use correct spacing
Context: ...rvice custom resource has the following structure: yaml title="elasti-service.yaml" linenums="1" apiVersion: elasti.truefoundry.com/v1alpha1 kind: ElastiService metadata: name: <service-name> # (1) namespace: <service-namespace> # (2) spec: minTargetReplicas: <min-target-replicas> # (3) service: <service-name> cooldownPeriod: <cooldown-period> # (4) scaleTargetRef: apiVersion: <apiVersion> # (5) kind: <kind> # (6) name: <deployment-or-rollout-name> # (7) triggers: - type: <trigger-type> # (8) metadata: query: <query> # (9) serverAddress: <server-address> # (10) threshold: <threshold> # (11) autoscaler: name: <autoscaler-object-name> type: <autoscaler-type>
1. Replace it with the service you want ma...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[style] ~34-~34: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...t with the namespace of the service. 3. Replace it with the min replicas to bring up wh...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~34-~34: Make sure you are using the right part of speech
Context: ... of the service. 3. Replace it with the min replicas to bring up when first request...
(QB_NEW_EN_OTHER_ERROR_IDS_21)
[grammar] ~34-~34: Use articles correctly
Context: ... with the min replicas to bring up when first request arrives. Minimum: 1 4. Replace ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~35-~35: Use the right verb tense
Context: ...ait after scaling up before considering scale down. Default: 900 seconds (15 minutes)...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~36-~36: Use hyphens correctly
Context: ...roj.io/v1alpha1in case you are using argo-rollouts. 6. Kind should be either
Dep...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~39-~39: There might be a problem here.
Context: ...y, KubeElasti supports only one trigger type - prometheus
. 9. Replace it with the trigger query...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~44-~44: Use correct spacing
Context: ...he autoscaler type. In this case, it is keda
. The key fields to be specified in the s...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~46-~46: There might be a mistake here.
Context: ... key fields to be specified in the spec are: - <service-name>
: Replace it with the service you want ...
(QB_NEW_EN_OTHER)
[grammar] ~50-~50: Use articles correctly
Context: ...plicas>: Min replicas to bring up when first request arrives. - Minimum: 1 -
<s...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~51-~51: Use colons correctly
Context: ...n first request arrives. - Minimum: 1 - <scaleTargetRef>
: Reference to the scale target similar to the one ...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~55-~55: Use articles correctly
Context: ...loyment-or-rollout-name>`: Replace with name of the rollout or the deployment for th...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~55-~55: Use articles correctly
Context: ...e scaled up to min-target-replicas when first request comes - cooldownPeriod
: Minim...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~55-~55: Use correct spacing
Context: ... min-target-replicas when first request comes - cooldownPeriod
: Minimum time (in seconds) to wait after...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~56-~56: Use the right verb tense
Context: ...ait after scaling up before considering scale down. - Default: 900 seconds (15 m...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~59-~59: Make sure to use plural and singular nouns correctly
Context: ...04800 seconds (7 days) - Minimum: 1 seconds (1 second) - triggers
: List of condit...
(QB_NEW_EN_OTHER_ERROR_IDS_10)
[grammar] ~63-~63: Use correct spacing
Context: ...oscaler-object-name>`: Name of the KEDA ScaledObject ## Configuration Explanation The section ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~66-~66: Use correct spacing
Context: ...he KEDA ScaledObject ## Configuration Explanation The section below explains how the diff...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~68-~68: Use correct spacing
Context: ...erent configuration options are used in KubeElasti. ### Which service KubeElasti should manage ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~70-~70: Use correct spacing
Context: ...i. ### Which service KubeElasti should manage This is defined using the `scaleTargetR...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~72-~72: Use correct spacing
Context: ...using the scaleTargetRef
field in the spec. - scaleTargetRef.kind
: should be either be deployments
or...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~75-~75: There might be a mistake here.
Context: ...ollouts). - scaleTargetRef.apiVersion
will be apps/v1
if you are using deploymen...
(QB_NEW_EN_OTHER)
[grammar] ~75-~75: Use hyphens correctly
Context: ...roj.io/v1alpha1in case you are using argo-rollouts. -
scaleTargetRef.name` shoul...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~76-~76: Use correct spacing
Context: ... argo-rollouts. - scaleTargetRef.name
should exactly match the name of the deploymen...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~76-~76: Use correct spacing
Context: ...tly match the name of the deployment or rollout. ### When to scale down the service to 0 Th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~78-~78: Use correct spacing
Context: ... ### When to scale down the service to 0 This is defined using the triggers
fi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~80-~80: There might be a problem here.
Context: ...y, KubeElasti supports only one trigger type - prometheus
. The metadata
section holds trigger...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~81-~81: There might be a problem here.
Context: ...etadata` section holds trigger-specific data: * query - the Prometheus query to evaluate * serverAddress...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~84-~84: There might be a mistake here.
Context: ... the Prometheus query to evaluate * serverAddress - address of the Prometheus server ...
(QB_NEW_EN_OTHER)
[grammar] ~85-~85: There might be a problem here.
Context: ... address of the Prometheus server * threshold - numeric threshold that triggers scale-down F...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~85-~85: Use correct spacing
Context: ...old** - numeric threshold that triggers scale-down For example, you can query the number o...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~88-~88: There might be a mistake here.
Context: ...onds, and if the value is below the threshold it scales the service to 0. An example...
(QB_NEW_EN_OTHER)
[grammar] ~88-~88: Use correct spacing
Context: ... the threshold it scales the service to 0. An example trigger is as follows: ```y...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~90-~90: Use correct spacing
Context: ...service to 0. An example trigger is as follows: yaml triggers: - type: prometheus metadata: query: sum(rate(nginx_ingress_controller_nginx_process_requests_total[1m])) or vector(0) serverAddress: http://kube-prometheus-stack-prometheus.monitoring.svc.cluster.local:9090 threshold: 0.5
Once the service is scaled down to 0, w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~101-~101: There might be a mistake here.
Context: ...ll scale up the service again since the min replicas is 1. Hence, KubeElasti needs ...
(QB_NEW_EN_OTHER)
[grammar] ~101-~101: Use correct spacing
Context: ...only supported autoscaler type is keda. yaml autoscaler: name: <autoscaler-object-name> type: keda
### When to scale up the service to 1 As s...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~109-~109: Use correct spacing
Context: ...`` ### When to scale up the service to 1 As soon as the service is scaled down t...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~111-~111: Use articles correctly
Context: ...me before the pod scaled up are held in memory of the elasti-resolver and are processe...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~111-~111: Use correct spacing
Context: ...olver and are processed once the pod is up. We can configure the cooldownPeriod
t...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~113-~113: Use the right verb tense
Context: ...ait after scaling up before considering scale down.
(QB_NEW_EN_OTHER_ERROR_IDS_13)
docs/src/dev-env.md
[grammar] ~1-~1: Use correct spacing
Context: # Dev Environment Setting up your development environment...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use correct spacing
Context: ... the project. Follow these steps to get started: ## 1. Get required tools Ensure you have ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: There might be a mistake here.
Context: ...eps to get started: ## 1. Get required tools Ensure you have the following tools ins...
(QB_NEW_EN_OTHER)
[grammar] ~7-~7: Use correct spacing
Context: ...ls Ensure you have the following tools installed: - Go: The programming language used for...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~15-~15: There might be a mistake here.
Context: ... Helps in working with the project. - Istio: Required to test the project with istio...
(QB_NEW_EN_OTHER)
[grammar] ~15-~15: There might be a mistake here.
Context: ...io:** Required to test the project with istio. Install from [istio.io](https://istio.i...
(QB_NEW_EN_OTHER)
[grammar] ~15-~15: There might be a mistake here.
Context: ...t the project with istio. Install from istio.io - k6: Required to load test the project....
(QB_NEW_EN_OTHER)
[grammar] ~16-~16: There might be a mistake here.
Context: ... to load test the project. Install from k6.io ## 2. Clone the Repos...
(QB_NEW_EN_OTHER)
[grammar] ~18-~18: Use correct spacing
Context: ...k6.io](https://k6.io/) ## 2. Clone the Repository Clone the KubeElasti repository from Gi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~20-~20: Use correct spacing
Context: ...ti repository from GitHub to your local machine: git clone https://github.com/truefoundry/KubeElasti.git cd KubeElasti
!!! tip "Make sure you check out the do...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~27-~27: Use colons correctly
Context: .../KubeElasti.git cd KubeElasti ``` !!! tip "Make sure you check out the documentat...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~27-~27: Use correct spacing
Context: ...ion and architecture before making your changes." ## 3. Repository Structure Understanding ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~29-~29: Use correct spacing
Context: ...making your changes." ## 3. Repository Structure Understanding the repository structure ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~31-~31: Use correct spacing
Context: ...of the key directories and files in the repository: . ├── LICENSE ├── Makefile ├── README.md ├── charts ├── docs ├── go.work ├── go.work.sum ├── kustomization.yaml ├── operator ├── pkg ├── playground ├── resolver └── test
### Main Modules: - ./operator
: Cont...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~50-~50: There might be a problem here.
Context: ...und ├── resolver └── test ``` ### Main Modules: - ./operator
: Contains the code for Kubernetes operat...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~52-~52: Use articles correctly
Context: ..../operator
: Contains the code for Kubernetes operator, created using kubebuilder. ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~52-~52: There might be a problem here.
Context: ... for Kubernetes operator, created using kubebuilder. . ├── Dockerfile ├── Makefile ├── api ├── cmd ├── config ├── go.mod ├── go.sum ├── internal └── test
- ./api
: Contains the folder named after the api...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~65-~65: Use commas correctly
Context: ...:** Contains the folder named after the apiVersion, and has custom resource type description...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~67-~67: There might be a mistake here.
Context: ...Kubernetes manifest files. - ./cmd
: Main files for the tool. - **`./inter...
(QB_NEW_EN_OTHER)
[grammar] ~68-~68: There might be a mistake here.
Context: ...n files for the tool. - ./internal
: Internal packages of the program. - *...
(QB_NEW_EN_OTHER)
[grammar] ~69-~69: There might be a mistake here.
Context: ...kages of the program. - ./Makefile
: Helps with working with the program. Us...
(QB_NEW_EN_OTHER)
[grammar] ~70-~70: There might be a mistake here.
Context: ...the available commands. - ./resolver
: Contains the code for resolver. - Fil...
(QB_NEW_EN_OTHER)
[grammar] ~71-~71: Use correct spacing
Context: ...e structure of it is similar to that of Operator. ### Other Directories: - **./playground
:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~73-~73: There might be a problem here.
Context: ...similar to that of Operator. ### Other Directories: - ./playground
: Code to setup a playground to try and t...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~75-~75: Use the right verb tense
Context: ...ctories: - ./playground
: Code to setup a playground to try and test KubeElasti...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~76-~76: There might be a mistake here.
Context: ...to try and test KubeElasti. - ./test
: Load testing scripts. - ./pkg
: Co...
(QB_NEW_EN_OTHER)
[grammar] ~77-~77: There might be a mistake here.
Context: ...st:** Load testing scripts. - **
./pkg`:** Common packages, shared via Operator an...
(QB_NEW_EN_OTHER)
[grammar] ~78-~78: There might be a mistake here.
Context: ...via Operator and Resolve. - ./charts
: Helm chart template. - ./docs
: De...
(QB_NEW_EN_OTHER)
[grammar] ~79-~79: There might be a mistake here.
Context: ...ts:** Helm chart template. - **
./docs`:** Detailed documentation on the HLD, LLD ...
(QB_NEW_EN_OTHER)
[grammar] ~79-~79: Add a comma
Context: ...`:** Detailed documentation on the HLD, LLD and Architecture of KubeElasti.
(QB_NEW_EN_OTHER_ERROR_IDS_22)
docs/src/architecture.md
[grammar] ~1-~1: Use correct spacing
Context: # KubeElasti Architecture KubeElasti comprises two main component...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~4-~4: Use correct spacing
Context: ...rises two main components: operator and resolver. - Controller/Operator: A Kubernetes con...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~6-~6: Use correct spacing
Context: ... resources and scales them to 0 or 1 as needed. - Resolver: A service that intercepts i...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~8-~8: Use correct spacing
Context: ...lasti-controller to scale up the target service. mermaid %% KubeElasti Architecture — Compact Layout flowchart TB %% ─── ZONES ─── subgraph Ingress Gateway[Gateway] end subgraph ControlPlane["KubeElasti"] Operator[Operator] Resolver[Resolver] end subgraph ElastiCRD["ElastiService CRD"] ESCRD((ElastiService<br>CRD)) end subgraph Endpoints EP([Endpoints]) EPS([EndpointSlices]) end LoadGen[[Load Generator]] TargetSVC{{Target‑SVC}} TargetSVC_PVT{{Target‑SVC<br>Private}} Pod[[target‑pod]] %% ─── Serve Mode ─── Gateway -->|1: traffic| TargetSVC LoadGen -->|1: traffic| TargetSVC TargetSVC -->|2: Serve Mode| EP --> EPS --> Pod %% ─── Proxy Mode ─── TargetSVC -->|7: Proxy Mode| EPS EPS -->|9: Req| Resolver Resolver -->|11: Proxy → Private SVC| TargetSVC_PVT -->|12: Deliver| Pod %% ─── Controller Logic ─── ESCRD -. "0: Watch CRD" .-> Operator Operator -. "0: Watch ScaleTargetRef" .-> Operator Operator -. "4: Target scaled to 0" .-> Operator Operator -. "4: Add resolver IPs" .-> EPS Operator -. "5: Watch resolver → slice" .-> Resolver Operator -. "6: Create private SVC" .-> TargetSVC_PVT Operator -. "7: Watch pub SVC → private" .-> TargetSVC Operator -. "12: Send traffic info" .-> Resolver Resolver -. "13: Scale up targetRef" .-> Operator Pod -. "3: Pod scaled to 0 (HPA/KEDA)" .-> Operator %% STYLES class Gateway,TargetSVC,TargetSVC_PVT,EP,EPS,Pod,LoadGen user class ESCRD required class Operator,Resolver control
## Operator Architecture ``` mermaid flo...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~69-~69: Use correct spacing
Context: ...ator,Resolver control ## Operator Architecture
mermaid flowchart LR %% === API === subgraph "API Layer" CRD["ElastiService CRD
api/v1alpha1"]:::core GroupVersion["Group/Version
groupversion_info.go"]:::core end %% === CONTROLLER === subgraph "Controller Layer" direction TB Reconciler["Reconciler
elastiservice_controller.go"]:::core Lifecycle["Lifecycle Mgmt
opsCRD.go"]:::core Deploy["Deploy Mgmt
opsDeployment.go"]:::core SVCs["Service Mgmt
opsServices.go"]:::core EPSlices["EndpointSlice Mgmt
opsEndpointslices.go"]:::core Rollouts["Rollout Mgmt
opsRollout.go"]:::core Modes["Mode Switching
opsModes.go"]:::core Informers["Informer Interface
opsInformer.go"]:::core end CRD -->|watches| Reconciler GroupVersion --> Reconciler Reconciler -->|manages| Deploy & SVCs & EPSlices & Rollouts & Modes Reconciler -->|uses| Informers %% === RESOURCE MGMT === subgraph "Resource Management" CRDReg["CRD Registry
crddirectory/"]:::core Server["ElastiServer
elastiserver/"]:::http Prom["Prometheus Client
prom/"]:::metrics end Reconciler -->|updates| CRDReg Server -->|scale requests| Reconciler Prom -->|collects| Reconciler %% === INFRASTRUCTURE === subgraph "Infrastructure & Boot" Main["Entry Point
main.go"]:::core InfMgr["Informer Manager
informer/"]:::core end Main -->|initializes| InfMgr -->|manages| Informers %% === OBSERVABILITY === subgraph "Observability" Metrics["/metrics endpoint"]:::metrics end Reconciler -->|exposes| Metrics Prom -->|scrapes| Metrics %% === DATA FLOW === subgraph "Scaling Logic" ScaleLogic["ScaleTargetFromZero"]:::core end Server -->|trigger scale| ScaleLogic Reconciler -->|syncs state| ScaleLogic %% === EXTERNAL === subgraph "External Dependencies" K8s["Kubernetes API
client-go"]:::external Kustomize["Kustomize"]:::external Sentry["Sentry"]:::external end Reconciler -->|uses| K8s Main --> Kustomize & Sentry ## Resolver Architecture
mermaid flo...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~146-~146: Use correct spacing
Context: ...-> Kustomize & Sentry ## Resolver Architecture
mermaid flowchart LR %% ── USER & ENTRY ───────────────────── User(("Client")) --> RP["Proxy
:8012"] --> Main["Main
cmd/main.go"] --> IS["Metrics
:8013"] %% ── K8s RESOURCES ──────────────────── subgraph K8s["K8s"] Deploy["Deployment"] --> SVC["Service"] Deploy --> Mon["Monitoring
configs"] end Main --> Deploy %% ── CORE MODULES ───────────────────── subgraph Mods["Core Modules"] Handler["Handler"]:::core Hosts["Hosts"]:::core Thr["Throttle"]:::core Oper["Operator Comm"]:::core Obs["Observability"]:::core end Main -- uses --> Handler & Hosts & Thr & Oper & Obs %% Request flow (compact arrows) Handler --> Hosts Handler --> Thr Thr --> Handler Handler --> Obs Handler -.-> Sentry["Sentry"] %% Operator comm Handler -.-> Oper Oper -.-> OpSvc["Operator Svc"] %% External deps Thr -.-> K8sAPI["K8s API"] Obs -.-> Prom["Prometheus"] ## Flow Description
mermaid graph LR ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~190-~190: Use correct spacing
Context: ...-.-> Prom["Prometheus"] ## Flow Description
mermaid graph LR A["Steady State(regular traffic flow)"] --> B["No Traffic, scale service to 0"] B --> C["New Incoming Traffic, scale service to 1"] C --> A ``` When we enable KubeElasti on a service,...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~199-~199: Use correct spacing
Context: ...on a service, the service operates in 3 modes: 1. Steady State: The service is receivin...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~204-~204: There might be a problem here.
Context: ... and can be scaled up to the configured minTargetReplicas. ### Steady state flow of requests to service In th...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~207-~207: There might be a problem here.
Context: ...as. ### Steady state flow of requests to service In this mode, all requests are handled ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~209-~209: Use articles correctly
Context: ...solver** doesn't come into the picture. KubeElasti controller keeps polling Prometheus wit...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~209-~209: Make sure you are using the right part of speech
Context: ...rometheus with the configured query and check the result with threshold value to see ...
(QB_NEW_EN_OTHER_ERROR_IDS_21)
[grammar] ~209-~209: Use articles correctly
Context: ...figured query and check the result with threshold value to see if the service can be scal...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~209-~209: Use correct spacing
Context: ...lue to see if the service can be scaled down. mermaid --- title: No incoming requests for the configured time period displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] C -->|Active| D[Pods] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -.->|Inactive| F E -->|Poll configured metric every 30 seconds to check if the service can be scaled to 0| S[Prometheus]
### Scale down to 0 when there are no reque...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~237-~237: There might be a mistake here.
Context: ... ### Scale down to 0 when there are no requests If the query from prometheus returns a ...
(QB_NEW_EN_OTHER)
[grammar] ~239-~239: Use the right verb tense
Context: ...ded to the KubeElasti resolver and then modified the Rollout/deployment to have 0 replic...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~239-~239: Use correct spacing
Context: ... Keda is configured with minReplicas as 1. mermaid --- title: No incoming requests for the configured time period displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -->|Active| F E -->|Scale replicas to 0| D C -.->|Inactive| D
### Scale up from 0 when the first request ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~266-~266: There might be a mistake here.
Context: ... Scale up from 0 when the first request arrives Since the service is scaled down to 0, ...
(QB_NEW_EN_OTHER)
[grammar] ~268-~268: Know when to use “that” and “which”
Context: ...e pods once the pod is up. The requests which came to KubeElasti Resolver are retried...
(QB_NEW_EN_OTHER_ERROR_IDS_3)
[style] ~268-~268: Consider using the more formal “until”.
Context: ...came to KubeElasti Resolver are retried till 5 mins and the response is sent back to...
(TILL)
[grammar] ~268-~268: There might be a mistake here.
Context: ... KubeElasti Resolver are retried till 5 mins and the response is sent back to the cl...
(QB_NEW_EN_OTHER)
[grammar] ~268-~268: There might be a mistake here.
Context: ...he client. If the pod takes more than 5 mins to come up, the request is dropped. ``...
(QB_NEW_EN_OTHER)
[grammar] ~268-~268: Use correct spacing
Context: ... than 5 mins to come up, the request is dropped. mermaid --- title: First request to pod arrives displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] C -.->|Inactive| F[0 Pods] subgraph Elasti Components D[Elasti Controller] E[Elasti Resolver] end C -->|Active| E E -->|Hold request in memory and forward once ready| F D -->|Scale replicas up from 0| F
mermaid --- title: State after the first replica is up displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User] -->|Request| B[Ingress] B --> C[Service] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -->|Active| G[Pods] E -->|Check metric if workload can be scaled to 0| H[Prometheus] C -.- |Inactive| F
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/dev-test-e2e.md
[grammar] ~1-~1: There might be a problem here.
Context: # End-to-End Testing Use the KUTTL framework to execute Elas...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~4-~4: Use correct spacing
Context: ...s end-to-end tests in a real Kubernetes environment: bash cd ./tests/e2e make setup # Sets up environment make test # Runs tests
For detailed information about the E2E ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~12-~12: Use correct spacing
Context: ...ation about the E2E test framework, see tests/e2e/README.md. ## Testing Flow The E2E testing pipeline ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~14-~14: Use correct spacing
Context: .../main/tests/e2e/README.md). ## Testing Flow The E2E testing pipeline follows these ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~16-~16: Use correct spacing
Context: ...testing pipeline follows these detailed steps: 1. Registry Setup 1. A Docker regist...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~19-~19: There might be a mistake here.
Context: ...p** 1. A Docker registry is started on port 5002
2. This registry will store the locally bui...
(QB_NEW_EN_OTHER)
[grammar] ~20-~20: There might be a mistake here.
Context: ...the locally built operator and resolver images 2. Kind Cluster Creation 1. A Kind c...
(QB_NEW_EN_OTHER)
[grammar] ~24-~24: There might be a mistake here.
Context: ...ration in kind-config.yaml
2. The registry is connected to the Kind network to all...
(QB_NEW_EN_OTHER)
[grammar] ~24-~24: There might be a mistake here.
Context: ...cted to the Kind network to allow image pulling 3. Image Building and Publishing 1. ...
(QB_NEW_EN_OTHER)
[grammar] ~28-~28: There might be a mistake here.
Context: ...ator and resolver images are built from source 2. Images are tagged and pushed to ...
(QB_NEW_EN_OTHER)
[grammar] ~29-~29: There might be a mistake here.
Context: ...ages are tagged and pushed to the local registry 4. Dependency Installation 1. **Isti...
(QB_NEW_EN_OTHER)
[grammar] ~32-~32: There might be a mistake here.
Context: ...he ingress gateway for routing external traffic 2. Prometheus: Installed for me...
(QB_NEW_EN_OTHER)
[grammar] ~33-~33: There might be a mistake here.
Context: ...s collection (without Grafana to reduce overhead) 3. KEDA: Installed for event-dr...
(QB_NEW_EN_OTHER)
[grammar] ~34-~34: There might be a mistake here.
Context: ... Installed for event-driven autoscaling capabilities 4. Elasti: The operator and CRD...
(QB_NEW_EN_OTHER)
[grammar] ~35-~35: There might be a mistake here.
Context: ...e operator and CRDs are installed using Helm 5. Test Initialization 1. Persistent...
(QB_NEW_EN_OTHER)
[grammar] ~38-~38: There might be a mistake here.
Context: ...s are applied via the kuttl-test.yaml
config 2. These resources are shared across all test ca...
(QB_NEW_EN_OTHER)
[grammar] ~39-~39: There might be a mistake here.
Context: ...se resources are shared across all test cases 6. Test Execution 1. Tests are execu...
(QB_NEW_EN_OTHER)
[grammar] ~42-~42: There might be a mistake here.
Context: ...cuted in order based on their numerical prefix 2. Each folder in the tests/
dire...
(QB_NEW_EN_OTHER)
[grammar] ~43-~43: There might be a mistake here.
Context: ...s/` directory represents an independent test 3. Each file within a test folder r...
(QB_NEW_EN_OTHER)
[grammar] ~44-~44: There might be a mistake here.
Context: ... a test folder represents steps of that test 4. Tests can run in parallel if ena...
(QB_NEW_EN_OTHER)
[grammar] ~45-~45: There might be a mistake here.
Context: ...with no cross-dependencies between test folders 7. Test Cleanup 1. Resources are cle...
(QB_NEW_EN_OTHER)
[grammar] ~48-~48: There might be a mistake here.
Context: ...esources are cleaned up after each test completes mermaid graph TD A[Start Registry:5002] --> B[Create Kind Cluster] B --> C[Build & Publish Images to Registry] C --> D[Install Dependencies] subgraph "Dependencies Setup" D --> D1[Install Istio Ingress] D --> D2[Install Prometheus] D --> D3[Install KEDA] D --> D4[Install Elasti] end D1 & D2 & D3 & D4 --> E[Apply KUTTL Config Resources] E --> F[Run KUTTL Tests] F --> G1[Test 00-Scenario-x] F --> Ga1[Test 01-Scenario-y] F --> Gb1[Test 02-Scenario-z] subgraph "Parallel 0 Test Execution" G1 --> G2[01-Step] G2 --> G3[02-Step] G3 --> G4[03-Step] end subgraph "Parallel 1 Test Execution" Ga1 --> Ga2[01-Step] Ga2 --> Ga3[02-Step] Ga3 --> Ga4[03-Step] end subgraph "Parallel 2 Test Execution" Gb1 --> Gb2[01-Step] Gb2 --> Gb3[02-Step] Gb3 --> Gb4[03-Step] end G4 --> H[Cleanup Resources] Ga4 --> H Gb4 --> H
## Test configuration The test configurat...
(QB_NEW_EN_OTHER)
[grammar] ~93-~93: Use correct spacing
Context: ... Ga4 --> H Gb4 --> H ``` ## Test configuration The test configuration is defined in th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~96-~96: Use correct spacing
Context: ...ault. This is the timeout for each test step. ## Testing Environment The testing enviro...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~98-~98: Use correct spacing
Context: ...timeout for each test step. ## Testing Environment The testing environment consists of: `...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~100-~100: Use correct spacing
Context: ...nment The testing environment consists of: mermaid flowchart TB subgraph "Kind Cluster" subgraph "elasti namespace" OP[Elasti Operator] CRD[Elasti CRDs] end subgraph "monitoring namespace" PROM[Prometheus Server] end subgraph "default namespace" D[Test Deployment] ES[ElastiService CR] TF[Traffic Generator] end PROM -- metrics --> OP OP -- monitors --> ES ES -- controls --> D TF -- generates traffic --> D end
## Adding New Tests To add a new test sce...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~127-~127: Use correct spacing
Context: ...raffic --> D end ``` ## Adding New Tests To add a new test scenario: 1. Create ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~129-~129: Use correct spacing
Context: ... ## Adding New Tests To add a new test scenario: 1. Create a new directory in the `tests/e2...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~132-~132: Use commas correctly
Context: ... 2. Define test steps with commands and assertions, in the directory using `-<step-n...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~132-~132: Use articles correctly
Context: ...mmands and assertions, in the directory using <number>-<step-name>.yaml
format. 3. ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~133-~133: There might be a mistake here.
Context: .... Add any supporting files or manifests needed 4. To run the test individually, use: ```b...
(QB_NEW_EN_OTHER)
[grammar] ~134-~134: Use correct spacing
Context: ...needed 4. To run the test individually, use: bash make test T=<number>-<test-name>
## KUTTL Test Files Structure KUTTL tests...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~139-~139: Use correct spacing
Context: ... ``` ## KUTTL Test Files Structure KUTTL tests follow a specific structure...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~141-~141: Use correct spacing
Context: ...tructure KUTTL tests follow a specific structure: bash tests/ └── 00-elasti-setup/ # Test case (folder named with numbered prefix) ├── 00-apply.yaml # First step - apply resources, created the required scenario. ├── 01-wait.yaml # Second step - wait for resources to be ready. └── 02-assert.yaml # Third step - assertion
- **Each directory represents an individual...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~151-~151: There might be a mistake here.
Context: ...Each directory represents an individual test** (This number doesn't determine order,...
(QB_NEW_EN_OTHER)
[grammar] ~151-~151: There might be a mistake here.
Context: ...l test** (This number doesn't determine order, that works only for steps inside the di...
(QB_NEW_EN_OTHER)
[grammar] ~151-~151: There might be a mistake here.
Context: ...r, that works only for steps inside the directory) - Each file within a test directory **...
(QB_NEW_EN_OTHER)
[grammar] ~152-~152: There might be a mistake here.
Context: ...t directory represents a step in that test - Steps follow naming convention with...
(QB_NEW_EN_OTHER)
[grammar] ~153-~153: Make sure to use plural and singular nouns correctly
Context: ...* - Steps follow naming convention with prefix 00-, 01-, etc. for execution ordering ...
(QB_NEW_EN_OTHER_ERROR_IDS_10)
[grammar] ~153-~153: There might be a mistake here.
Context: ...ith prefix 00-, 01-, etc. for execution ordering - For example, 00-assert.yaml
is ...
(QB_NEW_EN_OTHER)
[grammar] ~155-~155: Use articles correctly
Context: ...n. - Same doesn't apply for folders in tests/e2e/tests/
directory. We still ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~155-~155: Use correct spacing
Context: ...he same naming for them just to keep it consistent. ### Run Single Test ```bash make test T=00...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~157-~157: Use correct spacing
Context: ... to keep it consistent. ### Run Single Test bash make test T=00-elasti-setup
### Example Test Structure ```yaml # Test ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~163-~163: Use correct spacing
Context: ...T=00-elasti-setup ### Example Test Structure
yaml # Test step to assert elasti operator, resolver and target deployment are running, and if elasti service is in serve mode. apiVersion: apps/v1 kind: Deployment metadata: name: elasti-operator-controller-manager namespace: elasti status: readyReplicas: 1 --- apiVersion: apps/v1 kind: Deployment metadata: name: elasti-resolver namespace: elasti status: readyReplicas: 1 --- apiVersion: apps/v1 kind: Deployment metadata: name: target-deployment namespace: default status: readyReplicas: 1 --- apiVersion: elasti.truefoundry.com/v1alpha1 kind: ElastiService metadata: name: target-elastiservice namespace: default status: mode: serve ``` !!! tip Refer to [KUTTL Docs](http...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~200-~200: There might be a mistake here.
Context: ... default status: mode: serve ``` !!! tip Refer to [KUTTL Docs](https://kuttl.dev/...
(QB_NEW_EN_OTHER)
[grammar] ~201-~201: Use correct spacing
Context: ...ocs/testing/steps.html#format) for more information. ## Tips for Writing KUTTL Tests 1. **Nami...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~203-~203: There might be a problem here.
Context: ...information. ## Tips for Writing KUTTL Tests 1. Naming Convention: Use numerical prefixes wi...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~206-~206: There might be a mistake here.
Context: ...ch test folder should be independent of others 3. Use Timeouts Wisely: Set appropr...
(QB_NEW_EN_OTHER)
[grammar] ~207-~207: There might be a mistake here.
Context: ...e timeouts for operations that may take time 4. Resource Sharing: Put shared res...
(QB_NEW_EN_OTHER)
[grammar] ~208-~208: Use articles correctly
Context: ...esource Sharing**: Put shared resources in kuttl-test.yaml
commands section 5. *...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~208-~208: There might be a mistake here.
Context: ...resources in kuttl-test.yaml
commands section 5. Debugging: Use `kubectl kuttl te...
(QB_NEW_EN_OTHER)
[grammar] ~209-~209: Use a period to end declarative sentences
Context: ...--debug` for verbose output during test development
(QB_NEW_EN_OTHER_ERROR_IDS_25)
🪛 markdownlint-cli2 (0.17.2)
docs/src/comparisons.md
15-15: Files should end with a single newline character
(MD047, single-trailing-newline)
docs/src/dev-test-load.md
15-15: Files should end with a single newline character
(MD047, single-trailing-newline)
docs/src/dev-test-monitoring.md
24-24: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
docs/src/getting-started.md
15-15: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
docs/src/dev-playground.md
23-23: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
24-24: Multiple consecutive blank lines
Expected: 1; Actual: 3
(MD012, no-multiple-blanks)
25-25: Multiple consecutive blank lines
Expected: 1; Actual: 4
(MD012, no-multiple-blanks)
30-30: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
40-40: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
56-56: Bare URL used
(MD034, no-bare-urls)
75-75: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
87-87: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
96-96: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
105-105: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
116-116: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
124-124: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
130-130: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
136-136: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
docs/index.md
1-1: Inline HTML
Element: p
(MD033, no-inline-html)
1-1: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
2-2: Inline HTML
Element: img
(MD033, no-inline-html)
5-5: Inline HTML
Element: p
(MD033, no-inline-html)
6-6: Inline HTML
Element: a
(MD033, no-inline-html)
7-7: Inline HTML
Element: img
(MD033, no-inline-html)
7-7: Images should have alternate text (alt text)
(MD045, no-alt-text)
9-9: Inline HTML
Element: a
(MD033, no-inline-html)
10-10: Inline HTML
Element: img
(MD033, no-inline-html)
10-10: Images should have alternate text (alt text)
(MD045, no-alt-text)
18-18: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
19-19: Blank line inside blockquote
(MD028, no-blanks-blockquote)
43-43: Inline HTML
Element: div
(MD033, no-inline-html)
44-44: Inline HTML
Element: img
(MD033, no-inline-html)
44-44: Images should have alternate text (alt text)
(MD045, no-alt-text)
docs/src/integration-keda.md
1-1: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
6-6: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
7-7: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
18-18: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
26-26: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
docs/src/configure-elastiservice.md
3-3: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
36-36: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
39-39: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
51-51: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
56-56: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
57-57: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
58-58: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
59-59: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
62-62: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
63-63: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
65-65: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
72-72: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
74-74: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
75-75: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
76-76: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
80-80: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
83-83: Unordered list style
Expected: dash; Actual: asterisk
(MD004, ul-style)
84-84: Unordered list style
Expected: dash; Actual: asterisk
(MD004, ul-style)
85-85: Unordered list style
Expected: dash; Actual: asterisk
(MD004, ul-style)
113-113: Files should end with a single newline character
(MD047, single-trailing-newline)
docs/src/dev-env.md
22-22: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
33-33: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
50-50: Trailing punctuation in heading
Punctuation: ':'
(MD026, no-trailing-punctuation)
53-53: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
53-53: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
64-64: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
73-73: Trailing punctuation in heading
Punctuation: ':'
(MD026, no-trailing-punctuation)
docs/src/architecture.md
3-3: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
10-10: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
148-148: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
201-201: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
206-206: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
239-239: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
297-297: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/pkg)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/operator)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/resolver)
- GitHub Check: golangci-lint (/home/runner/work/KubeElasti/KubeElasti/operator)
- GitHub Check: Run Kuttl E2E Tests
🔇 Additional comments (2)
docs/stylesheets/extra.css (1)
603-617
: Low-contrast colour utility classes
.yellow { color: yellow; }
,.white { … }
, etc. on the default light theme yield < 3:1 contrast against--card-bg-light
(#fff). Consider using CSS variables mapped to theme-aware palette slots instead of literal colours to avoid accessibility regressions.mkdocs.yml (1)
102-105
: Looks good — lowercaseplugins
and singlesuperfences
entry are now correct
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.
Actionable comments posted: 3
♻️ Duplicate comments (3)
docs/src/architecture.md (3)
2-3
: Collapse consecutive blank lines after the H1 heading (MD012).
This exact issue was flagged earlier and is still present. Retain only a single blank line after the title.-# KubeElasti Architecture - - +# KubeElasti Architecture +
276-278
: Replace informal phrase “till 5 mins” with clearer wording.
Same feedback as a previous review: use “for up to five minutes” and drop the second “5 mins”.-The requests which came to KubeElasti Resolver are retried till 5 mins and the response is sent back to the client. If the pod takes more than 5 mins to come up, the request is dropped. +Requests reaching the KubeElasti resolver are retried for up to five minutes before a response is returned to the client. If the pod takes more than five minutes to become ready, the request is dropped.
157-158
: Remove the second blank line after “## Resolver Architecture”.
Two consecutive blank lines violate markdown-lint rule MD012 and add visual noise.-## Resolver Architecture - - +## Resolver Architecture +
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
docs/src/architecture.md
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/src/architecture.md
[grammar] ~1-~1: Use correct spacing
Context: # KubeElasti Architecture KubeElasti comprises two main component...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~4-~4: Use correct spacing
Context: ...rises two main components: operator and resolver. - Controller/Operator: A Kubernetes con...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~6-~6: Use correct spacing
Context: ... resources and scales them to 0 or 1 as needed. - Resolver: A service that intercepts i...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~8-~8: Use correct spacing
Context: ...lasti-controller to scale up the target service. mermaid graph TB %% ─────────────────────────── %% SUBGRAPHS (logical zones) %% ─────────────────────────── subgraph INGRESS [" "] Gateway[Gateway] end subgraph CONTROL_PLANE ["KubeElasti"] Operator[Operator] Resolver[Resolver] end LoadGen[Internal-load-generator-pod] subgraph ELASTI_CRD ["CRDs"] ESCRD((ElastiService<br>CRD)) end TargetSVC{Target-SVC} TargetSVC_PVT{Target‑SVC<br>Private} subgraph ENDPOINT ["Endpoints"] SVC_EP([target-SVC<br>endpoints]) SVC_EPS([target-SVC-y2b93<br>endpointSlice]) ResEPS([target-SVC-to-resolver<br>endpointSlice]) end %% ─────────────────────────── %% TRAFFIC FLOWS (solid) %% ─────────────────────────── Gateway -->|1: traffic| TargetSVC LoadGen -->|1: traffic| TargetSVC %% Serve‑mode path TargetSVC -->|2: Serve Mode| SVC_EP SVC_EP --> SVC_EPS SVC_EPS --> Pod %% Proxy‑mode path TargetSVC -->|7: Proxy Mode| ResEPS ResEPS -->|9: Req| Resolver Resolver -->|11: Send Proxy Request<br>once pod ready| TargetSVC_PVT TargetSVC_PVT -->|12: Send and Receive Req| Pod %% ─────────────────────────── %% OPERATOR / WATCH (dashed) %% ─────────────────────────── ESCRD -. "0: Watch CRD" .-> Operator Operator -. "0: Watch ScaleTargetRef" .-> Operator Operator -. "4: When target scaled to 0" .-> Operator Operator -. "4: Create + add resolver POD IPs" .-> ResEPS Operator -. "5: Watch Resolver → endpointslice" .-> Resolver Operator -. "6: Create PVT SVC" .-> TargetSVC_PVT Operator -. "7: Watch public SVC → private SVC" .-> TargetSVC Operator -. "12: Send Traffic Info" .-> Resolver Resolver -. "13: Scale ScaleTargetRef<br> and reverse 4,5" .-> Operator Pod -. "3: Pod scaled to 0 via HPA/KEDA" .-> Operator
## Operator Architecture ``` mermaid flo...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~79-~79: Use correct spacing
Context: ...PA/KEDA" .-> Operator ## Operator Architecture
mermaid flowchart LR %% === API === subgraph "API Layer" CRD["ElastiService CRD
api/v1alpha1"]:::core GroupVersion["Group/Version
groupversion_info.go"]:::core end %% === CONTROLLER === subgraph "Controller Layer" direction TB Reconciler["Reconciler
elastiservice_controller.go"]:::core Lifecycle["Lifecycle Mgmt
opsCRD.go"]:::core Deploy["Deploy Mgmt
opsDeployment.go"]:::core SVCs["Service Mgmt
opsServices.go"]:::core EPSlices["EndpointSlice Mgmt
opsEndpointslices.go"]:::core Rollouts["Rollout Mgmt
opsRollout.go"]:::core Modes["Mode Switching
opsModes.go"]:::core Informers["Informer Interface
opsInformer.go"]:::core end CRD -->|watches| Reconciler GroupVersion --> Reconciler Reconciler -->|manages| Deploy & SVCs & EPSlices & Rollouts & Modes Reconciler -->|uses| Informers %% === RESOURCE MGMT === subgraph "Resource Management" CRDReg["CRD Registry
crddirectory/"]:::core Server["ElastiServer
elastiserver/"]:::http Prom["Prometheus Client
prom/"]:::metrics end Reconciler -->|updates| CRDReg Server -->|scale requests| Reconciler Prom -->|collects| Reconciler %% === INFRASTRUCTURE === subgraph "Infrastructure & Boot" Main["Entry Point
main.go"]:::core InfMgr["Informer Manager
informer/"]:::core end Main -->|initializes| InfMgr -->|manages| Informers %% === OBSERVABILITY === subgraph "Observability" Metrics["/metrics endpoint"]:::metrics end Reconciler -->|exposes| Metrics Prom -->|scrapes| Metrics %% === DATA FLOW === subgraph "Scaling Logic" ScaleLogic["ScaleTargetFromZero"]:::core end Server -->|trigger scale| ScaleLogic Reconciler -->|syncs state| ScaleLogic %% === EXTERNAL === subgraph "External Dependencies" K8s["Kubernetes API
client-go"]:::external Kustomize["Kustomize"]:::external Sentry["Sentry"]:::external end Reconciler -->|uses| K8s Main --> Kustomize & Sentry ## Resolver Architecture
mermaid flo...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~156-~156: Use correct spacing
Context: ...-> Kustomize & Sentry ## Resolver Architecture
mermaid flowchart LR %% ── USER & ENTRY ───────────────────── User(("Client")) --> RP["Proxy
:8012"] --> Main["Main
cmd/main.go"] --> IS["Metrics
:8013"] %% ── K8s RESOURCES ──────────────────── subgraph K8s["K8s"] Deploy["Deployment"] --> SVC["Service"] Deploy --> Mon["Monitoring
configs"] end Main --> Deploy %% ── CORE MODULES ───────────────────── subgraph Mods["Core Modules"] Handler["Handler"]:::core Hosts["Hosts"]:::core Thr["Throttle"]:::core Oper["Operator Comm"]:::core Obs["Observability"]:::core end Main -- uses --> Handler & Hosts & Thr & Oper & Obs %% Request flow (compact arrows) Handler --> Hosts Handler --> Thr Thr --> Handler Handler --> Obs Handler -.-> Sentry["Sentry"] %% Operator comm Handler -.-> Oper Oper -.-> OpSvc["Operator Svc"] %% External deps Thr -.-> K8sAPI["K8s API"] Obs -.-> Prom["Prometheus"] ## Flow Description
mermaid graph LR ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~200-~200: Use correct spacing
Context: ...-.-> Prom["Prometheus"] ## Flow Description
mermaid graph LR A["Steady State(regular traffic flow)"] --> B["No Traffic, scale service to 0"] B --> C["New Incoming Traffic, scale service to 1"] C --> A ``` When we enable KubeElasti on a service,...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~209-~209: Use correct spacing
Context: ...on a service, the service operates in 3 modes: 1. Steady State: The service is receivin...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~214-~214: There might be a problem here.
Context: ... and can be scaled up to the configured minTargetReplicas. ### Steady state flow of requests to service In th...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~217-~217: There might be a problem here.
Context: ...as. ### Steady state flow of requests to service In this mode, all requests are handled ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~219-~219: Use articles correctly
Context: ...solver** doesn't come into the picture. KubeElasti controller keeps polling Prometheus wit...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~219-~219: Make sure you are using the right part of speech
Context: ...rometheus with the configured query and check the result with threshold value to see ...
(QB_NEW_EN_OTHER_ERROR_IDS_21)
[grammar] ~219-~219: Use articles correctly
Context: ...figured query and check the result with threshold value to see if the service can be scal...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~219-~219: Use correct spacing
Context: ...lue to see if the service can be scaled down. mermaid --- title: No incoming requests for the configured time period displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] C -->|Active| D[Pods] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -.->|Inactive| F E -->|Poll configured metric every 30 seconds to check if the service can be scaled to 0| S[Prometheus]
### Scale down to 0 when there are no reque...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~247-~247: There might be a mistake here.
Context: ... ### Scale down to 0 when there are no requests If the query from prometheus returns a ...
(QB_NEW_EN_OTHER)
[grammar] ~249-~249: Use the right verb tense
Context: ...ded to the KubeElasti resolver and then modified the Rollout/deployment to have 0 replic...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~249-~249: Use correct spacing
Context: ... Keda is configured with minReplicas as 1. mermaid --- title: No incoming requests for the configured time period displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -->|Active| F E -->|Scale replicas to 0| D C -.->|Inactive| D
### Scale up from 0 when the first request ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~276-~276: There might be a mistake here.
Context: ... Scale up from 0 when the first request arrives Since the service is scaled down to 0, ...
(QB_NEW_EN_OTHER)
[grammar] ~278-~278: Know when to use “that” and “which”
Context: ...e pods once the pod is up. The requests which came to KubeElasti Resolver are retried...
(QB_NEW_EN_OTHER_ERROR_IDS_3)
[style] ~278-~278: Consider using the more formal “until”.
Context: ...came to KubeElasti Resolver are retried till 5 mins and the response is sent back to...
(TILL)
[grammar] ~278-~278: There might be a mistake here.
Context: ... KubeElasti Resolver are retried till 5 mins and the response is sent back to the cl...
(QB_NEW_EN_OTHER)
[grammar] ~278-~278: There might be a mistake here.
Context: ...he client. If the pod takes more than 5 mins to come up, the request is dropped. ``...
(QB_NEW_EN_OTHER)
[grammar] ~278-~278: Use correct spacing
Context: ... than 5 mins to come up, the request is dropped. mermaid --- title: First request to pod arrives displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] C -.->|Inactive| F[0 Pods] subgraph Elasti Components D[Elasti Controller] E[Elasti Resolver] end C -->|Active| E E -->|Hold request in memory and forward once ready| F D -->|Scale replicas up from 0| F
mermaid --- title: State after the first replica is up displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User] -->|Request| B[Ingress] B --> C[Service] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -->|Active| G[Pods] E -->|Check metric if workload can be scaled to 0| H[Prometheus] C -.- |Inactive| F
(QB_NEW_EN_OTHER_ERROR_IDS_5)
🪛 markdownlint-cli2 (0.17.2)
docs/src/architecture.md
3-3: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
10-10: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
158-158: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
211-211: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
216-216: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
249-249: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
307-307: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Run Kuttl E2E Tests
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.
Actionable comments posted: 5
♻️ Duplicate comments (7)
docs/src/dev-env.md (4)
33-48
: Code-tree block should usetext
, notbash
Same comment as last round: this isn’t shell code, sobash
is misleading and breaks syntax highlighting.-```bash +```text . ├── LICENSE ... └── test -``` +```
53-64
: Second code-tree block: apply the same fix
The miniature tree under./operator
is also taggedbash
. Switch totext
(and keep blank lines before/after the fence to silence MD031).
73-73
: Heading still ends with punctuation
### Other Directories:
→### Other Directories
to satisfy MD026.
77-77
: Typo: “Resolve” → “Resolver”
The component name was corrected previously but has re-appeared here.docs/src/dev-test-e2e.md (1)
28-35
: Branding inconsistency: still refers to “Elasti”
Lines 28-35 mention “Elasti operator”, and inside the Mermaid diagram (lines 61-62) the dependency node is namedInstall Elasti
. Rename toKubeElasti
for uniform branding.docs/src/architecture.md (2)
2-3
: Remove the redundant blank line after the H1 heading (MD012).
Retain a single blank line to comply with markdown-lint.-# KubeElasti Architecture - - +# KubeElasti Architecture +
156-158
: Collapse multiple blank lines after the “Resolver Architecture” heading (MD012).-## Resolver Architecture - - +## Resolver Architecture +
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (6)
docs/src/architecture.md
(1 hunks)docs/src/dev-env.md
(1 hunks)docs/src/dev-playground.md
(1 hunks)docs/src/dev-test-e2e.md
(1 hunks)docs/src/dev-test-load.md
(1 hunks)docs/src/dev-test-monitoring.md
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/src/dev-test-load.md
[grammar] ~1-~1: Use correct spacing
Context: # Load testing ## 1. Update k6 tests Update `./test/l...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: There might be a mistake here.
Context: # Load testing ## 1. Update k6 tests Update ./test/load.js
to set your tar...
(QB_NEW_EN_OTHER)
[grammar] ~5-~5: Use correct spacing
Context: ... URL and adjust any other configuration values. ## 2. Run load.js Run the following co...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~7-~7: There might be a mistake here.
Context: ... other configuration values. ## 2. Run load.js Run the following command to run the te...
(QB_NEW_EN_OTHER)
[grammar] ~9-~9: There might be a problem here.
Context: ... Run the following command to run the test. bash chmod +x ./test/generate_load.sh cd ./test ./generate_load.sh
(QB_NEW_EN_MERGED_MATCH)
docs/src/dev-test-monitoring.md
[grammar] ~1-~1: There might be a problem here.
Context: # Test Monitoring bash # First, add the prometheus-community Helm repository. helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update # Install the kube-prometheus-stack chart. This chart includes Prometheus and Grafana. kubectl create namespace prometheus helm install prometheus-stack prometheus-community/kube-prometheus-stack -n prometheus # Port-forward to access the dashboard kubectl port-forward -n prometheus services/prometheus-stack-grafana 3000:80 # Get the admin user. kubectl get secret --namespace prometheus prometheus-stack-grafana -o jsonpath="{.data.admin-user}" | base64 --decode ; echo # Get the admin password. kubectl get secret --namespace prometheus prometheus-stack-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
After this, you can use [`./playground/...
(QB_NEW_EN_MERGED_MATCH)
docs/src/dev-env.md
[grammar] ~1-~1: Use correct spacing
Context: # Dev Environment Setting up your development environment...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use correct spacing
Context: ... the project. Follow these steps to get started: ## 1. Get required tools Ensure you have ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: There might be a mistake here.
Context: ...eps to get started: ## 1. Get required tools Ensure you have the following tools ins...
(QB_NEW_EN_OTHER)
[grammar] ~7-~7: Use correct spacing
Context: ...ls Ensure you have the following tools installed: - Go: The programming language used for...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~15-~15: There might be a mistake here.
Context: ... Helps in working with the project. - Istio: Required to test the project with istio...
(QB_NEW_EN_OTHER)
[grammar] ~15-~15: There might be a mistake here.
Context: ...io:** Required to test the project with istio. Install from [istio.io](https://istio.i...
(QB_NEW_EN_OTHER)
[grammar] ~15-~15: There might be a mistake here.
Context: ...t the project with istio. Install from istio.io - k6: Required to load test the project....
(QB_NEW_EN_OTHER)
[grammar] ~16-~16: There might be a mistake here.
Context: ... to load test the project. Install from k6.io ## 2. Clone the Repos...
(QB_NEW_EN_OTHER)
[grammar] ~18-~18: Use correct spacing
Context: ...k6.io](https://k6.io/) ## 2. Clone the Repository Clone the KubeElasti repository from Gi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~20-~20: Use correct spacing
Context: ...ti repository from GitHub to your local machine: bash git clone https://github.com/truefoundry/KubeElasti.git cd KubeElasti
!!! tip "Make sure you check out the do...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~27-~27: Use colons correctly
Context: .../KubeElasti.git cd KubeElasti ``` !!! tip "Make sure you check out the documentat...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~27-~27: Use correct spacing
Context: ...ion and architecture before making your changes." ## 3. Repository Structure Understanding ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~29-~29: Use correct spacing
Context: ...making your changes." ## 3. Repository Structure Understanding the repository structure ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~31-~31: Use correct spacing
Context: ...of the key directories and files in the repository: bash . ├── LICENSE ├── Makefile ├── README.md ├── charts ├── docs ├── go.work ├── go.work.sum ├── kustomization.yaml ├── operator ├── pkg ├── playground ├── resolver └── test
### Main Modules - ./operator
: Conta...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~50-~50: There might be a problem here.
Context: ...und ├── resolver └── test ``` ### Main Modules - ./operator
: Contains the code for Kubernetes operat...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~52-~52: Use articles correctly
Context: ..../operator
: Contains the code for Kubernetes operator, created using kubebuilder. ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~52-~52: There might be a problem here.
Context: ... for Kubernetes operator, created using kubebuilder. bash . ├── Dockerfile ├── Makefile ├── api ├── cmd ├── config ├── go.mod ├── go.sum ├── internal └── test
- ./api
: Contains the folder named after the api...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~65-~65: Use commas correctly
Context: ...:** Contains the folder named after the apiVersion, and has custom resource type description...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~67-~67: There might be a mistake here.
Context: ...Kubernetes manifest files. - ./cmd
: Main files for the tool. - **`./inter...
(QB_NEW_EN_OTHER)
[grammar] ~68-~68: There might be a mistake here.
Context: ...n files for the tool. - ./internal
: Internal packages of the program. - *...
(QB_NEW_EN_OTHER)
[grammar] ~69-~69: There might be a mistake here.
Context: ...kages of the program. - ./Makefile
: Helps with working with the program. Us...
(QB_NEW_EN_OTHER)
[grammar] ~70-~70: There might be a mistake here.
Context: ...the available commands. - ./resolver
: Contains the code for resolver. - Fil...
(QB_NEW_EN_OTHER)
[grammar] ~71-~71: Use correct spacing
Context: ...e structure of it is similar to that of Operator. ### Other Directories: - **./playground
:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~73-~73: There might be a problem here.
Context: ...similar to that of Operator. ### Other Directories: - ./playground
: Code to setup a playground to try and t...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~75-~75: Use the right verb tense
Context: ...ctories: - ./playground
: Code to setup a playground to try and test KubeElasti...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~76-~76: There might be a mistake here.
Context: ...to try and test KubeElasti. - ./test
: Load testing scripts. - ./pkg
: Co...
(QB_NEW_EN_OTHER)
[grammar] ~77-~77: There might be a mistake here.
Context: ...st:** Load testing scripts. - **
./pkg`:** Common packages, shared by Operator and...
(QB_NEW_EN_OTHER)
[grammar] ~78-~78: There might be a mistake here.
Context: ... by Operator and Resolve. - ./charts
: Helm chart template. - ./docs
: De...
(QB_NEW_EN_OTHER)
[grammar] ~79-~79: There might be a mistake here.
Context: ...ts:** Helm chart template. - **
./docs`:** Detailed documentation on the HLD, LLD ...
(QB_NEW_EN_OTHER)
[grammar] ~79-~79: Add a comma
Context: ...`:** Detailed documentation on the HLD, LLD and Architecture of KubeElasti.
(QB_NEW_EN_OTHER_ERROR_IDS_22)
docs/src/dev-test-e2e.md
[grammar] ~1-~1: There might be a problem here.
Context: # End-to-End Testing Use the KUTTL framework to execute Kube...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~4-~4: Use correct spacing
Context: ...i end-to-end tests in a real Kubernetes environment: bash cd ./tests/e2e make setup # Sets up environment make test # Runs tests
For detailed information about the E2E ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~12-~12: Use correct spacing
Context: ...ation about the E2E test framework, see tests/e2e/README.md. ## Testing Flow The E2E testing pipeline ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~14-~14: Use correct spacing
Context: .../main/tests/e2e/README.md). ## Testing Flow The E2E testing pipeline follows these ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~16-~16: Use correct spacing
Context: ...testing pipeline follows these detailed steps: 1. Registry Setup 1. A Docker regist...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~19-~19: There might be a mistake here.
Context: ...p** 1. A Docker registry is started on port 5002
2. This registry will store the locally bui...
(QB_NEW_EN_OTHER)
[grammar] ~20-~20: There might be a mistake here.
Context: ...the locally built operator and resolver images 2. Kind Cluster Creation 1. A Kind c...
(QB_NEW_EN_OTHER)
[grammar] ~24-~24: There might be a mistake here.
Context: ...ration in kind-config.yaml
2. The registry is connected to the Kind network to all...
(QB_NEW_EN_OTHER)
[grammar] ~24-~24: There might be a mistake here.
Context: ...cted to the Kind network to allow image pulling 3. Image Building and Publishing 1. ...
(QB_NEW_EN_OTHER)
[grammar] ~28-~28: There might be a mistake here.
Context: ...ator and resolver images are built from source 2. Images are tagged and pushed to ...
(QB_NEW_EN_OTHER)
[grammar] ~29-~29: There might be a mistake here.
Context: ...ages are tagged and pushed to the local registry 4. Dependency Installation 1. **Isti...
(QB_NEW_EN_OTHER)
[grammar] ~32-~32: There might be a mistake here.
Context: ...he ingress gateway for routing external traffic 2. Prometheus: Installed for me...
(QB_NEW_EN_OTHER)
[grammar] ~33-~33: There might be a mistake here.
Context: ...s collection (without Grafana to reduce overhead) 3. KEDA: Installed for event-dr...
(QB_NEW_EN_OTHER)
[grammar] ~34-~34: There might be a mistake here.
Context: ... Installed for event-driven autoscaling capabilities 4. KubeElasti: The operator and...
(QB_NEW_EN_OTHER)
[grammar] ~35-~35: There might be a mistake here.
Context: ...e operator and CRDs are installed using Helm 5. Test Initialization 1. Persistent...
(QB_NEW_EN_OTHER)
[grammar] ~38-~38: There might be a mistake here.
Context: ...s are applied via the kuttl-test.yaml
config 2. These resources are shared across all test ca...
(QB_NEW_EN_OTHER)
[grammar] ~39-~39: There might be a mistake here.
Context: ...se resources are shared across all test cases 6. Test Execution 1. Tests are execu...
(QB_NEW_EN_OTHER)
[grammar] ~42-~42: There might be a mistake here.
Context: ...cuted in order based on their numerical prefix 2. Each folder in the tests/
dire...
(QB_NEW_EN_OTHER)
[grammar] ~43-~43: There might be a mistake here.
Context: ...s/` directory represents an independent test 3. Each file within a test folder r...
(QB_NEW_EN_OTHER)
[grammar] ~44-~44: There might be a mistake here.
Context: ... a test folder represents steps of that test 4. Tests can run in parallel if ena...
(QB_NEW_EN_OTHER)
[grammar] ~45-~45: There might be a mistake here.
Context: ...with no cross-dependencies between test folders 7. Test Cleanup 1. Resources are cle...
(QB_NEW_EN_OTHER)
[grammar] ~48-~48: There might be a mistake here.
Context: ...esources are cleaned up after each test completes mermaid graph TD A[Start Registry:5002] --> B[Create Kind Cluster] B --> C[Build & Publish Images to Registry] C --> D[Install Dependencies] subgraph "Dependencies Setup" D --> D1[Install Istio Ingress] D --> D2[Install Prometheus] D --> D3[Install KEDA] D --> D4[Install Elasti] end D1 & D2 & D3 & D4 --> E[Apply KUTTL Config Resources] E --> F[Run KUTTL Tests] F --> G1[Test 00-Scenario-x] F --> Ga1[Test 01-Scenario-y] F --> Gb1[Test 02-Scenario-z] subgraph "Parallel 0 Test Execution" G1 --> G2[01-Step] G2 --> G3[02-Step] G3 --> G4[03-Step] end subgraph "Parallel 1 Test Execution" Ga1 --> Ga2[01-Step] Ga2 --> Ga3[02-Step] Ga3 --> Ga4[03-Step] end subgraph "Parallel 2 Test Execution" Gb1 --> Gb2[01-Step] Gb2 --> Gb3[02-Step] Gb3 --> Gb4[03-Step] end G4 --> H[Cleanup Resources] Ga4 --> H Gb4 --> H
## Test configuration The test configurat...
(QB_NEW_EN_OTHER)
[grammar] ~93-~93: Use correct spacing
Context: ... Ga4 --> H Gb4 --> H ``` ## Test configuration The test configuration is defined in th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~96-~96: Use correct spacing
Context: ...ault. This is the timeout for each test step. ## Testing Environment The testing enviro...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~98-~98: Use correct spacing
Context: ...timeout for each test step. ## Testing Environment The testing environment consists of: `...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~100-~100: Use correct spacing
Context: ...nment The testing environment consists of: mermaid flowchart TB subgraph "Kind Cluster" subgraph "elasti namespace" OP[Elasti Operator] CRD[Elasti CRDs] end subgraph "monitoring namespace" PROM[Prometheus Server] end subgraph "default namespace" D[Test Deployment] ES[ElastiService CR] TF[Traffic Generator] end PROM -- metrics --> OP OP -- monitors --> ES ES -- controls --> D TF -- generates traffic --> D end
## Adding New Tests To add a new test sce...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~127-~127: Use correct spacing
Context: ...raffic --> D end ``` ## Adding New Tests To add a new test scenario: 1. Create ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~129-~129: Use correct spacing
Context: ... ## Adding New Tests To add a new test scenario: 1. Create a new directory in the `tests/e2...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~132-~132: Use commas correctly
Context: ... 2. Define test steps with commands and assertions, in the directory using `-<step-n...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~132-~132: Use articles correctly
Context: ...mmands and assertions, in the directory using <number>-<step-name>.yaml
format. 3. ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~133-~133: There might be a mistake here.
Context: .... Add any supporting files or manifests needed 4. To run the test individually, use: ```b...
(QB_NEW_EN_OTHER)
[grammar] ~134-~134: Use correct spacing
Context: ...needed 4. To run the test individually, use: bash make test T=<number>-<test-name>
## KUTTL Test Files Structure KUTTL tests...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~139-~139: Use correct spacing
Context: ... ``` ## KUTTL Test Files Structure KUTTL tests follow a specific structure...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~141-~141: Use correct spacing
Context: ...tructure KUTTL tests follow a specific structure: bash tests/ └── 00-elasti-setup/ # Test case (folder named with numbered prefix) ├── 00-apply.yaml # First step - apply resources, created the required scenario. ├── 01-wait.yaml # Second step - wait for resources to be ready. └── 02-assert.yaml # Third step - assertion
- **Each directory represents an individual...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~151-~151: There might be a mistake here.
Context: ...Each directory represents an individual test** (This number doesn't determine order,...
(QB_NEW_EN_OTHER)
[grammar] ~151-~151: There might be a mistake here.
Context: ...l test** (This number doesn't determine order, that works only for steps inside the di...
(QB_NEW_EN_OTHER)
[grammar] ~151-~151: There might be a mistake here.
Context: ...r, that works only for steps inside the directory) - Each file within a test directory **...
(QB_NEW_EN_OTHER)
[grammar] ~152-~152: There might be a mistake here.
Context: ...t directory represents a step in that test - Steps follow naming convention with...
(QB_NEW_EN_OTHER)
[grammar] ~153-~153: Make sure to use plural and singular nouns correctly
Context: ...* - Steps follow naming convention with prefix 00-, 01-, etc. for execution ordering ...
(QB_NEW_EN_OTHER_ERROR_IDS_10)
[grammar] ~153-~153: There might be a mistake here.
Context: ...ith prefix 00-, 01-, etc. for execution ordering - For example, 00-assert.yaml
is ...
(QB_NEW_EN_OTHER)
[grammar] ~155-~155: Use articles correctly
Context: ...n. - Same doesn't apply for folders in tests/e2e/tests/
directory. We still ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~155-~155: Use correct spacing
Context: ...he same naming for them just to keep it consistent. ### Run Single Test ```bash make test T=00...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~157-~157: Use correct spacing
Context: ... to keep it consistent. ### Run Single Test bash make test T=00-elasti-setup
### Example Test Structure ```yaml # Test ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~163-~163: Use correct spacing
Context: ...T=00-elasti-setup ### Example Test Structure
yaml # Test step to assert elasti operator, resolver and target deployment are running, and if elasti service is in serve mode. apiVersion: apps/v1 kind: Deployment metadata: name: elasti-operator-controller-manager namespace: elasti status: readyReplicas: 1 --- apiVersion: apps/v1 kind: Deployment metadata: name: elasti-resolver namespace: elasti status: readyReplicas: 1 --- apiVersion: apps/v1 kind: Deployment metadata: name: target-deployment namespace: default status: readyReplicas: 1 --- apiVersion: elasti.truefoundry.com/v1alpha1 kind: ElastiService metadata: name: target-elastiservice namespace: default status: mode: serve ``` !!! tip Refer to [KUTTL Docs](http...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~200-~200: There might be a mistake here.
Context: ... default status: mode: serve ``` !!! tip Refer to [KUTTL Docs](https://kuttl.dev/...
(QB_NEW_EN_OTHER)
[grammar] ~201-~201: Use correct spacing
Context: ...ocs/testing/steps.html#format) for more information. ## Tips for Writing KUTTL Tests 1. **Nami...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~203-~203: There might be a problem here.
Context: ...information. ## Tips for Writing KUTTL Tests 1. Naming Convention: Use numerical prefixes wi...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~206-~206: There might be a mistake here.
Context: ...ch test folder should be independent of others 3. Use Timeouts Wisely: Set appropr...
(QB_NEW_EN_OTHER)
[grammar] ~207-~207: There might be a mistake here.
Context: ...e timeouts for operations that may take time 4. Resource Sharing: Put shared res...
(QB_NEW_EN_OTHER)
[grammar] ~208-~208: Use articles correctly
Context: ...esource Sharing**: Put shared resources in kuttl-test.yaml
commands section 5. *...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~208-~208: There might be a mistake here.
Context: ...resources in kuttl-test.yaml
commands section 5. Debugging: Use `kubectl kuttl te...
(QB_NEW_EN_OTHER)
[grammar] ~209-~209: Use a period to end declarative sentences
Context: ...--debug` for verbose output during test development
(QB_NEW_EN_OTHER_ERROR_IDS_25)
docs/src/dev-playground.md
[grammar] ~1-~1: Use correct spacing
Context: # Playground ## 1. Local Cluster If you don't already ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use correct spacing
Context: # Playground ## 1. Local Cluster If you don't already have a local Kuber...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: Add a comma
Context: ...ter, you can set one up using Minikube, Kind or Docker-Desktop: === "Kind" ```...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~5-~5: Use hyphens correctly
Context: ... can set one up using Minikube, Kind or Docker-Desktop: === "Kind" ``` bash kind crea...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~7-~7: Use correct spacing
Context: ... Minikube, Kind or Docker-Desktop: === "Kind" bash kind create cluster
=== "Minikube" ``` bash miniku...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~13-~13: Use correct spacing
Context: ...sh kind create cluster === "Minikube"
bash minikube start ``` === "Docker-Desktop" Enable it in ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~19-~19: Use hyphens correctly
Context: ...`` bash minikube start ``` === "Docker-Desktop" Enable it in Docker-Desktop ## 2....
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~23-~23: Use correct spacing
Context: ...ker-Desktop ## 2. Start a Local Docker Registry Run a local Docker registry container, ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~25-~25: Use commas correctly
Context: ...r Registry Run a local Docker registry container, to push our images locally and access th...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~25-~25: Use correct spacing
Context: ...r images locally and access them in our cluster. bash docker run -d -p 5001:5000 --name registry registry:2
!!! tip "Add registry to Minikube and K...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~31-~31: There might be a mistake here.
Context: ...000 --name registry registry:2 ``` !!! tip "Add registry to Minikube and Kind" Y...
(QB_NEW_EN_OTHER)
[grammar] ~31-~31: There might be a mistake here.
Context: ... !!! tip "Add registry to Minikube and Kind" You will need to add this registry to Mi...
(QB_NEW_EN_OTHER)
[grammar] ~32-~32: Use hyphens correctly
Context: ...his registry to Minikube and Kind. With Docker-Desktop, it is automatically picked up if runnin...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~32-~32: There might be a problem here.
Context: ...s automatically picked up if running in same context. !!! tip "Note" In MacOS, 5000 is no...
(QB_NEW_EN_MERGED_MATCH)
[style] ~33-~33: Using many exclamation marks might seem excessive (in this case: 6 exclamation marks for a text that’s 2145 characters long)
Context: ... picked up if running in same context. !!! tip "Note" In MacOS, 5000 is not av...
(EN_EXCESSIVE_EXCLAMATION)
[grammar] ~34-~34: There might be a mistake here.
Context: ...ked up if running in same context. !!! tip "Note" In MacOS, 5000 is not availabl...
(QB_NEW_EN_OTHER)
[grammar] ~34-~34: Use correct spacing
Context: ...running in same context. !!! tip "Note" In MacOS, 5000 is not available, so we use...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~35-~35: Use correct spacing
Context: ..., 5000 is not available, so we use 5001 instead. ## 3. [Optional] Install Ingress Controlle...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~38-~38: Use correct spacing
Context: ...ead. ## 3. [Optional] Install Ingress Controller === "NGINX" Install the NGINX In...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~40-~40: Use correct spacing
Context: ...tional] Install Ingress Controller === "NGINX" Install the NGINX Ingress Controller using Helm: bash helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update kubectl create namespace nginx helm install ingress-nginx ingress-nginx/ingress-nginx -n nginx
=== "Istio" ```shell # Down...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~52-~52: Use correct spacing
Context: ...elease from the official Istio website. curl -L https://istio.io/downloadIstio | sh ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~53-~53:
Context: ... -L https://istio.io/downloadIstio | sh - # Move it to home directory mv isti...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~54-~54: There might be a problem here.
Context: ...downloadIstio | sh - # Move it to home directory mv istio-x.xx.x ~/.istioctl export...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~55-~55: There might be a problem here.
Context: ...to home directory mv istio-x.xx.x ~/.istioctl export PATH=$HOME/.istioctl/bin:$PATH istioctl install --set profile=default -y # Label the namespace where you want to deploy your application to enable Istio sidecar Injection kubectl create namespace demo kubectl label namespace demo istio-injection=enabled # Create a gateway kubectl apply -f ./playground/config/gateway.yaml ``` ## 4. Deploy a demo service Run a demo ap...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~68-~68: There might be a mistake here.
Context: ...way.yaml ``` ## 4. Deploy a demo service Run a demo application in your cluster....
(QB_NEW_EN_OTHER)
[grammar] ~70-~70: Use correct spacing
Context: ...service Run a demo application in your cluster. bash kubectl create namespace demo kubectl apply -f ./playground/config/demo-application.yaml -n demo # Create a Virtual Service to expose the demo service if you are using istio kubectl apply -f ./playground/config/demo-virtualService.yaml -n demo
## 5. Build & Publish Resolver Go into th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~80-~80: Use correct spacing
Context: ...yaml -n demo ``` ## 5. Build & Publish Resolver Go into the resolver directory and run ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~82-~82: Use correct spacing
Context: ...directory and run the build and publish command. bash cd resolver make docker-build docker-push IMG=localhost:5001/elasti-resolver:v1alpha1
## 6. Build & Publish Operator Go into th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~89-~89: Use correct spacing
Context: ...ver:v1alpha1 ``` ## 6. Build & Publish Operator Go into the operator directory and run ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~91-~91: Use correct spacing
Context: ...directory and run the build and publish command. bash cd operator make docker-build docker-push IMG=localhost:5001/elasti-operator:v1alpha1
## 7. Deploy Locally Make sure you have c...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~98-~98: Use correct spacing
Context: ...sti-operator:v1alpha1 ``` ## 7. Deploy Locally Make sure you have configured the local...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~100-~100: Use correct spacing
Context: ...ollow below steps from the project home directory: bash kubectl create namespace elasti helm template elasti ./charts/elasti -n elasti -f ./playground/infra/elasti-demo-values.yaml | kubectl apply -f -
If you want to enable monitoring, pleas...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~107-~107: Use correct spacing
Context: ...e enableMonitoring
true in the values file. ## 8. Create ElastiService Resource Using...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~109-~109: There might be a problem here.
Context: ...toring` true in the values file. ## 8. Create ElastiService Resource Using the [ElastiService Definition](./...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~111-~111: Use articles correctly
Context: ...file for your service and apply it. For demo, we use the below manifest. ```bash kub...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~111-~111: Use correct spacing
Context: ...nd apply it. For demo, we use the below manifest. bash kubectl -n demo apply -f ./playground/config/demo-elastiService.yaml
## 9. Test the service ### 9.1 Create a w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~117-~117: There might be a mistake here.
Context: ...-elastiService.yaml ## 9. Test the service ### 9.1 Create a watch on the service
b...
(QB_NEW_EN_OTHER)
[grammar] ~119-~119: There might be a mistake here.
Context: ... service ### 9.1 Create a watch on the service bash kubectl -n demo get elastiservice httpbin -w
### 9.2 Scale down the service ```bash kub...
(QB_NEW_EN_OTHER)
[grammar] ~125-~125: Use correct spacing
Context: ... httpbin -w ### 9.2 Scale down the service
bash kubectl -n demo scale deployment httpbin --replicas=0 ### 9.3 Create a load on the service
ba...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~131-~131: There might be a mistake here.
Context: ...cas=0 ### 9.3 Create a load on the service
bash kubectl run -it --rm curl --image=alpine/curl -- http://httpbin.demo.svc.cluster.local/headers ``` You should see the target service pod g...
(QB_NEW_EN_OTHER)
[grammar] ~137-~137: Use articles correctly
Context: ...arget service pod getting scaled up and response from the new pod.
(QB_NEW_EN_OTHER_ERROR_IDS_11)
docs/src/architecture.md
[grammar] ~1-~1: Use correct spacing
Context: # KubeElasti Architecture KubeElasti comprises two main component...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~4-~4: Use correct spacing
Context: ...rises two main components: operator and resolver. - Controller/Operator: A Kubernetes con...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~6-~6: Use correct spacing
Context: ... resources and scales them to 0 or 1 as needed. - Resolver: A service that intercepts i...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~8-~8: Use correct spacing
Context: ...lasti-controller to scale up the target service. mermaid graph TB %% ─────────────────────────── %% SUBGRAPHS (logical zones) %% ─────────────────────────── subgraph INGRESS [" "] Gateway[Gateway] end subgraph CONTROL_PLANE ["KubeElasti"] Operator[Operator] Resolver[Resolver] end LoadGen[Internal-load-generator-pod] subgraph ELASTI_CRD ["CRDs"] ESCRD((ElastiService<br>CRD)) end TargetSVC{Target-SVC} TargetSVC_PVT{Target‑SVC<br>Private} subgraph ENDPOINT ["Endpoints"] SVC_EP([target-SVC<br>endpoints]) SVC_EPS([target-SVC-y2b93<br>endpointSlice]) ResEPS([target-SVC-to-resolver<br>endpointSlice]) end %% ─────────────────────────── %% TRAFFIC FLOWS (solid) %% ─────────────────────────── Gateway -->|1: traffic| TargetSVC LoadGen -->|1: traffic| TargetSVC %% Serve‑mode path TargetSVC -->|2: Serve Mode| SVC_EP SVC_EP --> SVC_EPS SVC_EPS --> Pod %% Proxy‑mode path TargetSVC -->|7: Proxy Mode| ResEPS ResEPS -->|9: Req| Resolver Resolver -->|11: Send Proxy Request<br>once pod ready| TargetSVC_PVT TargetSVC_PVT -->|12: Send and Receive Req| Pod %% ─────────────────────────── %% OPERATOR / WATCH (dashed) %% ─────────────────────────── ESCRD -. "0: Watch CRD" .-> Operator Operator -. "0: Watch ScaleTargetRef" .-> Operator Operator -. "4: When target scaled to 0" .-> Operator Operator -. "4: Create + add resolver POD IPs" .-> ResEPS Operator -. "5: Watch Resolver → endpointslice" .-> Resolver Operator -. "6: Create PVT SVC" .-> TargetSVC_PVT Operator -. "7: Watch public SVC → private SVC" .-> TargetSVC Operator -. "12: Send Traffic Info" .-> Resolver Resolver -. "13: Scale ScaleTargetRef<br> and reverse 4,5" .-> Operator Pod -. "3: Pod scaled to 0 via HPA/KEDA" .-> Operator
## Operator Architecture ``` mermaid flo...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~79-~79: Use correct spacing
Context: ...PA/KEDA" .-> Operator ## Operator Architecture
mermaid flowchart LR %% === API === subgraph "API Layer" CRD["ElastiService CRD
api/v1alpha1"]:::core GroupVersion["Group/Version
groupversion_info.go"]:::core end %% === CONTROLLER === subgraph "Controller Layer" direction TB Reconciler["Reconciler
elastiservice_controller.go"]:::core Lifecycle["Lifecycle Mgmt
opsCRD.go"]:::core Deploy["Deploy Mgmt
opsDeployment.go"]:::core SVCs["Service Mgmt
opsServices.go"]:::core EPSlices["EndpointSlice Mgmt
opsEndpointslices.go"]:::core Rollouts["Rollout Mgmt
opsRollout.go"]:::core Modes["Mode Switching
opsModes.go"]:::core Informers["Informer Interface
opsInformer.go"]:::core end CRD -->|watches| Reconciler GroupVersion --> Reconciler Reconciler -->|manages| Deploy & SVCs & EPSlices & Rollouts & Modes Reconciler -->|uses| Informers %% === RESOURCE MGMT === subgraph "Resource Management" CRDReg["CRD Registry
crddirectory/"]:::core Server["ElastiServer
elastiserver/"]:::http Prom["Prometheus Client
prom/"]:::metrics end Reconciler -->|updates| CRDReg Server -->|scale requests| Reconciler Prom -->|collects| Reconciler %% === INFRASTRUCTURE === subgraph "Infrastructure & Boot" Main["Entry Point
main.go"]:::core InfMgr["Informer Manager
informer/"]:::core end Main -->|initializes| InfMgr -->|manages| Informers %% === OBSERVABILITY === subgraph "Observability" Metrics["/metrics endpoint"]:::metrics end Reconciler -->|exposes| Metrics Prom -->|scrapes| Metrics %% === DATA FLOW === subgraph "Scaling Logic" ScaleLogic["ScaleTargetFromZero"]:::core end Server -->|trigger scale| ScaleLogic Reconciler -->|syncs state| ScaleLogic %% === EXTERNAL === subgraph "External Dependencies" K8s["Kubernetes API
client-go"]:::external Kustomize["Kustomize"]:::external Sentry["Sentry"]:::external end Reconciler -->|uses| K8s Main --> Kustomize & Sentry ## Resolver Architecture
mermaid flo...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~156-~156: Use correct spacing
Context: ...-> Kustomize & Sentry ## Resolver Architecture
mermaid flowchart LR %% ── USER & ENTRY ───────────────────── User(("Client")) --> RP["Proxy
:8012"] --> Main["Main
cmd/main.go"] --> IS["Metrics
:8013"] %% ── K8s RESOURCES ──────────────────── subgraph K8s["K8s"] Deploy["Deployment"] --> SVC["Service"] Deploy --> Mon["Monitoring
configs"] end Main --> Deploy %% ── CORE MODULES ───────────────────── subgraph Mods["Core Modules"] Handler["Handler"]:::core Hosts["Hosts"]:::core Thr["Throttle"]:::core Oper["Operator Comm"]:::core Obs["Observability"]:::core end Main -- uses --> Handler & Hosts & Thr & Oper & Obs %% Request flow (compact arrows) Handler --> Hosts Handler --> Thr Thr --> Handler Handler --> Obs Handler -.-> Sentry["Sentry"] %% Operator comm Handler -.-> Oper Oper -.-> OpSvc["Operator Svc"] %% External deps Thr -.-> K8sAPI["K8s API"] Obs -.-> Prom["Prometheus"] ## Flow Description
mermaid graph LR ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~200-~200: Use correct spacing
Context: ...-.-> Prom["Prometheus"] ## Flow Description
mermaid graph LR A["Steady State(regular traffic flow)"] --> B["No Traffic, scale service to 0"] B --> C["New Incoming Traffic, scale service to 1"] C --> A ``` When we enable KubeElasti on a service,...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~209-~209: Use correct spacing
Context: ...on a service, the service operates in 3 modes: 1. Steady State: The service is receivin...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~213-~213: There might be a problem here.
Context: ... and can be scaled up to the configured minTargetReplicas. ### Steady state flow of requests to service In th...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~215-~215: There might be a problem here.
Context: ...cas. ### Steady state flow of requests to service In this mode, all requests are handled ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~217-~217: Use correct spacing
Context: ...ecide whether the service can be scaled down. mermaid --- title: No incoming requests for the configured time period displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] C -->|Active| D[Pods] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -.->|Inactive| F E -->|Poll configured metric every 30 seconds to check if the service can be scaled to 0| S[Prometheus]
### Scale down to 0 when there are no reque...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~245-~245: There might be a mistake here.
Context: ... ### Scale down to 0 when there are no requests If the query from prometheus returns a ...
(QB_NEW_EN_OTHER)
[grammar] ~247-~247: Use correct spacing
Context: ...ice up, because KEDA is configured with minReplicas: 1
. mermaid --- title: No incoming requests for the configured time period displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -->|Active| F E -->|Scale replicas to 0| D C -.->|Inactive| D
### Scale up from 0 when the first request ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~274-~274: There might be a mistake here.
Context: ... Scale up from 0 when the first request arrives Since the service is scaled down to 0, ...
(QB_NEW_EN_OTHER)
[grammar] ~276-~276: There might be a mistake here.
Context: ...he client. If the pod takes more than 5 mins to come up, the request is dropped. ``...
(QB_NEW_EN_OTHER)
[grammar] ~276-~276: Use correct spacing
Context: ... than 5 mins to come up, the request is dropped. mermaid --- title: First request to pod arrives displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] C -.->|Inactive| F[0 Pods] subgraph Elasti Components D[Elasti Controller] E[Elasti Resolver] end C -->|Active| E E -->|Hold request in memory and forward once ready| F D -->|Scale replicas up from 0| F
mermaid --- title: State after the first replica is up displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User] -->|Request| B[Ingress] B --> C[Service] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -->|Active| G[Pods] E -->|Check metric if workload can be scaled to 0| H[Prometheus] C -.- |Inactive| F
(QB_NEW_EN_OTHER_ERROR_IDS_5)
🪛 markdownlint-cli2 (0.17.2)
docs/src/dev-env.md
53-53: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
64-64: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
73-73: Trailing punctuation in heading
Punctuation: ':'
(MD026, no-trailing-punctuation)
docs/src/dev-test-e2e.md
26-26: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
50-50: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
135-135: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
154-154: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
155-155: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
200-200: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
docs/src/dev-playground.md
3-3: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
10-10: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
docs/src/architecture.md
3-3: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
10-10: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
158-158: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
305-305: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: golangci-lint (/home/runner/work/KubeElasti/KubeElasti/operator)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/resolver)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/pkg)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/operator)
- GitHub Check: Run Kuttl E2E Tests
🔇 Additional comments (1)
docs/src/dev-test-load.md (1)
1-15
: All previous lint issues have been fixed — nice work
The heading hierarchy, fenced-code language tag, and trailing newline problems flagged in the earlier round are all resolved.
No further remarks from my side on this file.
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.
Actionable comments posted: 1
♻️ Duplicate comments (4)
docs/src/architecture.md (4)
1-3
: Still two blank lines after H1 (MD012)
Same issue was pointed out previously; one blank line is enough.-# KubeElasti Architecture - - +# KubeElasti Architecture +
155-157
: Remove extra blank line after “## Resolver Architecture” (MD012)
Keep a single blank line to stay lint-clean.-## Resolver Architecture - - +## Resolver Architecture +
246-246
: Capitalize “Prometheus” and tighten wording-If the query from prometheus returns a value less than the threshold, KubeElasti will scale down the service to 0. +If the Prometheus query returns a value below the threshold, KubeElasti scales the service down to zero.
275-275
: Consistent casing for KEDA and numeric style-It then resumes Keda to continue autoscaling in case there is a sudden burst of requests. It also changes the service to point to the actual service pods once the pod is up. Requests reaching the KubeElasti resolver are retried for up to five minutes before a response is returned to the client. If the pod takes more than 5 mins to come up, the request is dropped. +It then resumes KEDA to continue autoscaling in case of a sudden burst of requests. The service is updated to point to the actual pods once one becomes ready. Requests reaching the KubeElasti resolver are retried for up to five minutes before a response is returned to the client. If a pod takes longer than five minutes to become ready, the request is dropped.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (2)
docs/src/architecture.md
(1 hunks)mkdocs.yml
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/src/architecture.md
[grammar] ~1-~1: Use correct spacing
Context: # KubeElasti Architecture KubeElasti comprises two main component...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~4-~4: Use correct spacing
Context: ...rises two main components: operator and resolver. - Controller/Operator: A Kubernetes con...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~6-~6: Use correct spacing
Context: ... resources and scales them to 0 or 1 as needed. - Resolver: A service that intercepts i...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~8-~8: Use correct spacing
Context: ...lasti-controller to scale up the target service. mermaid graph LR %% ─────────────────────────── %% SUBGRAPHS (logical zones) %% ─────────────────────────── subgraph INGRESS [" "] Gateway[Gateway] end subgraph CONTROL_PLANE ["KubeElasti"] Operator[Operator] Resolver[Resolver] end LoadGen[Internal-load-generator-pod] subgraph ELASTI_CRD ["CRDs"] ESCRD((ElastiService<br>CRD)) end TargetSVC{Target-SVC} TargetSVC_PVT{Target‑SVC<br>Private} subgraph ENDPOINT ["Endpoints"] SVC_EP([target-SVC<br>endpoints]) SVC_EPS([target-SVC-y2b93<br>endpointSlice]) ResEPS([target-SVC-to-resolver<br>endpointSlice]) end %% ─────────────────────────── %% TRAFFIC FLOWS (solid) %% ─────────────────────────── Gateway -->|1: traffic| TargetSVC LoadGen -->|1: traffic| TargetSVC %% Serve‑mode path TargetSVC -->|2: Serve Mode| SVC_EP SVC_EP --> SVC_EPS SVC_EPS --> Pod %% Proxy‑mode path TargetSVC -->|7: Proxy Mode| ResEPS ResEPS -->|9: Req| Resolver Resolver -->|11: Send Proxy Request<br>once pod ready| TargetSVC_PVT TargetSVC_PVT -->|12: Send and Receive Req| Pod %% ─────────────────────────── %% OPERATOR / WATCH (dashed) %% ─────────────────────────── ESCRD -. "0: Watch CRD" .-> Operator Operator -. "0: Watch ScaleTargetRef" .-> Operator Operator -. "4: When target scaled to 0" .-> Operator Operator -. "4: Create + add resolver POD IPs" .-> ResEPS Operator -. "5: Watch Resolver → endpointslice" .-> Resolver Operator -. "6: Create PVT SVC" .-> TargetSVC_PVT Operator -. "7: Watch public SVC → private SVC" .-> TargetSVC Operator -. "12: Send Traffic Info" .-> Resolver Resolver -. "13: Scale ScaleTargetRef<br> and reverse 4,5" .-> Operator Pod -. "3: Pod scaled to 0 via HPA/KEDA" .-> Operator
## Operator Architecture ``` mermaid flo...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~78-~78: Use correct spacing
Context: ...PA/KEDA" .-> Operator ## Operator Architecture
mermaid flowchart LR %% === API === subgraph "API Layer" CRD["ElastiService CRD
api/v1alpha1"]:::core GroupVersion["Group/Version
groupversion_info.go"]:::core end %% === CONTROLLER === subgraph "Controller Layer" direction TB Reconciler["Reconciler
elastiservice_controller.go"]:::core Lifecycle["Lifecycle Mgmt
opsCRD.go"]:::core Deploy["Deploy Mgmt
opsDeployment.go"]:::core SVCs["Service Mgmt
opsServices.go"]:::core EPSlices["EndpointSlice Mgmt
opsEndpointslices.go"]:::core Rollouts["Rollout Mgmt
opsRollout.go"]:::core Modes["Mode Switching
opsModes.go"]:::core Informers["Informer Interface
opsInformer.go"]:::core end CRD -->|watches| Reconciler GroupVersion --> Reconciler Reconciler -->|manages| Deploy & SVCs & EPSlices & Rollouts & Modes Reconciler -->|uses| Informers %% === RESOURCE MGMT === subgraph "Resource Management" CRDReg["CRD Registry
crddirectory/"]:::core Server["ElastiServer
elastiserver/"]:::http Prom["Prometheus Client
prom/"]:::metrics end Reconciler -->|updates| CRDReg Server -->|scale requests| Reconciler Prom -->|collects| Reconciler %% === INFRASTRUCTURE === subgraph "Infrastructure & Boot" Main["Entry Point
main.go"]:::core InfMgr["Informer Manager
informer/"]:::core end Main -->|initializes| InfMgr -->|manages| Informers %% === OBSERVABILITY === subgraph "Observability" Metrics["/metrics endpoint"]:::metrics end Reconciler -->|exposes| Metrics Prom -->|scrapes| Metrics %% === DATA FLOW === subgraph "Scaling Logic" ScaleLogic["ScaleTargetFromZero"]:::core end Server -->|trigger scale| ScaleLogic Reconciler -->|syncs state| ScaleLogic %% === EXTERNAL === subgraph "External Dependencies" K8s["Kubernetes API
client-go"]:::external Kustomize["Kustomize"]:::external Sentry["Sentry"]:::external end Reconciler -->|uses| K8s Main --> Kustomize & Sentry ## Resolver Architecture
mermaid flo...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~155-~155: Use correct spacing
Context: ...-> Kustomize & Sentry ## Resolver Architecture
mermaid flowchart LR %% ── USER & ENTRY ───────────────────── User(("Client")) --> RP["Proxy
:8012"] --> Main["Main
cmd/main.go"] --> IS["Metrics
:8013"] %% ── K8s RESOURCES ──────────────────── subgraph K8s["K8s"] Deploy["Deployment"] --> SVC["Service"] Deploy --> Mon["Monitoring
configs"] end Main --> Deploy %% ── CORE MODULES ───────────────────── subgraph Mods["Core Modules"] Handler["Handler"]:::core Hosts["Hosts"]:::core Thr["Throttle"]:::core Oper["Operator Comm"]:::core Obs["Observability"]:::core end Main -- uses --> Handler & Hosts & Thr & Oper & Obs %% Request flow (compact arrows) Handler --> Hosts Handler --> Thr Thr --> Handler Handler --> Obs Handler -.-> Sentry["Sentry"] %% Operator comm Handler -.-> Oper Oper -.-> OpSvc["Operator Svc"] %% External deps Thr -.-> K8sAPI["K8s API"] Obs -.-> Prom["Prometheus"] ## Flow Description
mermaid graph LR ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~199-~199: Use correct spacing
Context: ...-.-> Prom["Prometheus"] ## Flow Description
mermaid graph LR A["Steady State(regular traffic flow)"] --> B["No Traffic, scale service to 0"] B --> C["New Incoming Traffic, scale service to 1"] C --> A ``` When we enable KubeElasti on a service,...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~208-~208: Use correct spacing
Context: ...on a service, the service operates in 3 modes: 1. Steady State: The service is receivin...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~212-~212: There might be a problem here.
Context: ... and can be scaled up to the configured minTargetReplicas. ### Steady state flow of requests to service In th...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~214-~214: There might be a problem here.
Context: ...cas. ### Steady state flow of requests to service In this mode, all requests are handled ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~216-~216: Use correct spacing
Context: ...ecide whether the service can be scaled down. mermaid --- title: No incoming requests for the configured time period displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] C -->|Active| D[Pods] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -.->|Inactive| F E -->|Poll configured metric every 30 seconds to check if the service can be scaled to 0| S[Prometheus]
### Scale down to 0 when there are no reque...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~244-~244: There might be a mistake here.
Context: ... ### Scale down to 0 when there are no requests If the query from prometheus returns a ...
(QB_NEW_EN_OTHER)
[grammar] ~246-~246: Use correct spacing
Context: ...ice up, because KEDA is configured with minReplicas: 1
. mermaid --- title: No incoming requests for the configured time period displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -->|Active| F E -->|Scale replicas to 0| D C -.->|Inactive| D
### Scale up from 0 when the first request ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~273-~273: There might be a mistake here.
Context: ... Scale up from 0 when the first request arrives Since the service is scaled down to 0, ...
(QB_NEW_EN_OTHER)
[grammar] ~275-~275: There might be a mistake here.
Context: ...he client. If the pod takes more than 5 mins to come up, the request is dropped. ``...
(QB_NEW_EN_OTHER)
[grammar] ~275-~275: Use correct spacing
Context: ... than 5 mins to come up, the request is dropped. mermaid --- title: First request to pod arrives displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] C -.->|Inactive| F[0 Pods] subgraph Elasti Components D[Elasti Controller] E[Elasti Resolver] end C -->|Active| E E -->|Hold request in memory and forward once ready| F D -->|Scale replicas up from 0| F
mermaid --- title: State after the first replica is up displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User] -->|Request| B[Ingress] B --> C[Service] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -->|Active| G[Pods] E -->|Check metric if workload can be scaled to 0| H[Prometheus] C -.- |Inactive| F
(QB_NEW_EN_OTHER_ERROR_IDS_5)
🪛 markdownlint-cli2 (0.17.2)
docs/src/architecture.md
3-3: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
157-157: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
304-304: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/resolver)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/operator)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/pkg)
- GitHub Check: Run Kuttl E2E Tests
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.
Actionable comments posted: 17
🔭 Outside diff range comments (3)
docs/src/gs-getting-started.md (2)
95-98
: Use the correct Kubernetes kind (Deployment
, singular).
scaleTargetRef.kind
must match the exact Kubernetes kind (Deployment
).
Usingdeployments
causes a validation error and the resource will be rejected.scaleTargetRef: apiVersion: apps/v1 - kind: deployments + kind: Deployment name: httpbin
142-143
: Rename “Elasti” → “KubeElasti” in the uninstall section.The remainder of the docs consistently use the new branding; keeping the old name here is confusing.
-To uninstall Elasti, **you will need to remove all the installed ElastiServices first.** +To uninstall KubeElasti, **you will need to remove all the installed ElastiServices first.**docs/src/gs-introduction.md (1)
82-83
: “checkout” → “check out”-Please checkout the comparison [here](comparisons.md) ... +Please check out the comparison [here](comparisons.md) ...
♻️ Duplicate comments (2)
docs/src/dev-env.md (1)
77-77
: Component name typo – should be “Resolver”The text still says Resolve; earlier feedback hasn’t been applied.
-**`./pkg`:** Common packages, shared by Operator and Resolve. +**`./pkg`:** Common packages, shared by Operator and Resolver.docs/src/message.md (1)
1-6
: Missing H1 heading & mermaid code fenceSame issue flagged previously: the diagram starts with an unlabeled fence, has no top-level heading, and no language identifier, breaking MD041 / MD040. Please add a
# KubeElasti Architecture
heading and wrap each diagram in ```mermaid fences.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (14)
.gitignore
(1 hunks)docs/index.md
(1 hunks)docs/src/arch-architecture.md
(1 hunks)docs/src/arch-flow.md
(1 hunks)docs/src/arch-operator.md
(1 hunks)docs/src/arch-resolver.md
(1 hunks)docs/src/dev-env.md
(1 hunks)docs/src/gs-configure-elastiservice.md
(1 hunks)docs/src/gs-getting-started.md
(5 hunks)docs/src/gs-introduction.md
(1 hunks)docs/src/gs-scalers.md
(1 hunks)docs/src/gs-triggers.md
(1 hunks)docs/src/message.md
(1 hunks)mkdocs.yml
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/src/gs-triggers.md
[grammar] ~1-~1: Use correct spacing
Context: # Triggers ## Trigger with Prometheus ElastiService ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use correct spacing
Context: # Triggers ## Trigger with Prometheus ElastiService uses Prometheus queries t...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: There might be a problem here.
Context: ...ow to create effective queries for your ElastiService configuration. ### Finding the Right Prometheus Query 1. ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~7-~7: Use correct spacing
Context: ...tion. ### Finding the Right Prometheus Query 1. Identify the Metric: First, determine...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~9-~9: Use colons correctly
Context: ...s your service activity. Common metrics include: - HTTP request rates (requests_total
, `reque...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~10-~10: There might be a mistake here.
Context: ...ates (requests_total
, request_count
) - Connection counts - Processing rates -...
(QB_NEW_EN_OTHER)
[grammar] ~11-~11: There might be a problem here.
Context: ...equest_count`) - Connection counts - Processing rates - Custom application metrics 2. **Access Promet...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~13-~13: There might be a problem here.
Context: ...essing rates - Custom application metrics 2. Access Prometheus UI: - Connect to yo...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~16-~16: There might be a mistake here.
Context: ...etheus instance (typically available at http://<prometheus-service>.<namespace>.svc.cluster.local:9090
) - For local development, you may need to port...
(QB_NEW_EN_OTHER)
[grammar] ~17-~17: Use correct spacing
Context: ... For local development, you may need to port-forward: kubectl port-forward svc/prometheus-server -n monitoring 9090:9090
3. Explore Available Metrics: - I...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~20-~20: There might be a mistake here.
Context: ...In the Prometheus UI, go to the "Graph" tab - Click on the "Insert metric at ...
(QB_NEW_EN_OTHER)
[grammar] ~21-~21: There might be a mistake here.
Context: ...ic at cursor" dropdown to see available metrics - Filter by typing part of your s...
(QB_NEW_EN_OTHER)
[grammar] ~22-~22: There might be a mistake here.
Context: ...- Filter by typing part of your service name 4. Test Your Query: - For HTTP req...
(QB_NEW_EN_OTHER)
[grammar] ~27-~27: There might be a mistake here.
Context: ... or vector(0)
to handle cases with no data 5. Visualize and Refine: - Execute...
(QB_NEW_EN_OTHER)
[grammar] ~30-~30: There might be a mistake here.
Context: ... - Execute the query in the Prometheus UI - Adjust the time range to see hi...
(QB_NEW_EN_OTHER)
[grammar] ~31-~31: There might be a mistake here.
Context: ...Adjust the time range to see historical patterns - Refine labels and functions unt...
(QB_NEW_EN_OTHER)
[grammar] ~32-~32: There might be a mistake here.
Context: ...nd functions until you get the expected results ### Example Queries === "NGINX Ingress Con...
(QB_NEW_EN_OTHER)
[grammar] ~34-~34: Use correct spacing
Context: ...u get the expected results ### Example Queries === "NGINX Ingress Controller Requests"...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~36-~36: Use correct spacing
Context: ... Queries === "NGINX Ingress Controller Requests" promql sum(rate(nginx_ingress_controller_requests_total{namespace="your-namespace", ingress="your-ingress"}[1m])) or vector(0)
=== "Istio Request Count" ```promq...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~42-~42: Use correct spacing
Context: ...r vector(0) === "Istio Request Count"
promql sum(rate(istio_requests_total{destination_service_name="your-service"}[1m])) or vector(0) ``` === "Custom Application Metric" ``...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~48-~48: Use correct spacing
Context: ...tor(0) === "Custom Application Metric"
promql sum(rate(app_metric_name{service="your-service"}[1m])) or vector(0) ``` ### Setting the Threshold The threshold
...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~54-~54: Use correct spacing
Context: ...) or vector(0) ``` ### Setting the Threshold The threshold
value in your ElastiSer...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~56-~56: Use correct spacing
Context: ...uration determines when scaling to zero occurs: - If your query returns the request rate ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~58-~58: There might be a mistake here.
Context: ...when fewer than 0.5 requests per second occur - For absolute counts, set the threshold acco...
(QB_NEW_EN_OTHER)
[grammar] ~59-~59: There might be a mistake here.
Context: ...hold accordingly (e.g., 5
for 5 total connections) - Consider setting a non-zero threshold (like `0.1...
(QB_NEW_EN_OTHER)
[grammar] ~60-~60: There might be a mistake here.
Context: ....1`) to provide a buffer before scaling down ### Complete Trigger Configuration Example ...
(QB_NEW_EN_OTHER)
[grammar] ~62-~62: Use correct spacing
Context: ...own ### Complete Trigger Configuration Example yaml triggers: - type: prometheus metadata: query: sum(rate(nginx_ingress_controller_requests_total{namespace="your-namespace", service="your-service"}[1m])) or vector(0) serverAddress: http://kube-prometheus-stack-prometheus.monitoring.svc.cluster.local:9090 threshold: 0.5
### Verifying Your Query Before applying y...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~73-~73: Use correct spacing
Context: ... threshold: 0.5 ``` ### Verifying Your Query Before applying your ElastiService conf...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~75-~75: Use correct spacing
Context: ...ery Before applying your ElastiService configuration: 1. Test the query in Prometheus UI during ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~77-~77: There might be a mistake here.
Context: ...heus UI during both active and inactive periods 2. Ensure it returns numeric values (no...
(QB_NEW_EN_OTHER)
[grammar] ~78-~78: There might be a mistake here.
Context: ...rns numeric values (not errors or empty results) 3. Verify the query captures all releva...
(QB_NEW_EN_OTHER)
[grammar] ~79-~79: There might be a mistake here.
Context: ...y captures all relevant traffic to your service 4. Check that the or vector(0)
fallba...
(QB_NEW_EN_OTHER)
[grammar] ~80-~80: There might be a mistake here.
Context: ...ctor(0)` fallback works when there's no data ### Common Query Patterns | Metric Source ...
(QB_NEW_EN_OTHER)
[grammar] ~82-~82: Use correct spacing
Context: ... when there's no data ### Common Query Patterns | Metric Source | Query Pattern | |----...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/gs-scalers.md
[grammar] ~7-~7: Use correct spacing
Context: ...ubeElasti takes care of scaling to/from zero. A setup is explained in the [getting st...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~9-~9: Use correct spacing
Context: ...e getting started guide. ## Scaling with KEDA KubeElasti takes care...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[style] ~13-~13: Consider using a different adjective in this context to strengthen your wording.
Context: ...e when there is some traffic. KEDA is a good candidate for performing the scaling lo...
(GOOD_ALTERNATIVE)
[grammar] ~13-~13: Use correct spacing
Context: ...minReplicas to maxReplicas based on its triggers. Here we will see how to integrate KubeE...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~15-~15: Use correct spacing
Context: ...i with KEDA to build a complete scaling solution. ## Prerequisites - Make sure you have gone...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~19-~19: Use hyphens correctly
Context: ...is integration. - KEDA installed in the cluster - [KEDA Installation](https://keda.sh/docs/...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~19-~19: There might be a problem here.
Context: ...- KEDA installed in the cluster - KEDA Installation ## Steps ### 1. Create a keda scaler for the service...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~23-~23: There might be a mistake here.
Context: ...ps ### 1. Create a keda scaler for the service Let's create a keda scaler for the http...
(QB_NEW_EN_OTHER)
[grammar] ~25-~25: Use correct spacing
Context: ...'s create a keda scaler for the httpbin service. shell kubectl apply -f ./playground/config/demo-application-keda.yaml
Note that the same prometheus query is ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~30-~30: Correctly pair commas and coordinating conjunctions
Context: ... started](getting-started.md) guide for ElastiService and the namespace is the same as the na...
(QB_NEW_EN_OTHER_ERROR_IDS_14)
[grammar] ~30-~30: Use correct spacing
Context: ...space that the ElastiService is created in. Refer to the [keda documentation](https...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~32-~32: Use correct spacing
Context: ...c/) for more details on configuring the ScaledObject. ### 2. Update ElastiService to work with th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~34-~34: Ensure spelling is correct
Context: ...guring the ScaledObject. ### 2. Update ElastiService to work with the keda scaler We will u...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~34-~34: There might be a mistake here.
Context: ...ate ElastiService to work with the keda scaler We will update the ElastiService to spe...
(QB_NEW_EN_OTHER)
[grammar] ~36-~36: Use correct spacing
Context: ...e following fields to the ElastiService object: yaml spec: autoscaler: name: httpbin-scaled-object type: keda
Patch the ElastiService object with the...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~44-~44: Use correct spacing
Context: ...the ElastiService object with the above changes. shell kubectl patch elastiservice httpbin-elasti -n elasti-demo -p '{"spec":{"autoscaler":{"name": "httpbin-scaled-object", "type": "keda"}}}' --type=merge
Now when KubeElasti scales down the ser...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~50-~50: Use correct spacing
Context: ...ales up the service, it will resume the ScaledObject. With these changes, KubeElasti can reli...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~52-~52: There might be a mistake here.
Context: ...wn the service to zero when there is no traffic while keda can handle the scaling logic...
(QB_NEW_EN_OTHER)
docs/src/arch-architecture.md
[grammar] ~1-~1: Use correct spacing
Context: # KubeElasti Architecture KubeElasti comprises two main component...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: Use correct spacing
Context: ...rises two main components: operator and resolver. - Controller/Operator: A Kubernetes con...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~7-~7: Use correct spacing
Context: ... resources and scales them to 0 or 1 as needed. - Resolver: A service that intercepts i...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~9-~9: Use correct spacing
Context: ...lasti-controller to scale up the target service. ## Architecture [Serve Mode] ```mermaid f...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~14-~14: Use correct spacing
Context: ...get service. ## Architecture [Serve Mode] mermaid flowchart TB %% === Zones === LoadGen[[Load Generator]] subgraph INGRESS ["Ingress"] Gateway[Gateway] end subgraph ElastiPlane ["KubeElasti"] Operator[Operator] Resolver[Resolver] end ESCRD((ElastiService CRD)) subgraph Triggers ["Triggers"] Prom{{Prometheus}} end %% subgraph ELASTI_CRD ["ElastiService CRD"] %% end subgraph Services TargetSVC{Target-SVC} end subgraph Endpoints SVC_EPS([EndpointSlice]) end Pod[[Target Pod]] %% === Traffic Flow === Gateway -->|1: traffic| TargetSVC LoadGen -->|1: traffic| TargetSVC TargetSVC -->|2: Serve Mode| SVC_EPS --> Pod %% === Operator Flow === ESCRD -. "0: Watch CRD" .-> Operator Operator -->|4: Scale to 0| Pod Operator -->|3: Poll configured metric every 30 seconds to check if the service can be scaled to 0| Triggers Operator -->|5: Switch to Proxy Mode| ESCRD
## Architecture [Proxy Mode] ```mermaid fl...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~62-~62: Use correct spacing
Context: ...Mode| ESCRD ## Architecture [Proxy Mode]
mermaid flowchart TB LoadGen[[Load Generator]] subgraph Ingress Gateway[Gateway] end subgraph CONTROL_PLANE ["KubeElasti"] Operator[Operator] Resolver[Resolver] end subgraph Services TargetSVC{Target-SVC} TargetSVC_PVT{Target-SVC-Private} end subgraph ENDPOINTS ["Endpoints"] ResEPS([to-resolver EndpointSlice]) end subgraph scalers ["scalers"] Keda{{"KEDA"}} HPA{{"HPA"}} end Pod[[Target Pod]] ESCRD((ElastiService CRD)) Gateway -->|1: traffic| TargetSVC LoadGen -->|1: traffic| TargetSVC TargetSVC -->|2: Proxy Mode| ResEPS %% === Proxy Flow === ResEPS -->|3: Req| Resolver Resolver -->|4: Proxy Request| TargetSVC_PVT TargetSVC_PVT-->|4: Send and Receive| Pod Resolver -. "5: Inform about the request" .-> Operator Operator -. "6: Map request to Target and send Target-SVC-Prive" .-> Resolver %% === Operator & Control Logic === Operator --> |7: Request for scale| scalers scalers --> |8: Scale to 1| Pod Operator -. "9: Watch if scaled to 1" .-> Pod Operator -. "10: Switch to Serve Mod" .-> ESCRD ```
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/gs-getting-started.md
[grammar] ~13-~13: There might be a mistake here.
Context: ...nstall ### 1. Install KubeElasti using helm Use Helm to install KubeElasti into you...
(QB_NEW_EN_OTHER)
[grammar] ~15-~15: Use correct spacing
Context: ...install KubeElasti into your Kubernetes cluster. bash helm install elasti oci://tfy.jfrog.io/tfy-helm/elasti --namespace elasti --create-namespace
Check out [values.yaml](https://github....
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~21-~21: Use correct spacing
Context: ...configuration options in the helm value file. ### 2. Verify the Installation Check the s...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~23-~23: Use correct spacing
Context: ...the helm value file. ### 2. Verify the Installation Check the status of your Helm release a...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~25-~25: Use correct spacing
Context: ...sure that the KubeElasti components are running: bash helm status elasti --namespace elasti kubectl get pods -n elasti
You will see 2 components running. 1. ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~107-~107: There might be a mistake here.
Context: ...`` ### 7. Apply the KubeElasti service configuration Apply the configuration to your Kuberne...
(QB_NEW_EN_OTHER)
[grammar] ~138-~138: There might be a problem here.
Context: ...r 5 (cooldownPeriod
in ElastiService) seconds. ## Uninstall To uninstall Elasti, **you will need to...
(QB_NEW_EN_MERGED_MATCH)
docs/src/arch-flow.md
[grammar] ~1-~1: There might be a problem here.
Context: # Flow Description mermaid graph TB A["Steady State (regular traffic flow)"] --> B["Scale to 0: No Traffic"] B --> C["Scale up from 0: New Incoming Traffic"] C --> A
When we enable KubeElasti on a service,...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~11-~11: Use correct spacing
Context: ...on a service, the service operates in 3 modes: 1. Steady State: The service is receivin...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~15-~15: Use correct spacing
Context: ... and can be scaled up to the configured minTargetReplicas. ## 1. Steady State: Flow of requests to ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~19-~19: Use correct spacing
Context: ...1. Steady State:* Flow of requests to service In this mode, all requests are handled ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~21-~21: Use correct spacing
Context: ...ecide whether the service can be scaled down. mermaid --- title: No incoming requests for the configured time period displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] C -->|Active| D[Pods] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -.->|Inactive| F E -->|Poll configured metric every 30 seconds to check if the service can be scaled to 0| S[Prometheus]
## 2. Scale Down to 0: when there are no...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~50-~50: Use correct spacing
Context: ...2. Scale Down to 0:** when there are no requests If the query from prometheus returns a ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~52-~52: There might be a problem here.
Context: ...ice up, because KEDA is configured with minReplicas: 1
. mermaid --- title: No incoming requests for the configured time period displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -->|Active| F E -->|Scale replicas to 0| D[Pods] C -.->|Inactive| D
### How it works? #### 1. Switching to Proxy ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~79-~79: There might be a problem here.
Context: ... C -.->|Inactive| D ``` ### How it works? #### 1. Switching to Proxy Mode This is how...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~81-~81: Use correct spacing
Context: ... it works? #### 1. Switching to Proxy Mode This is how we decide to switch to prox...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~83-~83: Use correct spacing
Context: ...his is how we decide to switch to proxy mode. mermaid sequenceDiagram loop Background Tasks Operator-->>ElastiCRD: Watch CRD for changes in ScaleTargetRef. Note right of Operator: Watch ScaleTargetRef and Triggers Operator-->>TargetService: Watch if ScaleTargetRef is scaled to 0 by <Br>any external component Operator-->>Prometheus: Poll configured metric every 30 seconds<br> to check if the ScaleTargetRef has not received any traffic Note right of Operator: If not traffic received for the configured <br> time period, Operator will switch to proxy mode. Operator->>TargetService: Scale replicas to 0 Operator->>ElastiCRD: Swtich to proxy mode. end
#### 2. Redirecting requests to resolver Thi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~102-~102: There might be a mistake here.
Context: ...d ``` #### 2. Redirecting requests to resolver This is how we redirect requests to resolver...
(QB_NEW_EN_OTHER)
[grammar] ~103-~103: Use correct spacing
Context: ...ver This is how we redirect requests to resolver. mermaid sequenceDiagram Note right of Operator: When in Proxy Mode Operator->>Endpointslice: Create Endpointslice for TargetService<br> which we want to point to resolver POD IPs loop Background Tasks Operator-->>Resolver: Watch Resolver POD IPs for changes Operator-->>Endpointslice: Update Endpointslice with new POD IPs end
#### 3. Sync Private Service to Public Servi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~119-~119: Use articles correctly
Context: ... Service This is how we send traffic to target pod, even if the public service is poin...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~119-~119: Use articles correctly
Context: ...en if the public service is pointing to resolver. We create a Private Service, as in Prox...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~135-~135: There might be a mistake here.
Context: ...ce. end ``` ## 3. Scale up from 0: when the first request arrives Since the se...
(QB_NEW_EN_OTHER)
[grammar] ~135-~135: There might be a mistake here.
Context: ...ale up from 0:** when the first request arrives Since the service is scaled down to 0, ...
(QB_NEW_EN_OTHER)
[grammar] ~137-~137: There might be a mistake here.
Context: ...he client. If the pod takes more than 5 mins to come up, the request is dropped. ``...
(QB_NEW_EN_OTHER)
[grammar] ~137-~137: There might be a problem here.
Context: ... than 5 mins to come up, the request is dropped. mermaid --- title: First request to pod arrives displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] C -.->|Inactive| F[0 Pods] subgraph Elasti Components D[Elasti Controller] E[Elasti Resolver] end C -->|Active| E E -->|Hold request in memory and forward once ready| F D -->|Scale replicas up from 0| F
mermaid --- title: State after the first replica is up displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User] -->|Request| B[Ingress] B --> C[Service] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -->|Active| G[Pods] E -->|Check metric if workload can be scaled to 0| H[Prometheus] C -.- |Inactive| F
### How it works? #### 1. Bring the pod up `...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~193-~193: There might be a problem here.
Context: ... C -.- |Inactive| F ### How it works? #### 1. Bring the pod up
mermaid sequenc...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~195-~195: There might be a mistake here.
Context: ...# How it works? #### 1. Bring the pod up mermaid sequenceDiagram Note right of Operator: When in Proxy Mode Gateway->>TargetService: 1. External or Internal traffic TargetService->>Resolver: 2. Forward request par Resolver->>Resolver: 3. Queue requests <br>in-memory (Req remains alive) Resolver->>Operator: 4. Inform about the incoming request end par Operator->>TargetService: 5. Scale up via HPA or KEDA Operator->>Resolver: 6. Send info about target private service end
#### 2. Resolving queued requests ```mermai...
(QB_NEW_EN_OTHER)
[grammar] ~215-~215: Use correct spacing
Context: ... end #### 2. Resolving queued requests
mermaid sequenceDiagram loop Resolver->>Pod: 7: Check if pod is up end par Resolver->>TargetSvcPvt: 8: Send proxy request TargetSvcPvt->>Pod: 9: Send & receive req end Note right of Resolver: Once pod is up, switch to serve mode ```
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/gs-configure-elastiservice.md
[style] ~34-~34: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...t with the namespace of the service. 3. Replace it with the min replicas to bring up wh...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~120-~120: ‘in memory of’ might be wordy. Consider a shorter alternative.
Context: ... came before the pod scaled up are held in memory of the elasti-resolver and are processed o...
(EN_WORDINESS_PREMIUM_IN_MEMORY_OF)
docs/src/arch-resolver.md
[grammar] ~1-~1: There might be a problem here.
Context: # Resolver Architecture mermaid flowchart LR %% ── USER & ENTRY ───────────────────── User(("Client")) --> RP["Proxy<br/>:8012"] --> Main["Main<br/>cmd/main.go"] --> IS["Metrics<br/>:8013"] %% ── K8s RESOURCES ──────────────────── subgraph K8s["K8s"] Deploy["Deployment"] --> SVC["Service"] Deploy --> Mon["Monitoring<br/>configs"] end Main --> Deploy %% ── CORE MODULES ───────────────────── subgraph Mods["Core Modules"] Handler["Handler"]:::core Hosts["Hosts"]:::core Thr["Throttle"]:::core Oper["Operator Comm"]:::core Obs["Observability"]:::core end Main -- uses --> Handler & Hosts & Thr & Oper & Obs %% Request flow (compact arrows) Handler --> Hosts Handler --> Thr Thr --> Handler Handler --> Obs Handler -.-> Sentry["Sentry"] %% Operator comm Handler -.-> Oper Oper -.-> OpSvc["Operator Svc"] %% External deps Thr -.-> K8sAPI["K8s API"] Obs -.-> Prom["Prometheus"]
## 1. Major Containers and Deployment Comp...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~44-~44: Use correct spacing
Context: ... ## 1. Major Containers and Deployment Components ### a. Main Application Container - **E...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~46-~46: There might be a problem here.
Context: ...t Components ### a. Main Application Container - Entry Point: cmd/main.go
- Responsibilities: - Initializes configuration from ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~51-~51: There might be a mistake here.
Context: .... - Configures observability tools: Sentry, Prometheus metrics. - Starts two HT...
(QB_NEW_EN_OTHER)
[grammar] ~57-~57: Use correct spacing
Context: ...etrics (/metrics
) and internal status (/queue-status
). ### b. Kubernetes Resources - **Deploym...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~59-~59: There might be a mistake here.
Context: ...(/queue-status
). ### b. Kubernetes Resources - Deployment: deployment.yaml
-...
(QB_NEW_EN_OTHER)
[grammar] ~62-~62: There might be a mistake here.
Context: ...rRole.yaml,
clusterRoleBinding.yaml,
monitor.yaml,
kustomization.yaml` - These resources...
(QB_NEW_EN_OTHER)
[grammar] ~63-~63: Use correct spacing
Context: ...sions, service exposure, and Prometheus monitoring. --- ## 2. Core Modules and Their Responsibilit...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~67-~67: Use correct spacing
Context: ...ing. --- ## 2. Core Modules and Their Responsibilities ### a. **Request Handling & Proxying (`inte...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~77-~77: Use correct spacing
Context: ...rics for each request (latency, status, errors). - Request Proxying (ProxyRequest
): ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~82-~82: Use correct spacing
Context: ...upport. - Handles errors and panics gracefully. - Response Writer (writer.go
): - ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~85-~85: Use correct spacing
Context: ...e status and body for metrics and error handling. ### b. **Host Management (`internal/hostman...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~94-~94: Use correct spacing
Context: ...e if missing, removes wildcards or path suffixes. ### c. **Throttling & Request Control (`int...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~99-~99: Use articles correctly
Context: ...Semaphore
(connection pooling). - Implements Try()
method: - Checks servic...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~99-~99: There might be a mistake here.
Context: ...tion pooling). - Implements Try()
method: - Checks service readiness via Kubernetes ...
(QB_NEW_EN_OTHER)
[grammar] ~104-~104: Avoid extra words
Context: ... queue sizes and service readiness with sync.Map
. - Uses transport.go
for connect...
(QB_NEW_EN_OTHER_ERROR_IDS_12)
[grammar] ~105-~105: Use correct spacing
Context: ...nection pooling with HTTP/2 and backoff dialing. - Breaker (breaker.go
): - Enforce...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~110-~110: Use correct spacing
Context: ...ts. - Fails fast if limits exceeded (ErrRequestQueueFull
). - Semaphore (semaphore.go
): - Man...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~115-~115: Use correct spacing
Context: ...annels and atomic operations for thread safety. ### d. **Operator Communication (`internal/...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~121-~121: Use correct spacing
Context: ... - Uses HTTP POST with JSON payload (messages.RequestCount
). ### e. **Metrics & Observability (`internal...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~123-~123: There might be a mistake here.
Context: ...nt). ### e. **Metrics & Observability (
internal/prom`)** - Defines Prometheus metrics: - H...
(QB_NEW_EN_OTHER)
[grammar] ~135-~135: Use correct spacing
Context: ...ic switching events. - Operator RPC calls. --- ## 3. External Dependencies & Integrations...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~139-~139: Use correct spacing
Context: ...ls. --- ## 3. External Dependencies & Integrations - Kubernetes API (k8shelper
): - C...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~141-~141: There might be a problem here.
Context: ...cies & Integrations - Kubernetes API (k8shelper
): - Checks if service endpoints are active. - ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~143-~143: Use articles correctly
Context: ...ice endpoints are active. - Used by throttler to determine service readiness. - **Ope...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~144-~144: Use articles correctly
Context: ...termine service readiness. - Operator Service: - RPC client communicates with oper...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~145-~145: Use articles correctly
Context: ...e**: - RPC client communicates with operator at `http://elasti-operator-controller-s...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~153-~153: There might be a problem here.
Context: ...st error reporting. - Transport Layer (transport.go
): - Custom HTTP transport supporting connection po...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~155-~155: Use correct spacing
Context: ...nsures efficient and resilient outbound connections. --- ## 4. Data & Control Flow ### a. **Reques...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~159-~159: Use correct spacing
Context: ...connections. --- ## 4. Data & Control Flow ### a. Request Lifecycle 1. **Incoming ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~161-~161: There might be a mistake here.
Context: .... Data & Control Flow ### a. Request Lifecycle 1. Incoming Request: - Receiv...
(QB_NEW_EN_OTHER)
[grammar] ~162-~162: There might be a mistake here.
Context: ... a. Request Lifecycle 1. Incoming Request: - Received by the reverse proxy ser...
(QB_NEW_EN_OTHER)
[grammar] ~164-~164: There might be a mistake here.
Context: ...oxy server (main.go
). - Passed to handler.ServeHTTP
. 2. Host Resolution: - `HostMa...
(QB_NEW_EN_OTHER)
[grammar] ~165-~165: There might be a mistake here.
Context: ...assed to handler.ServeHTTP
. 2. Host Resolution: - HostManager.GetHost
extracts host info from headers or URL patterns....
(QB_NEW_EN_OTHER)
[grammar] ~170-~170: Use articles correctly
Context: ...ion**: - If traffic is disabled for host, responds with 403. - Otherwise, asy...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~171-~171: Use articles correctly
Context: ... - Otherwise, asynchronously notifies operator of incoming request. 4. **Throttling & ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~171-~171: Use articles correctly
Context: ...se, asynchronously notifies operator of incoming request. 4. Throttling & Queueing: ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~179-~179: Use articles correctly
Context: ...t. - Forwards the request, captures response. 6. Metrics & Logging: - Records...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~181-~181: Insert the missing word
Context: ...ics & Logging**: - Records latency, status, errors. - Updates Prometheus metric...
(QB_NEW_EN_OTHER_ERROR_IDS_32)
[grammar] ~184-~184: Use correct spacing
Context: ...*: - Sends proxied response back to client. ### b. Host Traffic Management - Hosts ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~186-~186: Insert the missing word
Context: ... back to client. ### b. Host Traffic Management - Hosts can be disabled temporarily (...
(QB_NEW_EN_OTHER_ERROR_IDS_32)
[grammar] ~188-~188: Use correct spacing
Context: ...d dynamically based on URL patterns and headers. ### c. Operator Interaction - Sends min...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~190-~190: Insert the missing word
Context: ...atterns and headers. ### c. Operator Interaction - Sends minimal info about incoming r...
(QB_NEW_EN_OTHER_ERROR_IDS_32)
[grammar] ~193-~193: Use correct spacing
Context: ...ice. - Handles failures gracefully with retries. ### d. Metrics & Internal Monitoring - ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~195-~195: Insert the missing word
Context: ...h retries. ### d. Metrics & Internal Monitoring - Exposes internal metrics and status...
(QB_NEW_EN_OTHER_ERROR_IDS_32)
🪛 YAMLlint (1.37.1)
mkdocs.yml
[error] 137-137: too many blank lines (1 > 0)
(empty-lines)
🪛 markdownlint-cli2 (0.17.2)
docs/src/dev-env.md
53-53: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
64-64: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
73-73: Trailing punctuation in heading
Punctuation: ':'
(MD026, no-trailing-punctuation)
docs/src/gs-scalers.md
6-6: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
11-11: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
12-12: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
18-18: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
29-29: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
37-37: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
docs/src/message.md
1-1: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
1-1: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
68-68: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
69-69: Multiple consecutive blank lines
Expected: 1; Actual: 3
(MD012, no-multiple-blanks)
70-70: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
70-70: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
docs/src/arch-architecture.md
8-8: Inline HTML
Element: div
(MD033, no-inline-html)
8-8: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
9-9: Inline HTML
Element: div
(MD033, no-inline-html)
10-10: Inline HTML
Element: div
(MD033, no-inline-html)
12-12: Inline HTML
Element: h1
(MD033, no-inline-html)
14-14: Inline HTML
Element: p
(MD033, no-inline-html)
15-15: Inline HTML
Element: p
(MD033, no-inline-html)
16-16: Inline HTML
Element: br
(MD033, no-inline-html)
16-16: Inline HTML
Element: br
(MD033, no-inline-html)
17-17: Inline HTML
Element: b
(MD033, no-inline-html)
17-17: Inline HTML
Element: b
(MD033, no-inline-html)
17-17: Inline HTML
Element: b
(MD033, no-inline-html)
18-18: Inline HTML
Element: div
(MD033, no-inline-html)
19-19: Inline HTML
Element: a
(MD033, no-inline-html)
20-20: Inline HTML
Element: a
(MD033, no-inline-html)
23-23: Inline HTML
Element: div
(MD033, no-inline-html)
24-24: Inline HTML
Element: img
(MD033, no-inline-html)
39-39: Inline HTML
Element: div
(MD033, no-inline-html)
40-40: Inline HTML
Element: h2
(MD033, no-inline-html)
41-41: Inline HTML
Element: div
(MD033, no-inline-html)
42-42: Inline HTML
Element: div
(MD033, no-inline-html)
43-43: Inline HTML
Element: div
(MD033, no-inline-html)
44-44: Inline HTML
Element: h3
(MD033, no-inline-html)
45-45: Inline HTML
Element: p
(MD033, no-inline-html)
47-47: Inline HTML
Element: div
(MD033, no-inline-html)
48-48: Inline HTML
Element: div
(MD033, no-inline-html)
49-49: Inline HTML
Element: h3
(MD033, no-inline-html)
50-50: Inline HTML
Element: p
(MD033, no-inline-html)
52-52: Inline HTML
Element: div
(MD033, no-inline-html)
53-53: Inline HTML
Element: div
(MD033, no-inline-html)
54-54: Inline HTML
Element: h3
(MD033, no-inline-html)
55-55: Inline HTML
Element: p
(MD033, no-inline-html)
57-57: Inline HTML
Element: div
(MD033, no-inline-html)
58-58: Inline HTML
Element: div
(MD033, no-inline-html)
59-59: Inline HTML
Element: h3
(MD033, no-inline-html)
60-60: Inline HTML
Element: p
(MD033, no-inline-html)
62-62: Inline HTML
Element: div
(MD033, no-inline-html)
63-63: Inline HTML
Element: div
(MD033, no-inline-html)
64-64: Inline HTML
Element: h3
(MD033, no-inline-html)
65-65: Inline HTML
Element: p
(MD033, no-inline-html)
67-67: Inline HTML
Element: div
(MD033, no-inline-html)
68-68: Inline HTML
Element: div
(MD033, no-inline-html)
69-69: Inline HTML
Element: h3
(MD033, no-inline-html)
70-70: Inline HTML
Element: p
(MD033, no-inline-html)
76-76: Inline HTML
Element: div
(MD033, no-inline-html)
77-77: Inline HTML
Element: h2
(MD033, no-inline-html)
78-78: Inline HTML
Element: div
(MD033, no-inline-html)
79-79: Inline HTML
Element: div
(MD033, no-inline-html)
80-80: Inline HTML
Element: img
(MD033, no-inline-html)
82-82: Inline HTML
Element: div
(MD033, no-inline-html)
83-83: Inline HTML
Element: div
(MD033, no-inline-html)
84-84: Inline HTML
Element: div
(MD033, no-inline-html)
85-85: Inline HTML
Element: div
(MD033, no-inline-html)
86-86: Inline HTML
Element: h3
(MD033, no-inline-html)
87-87: Inline HTML
Element: p
(MD033, no-inline-html)
90-90: Inline HTML
Element: div
(MD033, no-inline-html)
91-91: Inline HTML
Element: div
(MD033, no-inline-html)
92-92: Inline HTML
Element: div
(MD033, no-inline-html)
93-93: Inline HTML
Element: h3
(MD033, no-inline-html)
94-94: Inline HTML
Element: p
(MD033, no-inline-html)
97-97: Inline HTML
Element: div
(MD033, no-inline-html)
98-98: Inline HTML
Element: div
(MD033, no-inline-html)
99-99: Inline HTML
Element: div
(MD033, no-inline-html)
100-100: Inline HTML
Element: h3
(MD033, no-inline-html)
101-101: Inline HTML
Element: p
(MD033, no-inline-html)
104-104: Inline HTML
Element: div
(MD033, no-inline-html)
105-105: Inline HTML
Element: div
(MD033, no-inline-html)
106-106: Inline HTML
Element: div
(MD033, no-inline-html)
107-107: Inline HTML
Element: h3
(MD033, no-inline-html)
108-108: Inline HTML
Element: p
(MD033, no-inline-html)
116-116: Inline HTML
Element: div
(MD033, no-inline-html)
117-117: Inline HTML
Element: h2
(MD033, no-inline-html)
118-118: Inline HTML
Element: div
(MD033, no-inline-html)
119-119: Inline HTML
Element: div
(MD033, no-inline-html)
120-120: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
120-120: Inline HTML
Element: pre
(MD033, no-inline-html)
120-120: Inline HTML
Element: code
(MD033, no-inline-html)
121-121: Inline HTML
Element: span
(MD033, no-inline-html)
122-122: Inline HTML
Element: span
(MD033, no-inline-html)
123-123: Inline HTML
Element: span
(MD033, no-inline-html)
124-124: Inline HTML
Element: span
(MD033, no-inline-html)
125-125: Inline HTML
Element: span
(MD033, no-inline-html)
127-127: Inline HTML
Element: span
(MD033, no-inline-html)
128-128: Inline HTML
Element: span
(MD033, no-inline-html)
130-130: Inline HTML
Element: span
(MD033, no-inline-html)
131-131: Inline HTML
Element: span
(MD033, no-inline-html)
132-132: Inline HTML
Element: span
(MD033, no-inline-html)
134-134: Inline HTML
Element: span
(MD033, no-inline-html)
docs/src/gs-getting-started.md
15-15: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
docs/src/arch-flow.md
15-15: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
148-148: Files should end with a single newline character
(MD047, single-trailing-newline)
docs/src/gs-configure-elastiservice.md
3-3: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
36-36: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
39-39: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
51-51: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
56-56: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
57-57: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
58-58: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
59-59: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
62-62: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
63-63: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
73-73: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
75-75: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
76-76: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
77-77: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
79-79: Inline HTML
Element: br
(MD033, no-inline-html)
83-83: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
86-86: Unordered list style
Expected: dash; Actual: asterisk
(MD004, ul-style)
87-87: Unordered list style
Expected: dash; Actual: asterisk
(MD004, ul-style)
88-88: Unordered list style
Expected: dash; Actual: asterisk
(MD004, ul-style)
104-104: Inline HTML
Element: br
(MD033, no-inline-html)
116-116: Inline HTML
Element: br
(MD033, no-inline-html)
122-122: Files should end with a single newline character
(MD047, single-trailing-newline)
docs/src/arch-operator.md
79-79: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
96-96: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
97-97: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
100-100: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
101-101: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
102-102: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
103-103: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
104-104: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
105-105: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
106-106: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
107-107: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
108-108: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
109-109: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
110-110: Inconsistent indentation for list items at the same level
Expected: 4; Actual: 2
(MD005, list-indent)
112-112: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
113-113: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
117-117: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
118-118: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
126-126: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
127-127: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
130-130: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
131-131: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
132-132: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
133-133: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
134-134: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
135-135: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
136-136: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
137-137: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
138-138: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
141-141: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
142-142: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
143-143: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
144-144: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
145-145: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
146-146: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
148-148: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
149-149: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
150-150: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
151-151: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
153-153: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
154-154: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
156-156: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
157-157: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
159-159: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
160-160: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
162-162: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
163-163: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
164-164: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
165-165: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
167-167: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
168-168: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
172-172: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
173-173: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
177-177: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
178-178: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
181-181: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
182-182: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
191-191: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
193-193: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
195-195: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
197-197: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
199-199: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
205-205: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
206-206: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
207-207: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
208-208: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
209-209: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
211-211: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
212-212: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
213-213: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
215-215: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
216-216: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
217-217: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
218-218: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
220-220: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
221-221: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
223-223: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
224-224: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
226-226: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
227-227: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
228-228: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
229-229: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
230-230: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
docs/src/arch-resolver.md
4-4: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
46-46: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
47-47: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
49-49: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
50-50: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
51-51: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
52-52: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
53-53: Unordered list indentation
Expected: 4; Actual: 8
(MD007, ul-indent)
54-54: Unordered list indentation
Expected: 6; Actual: 12
(MD007, ul-indent)
55-55: Unordered list indentation
Expected: 6; Actual: 12
(MD007, ul-indent)
56-56: Unordered list indentation
Expected: 4; Actual: 8
(MD007, ul-indent)
57-57: Unordered list indentation
Expected: 6; Actual: 12
(MD007, ul-indent)
59-59: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
60-60: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
69-69: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
70-70: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
71-71: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
72-72: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
73-73: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
74-74: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
75-75: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
76-76: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
77-77: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
80-80: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
81-81: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
82-82: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
85-85: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
87-87: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
88-88: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
89-89: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
90-90: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
91-91: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
92-92: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
93-93: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
94-94: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
96-96: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
97-97: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
98-98: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
99-99: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
100-100: Unordered list indentation
Expected: 4; Actual: 8
(MD007, ul-indent)
101-101: Unordered list indentation
Expected: 4; Actual: 8
(MD007, ul-indent)
102-102: Unordered list indentation
Expected: 4; Actual: 8
(MD007, ul-indent)
103-103: Unordered list indentation
Expected: 4; Actual: 8
(MD007, ul-indent)
104-104: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
105-105: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
108-108: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
109-109: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
110-110: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
113-113: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
114-114: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
115-115: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
117-117: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
118-118: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
119-119: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
120-120: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
121-121: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
123-123: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
124-124: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
125-125: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
126-126: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
127-127: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
128-128: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
129-129: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
131-131: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
132-132: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
133-133: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
134-134: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
135-135: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
142-142: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
143-143: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
145-145: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
146-146: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
148-148: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
149-149: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
151-151: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
152-152: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
154-154: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
155-155: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
161-161: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
162-162: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
186-186: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
187-187: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
190-190: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
191-191: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
195-195: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
196-196: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
🔇 Additional comments (3)
.gitignore (1)
13-15
:site/
addition looks good – thanks for following the earlier feedback.Adding the trailing slash makes the intent crystal-clear and prevents accidental ignores of any single file named
site
.
No further issues spotted in this hunk.mkdocs.yml (1)
75-77
: Verify colour name “black” – not an accepted Material palette key.Material’s palette expects named colours such as
indigo
,blue grey
,grey
.
black
isn’t recognised and will fall back to the default. Considergrey
or omit the line.docs/src/gs-triggers.md (1)
1-3
: Insert a blank line between top-level headings.This silences MD022/MD012 and keeps the document style consistent.
# Triggers -## Trigger with Prometheus + +## Trigger with PrometheusLikely an incorrect or invalid review comment.
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.
Actionable comments posted: 9
♻️ Duplicate comments (2)
docs/src/dev-env.md (1)
76-78
: Typo – correct module name to “Resolver”- - **`./pkg`:** Common packages, shared by Operator and Resolve. + - **`./pkg`:** Common packages, shared by Operator and Resolver.docs/src/arch-flow.md (1)
4-4
: Remove the space after the back-ticks to restore Mermaid renderingMkDocs’ Mermaid plugin requires the info-string
mermaid
to appear immediately after the openingfence. The leading space (`\`
mermaid`) prevents the diagrams from being parsed and they render as plain code blocks.-``` mermaid +```mermaidApply the same one-character fix at all locations listed above.
(This duplicates the earlier review that flagged the same issue.)Also applies to: 23-23, 55-55, 139-139, 167-167
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (6)
docs/index.md
(1 hunks)docs/src/arch-architecture.md
(1 hunks)docs/src/arch-flow.md
(1 hunks)docs/src/dev-env.md
(1 hunks)docs/src/gs-configure-elastiservice.md
(1 hunks)docs/src/gs-scalers.md
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/src/gs-scalers.md
[grammar] ~6-~6: Use correct spacing
Context: ...-- title: Scalers --- ## Scaling with HPA KubeElasti works seamlessly with the Ho...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~8-~8: Use correct spacing
Context: ...ubeElasti takes care of scaling to/from zero. A setup is explained in the [getting st...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~10-~10: Use correct spacing
Context: ...ting started](/src/gs-getting-started/) guide. ## Scaling with KEDA KubeElasti takes car...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~13-~13: Use correct spacing
Context: ...ting-started/) guide. ## Scaling with KEDA KubeElasti takes care of scaling up and...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[style] ~15-~15: Consider using a different adjective in this context to strengthen your wording.
Context: ...e when there is some traffic. KEDA is a good candidate for performing the scaling lo...
(GOOD_ALTERNATIVE)
[grammar] ~15-~15: Use correct spacing
Context: ...minReplicas to maxReplicas based on its triggers. Here we will see how to integrate KubeE...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~17-~17: There might be a problem here.
Context: ...i with KEDA to build a complete scaling solution. ## Prerequisites - Make sure you have gone through the [ge...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~22-~22: Use hyphens correctly
Context: ...is integration. - KEDA installed in the cluster - [KEDA Installation](https://keda.sh/docs/...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~22-~22: There might be a problem here.
Context: ...- KEDA installed in the cluster - KEDA Installation ## Steps ### 1. Create a keda scaler for the service...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~26-~26: There might be a mistake here.
Context: ...ps ### 1. Create a keda scaler for the service Let's create a keda scaler for the http...
(QB_NEW_EN_OTHER)
[grammar] ~28-~28: Use correct spacing
Context: ...'s create a keda scaler for the httpbin service. shell kubectl apply -f ./playground/config/demo-application-keda.yaml
Note that the same prometheus query is ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~33-~33: Correctly pair commas and coordinating conjunctions
Context: ...ed](/src/gs-getting-started/) guide for ElastiService and the namespace is the same as the na...
(QB_NEW_EN_OTHER_ERROR_IDS_14)
[grammar] ~33-~33: Use correct spacing
Context: ...space that the ElastiService is created in. Refer to the [keda documentation](https...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~35-~35: Use correct spacing
Context: ...c/) for more details on configuring the ScaledObject. ### 2. Update ElastiService to work with th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~37-~37: Ensure spelling is correct
Context: ...guring the ScaledObject. ### 2. Update ElastiService to work with the keda scaler We will u...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~37-~37: There might be a mistake here.
Context: ...ate ElastiService to work with the keda scaler We will update the ElastiService to spe...
(QB_NEW_EN_OTHER)
[grammar] ~39-~39: Use correct spacing
Context: ...e following fields to the ElastiService object: yaml spec: autoscaler: name: httpbin-scaled-object type: keda
Patch the ElastiService object with the...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~47-~47: Use correct spacing
Context: ...the ElastiService object with the above changes. shell kubectl patch elastiservice httpbin-elasti -n elasti-demo -p '{"spec":{"autoscaler":{"name": "httpbin-scaled-object", "type": "keda"}}}' --type=merge
Now when KubeElasti scales down the ser...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~53-~53: Use correct spacing
Context: ...ales up the service, it will resume the ScaledObject. With these changes, KubeElasti can reli...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~55-~55: There might be a mistake here.
Context: ...wn the service to zero when there is no traffic while keda can handle the scaling logic...
(QB_NEW_EN_OTHER)
docs/src/arch-architecture.md
[grammar] ~1-~1: Use correct spacing
Context: # KubeElasti Architecture KubeElasti comprises two main component...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: Use correct spacing
Context: ...rises two main components: operator and resolver. - Controller/Operator: A Kubernetes con...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~7-~7: Use correct spacing
Context: ... resources and scales them to 0 or 1 as needed. - Resolver: A service that intercepts i...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~9-~9: Use correct spacing
Context: ...lasti-controller to scale up the target service. ## Architecture [Serve Mode] ```mermaid f...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~14-~14: Use correct spacing
Context: ...get service. ## Architecture [Serve Mode] mermaid flowchart TB %% === Zones === LoadGen[[Load Generator]] subgraph INGRESS ["Ingress"] Gateway[Gateway] end subgraph ElastiPlane ["KubeElasti"] Operator[Operator] Resolver[Resolver] end ESCRD((ElastiService CRD)) subgraph Triggers ["Triggers"] Prom{{Prometheus}} end %% subgraph ELASTI_CRD ["ElastiService CRD"] %% end subgraph Services TargetSVC{Target-SVC} end subgraph Endpoints SVC_EPS([EndpointSlice]) end Pod[[Target Pod]] %% === Traffic Flow === Gateway -->|1: traffic| TargetSVC LoadGen -->|1: traffic| TargetSVC TargetSVC -->|2: Serve Mode| SVC_EPS --> Pod %% === Operator Flow === ESCRD -. "0: Watch CRD" .-> Operator Operator -->|4: Scale to 0| Pod Operator -->|3: Poll configured metric every 30 seconds to check if the service can be scaled to 0| Triggers Operator -->|5: Patch CRD to Proxy Mode| ESCRD
## Architecture [Proxy Mode] ```mermaid fl...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~62-~62: Use correct spacing
Context: ...Mode| ESCRD ## Architecture [Proxy Mode]
mermaid flowchart TB LoadGen[[Load Generator]] subgraph Ingress Gateway[Gateway] end subgraph CONTROL_PLANE ["KubeElasti"] Operator[Operator] Resolver[Resolver] end subgraph Services TargetSVC{Target-SVC} TargetSVC_PVT{Target-SVC-Private} end subgraph ENDPOINTS ["Endpoints"] ResEPS([to-resolver EndpointSlice]) end subgraph scalers ["scalers"] Keda{{"KEDA"}} HPA{{"HPA"}} end Pod[[Target Pod]] ESCRD((ElastiService CRD)) Gateway -->|1: traffic| TargetSVC LoadGen -->|1: traffic| TargetSVC TargetSVC -->|2: Proxy Mode| ResEPS %% === Proxy Flow === ResEPS -->|3: Req| Resolver Resolver -->|4: Proxy Request| TargetSVC_PVT TargetSVC_PVT-->|4: Send and Receive| Pod Resolver -. "5: Inform about the request" .-> Operator Operator -. "6: Map request to Target and send Target-SVC-Prive" .-> Resolver %% === Operator & Control Logic === Operator --> |7: Request for scale| scalers scalers --> |8: Scale to 1| Pod Operator -. "9: Watch if scaled to 1" .-> Pod Operator -. "10: Switch to Serve Mod" .-> ESCRD ```
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/index.md
[grammar] ~147-~147: There might be a mistake here.
Context: ...You just created a scale-to-zero service
KubeElasti is easy to set up and configure. Follow our step-by-step guide to get started.
Full Installation GuideJoin Our Community
Get help, share your experience, and contribute to KubeElasti
Ready to optimize your Kubernetes resources?
Get Started with KubeElasti(QB_NEW_EN_OTHER)
docs/src/gs-configure-elastiservice.md
[grammar] ~1-~1: Use correct spacing
Context: # Configure ElastiService To enable scale to 0 on any deployment,...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use correct spacing
Context: ... ElastiService custom resource for that deployment. An ElastiService custom resource has th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: Use correct spacing
Context: ...rvice custom resource has the following structure: yaml title="elasti-service.yaml" linenums="1" apiVersion: elasti.truefoundry.com/v1alpha1 kind: ElastiService metadata: name: <service-name> # (1) namespace: <service-namespace> # (2) spec: minTargetReplicas: <min-target-replicas> # (3) service: <service-name> cooldownPeriod: <cooldown-period> # (4) scaleTargetRef: apiVersion: <apiVersion> # (5) kind: <kind> # (6) name: <deployment-or-rollout-name> # (7) triggers: - type: <trigger-type> # (8) metadata: query: <query> # (9) serverAddress: <server-address> # (10) threshold: <threshold> # (11) autoscaler: name: <autoscaler-object-name> type: <autoscaler-type>
1. Replace it with the service you want ma...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[style] ~34-~34: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...t with the namespace of the service. 3. Replace it with the min replicas to bring up wh...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~34-~34: Make sure you are using the right part of speech
Context: ... of the service. 3. Replace it with the min replicas to bring up when first request...
(QB_NEW_EN_OTHER_ERROR_IDS_21)
[grammar] ~34-~34: Use articles correctly
Context: ... with the min replicas to bring up when first request arrives. Minimum: 1 4. Replace ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~35-~35: Use the right verb tense
Context: ...ait after scaling up before considering scale down. Default: 900 seconds (15 minutes)...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~36-~36: Use hyphens correctly
Context: ...roj.io/v1alpha1in case you are using argo-rollouts. 6. Kind should be either
Dep...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~39-~39: There might be a problem here.
Context: ...y, KubeElasti supports only one trigger type - prometheus
. 9. Replace it with the trigger query...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~44-~44: Use correct spacing
Context: ...he autoscaler type. In this case, it is keda
. The key fields to be specified in the s...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~46-~46: There might be a mistake here.
Context: ... key fields to be specified in the spec are: - <service-name>
: Replace it with the service you want ...
(QB_NEW_EN_OTHER)
[grammar] ~50-~50: Use articles correctly
Context: ...plicas>: Min replicas to bring up when first request arrives. - Minimum: 1 -
<s...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~51-~51: Use colons correctly
Context: ...n first request arrives. - Minimum: 1 - <scaleTargetRef>
: Reference to the scale target similar to the one ...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~55-~55: Use articles correctly
Context: ...loyment-or-rollout-name>`: Replace with name of the rollout or the deployment for th...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~55-~55: Use articles correctly
Context: ...e scaled up to min-target-replicas when first request comes - cooldownPeriod
: Minim...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~55-~55: Use correct spacing
Context: ... min-target-replicas when first request comes - cooldownPeriod
: Minimum time (in seconds) to wait after...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~56-~56: Use the right verb tense
Context: ...ait after scaling up before considering scale down. - Default: 900 seconds (15 m...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~59-~59: Make sure to use plural and singular nouns correctly
Context: ...04800 seconds (7 days) - Minimum: 1 seconds (1 second) - triggers
: List of condit...
(QB_NEW_EN_OTHER_ERROR_IDS_10)
[grammar] ~63-~63: Use correct spacing
Context: ...oscaler-object-name>`: Name of the KEDA ScaledObject --- ## Configuration Explanation The section ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~67-~67: Use correct spacing
Context: ...EDA ScaledObject --- ## Configuration Explanation The section below explains how the diff...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~69-~69: Use correct spacing
Context: ...erent configuration options are used in KubeElasti. ### **1. scaleTargetRef: Which service KubeEl...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~71-~71: Use correct spacing
Context: ...getRef: Which service KubeElasti should manage** This is defined using the `scaleTargetR...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~73-~73: Use correct spacing
Context: ...using the scaleTargetRef
field in the spec. - scaleTargetRef.kind
: should be either be deployments
or...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~76-~76: There might be a mistake here.
Context: ...ollouts). - scaleTargetRef.apiVersion
will be apps/v1
if you are using deploymen...
(QB_NEW_EN_OTHER)
[grammar] ~76-~76: Use hyphens correctly
Context: ...roj.io/v1alpha1in case you are using argo-rollouts. -
scaleTargetRef.name` shoul...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~77-~77: Use correct spacing
Context: ... argo-rollouts. - scaleTargetRef.name
should exactly match the name of the deploymen...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~77-~77: Use correct spacing
Context: ...tly match the name of the deployment or rollout.
### **2. Triggers: When to scale down the ser...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~81-~81: Use correct spacing
Context: ...gers: When to scale down the service to 0** This is defined using the triggers
fi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~83-~83: There might be a problem here.
Context: ...y, KubeElasti supports only one trigger type - prometheus
. The metadata
section holds trigger...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~84-~84: There might be a problem here.
Context: ...etadata` section holds trigger-specific data: - query - the Prometheus query to evaluate - serverAddress...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~87-~87: There might be a mistake here.
Context: ... the Prometheus query to evaluate - serverAddress - address of the Prometheus server ...
(QB_NEW_EN_OTHER)
[grammar] ~88-~88: There might be a problem here.
Context: ... address of the Prometheus server - threshold - numeric threshold that triggers scale-down F...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~88-~88: Use correct spacing
Context: ...old** - numeric threshold that triggers scale-down For example, you can query the number o...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~91-~91: There might be a mistake here.
Context: ...onds, and if the value is below the threshold it scales the service to 0. An example...
(QB_NEW_EN_OTHER)
[grammar] ~91-~91: Use correct spacing
Context: ... the threshold it scales the service to 0. An example trigger is as follows: ```y...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~93-~93: Use correct spacing
Context: ...service to 0. An example trigger is as follows: yaml triggers: - type: prometheus metadata: query: sum(rate(nginx_ingress_controller_nginx_process_requests_total[1m])) or vector(0) serverAddress: http://kube-prometheus-stack-prometheus.monitoring.svc.cluster.local:9090 threshold: 0.5
### **3. Scalers: How to scale up the service...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~106-~106: Use correct spacing
Context: ...Scalers: How to scale up the service to 1** Once the service is scaled down to 0, w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~108-~108: There might be a mistake here.
Context: ...ll scale up the service again since the min replicas is 1. Hence, KubeElasti needs ...
(QB_NEW_EN_OTHER)
[grammar] ~108-~108: Use correct spacing
Context: ...only supported autoscaler type is keda. yaml autoscaler: name: <autoscaler-object-name> type: keda
### **4. CooldownPeriod: Minimum time (in sec...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~118-~118: There might be a problem here.
Context: ...ait after scaling up before considering scale down** As soon as the service is scaled down t...
(QB_NEW_EN_MERGED_MATCH)
[style] ~120-~120: ‘in memory of’ might be wordy. Consider a shorter alternative.
Context: ... came before the pod scaled up are held in memory of the elasti-resolver and are processed o...
(EN_WORDINESS_PREMIUM_IN_MEMORY_OF)
[grammar] ~120-~120: Use correct spacing
Context: ...olver and are processed once the pod is up. We can configure the cooldownPeriod
t...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~122-~122: Use the right verb tense
Context: ...ait after scaling up before considering scale down.
(QB_NEW_EN_OTHER_ERROR_IDS_13)
docs/src/arch-flow.md
[grammar] ~1-~1: There might be a problem here.
Context: # Flow Description mermaid graph TB A["Steady State (regular traffic flow)"] --> B["Scale to 0: No Traffic"] B --> C["Scale up from 0: New Incoming Traffic"] C --> A
When we enable KubeElasti on a service,...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~11-~11: Use correct spacing
Context: ...on a service, the service operates in 3 modes: 1. Steady State: The service is receivin...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~15-~15: Use correct spacing
Context: ... and can be scaled up to the configured minTargetReplicas. ## 1. Steady State: Flow of requests to ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~19-~19: Use correct spacing
Context: ...1. Steady State:* Flow of requests to service In this mode, all requests are handled ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~21-~21: Use correct spacing
Context: ...ecide whether the service can be scaled down. mermaid --- title: No incoming requests for the configured time period displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] C -->|Active| D[Pods] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -.->|Inactive| F E -->|Poll configured metric every 30 seconds to check if the service can be scaled to 0| S[Prometheus]
## 2. Scale Down to 0: when there are no...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~50-~50: Use correct spacing
Context: ...2. Scale Down to 0:** when there are no requests If the query from prometheus returns a ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~52-~52: There might be a problem here.
Context: ...ice up, because KEDA is configured with minReplicas: 1
. mermaid --- title: No incoming requests for the configured time period displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -->|Active| F E -->|Scale replicas to 0| D[Pods] C -.->|Inactive| D
### How it works? #### 1. Switching to Proxy ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~79-~79: There might be a problem here.
Context: ... C -.->|Inactive| D ``` ### How it works? #### 1. Switching to Proxy Mode This is how...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~81-~81: Use correct spacing
Context: ... it works? #### 1. Switching to Proxy Mode This is how we decide to switch to prox...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~83-~83: Use correct spacing
Context: ...his is how we decide to switch to proxy mode. mermaid sequenceDiagram loop Background Tasks Operator-->>ElastiCRD: Watch CRD for changes in ScaleTargetRef. Note right of Operator: Watch ScaleTargetRef and Triggers Operator-->>TargetService: Watch if ScaleTargetRef is scaled to 0 by <Br>any external component Operator-->>Prometheus: Poll configured metric every 30 seconds<br> to check if the ScaleTargetRef has not received any traffic Note right of Operator: If not traffic received for the configured <br> time period, Operator will switch to proxy mode. Operator->>TargetService: Scale replicas to 0 Operator->>ElastiCRD: Switch to proxy mode. end
#### 2. Redirecting requests to resolver Thi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~102-~102: There might be a mistake here.
Context: ...d ``` #### 2. Redirecting requests to resolver This is how we redirect requests to resolver...
(QB_NEW_EN_OTHER)
[grammar] ~103-~103: Use correct spacing
Context: ...ver This is how we redirect requests to resolver. mermaid sequenceDiagram Note right of Operator: When in Proxy Mode Operator->>EndpointSlice: Create EndpointSlice for TargetService<br> which we want to point to resolver POD IPs loop Background Tasks Operator-->>Resolver: Watch Resolver POD IPs for changes Operator-->>EndpointSlice: Update EndpointSlice with new POD IPs end
#### 3. Sync Private Service to Public Servi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~119-~119: Use articles correctly
Context: ... Service This is how we send traffic to target pod, even if the public service is poin...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~119-~119: Use articles correctly
Context: ...en if the public service is pointing to resolver. We create a Private Service, as in Prox...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~135-~135: There might be a mistake here.
Context: ...ce. end ``` ## 3. Scale up from 0: when the first request arrives Since the se...
(QB_NEW_EN_OTHER)
[grammar] ~135-~135: There might be a mistake here.
Context: ...ale up from 0:** when the first request arrives Since the service is scaled down to 0, ...
(QB_NEW_EN_OTHER)
[grammar] ~137-~137: There might be a mistake here.
Context: ...he client. If the pod takes more than 5 mins to come up, the request is dropped. ``...
(QB_NEW_EN_OTHER)
[grammar] ~137-~137: There might be a problem here.
Context: ... than 5 mins to come up, the request is dropped. mermaid --- title: First request to pod arrives displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User Request] --> B[Ingress] B --> C[Service] C -.->|Inactive| F[0 Pods] subgraph Elasti Components D[Elasti Controller] E[Elasti Resolver] end C -->|Active| E E -->|Hold request in memory and forward once ready| F D -->|Scale replicas up from 0| F
mermaid --- title: State after the first replica is up displayMode: compact config: layout: elk look: classic theme: dark --- graph LR A[User] -->|Request| B[Ingress] B --> C[Service] subgraph Elasti Components E[Elasti Controller] F[Elasti Resolver] end C -->|Active| G[Pods] E -->|Check metric if workload can be scaled to 0| H[Prometheus] C -.- |Inactive| F
### How it works? #### 1. Bring the pod up `...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~193-~193: There might be a problem here.
Context: ... C -.- |Inactive| F ### How it works? #### 1. Bring the pod up
mermaid sequenc...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~195-~195: There might be a mistake here.
Context: ...# How it works? #### 1. Bring the pod up mermaid sequenceDiagram Note right of Operator: When in Proxy Mode Gateway->>TargetService: 1. External or Internal traffic TargetService->>Resolver: 2. Forward request par Resolver->>Resolver: 3. Queue requests <br>in-memory (Req remains alive) Resolver->>Operator: 4. Inform about the incoming request end par Operator->>TargetService: 5. Scale up via HPA or KEDA Operator->>Resolver: 6. Send info about target private service end
#### 2. Resolving queued requests ```mermai...
(QB_NEW_EN_OTHER)
[grammar] ~215-~215: Use correct spacing
Context: ... end #### 2. Resolving queued requests
mermaid sequenceDiagram loop Resolver->>Pod: 7: Check if pod is up end par Resolver->>TargetSvcPvt: 8: Send proxy request TargetSvcPvt->>Pod: 9: Send & receive req end Note right of Resolver: Once pod is up, switch to serve mode ```
(QB_NEW_EN_OTHER_ERROR_IDS_5)
🪛 markdownlint-cli2 (0.17.2)
docs/src/gs-scalers.md
3-3: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
36-36: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
39-39: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
51-51: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
docs/src/dev-env.md
53-53: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
64-64: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
docs/src/arch-architecture.md
16-16: Trailing spaces
Expected: 0 or 2; Actual: 3
(MD009, no-trailing-spaces)
17-17: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
18-18: Multiple consecutive blank lines
Expected: 1; Actual: 3
(MD012, no-multiple-blanks)
49-49: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
54-54: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
78-78: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
79-79: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
79-79: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
101-101: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
102-102: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
118-118: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
119-119: Inline HTML
Element: br
(MD033, no-inline-html)
134-134: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
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.
Actionable comments posted: 2
♻️ Duplicate comments (2)
CHANGELOG.md (1)
24-28
: List-marker style is still inconsistent (MD004)
Earlier feedback asked to switch from-
to*
for this navigation list; the dashes remain unchanged.README.md (1)
10-10
: Add alt text to the workflow-status badge (MD045)
Accessibility & linting both require analt
attribute.- <img src="https://github.com/truefoundry/KubeElasti/actions/workflows/lint-and-test.yaml/badge.svg" align="center"> + <img src="https://github.com/truefoundry/KubeElasti/actions/workflows/lint-and-test.yaml/badge.svg" alt="Lint & Test status" align="center">
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (2)
CHANGELOG.md
(1 hunks)README.md
(2 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md
7-7: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
8-8: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
8-8: Bare URL used
(MD034, no-bare-urls)
10-10: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
11-11: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
11-11: Bare URL used
(MD034, no-bare-urls)
12-12: Bare URL used
(MD034, no-bare-urls)
13-13: Bare URL used
(MD034, no-bare-urls)
14-14: Bare URL used
(MD034, no-bare-urls)
15-15: Bare URL used
(MD034, no-bare-urls)
16-16: Bare URL used
(MD034, no-bare-urls)
17-17: Bare URL used
(MD034, no-bare-urls)
18-18: Bare URL used
(MD034, no-bare-urls)
README.md
10-10: Inline HTML
Element: img
(MD033, no-inline-html)
10-10: Images should have alternate text (alt text)
(MD045, no-alt-text)
18-18: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
19-19: Blank line inside blockquote
(MD028, no-blanks-blockquote)
22-22: Inline HTML
Element: div
(MD033, no-inline-html)
23-23: Inline HTML
Element: img
(MD033, no-inline-html)
47-47: Inline HTML
Element: div
(MD033, no-inline-html)
48-48: Inline HTML
Element: img
(MD033, no-inline-html)
48-48: Images should have alternate text (alt text)
(MD045, no-alt-text)
🪛 LanguageTool
README.md
[grammar] ~14-~14: Use correct spacing
Context: ..." align="center">
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~16-~16: Use commas correctly
Context: ...ivated, KubeElasti processes the queued requests, so that no request is lost. This combina...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~16-~16: Use correct spacing
Context: ...e tool for efficient Kubernetes service management. > The name Elasti comes from a superhero ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~18-~18: There might be a problem here.
Context: ...gement. > The name Elasti comes from a superhero "Elasti-Girl" from DC Comics. Her superpower is to e...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~18-~18: There might be a problem here.
Context: ...e inches in height. Kube just refers to kubernetes. Elasti powers in kubernetes! > KubeElasti(So...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~18-~18: There might be a problem here.
Context: ...refers to kubernetes. Elasti powers in kubernetes! > KubeElasti(Sometimes referred to as just "Elasti"). <div al...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~20-~20: There might be a problem here.
Context: ...ubeElasti(Sometimes referred to as just "Elasti").
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~39-~39: There might be a problem here.
Context: ...g-help) - Roadmap - Star History # Introduction KubeElasti is a Kubernetes-native solut...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~43-~43: Use hyphens correctly
Context: ... when there is no traffic and automatic scale up to 1 when traffic arrives. Most Kuber...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~43-~43: Add a comma
Context: ...ic arrives. Most Kubernetes autoscaling solutions like HPA or Keda can scale from 1 to n ...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~43-~43: Use comma(s) to set off direct address
Context: ...netes autoscaling solutions like HPA or Keda can scale from 1 to n replicas based on...
(QB_NEW_EN_OTHER_ERROR_IDS_18)
[grammar] ~43-~43: Add a comma
Context: ...aling after 1 replica is handled by the autoscaler like HPA or Keda. KubeElasti uses a pr...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~43-~43: Use correct spacing
Context: ...s handled by the autoscaler like HPA or Keda. KubeElasti uses a proxy mechanism that ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~45-~45: Use correct spacing
Context: ...e processed directly by the pods of the service.
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~51-~51: Use correct spacing
Context: ...odes.png" width="400px"> ## Key Features - Seamless Integration: KubeElasti inte...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[typographical] ~53-~53: To join two clauses or set off examples, consider using an em dash.
Context: ...ortlessly with your existing Kubernetes setup - whether you are using HPA or Keda. It ta...
(QB_NEW_EN_DASH_RULE_EM)
[grammar] ~53-~53: Use correct spacing
Context: ...w steps to enable scale to zero for any service. - Deployment and Argo Rollouts Support:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~55-~55: Use correct spacing
Context: ...ing it versatile for various deployment scenarios. - Prometheus Metrics Export: KubeElasti...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~57-~57: Use correct spacing
Context: ...ashboard into Grafana for comprehensive visualization. - Generic Service Support: KubeElasti w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~59-~59: Use correct spacing
Context: ... service mesh solution can be used with KubeElasti. - Autoscaler Integration: KubeElasti ca...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~61-~61: Use correct spacing
Context: ...HPA](./docs/src/integration-hpa.md) and Keda. # Getting Started Details on how to inst...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~63-~63: Use correct spacing
Context: ...cs/src/integration-keda.md). # Getting Started Details on how to install and configure...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~65-~65: Use correct spacing
Context: ...Started](./docs/src/getting-started.md) guide. # Configure KubeElasti Check out the dif...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~67-~67: There might be a mistake here.
Context: ...getting-started.md) guide. # Configure KubeElasti Check out the different ways to configu...
(QB_NEW_EN_OTHER)
[grammar] ~69-~69: There might be a problem here.
Context: ...(./docs/src/configure-elastiservice.md) guide. # Monitoring Monitoring details can be found in the ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~73-~73: There might be a problem here.
Context: ...itoring](./docs/src/arch-monitoring.md) guide. # Development Refer to [DEVELOPMENT.md](./DEVELOPMENT...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~85-~85: There might be a problem here.
Context: ...section for getting help and discussing ideas. # Roadmap We are maintaining the future roadmap u...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~89-~89: Use correct spacing
Context: ...for them by adding a 👍 reaction to the issue. ## Star History [
[grammar] ~91-~91: Use correct spacing
Context: ...ng a 👍 reaction to the issue. ## Star History
(QB_NEW_EN_OTHER_ERROR_IDS_5)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Run Kuttl E2E Tests
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.
Actionable comments posted: 4
♻️ Duplicate comments (4)
README.md (3)
10-10
: Missing alt text for build-status badge
This was pointed out previously and is still unresolved.- <img src="https://github.com/truefoundry/KubeElasti/actions/workflows/lint-and-test.yaml/badge.svg" align="center"> + <img src="https://github.com/truefoundry/KubeElasti/actions/workflows/lint-and-test.yaml/badge.svg" alt="Lint & Test status" align="center">
16-16
: Opening paragraph is still a run-on sentenceThe earlier recommendation to split/trim for readability hasn’t been applied.
Leaving the original suggestion here for convenience.
48-48
: Add alt text to the modes illustration-<img src="./docs/images/modes.png" width="400px"> +<img src="./docs/images/modes.png" width="400px" alt="Diagram showing service scaling modes">docs/src/dev-playground.md (1)
9-17
: Remove leading space in fenced-block language identifiers
``` bash
is parsed as an unknown language. Drop the space in every fenced block:-``` bash +```bashApplies to Kind/Minikube/Docker-run snippets and all later command blocks.
Also applies to: 27-29, 72-76, 84-96, 93-96, 102-105, 113-115, 121-129, 133-135
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
docs/images/intro.png
is excluded by!**/*.png
📒 Files selected for processing (4)
.gitignore
(1 hunks)README.md
(2 hunks)docs/src/arch-architecture.md
(1 hunks)docs/src/dev-playground.md
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md
[grammar] ~14-~14: Use correct spacing
Context: ..." align="center">
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~16-~16: Use commas correctly
Context: ...ivated, KubeElasti processes the queued requests, so that no request is lost. This combina...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~16-~16: Use correct spacing
Context: ...e tool for efficient Kubernetes service management. > The name Elasti comes from a superhero ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~18-~18: There might be a problem here.
Context: ...gement. > The name Elasti comes from a superhero "Elasti-Girl" from DC Comics. Her superpower is to e...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~18-~18: There might be a problem here.
Context: ...e inches in height. Kube just refers to kubernetes. Elasti powers in kubernetes! > KubeElasti(So...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~18-~18: There might be a problem here.
Context: ...refers to kubernetes. Elasti powers in kubernetes! > KubeElasti(Sometimes referred to as just "Elasti"). <div al...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~20-~20: There might be a problem here.
Context: ...ubeElasti(Sometimes referred to as just "Elasti").
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~39-~39: There might be a problem here.
Context: ...g-help) - Roadmap - Star History # Introduction KubeElasti is a Kubernetes-native solut...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~43-~43: Use hyphens correctly
Context: ... when there is no traffic and automatic scale up to 1 when traffic arrives. Most Kuber...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~43-~43: Add a comma
Context: ...ic arrives. Most Kubernetes autoscaling solutions like HPA or Keda can scale from 1 to n ...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~43-~43: Use comma(s) to set off direct address
Context: ...netes autoscaling solutions like HPA or Keda can scale from 1 to n replicas based on...
(QB_NEW_EN_OTHER_ERROR_IDS_18)
[grammar] ~43-~43: Add a comma
Context: ...aling after 1 replica is handled by the autoscaler like HPA or Keda. KubeElasti uses a pr...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~43-~43: Use correct spacing
Context: ...s handled by the autoscaler like HPA or Keda. KubeElasti uses a proxy mechanism that ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~45-~45: Use correct spacing
Context: ...e processed directly by the pods of the service.
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~51-~51: Use correct spacing
Context: ...odes.png" width="400px"> ## Key Features - Seamless Integration: KubeElasti inte...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[typographical] ~53-~53: To join two clauses or set off examples, consider using an em dash.
Context: ...ortlessly with your existing Kubernetes setup - whether you are using HPA or Keda. It ta...
(QB_NEW_EN_DASH_RULE_EM)
[grammar] ~53-~53: Use correct spacing
Context: ...w steps to enable scale to zero for any service. - Deployment and Argo Rollouts Support:...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~55-~55: Use correct spacing
Context: ...ing it versatile for various deployment scenarios. - Prometheus Metrics Export: KubeElasti...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~57-~57: Use correct spacing
Context: ...ashboard into Grafana for comprehensive visualization. - Generic Service Support: KubeElasti w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~59-~59: Use correct spacing
Context: ... service mesh solution can be used with KubeElasti. - Autoscaler Integration: KubeElasti ca...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~61-~61: Use correct spacing
Context: ...HPA](./docs/src/integration-hpa.md) and Keda. # Getting Started Details on how to inst...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~63-~63: Use correct spacing
Context: ...cs/src/integration-keda.md). # Getting Started Details on how to install and configure...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~65-~65: Use correct spacing
Context: ...Started](./docs/src/getting-started.md) guide. # Configure KubeElasti Check out the dif...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~67-~67: There might be a mistake here.
Context: ...getting-started.md) guide. # Configure KubeElasti Check out the different ways to configu...
(QB_NEW_EN_OTHER)
[grammar] ~69-~69: There might be a problem here.
Context: ...(./docs/src/configure-elastiservice.md) guide. # Monitoring Monitoring details can be found in the ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~73-~73: There might be a problem here.
Context: ...itoring](./docs/src/arch-monitoring.md) guide. # Development Refer to [DEVELOPMENT.md](./DEVELOPMENT...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~85-~85: There might be a problem here.
Context: ...section for getting help and discussing ideas. # Roadmap We are maintaining the future roadmap u...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~89-~89: Use correct spacing
Context: ...for them by adding a 👍 reaction to the issue. ## Star History [
[grammar] ~91-~91: Use correct spacing
Context: ...ng a 👍 reaction to the issue. ## Star History
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/dev-playground.md
[grammar] ~1-~1: Use correct spacing
Context: # Playground ## 1. Local Cluster If you don't already ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use correct spacing
Context: # Playground ## 1. Local Cluster If you don't already have a local Kuber...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: Add a comma
Context: ...ter, you can set one up using Minikube, Kind or Docker-Desktop: === "Kind" ```...
(QB_NEW_EN_OTHER_ERROR_IDS_22)
[grammar] ~5-~5: Use hyphens correctly
Context: ... can set one up using Minikube, Kind or Docker-Desktop: === "Kind" ``` bash kind crea...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~7-~7: Use correct spacing
Context: ... Minikube, Kind or Docker-Desktop: === "Kind" bash kind create cluster
=== "Minikube" ``` bash miniku...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~13-~13: Use correct spacing
Context: ...sh kind create cluster === "Minikube"
bash minikube start ``` === "Docker-Desktop" Enable it in ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~19-~19: Use hyphens correctly
Context: ...`` bash minikube start ``` === "Docker-Desktop" Enable it in Docker-Desktop ## 2....
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~23-~23: Use correct spacing
Context: ...ker-Desktop ## 2. Start a Local Docker Registry Run a local Docker registry container, ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~25-~25: Use commas correctly
Context: ...r Registry Run a local Docker registry container, to push our images locally and access th...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~25-~25: Use correct spacing
Context: ...r images locally and access them in our cluster. bash docker run -d -p 5001:5000 --name registry registry:2
!!! tip "Add registry to Minikube and K...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~31-~31: There might be a mistake here.
Context: ...000 --name registry registry:2 ``` !!! tip "Add registry to Minikube and Kind" Y...
(QB_NEW_EN_OTHER)
[grammar] ~31-~31: There might be a mistake here.
Context: ... !!! tip "Add registry to Minikube and Kind" You will need to add this registry to M...
(QB_NEW_EN_OTHER)
[grammar] ~32-~32: Use hyphens correctly
Context: ...his registry to Minikube and Kind. With Docker-Desktop, it is automatically picked up if runnin...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~32-~32: There might be a problem here.
Context: ...s automatically picked up if running in same context. !!! tip "Note" In MacOS, 5000 is no...
(QB_NEW_EN_MERGED_MATCH)
[style] ~33-~33: Using many exclamation marks might seem excessive (in this case: 6 exclamation marks for a text that’s 2125 characters long)
Context: ... picked up if running in same context. !!! tip "Note" In MacOS, 5000 is not av...
(EN_EXCESSIVE_EXCLAMATION)
[grammar] ~34-~34: There might be a mistake here.
Context: ...ked up if running in same context. !!! tip "Note" In MacOS, 5000 is not availabl...
(QB_NEW_EN_OTHER)
[grammar] ~34-~34: Use correct spacing
Context: ...running in same context. !!! tip "Note" In MacOS, 5000 is not available, so we use...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~35-~35: Use correct spacing
Context: ..., 5000 is not available, so we use 5001 instead. ## 3. [Optional] Install Ingress Controlle...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~38-~38: Use correct spacing
Context: ...ead. ## 3. [Optional] Install Ingress Controller === "NGINX" Install the NGINX In...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~40-~40: Use correct spacing
Context: ...tional] Install Ingress Controller === "NGINX" Install the NGINX Ingress Controller using Helm: bash helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update kubectl create namespace nginx helm install ingress-nginx ingress-nginx/ingress-nginx -n nginx
=== "Istio" ```shell # Down...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~50-~50:
Context: ...x/ingress-nginx -n nginx === "Istio"
shell # Download the latest Istio relea...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~52-~52: Use correct spacing
Context: ...elease from the official Istio website. curl -L https://istio.io/downloadIstio | sh ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~53-~53:
Context: ... -L https://istio.io/downloadIstio | sh - # Move it to home directory mv isti...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~54-~54: There might be a problem here.
Context: ...downloadIstio | sh - # Move it to home directory mv istio-x.xx.x ~/.istioctl export...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~55-~55: There might be a problem here.
Context: ...to home directory mv istio-x.xx.x ~/.istioctl export PATH=$HOME/.istioctl/bin:$PATH istioctl install --set profile=default -y # Label the namespace where you want to deploy your application to enable Istio sidecar Injection kubectl create namespace demo kubectl label namespace demo istio-injection=enabled # Create a gateway kubectl apply -f ./playground/config/gateway.yaml ``` ## 4. Deploy a demo service Run a demo ap...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~68-~68: There might be a mistake here.
Context: ...way.yaml ``` ## 4. Deploy a demo service Run a demo application in your cluster....
(QB_NEW_EN_OTHER)
[grammar] ~70-~70: Use correct spacing
Context: ...service Run a demo application in your cluster. bash kubectl create namespace demo kubectl apply -f ./playground/config/demo-application.yaml -n demo # Create a Virtual Service to expose the demo service if you are using istio kubectl apply -f ./playground/config/demo-virtualService.yaml -n demo
## 5. Build & Publish Resolver Go into th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~80-~80: Use correct spacing
Context: ...yaml -n demo ``` ## 5. Build & Publish Resolver Go into the resolver directory and run ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~82-~82: Use correct spacing
Context: ...directory and run the build and publish command. bash cd resolver make docker-build docker-push IMG=localhost:5001/elasti-resolver:v1alpha1
## 6. Build & Publish Operator Go into th...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~89-~89: Use correct spacing
Context: ...ver:v1alpha1 ``` ## 6. Build & Publish Operator Go into the operator directory and run ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~91-~91: Use correct spacing
Context: ...directory and run the build and publish command. bash cd operator make docker-build docker-push IMG=localhost:5001/elasti-operator:v1alpha1
## 7. Deploy Locally Make sure you have c...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~98-~98: Use correct spacing
Context: ...sti-operator:v1alpha1 ``` ## 7. Deploy Locally Make sure you have configured the local...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~100-~100: Use correct spacing
Context: ...ollow below steps from the project home directory: bash kubectl create namespace elasti helm template elasti ./charts/elasti -n elasti -f ./playground/infra/elasti-demo-values.yaml | kubectl apply -f -
If you want to enable monitoring, pleas...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~107-~107: Use correct spacing
Context: ...e enableMonitoring
true in the values file. ## 8. Create ElastiService Resource Using...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~109-~109: There might be a problem here.
Context: ...toring` true in the values file. ## 8. Create ElastiService Resource Using the [ElastiService Definition](/s...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~111-~111: Use articles correctly
Context: ...file for your service and apply it. For demo, we use the below manifest. ```bash kub...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~111-~111: Use correct spacing
Context: ...nd apply it. For demo, we use the below manifest. bash kubectl -n demo apply -f ./playground/config/demo-elastiService.yaml
## 9. Test the service ### 9.1 Create a w...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~117-~117: There might be a mistake here.
Context: ...-elastiService.yaml ## 9. Test the service ### 9.1 Create a watch on the service
b...
(QB_NEW_EN_OTHER)
[grammar] ~119-~119: There might be a mistake here.
Context: ... service ### 9.1 Create a watch on the service bash kubectl -n demo get elastiservice httpbin -w
### 9.2 Scale down the service ```bash kub...
(QB_NEW_EN_OTHER)
[grammar] ~125-~125: Use correct spacing
Context: ... httpbin -w ### 9.2 Scale down the service
bash kubectl -n demo scale deployment httpbin --replicas=0 ### 9.3 Create a load on the service
ba...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~131-~131: There might be a mistake here.
Context: ...cas=0 ### 9.3 Create a load on the service
bash kubectl run -it --rm curl --image=alpine/curl -- http://httpbin.demo.svc.cluster.local/headers ``` You should see the target service pod g...
(QB_NEW_EN_OTHER)
[grammar] ~137-~137: Use articles correctly
Context: ...arget service pod getting scaled up and response from the new pod.
(QB_NEW_EN_OTHER_ERROR_IDS_11)
docs/src/arch-architecture.md
[grammar] ~1-~1: Use correct spacing
Context: # KubeElasti Architecture KubeElasti comprises two main component...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: Use correct spacing
Context: ...rises two main components: operator and resolver. - Controller/Operator: A Kubernetes con...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~7-~7: Use correct spacing
Context: ... resources and scales them to 0 or 1 as needed. - Resolver: A service that intercepts i...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~9-~9: Use correct spacing
Context: ...lasti-controller to scale up the target service. ## Architecture [Serve Mode] ```mermaid f...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~14-~14: Use correct spacing
Context: ...get service. ## Architecture [Serve Mode] mermaid flowchart TB %% === Zones === LoadGen[[Load Generator]] subgraph INGRESS ["Ingress"] Gateway[Gateway] end subgraph ElastiPlane ["KubeElasti"] Operator[Operator] Resolver[Resolver] end ESCRD((ElastiService CRD)) subgraph Triggers ["Triggers"] Prom{{Prometheus}} end %% subgraph ELASTI_CRD ["ElastiService CRD"] %% end subgraph Services TargetSVC{Target-SVC} end subgraph Endpoints SVC_EPS([EndpointSlice]) end Pod[[Target Pod]] %% === Traffic Flow === Gateway -->|1: traffic| TargetSVC LoadGen -->|1: traffic| TargetSVC TargetSVC -->|2: Serve Mode| SVC_EPS --> Pod %% === Operator Flow === ESCRD -. "0: Watch CRD" .-> Operator Operator -->|4: Scale to 0| Pod Operator -->|3: Poll configured metric every 30 seconds to check if the service can be scaled to 0| Triggers Operator -->|5: Patch CRD to Proxy Mode| ESCRD
## Architecture [Proxy Mode] ```mermaid fl...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~62-~62: Use correct spacing
Context: ...Mode| ESCRD ## Architecture [Proxy Mode]
mermaid flowchart TB LoadGen[[Load Generator]] subgraph Ingress Gateway[Gateway] end subgraph CONTROL_PLANE ["KubeElasti"] Operator[Operator] Resolver[Resolver] end subgraph Services TargetSVC{Target-SVC} TargetSVC_PVT{Target-SVC-Private} end subgraph ENDPOINTS ["Endpoints"] ResEPS([to-resolver EndpointSlice]) end subgraph scalers ["scalers"] Keda{{"KEDA"}} HPA{{"HPA"}} end Pod[[Target Pod]] ESCRD((ElastiService CRD)) Gateway -->|1: traffic| TargetSVC LoadGen -->|1: traffic| TargetSVC TargetSVC -->|2: Proxy Mode| ResEPS %% === Proxy Flow === ResEPS -->|3: Req| Resolver Resolver -->|4: Proxy Request| TargetSVC_PVT TargetSVC_PVT-->|4: Send and Receive| Pod Resolver -. "5: Inform about the request" .-> Operator Operator -. "6: Map request to target and send Target-SVC-Private" .-> Resolver %% === Operator & Control Logic === Operator --> |7: Request for scale| scalers scalers --> |8: Scale to 1| Pod Operator -. "9: Watch if scaled to 1" .-> Pod Operator -. "10: Switch to Serve Mode" .-> ESCRD ```
(QB_NEW_EN_OTHER_ERROR_IDS_5)
🪛 markdownlint-cli2 (0.17.2)
docs/src/dev-playground.md
27-27: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
37-37: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
53-53: Bare URL used
(MD034, no-bare-urls)
72-72: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
84-84: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
93-93: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
102-102: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
113-113: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
121-121: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
127-127: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
133-133: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
docs/src/arch-architecture.md
1-1: Inline HTML
Element: p
(MD033, no-inline-html)
1-1: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
2-2: Inline HTML
Element: img
(MD033, no-inline-html)
5-5: Inline HTML
Element: p
(MD033, no-inline-html)
6-6: Inline HTML
Element: a
(MD033, no-inline-html)
7-7: Inline HTML
Element: img
(MD033, no-inline-html)
7-7: Images should have alternate text (alt text)
(MD045, no-alt-text)
9-9: Inline HTML
Element: a
(MD033, no-inline-html)
10-10: Inline HTML
Element: img
(MD033, no-inline-html)
10-10: Images should have alternate text (alt text)
(MD045, no-alt-text)
18-18: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
19-19: Blank line inside blockquote
(MD028, no-blanks-blockquote)
22-22: Inline HTML
Element: div
(MD033, no-inline-html)
23-23: Inline HTML
Element: img
(MD033, no-inline-html)
47-47: Inline HTML
Element: div
(MD033, no-inline-html)
48-48: Inline HTML
Element: img
(MD033, no-inline-html)
48-48: Images should have alternate text (alt text)
(MD045, no-alt-text)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/pkg)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/resolver)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/operator)
- GitHub Check: golangci-lint (/home/runner/work/KubeElasti/KubeElasti/operator)
- GitHub Check: Run Kuttl E2E Tests
🔇 Additional comments (2)
.gitignore (1)
13-16
:site/
&db-go-service
ignores look correctNice touch adding the trailing slash to make the intent explicit and avoid ignoring a homonymous file.
Nothing else to flag here.docs/src/arch-architecture.md (1)
59-60
: Mermaid labels read well – good fix“Patch CRD to Proxy Mode” & “Switch to Serve Mode” clarify intent and remove the
earlier typos. Diagram is now self-explanatory.Also applies to: 104-110
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.
Actionable comments posted: 9
🔭 Outside diff range comments (2)
playground/config/demo-application.yaml (1)
1-17
: Addnamespace: target
to ServiceAccount & Service for consistency
Deployment
/Ingress
are placed intarget
, but theServiceAccount
andService
default to the current kube-context namespace.
This will break:
Deployment.spec.serviceAccountName: httpbin
→ SA not found.- Ingress routes to a Service that may live in a different namespace.
apiVersion: v1 kind: ServiceAccount metadata: name: httpbin + namespace: target --- apiVersion: v1 kind: Service metadata: name: httpbin + namespace: targetmkdocs.yml (1)
135-138
: Strip the super-fluous blank line at EOFYAML-lint flags an extra blank line; dropping it avoids “too many blank lines” while keeping the file tidy.
- - Comparisons: src/comparisons.md - - + - Comparisons: src/comparisons.md
♻️ Duplicate comments (12)
README.md (2)
10-10
: Badge image still missing alt text (repeat from earlier review)
Accessibility & markdown-lint (MD045) remain unresolved.- <img src="https://github.com/truefoundry/KubeElasti/actions/workflows/lint-and-test.yaml/badge.svg" align="center"> + <img src="https://github.com/truefoundry/KubeElasti/actions/workflows/lint-and-test.yaml/badge.svg" alt="Lint & Test workflow status" align="center">
48-48
: Provide alt text for the “modes” illustration (repeat)-<img src="./docs/images/modes.png" width="400px"> +<img src="./docs/images/modes.png" width="400px" alt="Diagram: KubeElasti active vs. serverless modes">docs/src/arch-resolver.md (1)
5-5
: Remove the space after the back-ticks to restore Mermaid renderingThe block should start with
```mermaid
, not``` mermaid
.
(Previous review already covered this.)-``` mermaid +```mermaiddocs/src/gs-configure-elastiservice.md (2)
79-82
: Remove<br>
tag before headingSame reasoning as in gs-setup.md—use native spacing.
-<br> - -### **2. Triggers: When to scale down the service to 0** +### **2. Triggers: When to scale down the service to 0**
86-88
: Normalize list indentation and dash styleThe nested list still violates MD007. Two-space indent and a single dash keeps it consistent.
- - **query** - the Prometheus query to evaluate - - **serverAddress** - address of the Prometheus server - - **threshold** - numeric threshold that triggers scale-down + - **query** – the Prometheus query to evaluate + - **serverAddress** – address of the Prometheus server + - **threshold** – numeric threshold that triggers scale-downdocs/src/dev-playground.md (3)
11-19
: Strip the leading space in fenced code-block language identifiersAll blocks are written as
``` bash
,``` shell
, etc.
The leading space disables syntax highlighting and keeps the previous MD040 warnings alive.
Remove the space in every fenced block.-``` bash +```bashRepeat for the Minikube, Docker-run and subsequent blocks.
Also applies to: 29-36
140-140
: Broken absolute link – switch to a relative path
[ElastiService Definition](/src/gs-configure-elastiservice/)
404s when browsing on GitHub.
Use a relative path so it works in both contexts.-[ElastiService Definition](/src/gs-configure-elastiservice/) +[ElastiService Definition](../gs-configure-elastiservice.md)
42-42
: Collapse excessive blank lines (MD012)
Two consecutive blank lines make the doc look sparse and keep markdownlint noisy.
Delete the extras so there is at most one blank line.Also applies to: 146-147
docs/index.md (1)
120-123
: Remove stray leading space inside the<pre><code>
blockThe single space before the comment produces an unwanted blank line when rendered.
- <pre><code> + <pre><code>docs/stylesheets/extra.css (3)
53-55
: Drop the non-standard:-webkit-any
selector
:-webkit-any()
is obsolete and may be blocked by stricter CSPs.
The modern:is()
already follows – keep that only.-a.md-header__button.md-logo :is(img, svg), -a.md-header__button.md-logo :-webkit-any(img, svg), +a.md-header__button.md-logo :is(img, svg),
160-163
:animation-delay
immediately overridden – merge into the shorthandThe standalone
animation-delay
is useless because the next line’s shorthand resets it.- animation-delay: 0.2s; - animation: fadeIn 0.8s ease-out 0.2s both; + /* merged into one declaration */ + animation: fadeIn 0.8s ease-out 0.2s both;
680-681
: Fixed width hampers responsivenessA hard-coded
width: 300px
squeezes the cards on mid-size view-ports.
Usemin-width
(or flex-basis) instead so the block can grow when space allows.- width: 300px; + min-width: 300px;
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (15)
README.md
(2 hunks)docs/index.md
(1 hunks)docs/src/arch-architecture.md
(1 hunks)docs/src/arch-operator.md
(1 hunks)docs/src/arch-resolver.md
(1 hunks)docs/src/comparisons.md
(1 hunks)docs/src/dev-playground.md
(1 hunks)docs/src/gs-configure-elastiservice.md
(1 hunks)docs/src/gs-scalers.md
(1 hunks)docs/src/gs-setup.md
(1 hunks)docs/stylesheets/extra.css
(1 hunks)mkdocs.yml
(1 hunks)playground/config/demo-application.yaml
(2 hunks)playground/config/demo-elastiService.yaml
(1 hunks)playground/infra/kind-config.yaml
(1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
playground/infra/kind-config.yaml
[error] 9-9: wrong indentation: expected 2 but found 0
(indentation)
mkdocs.yml
[error] 137-137: too many blank lines (1 > 0)
(empty-lines)
🪛 markdownlint-cli2 (0.17.2)
README.md
8-8: Inline HTML
Element: div
(MD033, no-inline-html)
8-8: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
9-9: Inline HTML
Element: div
(MD033, no-inline-html)
10-10: Inline HTML
Element: div
(MD033, no-inline-html)
12-12: Inline HTML
Element: h1
(MD033, no-inline-html)
14-14: Inline HTML
Element: p
(MD033, no-inline-html)
15-15: Inline HTML
Element: p
(MD033, no-inline-html)
16-16: Inline HTML
Element: br
(MD033, no-inline-html)
16-16: Inline HTML
Element: br
(MD033, no-inline-html)
17-17: Inline HTML
Element: b
(MD033, no-inline-html)
17-17: Inline HTML
Element: b
(MD033, no-inline-html)
17-17: Inline HTML
Element: b
(MD033, no-inline-html)
18-18: Inline HTML
Element: div
(MD033, no-inline-html)
19-19: Inline HTML
Element: a
(MD033, no-inline-html)
20-20: Inline HTML
Element: a
(MD033, no-inline-html)
23-23: Inline HTML
Element: div
(MD033, no-inline-html)
24-24: Inline HTML
Element: img
(MD033, no-inline-html)
39-39: Inline HTML
Element: div
(MD033, no-inline-html)
40-40: Inline HTML
Element: h2
(MD033, no-inline-html)
41-41: Inline HTML
Element: div
(MD033, no-inline-html)
42-42: Inline HTML
Element: div
(MD033, no-inline-html)
43-43: Inline HTML
Element: div
(MD033, no-inline-html)
44-44: Inline HTML
Element: h3
(MD033, no-inline-html)
45-45: Inline HTML
Element: p
(MD033, no-inline-html)
47-47: Inline HTML
Element: div
(MD033, no-inline-html)
48-48: Inline HTML
Element: div
(MD033, no-inline-html)
49-49: Inline HTML
Element: h3
(MD033, no-inline-html)
50-50: Inline HTML
Element: p
(MD033, no-inline-html)
52-52: Inline HTML
Element: div
(MD033, no-inline-html)
53-53: Inline HTML
Element: div
(MD033, no-inline-html)
54-54: Inline HTML
Element: h3
(MD033, no-inline-html)
55-55: Inline HTML
Element: p
(MD033, no-inline-html)
57-57: Inline HTML
Element: div
(MD033, no-inline-html)
58-58: Inline HTML
Element: div
(MD033, no-inline-html)
59-59: Inline HTML
Element: h3
(MD033, no-inline-html)
60-60: Inline HTML
Element: p
(MD033, no-inline-html)
62-62: Inline HTML
Element: div
(MD033, no-inline-html)
63-63: Inline HTML
Element: div
(MD033, no-inline-html)
64-64: Inline HTML
Element: h3
(MD033, no-inline-html)
65-65: Inline HTML
Element: p
(MD033, no-inline-html)
67-67: Inline HTML
Element: div
(MD033, no-inline-html)
68-68: Inline HTML
Element: div
(MD033, no-inline-html)
69-69: Inline HTML
Element: h3
(MD033, no-inline-html)
70-70: Inline HTML
Element: p
(MD033, no-inline-html)
85-85: Inline HTML
Element: div
(MD033, no-inline-html)
86-86: Inline HTML
Element: h3
(MD033, no-inline-html)
87-87: Inline HTML
Element: p
(MD033, no-inline-html)
90-90: Inline HTML
Element: div
(MD033, no-inline-html)
91-91: Inline HTML
Element: div
(MD033, no-inline-html)
92-92: Inline HTML
Element: div
(MD033, no-inline-html)
93-93: Inline HTML
Element: h3
(MD033, no-inline-html)
docs/src/comparisons.md
3-3: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
36-36: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
39-39: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
51-51: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
56-56: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
57-57: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
docs/src/gs-scalers.md
12-12: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
32-32: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
40-40: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
docs/src/gs-setup.md
23-23: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
26-26: Trailing spaces
Expected: 0 or 2; Actual: 4
(MD009, no-trailing-spaces)
41-41: Bare URL used
(MD034, no-bare-urls)
46-46: Code block style
Expected: fenced; Actual: indented
(MD046, code-block-style)
70-70: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
78-78: Inline HTML
Element: br
(MD033, no-inline-html)
94-94: Inline HTML
Element: br
(MD033, no-inline-html)
100-100: Trailing spaces
Expected: 0 or 2; Actual: 3
(MD009, no-trailing-spaces)
133-133: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
136-136: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
143-143: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
170-170: Inline HTML
Element: br
(MD033, no-inline-html)
182-182: Inline HTML
Element: br
(MD033, no-inline-html)
211-211: Inline HTML
Element: br
(MD033, no-inline-html)
221-221: Files should end with a single newline character
(MD047, single-trailing-newline)
docs/src/gs-configure-elastiservice.md
3-3: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
36-36: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
39-39: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
51-51: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
56-56: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
57-57: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
58-58: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
59-59: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
62-62: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
63-63: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
73-73: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
75-75: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
76-76: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
77-77: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
79-79: Inline HTML
Element: br
(MD033, no-inline-html)
83-83: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
104-104: Inline HTML
Element: br
(MD033, no-inline-html)
116-116: Inline HTML
Element: br
(MD033, no-inline-html)
122-122: Files should end with a single newline character
(MD047, single-trailing-newline)
docs/src/arch-resolver.md
8-8: Inline HTML
Element: div
(MD033, no-inline-html)
8-8: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
9-9: Inline HTML
Element: div
(MD033, no-inline-html)
10-10: Inline HTML
Element: div
(MD033, no-inline-html)
12-12: Inline HTML
Element: h1
(MD033, no-inline-html)
14-14: Inline HTML
Element: p
(MD033, no-inline-html)
15-15: Inline HTML
Element: p
(MD033, no-inline-html)
16-16: Inline HTML
Element: br
(MD033, no-inline-html)
16-16: Inline HTML
Element: br
(MD033, no-inline-html)
17-17: Inline HTML
Element: b
(MD033, no-inline-html)
17-17: Inline HTML
Element: b
(MD033, no-inline-html)
17-17: Inline HTML
Element: b
(MD033, no-inline-html)
18-18: Inline HTML
Element: div
(MD033, no-inline-html)
19-19: Inline HTML
Element: a
(MD033, no-inline-html)
20-20: Inline HTML
Element: a
(MD033, no-inline-html)
23-23: Inline HTML
Element: div
(MD033, no-inline-html)
24-24: Inline HTML
Element: img
(MD033, no-inline-html)
docs/index.md
8-8: Inline HTML
Element: div
(MD033, no-inline-html)
8-8: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
9-9: Inline HTML
Element: div
(MD033, no-inline-html)
10-10: Inline HTML
Element: div
(MD033, no-inline-html)
12-12: Inline HTML
Element: h1
(MD033, no-inline-html)
14-14: Inline HTML
Element: p
(MD033, no-inline-html)
15-15: Inline HTML
Element: p
(MD033, no-inline-html)
16-16: Inline HTML
Element: br
(MD033, no-inline-html)
16-16: Inline HTML
Element: br
(MD033, no-inline-html)
17-17: Inline HTML
Element: b
(MD033, no-inline-html)
17-17: Inline HTML
Element: b
(MD033, no-inline-html)
17-17: Inline HTML
Element: b
(MD033, no-inline-html)
18-18: Inline HTML
Element: div
(MD033, no-inline-html)
19-19: Inline HTML
Element: a
(MD033, no-inline-html)
20-20: Inline HTML
Element: a
(MD033, no-inline-html)
23-23: Inline HTML
Element: div
(MD033, no-inline-html)
24-24: Inline HTML
Element: img
(MD033, no-inline-html)
39-39: Inline HTML
Element: div
(MD033, no-inline-html)
40-40: Inline HTML
Element: h2
(MD033, no-inline-html)
41-41: Inline HTML
Element: div
(MD033, no-inline-html)
42-42: Inline HTML
Element: div
(MD033, no-inline-html)
43-43: Inline HTML
Element: div
(MD033, no-inline-html)
44-44: Inline HTML
Element: h3
(MD033, no-inline-html)
45-45: Inline HTML
Element: p
(MD033, no-inline-html)
47-47: Inline HTML
Element: div
(MD033, no-inline-html)
48-48: Inline HTML
Element: div
(MD033, no-inline-html)
49-49: Inline HTML
Element: h3
(MD033, no-inline-html)
50-50: Inline HTML
Element: p
(MD033, no-inline-html)
52-52: Inline HTML
Element: div
(MD033, no-inline-html)
53-53: Inline HTML
Element: div
(MD033, no-inline-html)
54-54: Inline HTML
Element: h3
(MD033, no-inline-html)
55-55: Inline HTML
Element: p
(MD033, no-inline-html)
57-57: Inline HTML
Element: div
(MD033, no-inline-html)
58-58: Inline HTML
Element: div
(MD033, no-inline-html)
59-59: Inline HTML
Element: h3
(MD033, no-inline-html)
60-60: Inline HTML
Element: p
(MD033, no-inline-html)
62-62: Inline HTML
Element: div
(MD033, no-inline-html)
63-63: Inline HTML
Element: div
(MD033, no-inline-html)
64-64: Inline HTML
Element: h3
(MD033, no-inline-html)
65-65: Inline HTML
Element: p
(MD033, no-inline-html)
67-67: Inline HTML
Element: div
(MD033, no-inline-html)
68-68: Inline HTML
Element: div
(MD033, no-inline-html)
69-69: Inline HTML
Element: h3
(MD033, no-inline-html)
70-70: Inline HTML
Element: p
(MD033, no-inline-html)
76-76: Inline HTML
Element: div
(MD033, no-inline-html)
77-77: Inline HTML
Element: h2
(MD033, no-inline-html)
78-78: Inline HTML
Element: div
(MD033, no-inline-html)
79-79: Inline HTML
Element: div
(MD033, no-inline-html)
80-80: Inline HTML
Element: img
(MD033, no-inline-html)
82-82: Inline HTML
Element: div
(MD033, no-inline-html)
83-83: Inline HTML
Element: div
(MD033, no-inline-html)
84-84: Inline HTML
Element: div
(MD033, no-inline-html)
85-85: Inline HTML
Element: div
(MD033, no-inline-html)
86-86: Inline HTML
Element: h3
(MD033, no-inline-html)
87-87: Inline HTML
Element: p
(MD033, no-inline-html)
90-90: Inline HTML
Element: div
(MD033, no-inline-html)
91-91: Inline HTML
Element: div
(MD033, no-inline-html)
92-92: Inline HTML
Element: div
(MD033, no-inline-html)
93-93: Inline HTML
Element: h3
(MD033, no-inline-html)
94-94: Inline HTML
Element: p
(MD033, no-inline-html)
97-97: Inline HTML
Element: div
(MD033, no-inline-html)
98-98: Inline HTML
Element: div
(MD033, no-inline-html)
99-99: Inline HTML
Element: div
(MD033, no-inline-html)
100-100: Inline HTML
Element: h3
(MD033, no-inline-html)
101-101: Inline HTML
Element: p
(MD033, no-inline-html)
104-104: Inline HTML
Element: div
(MD033, no-inline-html)
105-105: Inline HTML
Element: div
(MD033, no-inline-html)
106-106: Inline HTML
Element: div
(MD033, no-inline-html)
107-107: Inline HTML
Element: h3
(MD033, no-inline-html)
108-108: Inline HTML
Element: p
(MD033, no-inline-html)
116-116: Inline HTML
Element: div
(MD033, no-inline-html)
117-117: Inline HTML
Element: h2
(MD033, no-inline-html)
118-118: Inline HTML
Element: div
(MD033, no-inline-html)
119-119: Inline HTML
Element: div
(MD033, no-inline-html)
120-120: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
120-120: Inline HTML
Element: pre
(MD033, no-inline-html)
120-120: Inline HTML
Element: code
(MD033, no-inline-html)
121-121: Inline HTML
Element: span
(MD033, no-inline-html)
122-122: Inline HTML
Element: span
(MD033, no-inline-html)
123-123: Inline HTML
Element: span
(MD033, no-inline-html)
124-124: Inline HTML
Element: span
(MD033, no-inline-html)
125-125: Inline HTML
Element: span
(MD033, no-inline-html)
127-127: Inline HTML
Element: span
(MD033, no-inline-html)
128-128: Inline HTML
Element: span
(MD033, no-inline-html)
130-130: Inline HTML
Element: span
(MD033, no-inline-html)
131-131: Inline HTML
Element: span
(MD033, no-inline-html)
132-132: Inline HTML
Element: span
(MD033, no-inline-html)
134-134: Inline HTML
Element: span
(MD033, no-inline-html)
135-135: Inline HTML
Element: span
(MD033, no-inline-html)
136-136: Inline HTML
Element: span
(MD033, no-inline-html)
138-138: Inline HTML
Element: span
(MD033, no-inline-html)
140-140: Inline HTML
Element: span
(MD033, no-inline-html)
141-141: Inline HTML
Element: span
(MD033, no-inline-html)
142-142: Inline HTML
Element: span
(MD033, no-inline-html)
143-143: Inline HTML
Element: span
(MD033, no-inline-html)
144-144: Inline HTML
Element: span
(MD033, no-inline-html)
147-147: Inline HTML
Element: span
(MD033, no-inline-html)
151-151: Inline HTML
Element: div
(MD033, no-inline-html)
152-152: Inline HTML
Element: p
(MD033, no-inline-html)
153-153: Inline HTML
Element: a
(MD033, no-inline-html)
158-158: Inline HTML
Element: div
(MD033, no-inline-html)
159-159: Inline HTML
Element: h2
(MD033, no-inline-html)
160-160: Inline HTML
Element: p
(MD033, no-inline-html)
161-161: Inline HTML
Element: div
(MD033, no-inline-html)
162-162: Inline HTML
Element: a
(MD033, no-inline-html)
163-163: Inline HTML
Element: span
(MD033, no-inline-html)
164-164: Inline HTML
Element: span
(MD033, no-inline-html)
166-166: Inline HTML
Element: a
(MD033, no-inline-html)
167-167: Inline HTML
Element: span
(MD033, no-inline-html)
168-168: Inline HTML
Element: span
(MD033, no-inline-html)
170-170: Inline HTML
Element: a
(MD033, no-inline-html)
171-171: Inline HTML
Element: span
(MD033, no-inline-html)
172-172: Inline HTML
Element: span
(MD033, no-inline-html)
177-177: Inline HTML
Element: div
(MD033, no-inline-html)
178-178: Inline HTML
Element: h2
(MD033, no-inline-html)
179-179: Inline HTML
Element: a
(MD033, no-inline-html)
docs/src/arch-operator.md
79-79: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
docs/src/dev-playground.md
29-29: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
42-42: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
47-47: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
58-58: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
112-112: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
123-123: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
130-130: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
142-142: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
146-146: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
151-151: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
157-157: Code block style
Expected: indented; Actual: fenced
(MD046, code-block-style)
docs/src/arch-architecture.md
1-1: Inline HTML
Element: p
(MD033, no-inline-html)
1-1: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
2-2: Inline HTML
Element: img
(MD033, no-inline-html)
5-5: Inline HTML
Element: p
(MD033, no-inline-html)
6-6: Inline HTML
Element: a
(MD033, no-inline-html)
7-7: Inline HTML
Element: img
(MD033, no-inline-html)
7-7: Images should have alternate text (alt text)
(MD045, no-alt-text)
9-9: Inline HTML
Element: a
(MD033, no-inline-html)
10-10: Inline HTML
Element: img
(MD033, no-inline-html)
10-10: Images should have alternate text (alt text)
(MD045, no-alt-text)
18-18: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
19-19: Blank line inside blockquote
(MD028, no-blanks-blockquote)
22-22: Inline HTML
Element: div
(MD033, no-inline-html)
23-23: Inline HTML
Element: img
(MD033, no-inline-html)
47-47: Inline HTML
Element: div
(MD033, no-inline-html)
48-48: Inline HTML
Element: img
(MD033, no-inline-html)
48-48: Images should have alternate text (alt text)
(MD045, no-alt-text)
🪛 LanguageTool
docs/src/gs-scalers.md
[style] ~15-~15: Consider using a different adjective in this context to strengthen your wording.
Context: ...e when there is some traffic. KEDA is a good candidate for performing the scaling lo...
(GOOD_ALTERNATIVE)
docs/src/gs-setup.md
[grammar] ~1-~1: Use correct spacing
Context: # Setup Get started by following below steps: #...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: There might be a problem here.
Context: # Setup Get started by following below steps: ## Prerequisites - **Kubernetes Cluster:*...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~11-~11: Use colons correctly
Context: ...metheus installed in your cluster. ??? example "Installing Prometheus" We will set...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~11-~11: Use correct spacing
Context: ...n your cluster. ??? example "Installing Prometheus" We will setup a sample prometheus to read ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~12-~12: Use the right verb tense
Context: ...ple "Installing Prometheus" We will setup a sample prometheus to read metrics fro...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~12-~12: Use correct spacing
Context: ...etheus to read metrics from the ingress controller. bash helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack \ --namespace monitoring \ --create-namespace \ --set alertmanager.enabled=false \ --set grafana.enabled=false \ --set prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues=false
- Ingress Controller: You should have an...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~25-~25: Use colons correctly
Context: ...ntroller installed in your cluster. ??? example "Installing Ingress Controller" ...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~25-~25: Use correct spacing
Context: ...luster. ??? example "Installing Ingress Controller" === "NGINX" ```bash he...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~27-~27: Use correct spacing
Context: ...alling Ingress Controller" === "NGINX" bash helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update helm upgrade --install nginx-ingress ingress-nginx/ingress-nginx \ --namespace nginx \ --set controller.metrics.enabled=true \ --set controller.metrics.serviceMonitor.enabled=true \ --create-namespace
=== "Istio" ```shell # D...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~38-~38: Use correct spacing
Context: ...--create-namespace === "Istio"
shell # Download the latest Istio rel...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~40-~40: Use correct spacing
Context: ...elease from the official Istio website. curl -L https://istio.io/downloadIstio | sh ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~41-~41: Use correct spacing
Context: ... -L https://istio.io/downloadIstio | sh - # Move it to home directory mv is...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~42-~42: There might be a problem here.
Context: ...wnloadIstio | sh - # Move it to home directory mv istio-x.xx.x ~/.istioctl expo...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~43-~43: There might be a problem here.
Context: ... home directory mv istio-x.xx.x ~/.istioctl export PATH=$HOME/.istioctl/bin:$PATH istioctl install --set profile=default -y # Label the namespace where you want to deploy your application to enable Istio sidecar Injection kubectl create namespace kubectl label namespace istio-injection=enabled # Create a gateway kubectl apply -f ./playground/config/gateway.yaml -n ``` - KEDA:* [Optional] You can have a KEDA ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~57-~57: Use colons correctly
Context: ...our cluster, else HPA can be used. ??? example "Installing KEDA" We will setup a s...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~57-~57: Use correct spacing
Context: ...PA can be used. ??? example "Installing KEDA" We will setup a sample KEDA to scale the t...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~58-~58: Use the right verb tense
Context: ...? example "Installing KEDA" We will setup a sample KEDA to scale the target deplo...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~58-~58: Use correct spacing
Context: ...setup a sample KEDA to scale the target deployment. bash helm repo add kedacore https://kedacore.github.io/charts helm repo update helm upgrade --install keda kedacore/keda --namespace keda --create-namespace --wait --timeout 180s
## Install ### **1. Install KubeElasti usi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~68-~68: There might be a mistake here.
Context: ...tall ### 1. Install KubeElasti using helm Use Helm to install KubeElasti into your...
(QB_NEW_EN_OTHER)
[grammar] ~70-~70: Use correct spacing
Context: ...install KubeElasti into your Kubernetes cluster. bash helm install elasti oci://tfy.jfrog.io/tfy-helm/elasti --namespace elasti --create-namespace
Check out [values.yaml](https://github.c...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~76-~76: Use correct spacing
Context: ...configuration options in the helm value file.
### 2. Verify the Installation Check the ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~80-~80: Use correct spacing
Context: ... value file.
### 2. Verify the Installation Check the status of your Helm release an...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~82-~82: There might be a mistake here.
Context: ...sure that the KubeElasti components are running: bash helm status elasti --namespace elasti kubectl get pods -n elasti
You will see 2 components running....
(QB_NEW_EN_OTHER)
[grammar] ~89-~89: Use correct spacing
Context: ...n elasti ``` You will see 2 components running. 1. Controller/Operator: `elasti-operator-...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~92-~92: Use correct spacing
Context: ...* elasti-resolver-...
is to proxy the requests.
### 3. Define an ElastiService To configu...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~96-~96: There might be a mistake here.
Context: ...the requests.
### 3. Define an ElastiService To configure a service to handle its tra...
(QB_NEW_EN_OTHER)
[grammar] ~98-~98: Use articles correctly
Context: ...elasti, you'll need to create and apply a ElastiService
custom resource. Here we are creating ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~98-~98: Use correct spacing
Context: ...eate and apply a ElastiService
custom resource. Here we are creating it for httpbin serv...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~100-~100: There might be a problem here.
Context: ... resource. Here we are creating it for httpbin service. Create a file named `elasti-service.yaml...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~102-~102: Use correct spacing
Context: ...med elasti-service.yaml
and apply the configuration. yaml title="elasti-service.yaml" linenums="1" apiVersion: elasti.truefoundry.com/v1alpha1 kind: ElastiService metadata: name: <service-name> # (1) namespace: <service-namespace> # (2) spec: minTargetReplicas: <min-target-replicas> # (3) service: <service-name> cooldownPeriod: <cooldown-period> # (4) scaleTargetRef: apiVersion: <apiVersion> # (5) kind: <kind> # (6) name: <deployment-or-rollout-name> # (7) triggers: - type: <trigger-type> # (8) metadata: query: <query> # (9) serverAddress: <server-address> # (10) threshold: <threshold> # (11) autoscaler: name: <autoscaler-object-name> # (12) type: <autoscaler-type> # (13)
1. Replace it with the service you want man...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~129-~129: There might be a mistake here.
Context: ...it with the service you want managed by elasti. 2. Replace it with the namespace of the...
(QB_NEW_EN_OTHER)
[style] ~131-~131: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...t with the namespace of the service. 3. Replace it with the min replicas to bring up wh...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~131-~131: Make sure you are using the right part of speech
Context: ... of the service. 3. Replace it with the min replicas to bring up when first request...
(QB_NEW_EN_OTHER_ERROR_IDS_21)
[grammar] ~131-~131: Use articles correctly
Context: ... with the min replicas to bring up when first request arrives. Minimum: 1 4. Replace ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~132-~132: Use the right verb tense
Context: ...ait after scaling up before considering scale down. Default: 900 seconds (15 minutes)...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~133-~133: There might be a problem here.
Context: ...roj.io/v1alpha1in case you are using argo-rollouts. 6. Kind should be either
Deployment` ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~136-~136: There might be a problem here.
Context: ...y, KubeElasti supports only one trigger type - prometheus
. 9. Replace it with the trigger query...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~141-~141: Use correct spacing
Context: ...he autoscaler type. In this case, it is keda
. ??? example "Demo ElastiService" ```...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~144-~144: Use correct spacing
Context: ...case, it is keda
. ??? example "Demo ElastiService" yaml title="elasti-service.yaml" linenums="1" apiVersion: elasti.truefoundry.com/v1alpha1 kind: ElastiService metadata: name: target-elastiservice namespace: target spec: cooldownPeriod: 5 minTargetReplicas: 1 scaleTargetRef: apiVersion: apps/v1 kind: deployments name: target-deployment service: target-deployment triggers: - metadata: query: round(sum(rate(envoy_http_downstream_rq_total{container="istio-proxy"}[1m])),0.001) or vector(0) serverAddress: http://prometheus-operated.monitoring.svc.cluster.local:9090 threshold: "0.01" type: prometheus autoscaler: name: target-scaled-object type: keda
### **4. Apply the KubeElasti service configur...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~172-~172: There might be a mistake here.
Context: ... ### 4. Apply the KubeElasti service configuration Apply the configuration to your Kubernet...
(QB_NEW_EN_OTHER)
[grammar] ~174-~174: There might be a mistake here.
Context: ...ly the configuration to your Kubernetes cluster: bash kubectl apply -f elasti-service.yaml -n <service-namespace>
The pod will be scaled down to 0 re...
(QB_NEW_EN_OTHER)
[grammar] ~180-~180: Use correct spacing
Context: ...caled down to 0 replicas if there is no traffic.
### 5. Test the setup You can test the se...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~184-~184: There might be a mistake here.
Context: ...is no traffic.
### 5. Test the setup You can test the setup by sending reques...
(QB_NEW_EN_OTHER)
[grammar] ~186-~186: Use correct spacing
Context: ...ing requests to the nginx load balancer service. bash # For NGINX kubectl port-forward svc/nginx-ingress-ingress-nginx-controller -n nginx 8080:80 # For Istio kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80
Start a watch on the target deployment. ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~196-~196: Use correct spacing
Context: ...080:80 Start a watch on the target deployment.
bash kubectl get pods -n -w Send a request to the service.
bash ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~202-~202: Use correct spacing
Context: ...AMESPACE> -w Send a request to the service.
bash curl -v http://localhost:8080/httpbin ``` You should see the pods being created an...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~209-~209: Use correct spacing
Context: ...here is no traffic for cooldownPeriod
seconds.
## Uninstall To uninstall Elasti, **you wi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~215-~215: Use correct spacing
Context: ...** Then, simply delete the installation file. bash kubectl delete elastiservices --all helm uninstall elasti -n elasti kubectl delete namespace elasti
(QB_NEW_EN_OTHER_ERROR_IDS_5)
docs/src/gs-configure-elastiservice.md
[grammar] ~1-~1: Use correct spacing
Context: # Configure ElastiService To enable scale to 0 on any deployment, ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use the right verb tense
Context: # Configure ElastiService To enable scale to 0 on any deployment, we will need to...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~3-~3: Use correct spacing
Context: ... ElastiService custom resource for that deployment. An ElastiService custom resource has the...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: There might be a mistake here.
Context: ...rvice custom resource has the following structure: yaml title="elasti-service.yaml" linenums="1" apiVersion: elasti.truefoundry.com/v1alpha1 kind: ElastiService metadata: name: <service-name> # (1) namespace: <service-namespace> # (2) spec: minTargetReplicas: <min-target-replicas> # (3) service: <service-name> cooldownPeriod: <cooldown-period> # (4) scaleTargetRef: apiVersion: <apiVersion> # (5) kind: <kind> # (6) name: <deployment-or-rollout-name> # (7) triggers: - type: <trigger-type> # (8) metadata: query: <query> # (9) serverAddress: <server-address> # (10) threshold: <threshold> # (11) autoscaler: name: <autoscaler-object-name> # (12) type: <autoscaler-type> # (13)
1. Replace it wit...
(QB_NEW_EN_OTHER)
[grammar] ~32-~32: There might be a mistake here.
Context: ...it with the service you want managed by elasti. 2. Replace it with the namespace of the...
(QB_NEW_EN_OTHER)
[style] ~34-~34: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...t with the namespace of the service. 3. Replace it with the min replicas to bring up wh...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~34-~34: Make sure you are using the right part of speech
Context: ... of the service. 3. Replace it with the min replicas to bring up when first request...
(QB_NEW_EN_OTHER_ERROR_IDS_21)
[grammar] ~34-~34: Use articles correctly
Context: ... with the min replicas to bring up when first request arrives. Minimum: 1 4. Replace ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~35-~35: Use the right verb tense
Context: ...ait after scaling up before considering scale down. Default: 900 seconds (15 minutes)...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~36-~36: There might be a problem here.
Context: ...roj.io/v1alpha1in case you are using argo-rollouts. 6. Kind should be either
Deployment` ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~39-~39: There might be a problem here.
Context: ...y, KubeElasti supports only one trigger type - prometheus
. 9. Replace it with the trigger query...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~44-~44: Use correct spacing
Context: ...he autoscaler type. In this case, it is keda
. The key fields to be specified in the sp...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~46-~46: There might be a mistake here.
Context: ... key fields to be specified in the spec are: - <service-name>
: Replace it with the service you want m...
(QB_NEW_EN_OTHER)
[grammar] ~48-~48: There might be a mistake here.
Context: ...it with the service you want managed by elasti. - <service-namespace>
: Replace by nam...
(QB_NEW_EN_OTHER)
[grammar] ~50-~50: Use articles correctly
Context: ...plicas>: Min replicas to bring up when first request arrives. - Minimum: 1 -
<s...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~51-~51: Use colons correctly
Context: ...n first request arrives. - Minimum: 1 - <scaleTargetRef>
: Reference to the scale target similar to the one ...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~55-~55: Use articles correctly
Context: ...loyment-or-rollout-name>`: Replace with name of the rollout or the deployment for th...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~55-~55: Use articles correctly
Context: ...e scaled up to min-target-replicas when first request comes - cooldownPeriod
: Minim...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~55-~55: There might be a mistake here.
Context: ... min-target-replicas when first request comes - cooldownPeriod
: Minimum time (in seconds) to wait afte...
(QB_NEW_EN_OTHER)
[grammar] ~56-~56: Use the right verb tense
Context: ...ait after scaling up before considering scale down. - Default: 900 seconds (15 m...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~59-~59: Make sure to use plural and singular nouns correctly
Context: ...04800 seconds (7 days) - Minimum: 1 seconds (1 second) - triggers
: List of condit...
(QB_NEW_EN_OTHER_ERROR_IDS_10)
[grammar] ~63-~63: Use correct spacing
Context: ...oscaler-object-name>`: Name of the KEDA ScaledObject --- ## Configuration Explanation The section b...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~67-~67: Use correct spacing
Context: ...EDA ScaledObject --- ## Configuration Explanation The section below explains how the diffe...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~69-~69: Use correct spacing
Context: ...erent configuration options are used in KubeElasti. ### **1. scaleTargetRef: Which service KubeEla...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~71-~71: Use correct spacing
Context: ...getRef: Which service KubeElasti should manage** This is defined using the `scaleTargetRe...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~73-~73: Use correct spacing
Context: ...using the scaleTargetRef
field in the spec. - scaleTargetRef.kind
: should be either be deployments
or ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~76-~76: There might be a mistake here.
Context: ...ollouts). - scaleTargetRef.apiVersion
will be apps/v1
if you are using deploymen...
(QB_NEW_EN_OTHER)
[grammar] ~76-~76: There might be a problem here.
Context: ...roj.io/v1alpha1in case you are using argo-rollouts. -
scaleTargetRef.name` should exactly...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~77-~77: Use correct spacing
Context: ... argo-rollouts. - scaleTargetRef.name
should exactly match the name of the deploymen...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~77-~77: Use correct spacing
Context: ...tly match the name of the deployment or rollout.
### **2. Triggers: When to scale down the serv...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~81-~81: Use correct spacing
Context: ...gers: When to scale down the service to 0** This is defined using the triggers
fie...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~83-~83: Use hyphens correctly
Context: ...y, KubeElasti supports only one trigger type - prometheus
. The metadata
section hol...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~84-~84: There might be a problem here.
Context: ...etadata` section holds trigger-specific data: - query - the Prometheus query to evaluate - serverAddress...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~87-~87: There might be a mistake here.
Context: ... the Prometheus query to evaluate - serverAddress - address of the Prometheus server ...
(QB_NEW_EN_OTHER)
[grammar] ~88-~88: There might be a problem here.
Context: ... address of the Prometheus server - threshold - numeric threshold that triggers scale-down For example...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~88-~88: Use correct spacing
Context: ...old** - numeric threshold that triggers scale-down For example, you can query the number of...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~91-~91: Use correct spacing
Context: ... the threshold it scales the service to 0. An example trigger is as follows: ```ya...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~93-~93: There might be a mistake here.
Context: ...service to 0. An example trigger is as follows: yaml triggers: - type: prometheus metadata: query: sum(rate(nginx_ingress_controller_nginx_process_requests_total[1m])) or vector(0) serverAddress: http://kube-prometheus-stack-prometheus.monitoring.svc.cluster.local:9090 threshold: 0.5
### **3. Scalers: How to scale up ...
(QB_NEW_EN_OTHER)
[grammar] ~106-~106: Use correct spacing
Context: ...Scalers: How to scale up the service to 1** Once the service is scaled down to 0, we...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~108-~108: There might be a mistake here.
Context: ...ll scale up the service again since the min replicas is 1. Hence, KubeElasti needs ...
(QB_NEW_EN_OTHER)
[grammar] ~108-~108: Use correct spacing
Context: ...only supported autoscaler type is keda. yaml autoscaler: name: <autoscaler-object-name> type: keda
### **4. CooldownPeriod: Minimum time (in seco...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~118-~118: Use the right verb tense
Context: ...ait after scaling up before considering scale down** As soon as the service is scaled dow...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~120-~120: Use articles correctly
Context: ...me before the pod scaled up are held in memory of the elasti-resolver and are processe...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~120-~120: Use correct spacing
Context: ...olver and are processed once the pod is up. We can configure the cooldownPeriod
to...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~122-~122: Use the right verb tense
Context: ...ait after scaling up before considering scale down.
(QB_NEW_EN_OTHER_ERROR_IDS_13)
docs/src/arch-resolver.md
[grammar] ~1-~1: There might be a problem here.
Context: # Resolver Architecture mermaid flowchart LR %% ── USER & ENTRY ───────────────────── User(("Client")) --> RP["Proxy<br/>:8012"] --> Main["Main<br/>cmd/main.go"] --> IS["Metrics<br/>:8013"] %% ── CORE MODULES ───────────────────── subgraph Mods["Core Modules"] Handler["Handler"]:::core Hosts["Hosts"]:::core Thr["Throttle"]:::core Oper["Operator Comm"]:::core Obs["Observability"]:::core end Main -- uses --> Handler & Hosts & Thr & Oper & Obs %% Request flow (compact arrows) Handler --> Hosts Handler --> Thr Thr --> Handler Handler --> Obs Handler -.-> Sentry["Sentry"] %% Operator comm Handler -.-> Oper Oper -.-> OpSvc["Operator Svc"] %% External deps Thr -.-> K8sAPI["K8s API"] Obs -.-> Prom["Prometheus"]
(QB_NEW_EN_MERGED_MATCH)
docs/index.md
[grammar] ~147-~147: There might be a mistake here.
Context: ...'s it! You just created a scale-to-zero service ...
(QB_NEW_EN_OTHER)
[grammar] ~148-~148: There might be a mistake here.
Context: ...ale-to-zero service
KubeElasti is easy to set up and configure. Follow our step-by-step guide to get started.
Full Installation GuideJoin Our Community
Get help, share your experience, and contribute to KubeElasti
Ready to optimize your Kubernetes resources?
Get Started with KubeElasti(QB_NEW_EN_OTHER)
docs/src/dev-playground.md
[style] ~51-~51: Using many exclamation marks might seem excessive (in this case: 9 exclamation marks for a text that’s 2353 characters long)
Context: ...host:5001/elasti-operator:v1alpha1 ``` !!! Note "Make sure you have configured the...
(EN_EXCESSIVE_EXCLAMATION)
docs/src/arch-architecture.md
[grammar] ~1-~1: Use correct spacing
Context: # KubeElasti Architecture mermaid graph TB subgraph KubeElasti Controller Resolver end Ingress -->|Request| Service Service -->|Active: Pods > 0| Pods Service -.->|Inactive: Pods = 0| Resolver Resolver -->|Inform about the incoming request| Controller Controller -->|Incoming Requests: Scale to 1| Pods Controller -->|No Incoming Requests: Scale to 0| Pods Resolver -->|Forward request| Pods
KubeElasti comprises two main components...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~23-~23: Use correct spacing
Context: ...rises two main components: operator and resolver. - Controller/Operator: A Kubernetes cont...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~25-~25: Use correct spacing
Context: ... resources and scales them to 0 or 1 as needed. - Resolver: A service that intercepts in...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~27-~27: Use correct spacing
Context: ...lasti-controller to scale up the target service. ## Architecture [Serve Mode] ```mermaid fl...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~32-~32: Use correct spacing
Context: ...get service. ## Architecture [Serve Mode] mermaid flowchart TB %% === Zones === LoadGen[[Load Generator]] subgraph INGRESS ["Ingress"] Gateway[Gateway] end subgraph ElastiPlane ["KubeElasti"] Operator[Operator] Resolver[Resolver] end ESCRD((ElastiService CRD)) subgraph Triggers ["Triggers"] Prom{{Prometheus}} end %% subgraph ELASTI_CRD ["ElastiService CRD"] %% end subgraph Services TargetSVC{Target-SVC} end subgraph Endpoints SVC_EPS([EndpointSlice]) end Pod[[Target Pod]] %% === Traffic Flow === Gateway -->|1: traffic| TargetSVC LoadGen -->|1: traffic| TargetSVC TargetSVC -->|2: Serve Mode| SVC_EPS --> Pod %% === Operator Flow === ESCRD -. "0: Watch CRD" .-> Operator Operator -->|4: Scale to 0| Pod Operator -->|3: Poll configured metric every 30 seconds to check if the service can be scaled to 0| Triggers Operator -->|5: Patch CRD to Proxy Mode| ESCRD
## Architecture [Proxy Mode] ```mermaid flo...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~80-~80: Use correct spacing
Context: ...Mode| ESCRD ## Architecture [Proxy Mode]
mermaid flowchart TB LoadGen[[Load Generator]] subgraph Ingress Gateway[Gateway] end subgraph CONTROL_PLANE ["KubeElasti"] Operator[Operator] Resolver[Resolver] end subgraph Services TargetSVC{Target-SVC} TargetSVC_PVT{Target-SVC-Private} end subgraph ENDPOINTS ["Endpoints"] ResEPS([to-resolver EndpointSlice]) end subgraph scalers ["scalers"] Keda{{"KEDA"}} HPA{{"HPA"}} end Pod[[Target Pod]] ESCRD((ElastiService CRD)) Gateway -->|1: traffic| TargetSVC LoadGen -->|1: traffic| TargetSVC TargetSVC -->|2: Proxy Mode| ResEPS %% === Proxy Flow === ResEPS -->|3: Req| Resolver Resolver -. "4: Inform about the request" .-> Operator %% === Operator & Control Logic === Operator --> |5: Request for scale| scalers scalers --> |6: Scale to 1| Pod Operator -. "7: Watch if scaled to 1" .-> Pod Operator -. "8: Switch to Serve Mode" .-> ESCRD Resolver -->|9: Proxy Request| TargetSVC_PVT TargetSVC_PVT-->|10: Send request, receive response| Pod ```
(QB_NEW_EN_OTHER_ERROR_IDS_5)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Run Kuttl E2E Tests
🔇 Additional comments (1)
README.md (1)
69-69
: Verify internal doc link – file seems renamed
configure-elastiservice.md
was renamedgs-configure-elastiservice.md
elsewhere. Ensure the path is correct; otherwise the README link will 404 on GitHub Pages.
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.
Actionable comments posted: 3
♻️ Duplicate comments (3)
docs/src/comparisons.md (3)
1-4
: Remove the redundant H1 heading added on top of the front-matter titleFront-matter in MkDocs already exposes
title:
so the explicit heading duplicates the page title and triggers MD025 (multiple H1s). Simply drop the Markdown H1 line and the following blank line.-# Comparisons with Other Solutions - -This document compares KubeElasti with other popular serverless and scale-to-zero solutions in the Kubernetes ecosystem. +This document compares KubeElasti with other popular serverless and scale-to-zero solutions in the Kubernetes ecosystem.
6-14
: Normalize heading style & fix table typography
- Bold markup inside headings is inconsistent with the rest of the docs.
- Use an em-dash and a space for the “Request queueing” notes for proper readability.
- Add a space after each check-mark so the cell content isn’t glued to the parenthesis.
-## **Feature Comparison Table** +## Feature Comparison Table -| Request queueing | ✅(Takes itself out of the path) | ✅ (Remains in the path) | ✅ | ✅(Remains in the path) | +| Request queueing | ✅ — takes itself out of the path | ✅ — remains in the path | ✅ | ✅ — remains in the path |
17-37
: Drop bold markup from all secondary headings for consistencyThe same bold-inside-heading pattern repeats for “## Knative”, “## OpenFaaS”, “## KEDA HTTP Add-on”, and “## When to Choose KubeElasti”. Strip the
**
for a cleaner, uniform style.-## **Knative** +## Knative ... -## **OpenFaaS** +## OpenFaaS ... -## **KEDA HTTP Add-on** +## KEDA HTTP Add-on ... -## **When to Choose KubeElasti** +## When to Choose KubeElasti
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
docs/src/comparisons.md
(1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
docs/src/comparisons.md
5-5: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
16-16: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
19-19: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
22-22: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
23-23: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
29-29: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
32-32: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
33-33: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
39-39: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
42-42: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
43-43: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
43-43: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
44-44: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
45-45: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
47-47: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
48-48: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
57-57: Files should end with a single newline character
(MD047, single-trailing-newline)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/pkg)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/operator)
- GitHub Check: golangci-lint (/home/runner/work/KubeElasti/KubeElasti/operator)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/resolver)
- GitHub Check: Run Kuttl E2E Tests
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.
Actionable comments posted: 4
🔭 Outside diff range comments (1)
mkdocs.yml (1)
138-140
: Trim trailing blank line for YAML-lint compliance.
yamllint
reports “too many blank lines (1 > 0)”. Drop the extra empty line while keeping the single terminating newline.- - Comparisons: src/comparisons.md - + - Comparisons: src/comparisons.md
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (3)
.github/workflows/docs.yaml
(1 hunks)docs/CNAME
(1 hunks)mkdocs.yml
(1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/docs.yaml
[error] 30-30: too many blank lines (1 > 0)
(empty-lines)
mkdocs.yml
[error] 139-139: too many blank lines (1 > 0)
(empty-lines)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/pkg)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/operator)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/resolver)
- GitHub Check: Run Kuttl E2E Tests
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.
Actionable comments posted: 1
🔭 Outside diff range comments (1)
.github/workflows/docs.yaml (1)
30-31
: Remove extra blank line at EOF to satisfy YAML-lint.Line 30 is an empty line after the last command, triggering
empty-lines (1 > 0)
. Delete it so the file ends with exactly one newline.- - run: mkdocs gh-deploy --force - + - run: mkdocs gh-deploy --force
♻️ Duplicate comments (2)
.github/workflows/docs.yaml (2)
18-20
: Pin the Python toolchain for deterministic builds.
python-version: 3.x
floats to whichever minor hits the runner first, which can silently break the docs pipeline when Python 3.12 becomes default. Lock to an explicit minor (e.g.,3.11
) to keep builds reproducible.- python-version: 3.x + python-version: "3.11"
28-28
: Freezemkdocs-material
to a specific release.An unpinned package may introduce breaking changes overnight. Pin the latest known-good version (or your preferred LTS) and update intentionally.
- - run: pip install mkdocs-material + - run: pip install "mkdocs-material==9.5.15"
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/docs.yaml
(1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/docs.yaml
[error] 30-30: too many blank lines (1 > 0)
(empty-lines)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/pkg)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/resolver)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/operator)
- GitHub Check: Run Kuttl E2E Tests
🔇 Additional comments (1)
.github/workflows/docs.yaml (1)
2-5
: Reserved keyword correctly quoted — good catch.Quoting
"on"
resolves YAML-lint truthy warnings without affecting GitHub Actions parsing.
No further action needed.
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.
Actionable comments posted: 1
♻️ Duplicate comments (3)
.github/workflows/docs.yaml (3)
24-25
: Pin Python to a deterministic minor version.
python-version: 3.x
floats and risks breaking on upstream releases. Lock it to the latest tested minor (e.g.3.11
) for reproducible CI.- python-version: 3.x + python-version: "3.11"
33-33
: Freezemkdocs-material
to a known-good version.Unpinned installs can introduce breaking changes without warning. Follow the same pinning practice used for other CI dependencies.
- - run: pip install mkdocs-material + - run: pip install "mkdocs-material==9.5.15"
35-36
: Remove trailing blank line to satisfyyamllint
(empty-lines).- - run: mkdocs gh-deploy --force - + - run: mkdocs gh-deploy --force
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/docs.yaml
(1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/docs.yaml
[error] 35-35: too many blank lines (1 > 0)
(empty-lines)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/pkg)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/resolver)
- GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/operator)
- GitHub Check: Run Kuttl E2E Tests
Description
This will create a Github page for the documentation.
Live version is here: https://truefoundry.github.io/KubeElasti/
Type of change
Checklist:
Summary by CodeRabbit
New Features
Enhancements
.gitignore
to exclude additional build and service files.Chores