-
Notifications
You must be signed in to change notification settings - Fork 478
[WIP] Self hosted: Add lgalloc integration setup #31796
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
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,264 @@ | ||||||
# OpenEBS NVMe Bootstrap for Materialize | ||||||
|
||||||
This guide helps you set up and configure NVMe instance store volumes for optimal Materialize performance on Kubernetes. The solution provides automatic detection and configuration of NVMe devices, making them available to Materialize through OpenEBS LVM storage classes. | ||||||
|
||||||
> **WARNING:** This setup **automatically partitions and formats NVMe instance store volumes**. Make sure your nodes have NVMe storage (`r6gd.2xlarge`, `r7gd.2xlarge`), and verify backups before proceeding with the setup. | ||||||
|
||||||
## Overview | ||||||
|
||||||
Materialize requires fast, locally-attached NVMe storage for optimal performance. This solution: | ||||||
|
||||||
1. Automatically detects NVMe instance store devices on your nodes | ||||||
2. Creates an LVM volume group from these devices | ||||||
3. Configures OpenEBS to provision persistent volumes from this storage | ||||||
|
3. Configures OpenEBS to provision persistent volumes from this storage | |
3. Configures OpenEBS LVM Local-PV to provision persistent volumes from this storage |
OpenEBS is a whole family of providers, we should be specific about which we're using.
Outdated
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.
We probably want to support this before releasing lgalloc support.
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.
Started working on that already here: MaterializeInc/terraform-aws-materialize#41
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.
If they are pushing it themselves, where do we configure which bootstrap image to use in the terraform?
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.
Ah yes this is more of a note for myself while testing, next on my list is to add this to CI so we push the image to Docker hub. Open to suggestions on the Docker image name though!
Outdated
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.
What is this cleanup section cleaning up? If they ran the terraform, this would likely break their stack.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# Copyright Materialize, Inc. and contributors. All rights reserved. | ||
# | ||
# Use of this software is governed by the Business Source License | ||
# included in the LICENSE file at the root of this repository. | ||
# | ||
# As of the Change Date specified in that file, in accordance with | ||
# the Business Source License, use of this software will be governed | ||
# by the Apache License, Version 2.0. | ||
|
||
FROM alpine:3.19 | ||
|
||
RUN apk add --no-cache \ | ||
nvme-cli \ | ||
lvm2 \ | ||
lsblk \ | ||
bash \ | ||
jq \ | ||
curl \ | ||
kubectl | ||
|
||
# LVM configuration file | ||
COPY lvm.conf /etc/lvm/lvm.conf | ||
# Disk configuration script | ||
COPY configure-disks.sh /usr/local/bin/configure-disks.sh | ||
# Taint management script | ||
COPY manage-taints.sh /usr/local/bin/manage-taints.sh | ||
|
||
RUN chmod +x /usr/local/bin/configure-disks.sh /usr/local/bin/manage-taints.sh | ||
|
||
ENTRYPOINT ["/usr/local/bin/configure-disks.sh"] |
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.
I might delete this readme file all together, most of this is already available in the helm chart readme anyway, and the AWS specific implementation will be done via Terraform.