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)
|
||||
- [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)
|
||||
- [Staging](#staging)
|
||||
- [Install](#install)
|
||||
@@ -20,7 +24,71 @@ A project to store homelab stuff.
|
||||
- [Wordpress](#wordpress)
|
||||
- [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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -44,4 +44,4 @@ nmcli -f ipv6.addr-gen-mode connection show <connection>
|
||||
nmcli con mod <connection> ipv6.addr-gen-mode eui64
|
||||
systemctl restart NetworkManager
|
||||
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