kube bootstrap manifests

This commit is contained in:
2025-01-25 14:17:40 -05:00
parent 1f91305b6e
commit 1002e1cbe2
7 changed files with 91 additions and 8 deletions

39
k8s/config/openebs.yaml Normal file
View File

@@ -0,0 +1,39 @@
---
apiVersion: v1
kind: Namespace
metadata:
labels:
name: openebs
name: openebs
---
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: openebs
namespace: kube-system
spec:
repo: https://openebs.github.io/openebs
chart: openebs
targetNamespace: openebs
valuesContent: |-
mayastor:
etcd:
replicaCount: 1
engines:
local:
lvm:
enabled: false
zfs:
enabled: false
replicated:
mayastor:
enabled: true
---
apiVersion: "openebs.io/v1beta2"
kind: DiskPool
metadata:
name: pool-on-@nodeName@
namespace: openebs
spec:
node: @nodeName@
disks: ["aio://@diskPoolID@"]

29
k8s/default.nix Normal file
View File

@@ -0,0 +1,29 @@
{ config, lib, pkgs, ... }:
{
options.k8s = {
diskPoolID = lib.mkOption {
type = lib.types.str;
description = "Disk Pool ID for OpenEBS";
};
manifestsDir = lib.mkOption {
type = lib.types.path;
description = "Directory for Kubernetes manifests";
};
};
config = {
system.activationScripts.k8s-manifests = {
deps = [ ];
text = ''
mkdir -p ${config.k8s.manifestsDir}
cp ${pkgs.substituteAll {
src = ./config/openebs.yaml;
nodeName = config.networking.hostName;
diskPoolID = config.k8s.diskPoolID;
}} ${config.k8s.manifestsDir}/openebs.yaml
'';
};
};
}