Compare commits
16 Commits
306b4b8458
...
a08a2189e1
| Author | SHA1 | Date | |
|---|---|---|---|
| a08a2189e1 | |||
| 45f0100784 | |||
| d5da49e566 | |||
| e0e27445c7 | |||
| 9f61854bc2 | |||
| ded87979c5 | |||
| 538fca4195 | |||
| 5ffcfc7d01 | |||
| f958d65528 | |||
| 4197072593 | |||
| d6f0f375b7 | |||
| 051691e71f | |||
| 4a709391e6 | |||
| 1880df2525 | |||
| 02ed3e3145 | |||
| 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:
|
||||||
@ -11,8 +11,9 @@ spec:
|
|||||||
name: flux-system
|
name: flux-system
|
||||||
git:
|
git:
|
||||||
commit:
|
commit:
|
||||||
authorEmail: ops@bstein.dev
|
author:
|
||||||
authorName: flux-bot
|
email: ops@bstein.dev
|
||||||
|
name: flux-bot
|
||||||
messageTemplate: "chore(pegasus): update image to {{range .Updated.Images}}{{.}}{{end}}"
|
messageTemplate: "chore(pegasus): update image to {{range .Updated.Images}}{{.}}{{end}}"
|
||||||
update:
|
update:
|
||||||
strategy: Setters
|
strategy: Setters
|
||||||
@ -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
|
||||||
15
clusters/atlas/flux-system/platform/core/kustomization.yaml
Normal file
15
clusters/atlas/flux-system/platform/core/kustomization.yaml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# clusters/atlas/flux-system/platform/core/kustomization.yaml
|
||||||
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
|
kind: Kustomization
|
||||||
|
metadata:
|
||||||
|
name: core
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
interval: 10m
|
||||||
|
path: ./infrastructure/core
|
||||||
|
prune: true
|
||||||
|
sourceRef:
|
||||||
|
kind: GitRepository
|
||||||
|
name: flux-system
|
||||||
|
namespace: flux-system
|
||||||
|
wait: false
|
||||||
@ -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:
|
||||||
7
clusters/atlas/platform/kustomization.yaml
Normal file
7
clusters/atlas/platform/kustomization.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# clusters/atlas/platform/kustomization.yaml
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ../../../infrastructure/modules/base
|
||||||
|
- ../../../infrastructure/modules/profiles/atlas-ha
|
||||||
|
- ../../../infrastructure/sources/cert-manager/letsencrypt.yaml
|
||||||
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_canary
|
||||||
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_canary/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,6 @@
|
|||||||
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
|
- ../sources/cert-manager/letsencrypt.yaml
|
||||||
# - gpu/profiles/minipc-only
|
|
||||||
- gpu/profiles/tethys-only
|
|
||||||
|
|||||||
@ -1,22 +0,0 @@
|
|||||||
# infrastructure/flux-system/kustomization-core.yaml
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: core
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
path: ./infrastructure/core
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
name: flux-system
|
|
||||||
namespace: flux-system
|
|
||||||
wait: true
|
|
||||||
|
|
||||||
# Only wait for the NVIDIA device-plugin DaemonSet on titan-22
|
|
||||||
healthChecks:
|
|
||||||
- apiVersion: apps/v1
|
|
||||||
kind: DaemonSet
|
|
||||||
name: nvidia-device-plugin-minipc
|
|
||||||
namespace: kube-system
|
|
||||||
@ -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:
|
||||||
@ -24,7 +24,6 @@ spec:
|
|||||||
tolerations:
|
tolerations:
|
||||||
- operator: Exists
|
- operator: Exists
|
||||||
priorityClassName: system-node-critical
|
priorityClassName: system-node-critical
|
||||||
runtimeClassName: nvidia
|
|
||||||
containers:
|
containers:
|
||||||
- name: nvidia-device-plugin-ctr
|
- name: nvidia-device-plugin-ctr
|
||||||
image: nvcr.io/nvidia/k8s-device-plugin:v0.16.2
|
image: nvcr.io/nvidia/k8s-device-plugin:v0.16.2
|
||||||
@ -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
|
||||||
@ -4,7 +4,7 @@ metadata:
|
|||||||
name: letsencrypt
|
name: letsencrypt
|
||||||
spec:
|
spec:
|
||||||
acme:
|
acme:
|
||||||
email: you@bstein.dev
|
email: brad.stein@gmail.com
|
||||||
server: https://acme-v02.api.letsencrypt.org/directory
|
server: https://acme-v02.api.letsencrypt.org/directory
|
||||||
privateKeySecretRef:
|
privateKeySecretRef:
|
||||||
name: letsencrypt-account-key
|
name: letsencrypt-account-key
|
||||||
|
|||||||
@ -12,15 +12,10 @@ spec:
|
|||||||
version: "~6.0.0"
|
version: "~6.0.0"
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: prometheus-community
|
name: prometheus
|
||||||
namespace: flux-system
|
namespace: flux-system
|
||||||
values:
|
values:
|
||||||
prometheusScrape: true # annotates for /metrics auto-scrape. :contentReference[oaicite:16]{index=16}
|
prometheusScrape: false
|
||||||
service:
|
|
||||||
annotations:
|
|
||||||
prometheus.io/scrape: "true"
|
|
||||||
prometheus.io/port: "8080" # ksm serves metrics on 8080 by default
|
|
||||||
prometheus.io/path: "/metrics"
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -31,15 +26,21 @@ metadata:
|
|||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
spec:
|
spec:
|
||||||
interval: 15m
|
interval: 15m
|
||||||
|
install:
|
||||||
|
disableWait: true
|
||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: prometheus-node-exporter
|
chart: prometheus-node-exporter
|
||||||
version: "~4.0.0"
|
version: "~4.0.0"
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: prometheus-community
|
name: prometheus
|
||||||
namespace: flux-system
|
namespace: flux-system
|
||||||
|
upgrade:
|
||||||
|
disableWait: true
|
||||||
values:
|
values:
|
||||||
|
rbac:
|
||||||
|
pspEnabled: false
|
||||||
service:
|
service:
|
||||||
annotations:
|
annotations:
|
||||||
prometheus.io/scrape: "true"
|
prometheus.io/scrape: "true"
|
||||||
@ -160,6 +161,9 @@ spec:
|
|||||||
- action: keep
|
- action: keep
|
||||||
source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
|
source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
|
||||||
regex: "true"
|
regex: "true"
|
||||||
|
- action: drop
|
||||||
|
source_labels: [__meta_kubernetes_pod_container_port_name]
|
||||||
|
regex: ".*health.*"
|
||||||
- action: replace
|
- action: replace
|
||||||
source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
|
source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
|
||||||
target_label: __metrics_path__
|
target_label: __metrics_path__
|
||||||
@ -190,6 +194,9 @@ spec:
|
|||||||
- action: keep
|
- action: keep
|
||||||
source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_app_kubernetes_io_name]
|
source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_app_kubernetes_io_name]
|
||||||
regex: cert-manager;cert-manager
|
regex: cert-manager;cert-manager
|
||||||
|
- action: drop
|
||||||
|
source_labels: [__meta_kubernetes_pod_container_port_name]
|
||||||
|
regex: ".*health.*"
|
||||||
- action: replace
|
- action: replace
|
||||||
source_labels: [__address__]
|
source_labels: [__address__]
|
||||||
regex: "(.+):\\d+"
|
regex: "(.+):\\d+"
|
||||||
@ -203,4 +210,3 @@ spec:
|
|||||||
- action: keep
|
- action: keep
|
||||||
source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_app_kubernetes_io_part_of]
|
source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_app_kubernetes_io_part_of]
|
||||||
regex: flux-system;flux
|
regex: flux-system;flux
|
||||||
|
|
||||||
|
|||||||
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