Skip to content

Conversation

@shainaraskas
Copy link
Collaborator

@shainaraskas shainaraskas commented Dec 31, 2025

Summary

Followup to elastic/cloud-on-k8s#8971 - @pebrc caught that gke autopilot will reject this setting because it does not match the approved DaemonSet

based on @barkbay's work, I've added instructions for using a custom ComputeClass as an alternative to using a DaemonSet.

Generative AI disclosure

  1. Did you use a generative AI (GenAI) tool to assist in creating this contribution?
  • Yes
  • No

@github-actions
Copy link
Contributor

github-actions bot commented Dec 31, 2025

Vale Linting Results

Summary: 4 suggestions found

💡 Suggestions (4)
File Line Rule Message
deploy-manage/deploy/cloud-on-k8s/deploy-eck-on-gke-autopilot.md 70 Elastic.Wordiness Consider using 'before' instead of 'prior to'.
deploy-manage/deploy/cloud-on-k8s/virtual-memory.md 142 Elastic.Wordiness Consider using 'impossible' instead of 'not possible'.
deploy-manage/deploy/cloud-on-k8s/virtual-memory.md 165 Elastic.Wordiness Consider using 'because' instead of 'since'.
deploy-manage/deploy/cloud-on-k8s/virtual-memory.md 166 Elastic.Wordiness Consider using 'because' instead of 'since'.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 31, 2025

Copy link
Contributor

@pebrc pebrc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. I few small clarifications.

In general I feel like this is quite a tricky subject to navigate and present with different recommendations per Elasticsearch version and now we added another layer of vendor specific recommendations (for GKE/Autopilot). We are however now quite inconsistent with the vendor specific recommendations (only GKE/Autopilot is covered) but one could ask why we do not cover other vendors. AWS EKS with custom AMIs or LaunchTemplates or Azure AKS --linux-os-config provide similar options. Where do we draw the line?

@shainaraskas
Copy link
Collaborator Author

@pebrc

In general I feel like this is quite a tricky subject to navigate and present with different recommendations per Elasticsearch version and now we added another layer of vendor specific recommendations (for GKE/Autopilot). We are however now quite inconsistent with the vendor specific recommendations (only GKE/Autopilot is covered) but one could ask why we do not cover other vendors. AWS EKS with custom AMIs or LaunchTemplates or Azure AKS --linux-os-config provide similar options. Where do we draw the line?

this specifically is addressing a limitation that this specific combo of vendor/version has, so I don't think it's too strange that we go a little deeper in this one area.

we could hint that there are other methods for other vendors that are untested (unsupported?), but these are "known good" approaches, if you'd like, perhaps as a followup PR

Copy link
Contributor

@eedugon eedugon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, some minor suggestions added.

## Deploy a standalone Elastic Agent and/or Beats [k8s-autopilot-deploy-agent-beats]

When running Elastic Agent and Beats within GKE Autopilot there are storage constraints to be considered. No `HostPath` volumes are allowed, which the ECK operator defaults to when unset for both `Deployments` and `Daemonsets`. Instead use [Kubernetes ephemeral volumes](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes).
When running Elastic Agent and Beats within GKE Autopilot there are storage constraints to be considered. No `HostPath` volumes are allowed, which the ECK operator defaults to when unset for both `Deployments` and `DaemonSets`. Instead use [Kubernetes ephemeral volumes](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That sentence is a bit difficult to digest.... the when unset is not clear (what can be set that uses a hostPath? Probably the data directory of the beat or the state directory of the Elastic agent, but the unset statement feels weird).

Not sure if this sounds better or feels easier.... @pebrc, @shainaraskas , wdyt?

Suggested change
When running Elastic Agent and Beats within GKE Autopilot there are storage constraints to be considered. No `HostPath` volumes are allowed, which the ECK operator defaults to when unset for both `Deployments` and `DaemonSets`. Instead use [Kubernetes ephemeral volumes](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes).
When running {{agent}} and {{beats}} on GKE Autopilot, storage constraints apply. GKE Autopilot does not allow `hostPath` volumes. By default, the ECK operator uses a `hostPath` volume for the data directory when no alternative volume is configured, whether the workload is deployed as a `Deployment` or a `DaemonSet`. To run successfully, you can use [Kubernetes ephemeral volumes](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes) instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants