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
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
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
|
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
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
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
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
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
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
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
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
|
apiVersion: image.toolkit.fluxcd.io/v1beta1
|
||||||
kind: ImageUpdateAutomation
|
kind: ImageUpdateAutomation
|
||||||
metadata:
|
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
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
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
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
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
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
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
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
metadata:
|
||||||
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
# This manifest was generated by flux. DO NOT EDIT.
|
# 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
|
# Components: source-controller,kustomize-controller,helm-controller,notification-controller
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Namespace
|
kind: Namespace
|
||||||
@ -8,7 +8,7 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
interval: 1m0s
|
interval: 1m0s
|
||||||
ref:
|
ref:
|
||||||
branch: main
|
branch: restructure/hybrid-clusters
|
||||||
secretRef:
|
secretRef:
|
||||||
name: flux-system-gitea
|
name: flux-system-gitea
|
||||||
url: ssh://git@scm.bstein.dev:2242/bstein/titan-iac.git
|
url: ssh://git@scm.bstein.dev:2242/bstein/titan-iac.git
|
||||||
@ -20,7 +20,7 @@ metadata:
|
|||||||
namespace: flux-system
|
namespace: flux-system
|
||||||
spec:
|
spec:
|
||||||
interval: 10m0s
|
interval: 10m0s
|
||||||
path: ./
|
path: ./clusters/atlas/flux-system
|
||||||
prune: true
|
prune: true
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: GitRepository
|
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
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
metadata:
|
||||||
@ -6,7 +6,7 @@ metadata:
|
|||||||
namespace: flux-system
|
namespace: flux-system
|
||||||
spec:
|
spec:
|
||||||
interval: 10m
|
interval: 10m
|
||||||
path: ./infrastructure/core
|
path: ./clusters/atlas/platform
|
||||||
prune: true
|
prune: true
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: GitRepository
|
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
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
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
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
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
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
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
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
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
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- base
|
- ../modules/base
|
||||||
# - gpu/profiles/jetson-only
|
- ../modules/profiles/atlas-ha
|
||||||
# - gpu/profiles/minipc-and-jetson
|
|
||||||
# - gpu/profiles/minipc-only
|
|
||||||
- gpu/profiles/tethys-only
|
|
||||||
|
|||||||
@ -2,19 +2,4 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- gotk-components.yaml
|
- ../clusters/atlas/flux-system
|
||||||
- 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
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# infrastructure/core/base/kustomization.yaml
|
# infrastructure/modules/base/kustomization.yaml
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
@ -1,4 +1,4 @@
|
|||||||
# infrastructure/core/base/priorityclass/kustomization.yaml
|
# infrastructure/modules/base/priorityclass/kustomization.yaml
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
@ -1,4 +1,4 @@
|
|||||||
# infrastructure/core/base/priorityclass/scavenger.yaml
|
# infrastructure/modules/base/priorityclass/scavenger.yaml
|
||||||
apiVersion: scheduling.k8s.io/v1
|
apiVersion: scheduling.k8s.io/v1
|
||||||
kind: PriorityClass
|
kind: PriorityClass
|
||||||
metadata:
|
metadata:
|
||||||
@ -1,4 +1,4 @@
|
|||||||
# infrastructure/core/base/storageclass/kustomization.yaml
|
# infrastructure/modules/base/runtimeclass/kustomization.yaml
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
@ -1,4 +1,4 @@
|
|||||||
# services/jellyfin/runtimeclass.yaml
|
# infrastructure/modules/base/runtimeclass/runtimeclass.yaml
|
||||||
apiVersion: node.k8s.io/v1
|
apiVersion: node.k8s.io/v1
|
||||||
kind: RuntimeClass
|
kind: RuntimeClass
|
||||||
metadata:
|
metadata:
|
||||||
@ -1,4 +1,4 @@
|
|||||||
# infrastructure/core/base/storageclass/asteria.yaml
|
# infrastructure/modules/base/storageclass/asteria.yaml
|
||||||
apiVersion: storage.k8s.io/v1
|
apiVersion: storage.k8s.io/v1
|
||||||
kind: StorageClass
|
kind: StorageClass
|
||||||
metadata:
|
metadata:
|
||||||
@ -1,4 +1,4 @@
|
|||||||
# infrastructure/core/base/storageclass/astreae.yaml
|
# infrastructure/modules/base/storageclass/astreae.yaml
|
||||||
apiVersion: storage.k8s.io/v1
|
apiVersion: storage.k8s.io/v1
|
||||||
kind: StorageClass
|
kind: StorageClass
|
||||||
metadata:
|
metadata:
|
||||||
@ -1,4 +1,4 @@
|
|||||||
# infrastructure/core/base/storageclass/kustomization.yaml
|
# infrastructure/modules/base/storageclass/kustomization.yaml
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
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
|
apiVersion: apps/v1
|
||||||
kind: DaemonSet
|
kind: DaemonSet
|
||||||
metadata:
|
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
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
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
|
apiVersion: apps/v1
|
||||||
kind: DaemonSet
|
kind: DaemonSet
|
||||||
metadata:
|
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
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
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
|
apiVersion: apps/v1
|
||||||
kind: DaemonSet
|
kind: DaemonSet
|
||||||
metadata:
|
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
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
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