move to project lifecycle structure
This commit is contained in:
72
README.md
72
README.md
@@ -6,7 +6,11 @@ A project to store homelab stuff.
|
|||||||
|
|
||||||
- [Homelab](#homelab)
|
- [Homelab](#homelab)
|
||||||
- [Table of Contents](#table-of-contents)
|
- [Table of Contents](#table-of-contents)
|
||||||
- [Apps](#apps)
|
- [Project Lifecycle](#project-lifecycle)
|
||||||
|
- [Supported Projects](#supported-projects)
|
||||||
|
- [Graduation Requirements](#graduation-requirements)
|
||||||
|
- [Retirement Requirements](#retirement-requirements)
|
||||||
|
- [Apps (TODO: Move these into their respective folders)](#apps-todo-move-these-into-their-respective-folders)
|
||||||
- [Gitea](#gitea)
|
- [Gitea](#gitea)
|
||||||
- [Staging](#staging)
|
- [Staging](#staging)
|
||||||
- [Install](#install)
|
- [Install](#install)
|
||||||
@@ -20,7 +24,71 @@ A project to store homelab stuff.
|
|||||||
- [Wordpress](#wordpress)
|
- [Wordpress](#wordpress)
|
||||||
- [Grafana](#grafana)
|
- [Grafana](#grafana)
|
||||||
|
|
||||||
## Apps
|
## Project Lifecycle
|
||||||
|
|
||||||
|
Projects will fall into one of the three following categories:
|
||||||
|
|
||||||
|
1. Incubating
|
||||||
|
2. Graduated
|
||||||
|
3. Retired
|
||||||
|
|
||||||
|
Incubating projects are experimental or prototypal. They're being actively developed and aren't
|
||||||
|
ready for production deployment. These projects may appear and disappear without warning and are not
|
||||||
|
stable. There is no minimum requirement for a project to be in incubation.
|
||||||
|
|
||||||
|
Graduated projects are in-use, stable, and production ready. They met the [graduation
|
||||||
|
requirements](#graduation-requirements) and are actively maintained.
|
||||||
|
|
||||||
|
Retired projects are no longer in use or recommended. They are kept for reference. Retired projects
|
||||||
|
must meet the [retirement requirements](#retirement-requirements)
|
||||||
|
|
||||||
|
## Supported Projects
|
||||||
|
|
||||||
|
All projects will fall into one of the following categories:
|
||||||
|
|
||||||
|
- hardware
|
||||||
|
- infrastructure
|
||||||
|
- cloud
|
||||||
|
- systemd
|
||||||
|
- podman
|
||||||
|
- docker
|
||||||
|
- kubernetes
|
||||||
|
|
||||||
|
Hardware will contain projects that relate to specific machines or equipment. 3D printers, Raspberry
|
||||||
|
Pis, and other IOT devices qualify as specialized hardware that needs documentation and configuration.
|
||||||
|
|
||||||
|
Infrastructure will contain projects that set up the environments for the remaining listed project
|
||||||
|
types. For example, infrastructure will contain "how to set up a linux box with docker" or "how to
|
||||||
|
set up a k3s cluster for kubernetes".
|
||||||
|
|
||||||
|
Cloud projects are for specific cloud providers.
|
||||||
|
|
||||||
|
Systemd projects are designed to be installed with ansible and run via systemd on a linux VM or
|
||||||
|
other linux hardware.
|
||||||
|
|
||||||
|
Podman projects are either designed to be run as quadlets or as podman containers outright.
|
||||||
|
|
||||||
|
Docker projects are either docker-compose or some form of docker run command.
|
||||||
|
|
||||||
|
Kubernetes projects are helm, kustomize, kubectl, or some other kubernetes compliant deployment.
|
||||||
|
|
||||||
|
## Graduation Requirements
|
||||||
|
|
||||||
|
- [ ] Installation is documented
|
||||||
|
- [ ] Installation configuration examples are provided
|
||||||
|
- [ ] Hardening guidelines are documented
|
||||||
|
- [ ] Upgrade procedures are documented
|
||||||
|
- [ ] Maintenance procedures are documented
|
||||||
|
- [ ] Uninstall procedures are documented
|
||||||
|
- [ ] Backup and restore procedures are documented and tested
|
||||||
|
|
||||||
|
## Retirement Requirements
|
||||||
|
|
||||||
|
- [ ] A reason for retirement is documented
|
||||||
|
- [ ] If applicable, a replacement has been identified and documented
|
||||||
|
- [ ] If applicable, backup data locations are documented
|
||||||
|
|
||||||
|
## Apps (TODO: Move these into their respective folders)
|
||||||
|
|
||||||
### Gitea
|
### Gitea
|
||||||
|
|
||||||
|
|||||||
@@ -1,114 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: grafana-pvc
|
|
||||||
namespace: grafana
|
|
||||||
spec:
|
|
||||||
storageClassName: zfs-iscsi-enc1
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 1Gi
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: grafana
|
|
||||||
name: grafana
|
|
||||||
namespace: grafana
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: grafana
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: grafana
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
fsGroup: 472
|
|
||||||
supplementalGroups:
|
|
||||||
- 0
|
|
||||||
containers:
|
|
||||||
- name: grafana
|
|
||||||
image: grafana/grafana:latest
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
ports:
|
|
||||||
- containerPort: 3000
|
|
||||||
name: http-grafana
|
|
||||||
protocol: TCP
|
|
||||||
readinessProbe:
|
|
||||||
failureThreshold: 3
|
|
||||||
httpGet:
|
|
||||||
path: /robots.txt
|
|
||||||
port: 3000
|
|
||||||
scheme: HTTP
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
periodSeconds: 30
|
|
||||||
successThreshold: 1
|
|
||||||
timeoutSeconds: 2
|
|
||||||
livenessProbe:
|
|
||||||
failureThreshold: 3
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 10
|
|
||||||
successThreshold: 1
|
|
||||||
tcpSocket:
|
|
||||||
port: 3000
|
|
||||||
timeoutSeconds: 1
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 250m
|
|
||||||
memory: 750Mi
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /var/lib/grafana
|
|
||||||
name: grafana-pv
|
|
||||||
volumes:
|
|
||||||
- name: grafana-pv
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: grafana-pvc
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: grafana
|
|
||||||
namespace: grafana
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- port: 3000
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: http-grafana
|
|
||||||
name: http
|
|
||||||
selector:
|
|
||||||
app: grafana
|
|
||||||
sessionAffinity: None
|
|
||||||
type: ClusterIP
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: grafana
|
|
||||||
namespace: grafana
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
|
||||||
nginx.org/client-max-body-size: "0"
|
|
||||||
spec:
|
|
||||||
rules:
|
|
||||||
- host: grafana.reeseapps.com
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: grafana
|
|
||||||
port:
|
|
||||||
name: http
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- grafana.reeseapps.com
|
|
||||||
secretName: grafana-tls-cert
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# 3D Printing Notes
|
# Bambu P1S Notes
|
||||||
|
|
||||||
## Bambu P1S
|
## Bambu P1S
|
||||||
|
|
||||||
@@ -44,4 +44,4 @@ nmcli -f ipv6.addr-gen-mode connection show <connection>
|
|||||||
nmcli con mod <connection> ipv6.addr-gen-mode eui64
|
nmcli con mod <connection> ipv6.addr-gen-mode eui64
|
||||||
systemctl restart NetworkManager
|
systemctl restart NetworkManager
|
||||||
nmcli -f ipv6.addr-gen-mode connection show <connection>
|
nmcli -f ipv6.addr-gen-mode connection show <connection>
|
||||||
```
|
```
|
||||||
29
kubernetes/incubating/grafana/README.md
Normal file
29
kubernetes/incubating/grafana/README.md
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Grafana
|
||||||
|
|
||||||
|
## Helm
|
||||||
|
|
||||||
|
```bash
|
||||||
|
helm repo add grafana https://grafana.github.io/helm-charts
|
||||||
|
helm repo update
|
||||||
|
helm upgrade --install my-grafana grafana/grafana \
|
||||||
|
--namespace monitoring \
|
||||||
|
--create-namespace \
|
||||||
|
--values grafana/values.yaml
|
||||||
|
|
||||||
|
kubectl get secret --namespace monitoring my-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
|
||||||
|
```
|
||||||
|
|
||||||
|
metrics-server.kube-system.svc.cluster.local:9090
|
||||||
|
|
||||||
|
## Kube Prometheus Stack
|
||||||
|
|
||||||
|
```bash
|
||||||
|
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
|
||||||
|
helm repo update
|
||||||
|
|
||||||
|
helm upgrade --install \
|
||||||
|
kube-prometheus-stack \
|
||||||
|
prometheus-community/kube-prometheus-stack \
|
||||||
|
--namespace kube-system \
|
||||||
|
--values grafana/helm-prom-stack-values.yaml
|
||||||
|
```
|
||||||
4748
kubernetes/incubating/grafana/helm-prom-stack-values.yaml
Normal file
4748
kubernetes/incubating/grafana/helm-prom-stack-values.yaml
Normal file
File diff suppressed because it is too large
Load Diff
1379
kubernetes/incubating/grafana/values.yaml
Normal file
1379
kubernetes/incubating/grafana/values.yaml
Normal file
File diff suppressed because it is too large
Load Diff
6
kubernetes/retired/democratic-csi/README.md
Normal file
6
kubernetes/retired/democratic-csi/README.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# Democratic CSI
|
||||||
|
|
||||||
|
## Retirement
|
||||||
|
|
||||||
|
This project has been deprecated in favor of local storage provided by rancher. Local storage is
|
||||||
|
much better for single node clusters (which is all I run right now) since it's far more performant.
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user