refactor: restructure atlas flux layout
This commit is contained in:
parent
306b4b8458
commit
b59025d495
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
AGENTS.md
|
||||
12
clusters/atlas/applications/kustomization.yaml
Normal file
12
clusters/atlas/applications/kustomization.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
# clusters/atlas/applications/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../../services/crypto
|
||||
- ../../services/gitea
|
||||
- ../../services/jellyfin
|
||||
- ../../services/jitsi
|
||||
- ../../services/monitoring
|
||||
- ../../services/pegasus
|
||||
- ../../services/vault
|
||||
- ../../services/zot
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/kustomization-crypto.yaml
|
||||
# clusters/atlas/flux-system/applications/crypto/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/kustomization-gitea.yaml
|
||||
# clusters/atlas/flux-system/applications/gitea/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/kustomization-jellyfin.yaml
|
||||
# clusters/atlas/flux-system/applications/jellyfin/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/kustomization-jitsi.yaml
|
||||
# clusters/atlas/flux-system/applications/jitsi/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
15
clusters/atlas/flux-system/applications/kustomization.yaml
Normal file
15
clusters/atlas/flux-system/applications/kustomization.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
# clusters/atlas/flux-system/applications/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- zot/kustomization.yaml
|
||||
- gitea/kustomization.yaml
|
||||
- vault/kustomization.yaml
|
||||
- jitsi/kustomization.yaml
|
||||
- crypto/kustomization.yaml
|
||||
- monerod/kustomization.yaml
|
||||
- pegasus/kustomization.yaml
|
||||
- pegasus/image-automation.yaml
|
||||
- jellyfin/kustomization.yaml
|
||||
- xmr-miner/kustomization.yaml
|
||||
- sui-metrics/kustomization.yaml
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/kustomization-monerod.yaml
|
||||
# clusters/atlas/flux-system/applications/monerod/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/image-automation-pegasus.yaml
|
||||
# clusters/atlas/flux-system/applications/pegasus/image-automation.yaml
|
||||
apiVersion: image.toolkit.fluxcd.io/v1beta1
|
||||
kind: ImageUpdateAutomation
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/kustomization-pegasus.yaml
|
||||
# clusters/atlas/flux-system/applications/pegasus/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
@ -0,0 +1,19 @@
|
||||
# clusters/atlas/flux-system/applications/sui-metrics/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: sui-metrics
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 10m
|
||||
path: ./services/sui-metrics/overlays/atlas
|
||||
prune: true
|
||||
dependsOn:
|
||||
- name: monitoring
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: flux-system
|
||||
namespace: flux-system
|
||||
wait: true
|
||||
timeout: 5m
|
||||
targetNamespace: sui-metrics
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/kustomization-vault.yaml
|
||||
# clusters/atlas/flux-system/applications/vault/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/kustomization-core.yaml
|
||||
# clusters/atlas/flux-system/applications/xmr-miner/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/kustomization-zot.yaml
|
||||
# clusters/atlas/flux-system/applications/zot/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
@ -1,6 +1,6 @@
|
||||
---
|
||||
# This manifest was generated by flux. DO NOT EDIT.
|
||||
# Flux Version: v2.5.1
|
||||
# Flux Version: v2.5.1f reconzaq1= zaq1= aq1= 1= w2cile kustomization flux-system --namespace flux-system --with-source
|
||||
# Components: source-controller,kustomize-controller,helm-controller,notification-controller
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
@ -8,7 +8,7 @@ metadata:
|
||||
spec:
|
||||
interval: 1m0s
|
||||
ref:
|
||||
branch: main
|
||||
branch: restructure/hybrid-clusters
|
||||
secretRef:
|
||||
name: flux-system-gitea
|
||||
url: ssh://git@scm.bstein.dev:2242/bstein/titan-iac.git
|
||||
@ -20,7 +20,7 @@ metadata:
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 10m0s
|
||||
path: ./
|
||||
path: ./clusters/atlas/flux-system
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
8
clusters/atlas/flux-system/kustomization.yaml
Normal file
8
clusters/atlas/flux-system/kustomization.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
# clusters/atlas/flux-system/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- gotk-components.yaml
|
||||
- gotk-sync.yaml
|
||||
- platform
|
||||
- applications
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/kustomization-core.yaml
|
||||
# clusters/atlas/flux-system/platform/core/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
@ -6,7 +6,7 @@ metadata:
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 10m
|
||||
path: ./infrastructure/core
|
||||
path: ./clusters/atlas/platform
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/kustomization-helm.yaml
|
||||
# clusters/atlas/flux-system/platform/helm/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
9
clusters/atlas/flux-system/platform/kustomization.yaml
Normal file
9
clusters/atlas/flux-system/platform/kustomization.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
# clusters/atlas/flux-system/platform/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- core/kustomization.yaml
|
||||
- helm/kustomization.yaml
|
||||
- traefik/kustomization.yaml
|
||||
- monitoring/kustomization.yaml
|
||||
- longhorn-ui/kustomization.yaml
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/kustomization-longhorn-ui.yaml
|
||||
# clusters/atlas/flux-system/platform/longhorn-ui/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/kustomization-monitoring.yaml
|
||||
# clusters/atlas/flux-system/platform/monitoring/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/flux-system/kustomization-traefik.yaml
|
||||
# clusters/atlas/flux-system/platform/traefik/kustomization.yaml
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
6
clusters/atlas/platform/kustomization.yaml
Normal file
6
clusters/atlas/platform/kustomization.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
# clusters/atlas/platform/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../../infrastructure/modules/base
|
||||
- ../../infrastructure/modules/profiles/atlas-ha
|
||||
5
clusters/oceanus/README.md
Normal file
5
clusters/oceanus/README.md
Normal file
@ -0,0 +1,5 @@
|
||||
# Oceanus Cluster Scaffold
|
||||
|
||||
This directory prepares the Flux and Kustomize layout for a future Oceanus-managed cluster.
|
||||
Populate `flux-system/` with `gotk-components.yaml` and related manifests after running `flux bootstrap`.
|
||||
Define node-specific resources under `infrastructure/modules/profiles/oceanus-validator/` and reference workloads in `applications/` as they come online.
|
||||
4
clusters/oceanus/applications/kustomization.yaml
Normal file
4
clusters/oceanus/applications/kustomization.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
# clusters/oceanus/applications/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources: []
|
||||
9
clusters/oceanus/flux-system/kustomization.yaml
Normal file
9
clusters/oceanus/flux-system/kustomization.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
# clusters/oceanus/flux-system/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
# Populate when oceanus cluster is bootstrapped with Flux.
|
||||
# - gotk-components.yaml
|
||||
# - gotk-sync.yaml
|
||||
- ../platform
|
||||
- ../applications
|
||||
6
clusters/oceanus/platform/kustomization.yaml
Normal file
6
clusters/oceanus/platform/kustomization.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
# clusters/oceanus/platform/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../../infrastructure/modules/base
|
||||
- ../../infrastructure/modules/profiles/oceanus-validator
|
||||
16
docs/topology.md
Normal file
16
docs/topology.md
Normal file
@ -0,0 +1,16 @@
|
||||
# Titan Homelab Topology
|
||||
|
||||
| Hostname | Role / Function | Managed By | Notes |
|
||||
|------------|--------------------------------|---------------------|-------|
|
||||
| titan-0a | Kubernetes control-plane | Flux (atlas cluster)| HA leader, tainted for control only |
|
||||
| titan-0b | Kubernetes control-plane | Flux (atlas cluster)| Standby control node |
|
||||
| titan-0c | Kubernetes control-plane | Flux (atlas cluster)| Standby control node |
|
||||
| titan-04-19| Raspberry Pi workers | Flux (atlas cluster)| Workload nodes, labelled per hardware |
|
||||
| titan-22 | GPU mini-PC (Jellyfin) | Flux + Ansible | NVIDIA runtime managed via `modules/profiles/atlas-ha` |
|
||||
| titan-24 | Tethys hybrid node | Flux + Ansible | Runs SUI metrics via K8s, validator via Ansible |
|
||||
| titan-db | HA control plane database | Ansible | PostgreSQL / etcd backing services |
|
||||
| titan-jh | Jumphost & bastion | Ansible | Entry point / future KVM services |
|
||||
| oceanus | Dedicated SUI validator host | Ansible / Flux prep | Baremetal validator workloads, exposes metrics to atlas; Kustomize scaffold under `clusters/oceanus/` |
|
||||
| styx | Air-gapped workstation | Manual / Scripts | Remains isolated, scripts tracked in `hosts/styx` |
|
||||
|
||||
Use the `clusters/` directory for cluster-scoped state and the `hosts/` directory for baremetal orchestration.
|
||||
2
hosts/group_vars/all.yaml
Normal file
2
hosts/group_vars/all.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
# hosts/group_vars/all.yaml
|
||||
validator_version: latest
|
||||
2
hosts/host_vars/titan-24.yaml
Normal file
2
hosts/host_vars/titan-24.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
# hosts/host_vars/titan-24.yaml
|
||||
validator_compose_path: /opt/sui-validator
|
||||
28
hosts/inventory/lab.yaml
Normal file
28
hosts/inventory/lab.yaml
Normal file
@ -0,0 +1,28 @@
|
||||
# hosts/inventory/lab.yaml
|
||||
# Replace ansible_host and ansible_user values with real connectivity details.
|
||||
all:
|
||||
children:
|
||||
atlas:
|
||||
hosts:
|
||||
titan-24:
|
||||
ansible_host: REPLACE_ME
|
||||
ansible_user: ubuntu
|
||||
roleset: tethys_hybrid
|
||||
titan-22:
|
||||
ansible_host: REPLACE_ME
|
||||
ansible_user: debian
|
||||
roleset: minipc_gpu
|
||||
baremetal:
|
||||
hosts:
|
||||
titan-db:
|
||||
ansible_host: REPLACE_ME
|
||||
ansible_user: postgres
|
||||
roleset: database
|
||||
titan-jh:
|
||||
ansible_host: REPLACE_ME
|
||||
ansible_user: jump
|
||||
roleset: jumphost
|
||||
oceanus:
|
||||
ansible_host: REPLACE_ME
|
||||
ansible_user: validator
|
||||
roleset: validator
|
||||
29
hosts/playbooks/site.yaml
Normal file
29
hosts/playbooks/site.yaml
Normal file
@ -0,0 +1,29 @@
|
||||
# hosts/playbooks/site.yaml
|
||||
---
|
||||
- name: Configure titan-db
|
||||
hosts: titan-db
|
||||
gather_facts: true
|
||||
roles:
|
||||
- common
|
||||
- titan_db
|
||||
|
||||
- name: Configure titan-jh
|
||||
hosts: titan-jh
|
||||
gather_facts: true
|
||||
roles:
|
||||
- common
|
||||
- titan_jh
|
||||
|
||||
- name: Configure oceanus validator host
|
||||
hosts: oceanus
|
||||
gather_facts: true
|
||||
roles:
|
||||
- common
|
||||
- oceanus_base
|
||||
|
||||
- name: Prepare hybrid tethys node
|
||||
hosts: titan-24
|
||||
gather_facts: true
|
||||
roles:
|
||||
- common
|
||||
- tethys_validator
|
||||
9
hosts/roles/common/tasks/main.yaml
Normal file
9
hosts/roles/common/tasks/main.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
# hosts/roles/common/tasks/main.yaml
|
||||
---
|
||||
- name: Ensure base packages present
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- curl
|
||||
- vim
|
||||
state: present
|
||||
tags: ['common', 'packages']
|
||||
6
hosts/roles/oceanus_base/tasks/main.yaml
Normal file
6
hosts/roles/oceanus_base/tasks/main.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
# hosts/roles/oceanus_base/tasks/main.yaml
|
||||
---
|
||||
- name: Placeholder for oceanus base configuration
|
||||
ansible.builtin.debug:
|
||||
msg: "Install validator prerequisites and monitoring exporters here."
|
||||
tags: ['oceanus']
|
||||
6
hosts/roles/tethys_canary/tasks/main.yaml
Normal file
6
hosts/roles/tethys_canary/tasks/main.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
# hosts/roles/tethys_validator/tasks/main.yaml
|
||||
---
|
||||
- name: Placeholder for SUI validator container runtime setup
|
||||
ansible.builtin.debug:
|
||||
msg: "Configure container runtime and validator compose stack here."
|
||||
tags: ['tethys', 'validator']
|
||||
6
hosts/roles/titan_db/tasks/main.yaml
Normal file
6
hosts/roles/titan_db/tasks/main.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
# hosts/roles/titan_db/tasks/main.yaml
|
||||
---
|
||||
- name: Placeholder for titan-db provisioning
|
||||
ansible.builtin.debug:
|
||||
msg: "Install database packages, configure backups, and manage users here."
|
||||
tags: ['titan_db']
|
||||
6
hosts/roles/titan_jh/tasks/main.yaml
Normal file
6
hosts/roles/titan_jh/tasks/main.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
# hosts/roles/titan_jh/tasks/main.yaml
|
||||
---
|
||||
- name: Placeholder for jumphost hardening
|
||||
ansible.builtin.debug:
|
||||
msg: "Harden SSH, manage bastion tooling, and configure audit logging here."
|
||||
tags: ['jumphost']
|
||||
2
hosts/styx/README.md
Normal file
2
hosts/styx/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
# hosts/styx/README.md
|
||||
Styx is air-gapped; provisioning scripts live under `scripts/`.
|
||||
@ -1,6 +0,0 @@
|
||||
# infrastructure/core/gpu/daemonsets/profiles/jetson-and-tethys/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../../device-plugin-jetson
|
||||
- ../../device-plugin-tethys
|
||||
@ -1,5 +0,0 @@
|
||||
# infrastructure/core/gpu/daemonsets/profiles/jetson-only/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../../device-plugin-jetson
|
||||
@ -1,7 +0,0 @@
|
||||
# infrastructure/core/gpu/daemonsets/profiles/minipc-and-jetson-and-tethys/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../../device-plugin-minipc
|
||||
- ../../device-plugin-tethys
|
||||
- ../../device-plugin-jetson
|
||||
@ -1,6 +0,0 @@
|
||||
# infrastructure/core/gpu/daemonsets/profiles/minipc-and-jetson/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../../device-plugin-minipc
|
||||
- ../../device-plugin-jetson
|
||||
@ -1,6 +0,0 @@
|
||||
# infrastructure/core/gpu/daemonsets/profiles/minipc-and-tethys/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../../device-plugin-minipc
|
||||
- ../../device-plugin-tethys
|
||||
@ -1,5 +0,0 @@
|
||||
# infrastructure/core/gpu/daemonsets/profiles/minipc-only/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../../device-plugin-minipc
|
||||
@ -1,5 +0,0 @@
|
||||
# infrastructure/core/gpu/daemonsets/profiles/tethys-only/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../../device-plugin-tethys
|
||||
@ -1,5 +0,0 @@
|
||||
apiVersion: node.k8s.io/v1
|
||||
kind: RuntimeClass
|
||||
metadata:
|
||||
name: nvidia
|
||||
handler: nvidia
|
||||
@ -2,8 +2,5 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- base
|
||||
# - gpu/profiles/jetson-only
|
||||
# - gpu/profiles/minipc-and-jetson
|
||||
# - gpu/profiles/minipc-only
|
||||
- gpu/profiles/tethys-only
|
||||
- ../modules/base
|
||||
- ../modules/profiles/atlas-ha
|
||||
|
||||
@ -2,19 +2,4 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- gotk-components.yaml
|
||||
- gotk-sync.yaml
|
||||
- kustomization-zot.yaml
|
||||
- kustomization-core.yaml
|
||||
- kustomization-helm.yaml
|
||||
- kustomization-gitea.yaml
|
||||
- kustomization-vault.yaml
|
||||
- kustomization-jitsi.yaml
|
||||
- kustomization-crypto.yaml
|
||||
- kustomization-traefik.yaml
|
||||
- kustomization-monerod.yaml
|
||||
- kustomization-pegasus.yaml
|
||||
- kustomization-jellyfin.yaml
|
||||
- kustomization-xmr-miner.yaml
|
||||
- kustomization-monitoring.yaml
|
||||
- kustomization-longhorn-ui.yaml
|
||||
- ../clusters/atlas/flux-system
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/core/base/kustomization.yaml
|
||||
# infrastructure/modules/base/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/core/base/priorityclass/kustomization.yaml
|
||||
# infrastructure/modules/base/priorityclass/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/core/base/priorityclass/scavenger.yaml
|
||||
# infrastructure/modules/base/priorityclass/scavenger.yaml
|
||||
apiVersion: scheduling.k8s.io/v1
|
||||
kind: PriorityClass
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/core/base/storageclass/kustomization.yaml
|
||||
# infrastructure/modules/base/runtimeclass/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
@ -1,4 +1,4 @@
|
||||
# services/jellyfin/runtimeclass.yaml
|
||||
# infrastructure/modules/base/runtimeclass/runtimeclass.yaml
|
||||
apiVersion: node.k8s.io/v1
|
||||
kind: RuntimeClass
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/core/base/storageclass/asteria.yaml
|
||||
# infrastructure/modules/base/storageclass/asteria.yaml
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/core/base/storageclass/astreae.yaml
|
||||
# infrastructure/modules/base/storageclass/astreae.yaml
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/core/base/storageclass/kustomization.yaml
|
||||
# infrastructure/modules/base/storageclass/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
@ -0,0 +1,7 @@
|
||||
# infrastructure/modules/profiles/atlas-ha/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../components/device-plugin-jetson
|
||||
- ../components/device-plugin-minipc
|
||||
- ../components/device-plugin-tethys
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/core/gpu/daemonsets/device-plugin-jetson/daemonset.yaml
|
||||
# infrastructure/modules/profiles/components/device-plugin-jetson/daemonset.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/core/gpu/daemonsets/device-plugin-jetson/kustomization.yaml
|
||||
# infrastructure/modules/profiles/components/device-plugin-jetson/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/core/gpu/daemonsets/device-plugin-minipc/daemonset.yaml
|
||||
# infrastructure/modules/profiles/components/device-plugin-minipc/daemonset.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/core/gpu/daemonsets/device-plugin-minipc/kustomization.yaml
|
||||
# infrastructure/modules/profiles/components/device-plugin-minipc/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/core/gpu/daemonsets/device-plugin-tethys/daemonset.yaml
|
||||
# infrastructure/modules/profiles/components/device-plugin-tethys/daemonset.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
@ -1,4 +1,4 @@
|
||||
# infrastructure/core/gpu/daemonsets/device-plugin-tethys/kustomization.yaml
|
||||
# infrastructure/modules/profiles/components/device-plugin-tethys/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
@ -0,0 +1,4 @@
|
||||
# infrastructure/modules/profiles/oceanus-validator/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources: []
|
||||
@ -0,0 +1,5 @@
|
||||
# infrastructure/modules/profiles/tethys-hybrid/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../components/device-plugin-tethys
|
||||
16
services/sui-metrics/base/configmap.yaml
Normal file
16
services/sui-metrics/base/configmap.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
# services/sui-metrics/base/configmap.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: sui-metrics-config
|
||||
namespace: sui-metrics
|
||||
data:
|
||||
vmagent.yaml: |
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
scrape_configs:
|
||||
- job_name: oceanus-node-exporter
|
||||
static_configs:
|
||||
- targets:
|
||||
- "192.168.22.23:9100"
|
||||
63
services/sui-metrics/base/deployment.yaml
Normal file
63
services/sui-metrics/base/deployment.yaml
Normal file
@ -0,0 +1,63 @@
|
||||
# services/sui-metrics/base/deployment.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: sui-metrics
|
||||
namespace: sui-metrics
|
||||
labels:
|
||||
app: sui-metrics
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: sui-metrics
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: sui-metrics
|
||||
spec:
|
||||
serviceAccountName: sui-metrics
|
||||
containers:
|
||||
- name: vmagent
|
||||
image: victoriametrics/vmagent:v1.103.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
args:
|
||||
- -promscrape.config=/etc/vmagent/config/vmagent.yaml
|
||||
- -remoteWrite.url=$(REMOTE_WRITE_URL)
|
||||
- -remoteWrite.tmpDataPath=/var/lib/vmagent
|
||||
- -loggerFormat=json
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8429
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: TZ
|
||||
value: Etc/UTC
|
||||
- name: REMOTE_WRITE_URL
|
||||
value: http://victoria-metrics-single.monitoring.svc.cluster.local:8428/api/v1/write
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: /etc/vmagent/config
|
||||
readOnly: true
|
||||
- name: data
|
||||
mountPath: /var/lib/vmagent
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
runAsNonRoot: true
|
||||
runAsUser: 65534
|
||||
runAsGroup: 65534
|
||||
capabilities:
|
||||
drop: ["ALL"]
|
||||
volumes:
|
||||
- name: config
|
||||
configMap:
|
||||
name: sui-metrics-config
|
||||
- name: data
|
||||
emptyDir: {}
|
||||
10
services/sui-metrics/base/kustomization.yaml
Normal file
10
services/sui-metrics/base/kustomization.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
# services/sui-metrics/base/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: sui-metrics
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- serviceaccount.yaml
|
||||
- configmap.yaml
|
||||
- deployment.yaml
|
||||
- service.yaml
|
||||
5
services/sui-metrics/base/namespace.yaml
Normal file
5
services/sui-metrics/base/namespace.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
# services/sui-metrics/base/namespace.yaml
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: sui-metrics
|
||||
16
services/sui-metrics/base/service.yaml
Normal file
16
services/sui-metrics/base/service.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
# services/sui-metrics/base/service.yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: sui-metrics
|
||||
namespace: sui-metrics
|
||||
labels:
|
||||
app: sui-metrics
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: sui-metrics
|
||||
ports:
|
||||
- name: http
|
||||
port: 8429
|
||||
targetPort: 8429
|
||||
6
services/sui-metrics/base/serviceaccount.yaml
Normal file
6
services/sui-metrics/base/serviceaccount.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
# services/sui-metrics/base/serviceaccount.yaml
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: sui-metrics
|
||||
namespace: sui-metrics
|
||||
10
services/sui-metrics/overlays/atlas/kustomization.yaml
Normal file
10
services/sui-metrics/overlays/atlas/kustomization.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
# services/sui-metrics/overlays/atlas/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../../base
|
||||
patches:
|
||||
- path: patch-node-selector.yaml
|
||||
target:
|
||||
kind: Deployment
|
||||
name: sui-metrics
|
||||
11
services/sui-metrics/overlays/atlas/patch-node-selector.yaml
Normal file
11
services/sui-metrics/overlays/atlas/patch-node-selector.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
# services/sui-metrics/overlays/atlas/patch-node-selector.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: sui-metrics
|
||||
namespace: sui-metrics
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: titan-24
|
||||
Loading…
x
Reference in New Issue
Block a user