Merge remote-tracking branch 'origin/main'

This commit is contained in:
David Landry 2024-02-02 21:14:04 -05:00
commit 3439c614d7
65 changed files with 1185 additions and 0 deletions

27
apps/README.md Normal file
View file

@ -0,0 +1,27 @@
# Apps
This directory contains all of the applications you installed by using:
```bash
argocd-autopilot app create <APP_NAME> --app <APP_SPECIFIER> -p <PROJECT_NAME>
```
## Application Types
> If you don't specify the application `--type` argocd-autopilot will try to clone the source repository and infer the application type [automatically](https://argoproj.github.io/argo-cd/user-guide/tool_detection/#tool-detection)
* ### Directory application
Such an application references a specific directory at a given repo URL, path and revision. It will be persisted in the GitOps Repository as a single file at `apps/<APP_NAME>/<PROJECT_NAME>/config.json`.
#### Example:
```bash
argocd-autopilot app create dir-example --app github.com/argoproj-labs/argocd-autopilot/examples/demo-dir/ -p <PROJECT_NAME> --type dir
```
* ### Kustomize application
A Kustomize application will have <u>exactly one</u>: `apps/<APP_NAME>/base/kustomization.yaml` file, and one or more `apps/<APP_NAME>/overlays/<PROJECT_NAME>/` folders.
The `apps/<APP_NAME>/base/kustomization.yaml` file is created the first time you create the application. The `apps/<APP_NAME>/overlays/<PROJECT_NAME>/` folder is created for each project you install this application on. So all overlays of the same application are using the same base `kustomization.yaml`.
#### Example:
Try running the following command:
```bash
argocd-autopilot app create hello-world --app github.com/argoproj-labs/argocd-autopilot/examples/demo-app/ -p <PROJECT_NAME> --type kustomize
```
###### * If you did not create a project yet take a look at: [creating a project](https://argocd-autopilot.readthedocs.io/en/stable/Getting-Started/#add-a-project-and-an-application).

View file

@ -1,10 +0,0 @@
apiVersion: v2
name: gethomepage
version: 0.0.1
type: application
dependencies:
- name: homepage
version: 1.2.3
repository: https://jameswynn.github.io/helm-charts
sources:
- https://github.com/jameswynn/helm-charts

View file

@ -0,0 +1,61 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: homepage
labels:
app.kubernetes.io/name: homepage
app.kubernetes.io/instance: homepage
app.kubernetes.io/version: "v0.6.10"
data:
bookmarks.yaml: |
- Developer:
- Github:
- abbr: GH
href: https://github.com/
docker.yaml: ""
kubernetes.yaml: |
mode: cluster
services.yaml: |
layout:
Files:
Media:
Games:
Manage Homelab:
Manage Media:
settings.yaml: |
layout:
Games:
columns: 4
style: row
Manage Library:
columns: 4
style: row
Files:
Manage Homelab:
Media:
columns: 4
style: row
widgets.yaml: |
- datetime:
format:
dateStyle: long
hour12: true
timeStyle: short
text_size: xl
- kubernetes:
cluster:
cpu: true
label: cluster
memory: true
show: true
showLabel: true
nodes:
cpu: true
memory: true
show: true
showLabel: true
- search:
provider: duckduckgo
target: _blank

View file

@ -0,0 +1,84 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: homepage
labels:
app.kubernetes.io/instance: homepage
app.kubernetes.io/name: homepage
app.kubernetes.io/version: v0.6.10
spec:
revisionHistoryLimit: 3
replicas: 1
strategy:
type: RollingUpdate
selector:
matchLabels:
app.kubernetes.io/name: homepage
app.kubernetes.io/instance: homepage
template:
metadata:
labels:
app.kubernetes.io/name: homepage
app.kubernetes.io/instance: homepage
spec:
serviceAccountName: homepage
automountServiceAccountToken: true
dnsPolicy: ClusterFirst
enableServiceLinks: true
containers:
- name: homepage
image: "ghcr.io/benphelps/homepage:v0.6.10"
imagePullPolicy:
ports:
- name: http
containerPort: 3000
protocol: TCP
volumeMounts:
- name: homepage-config
subPath: bookmarks.yaml
mountPath: /app/config/bookmarks.yaml
- name: homepage-config
subPath: docker.yaml
mountPath: /app/config/docker.yaml
- name: homepage-config
subPath: kubernetes.yaml
mountPath: /app/config/kubernetes.yaml
- name: homepage-config
subPath: services.yaml
mountPath: /app/config/services.yaml
- name: homepage-config
subPath: settings.yaml
mountPath: /app/config/settings.yaml
- name: homepage-config
subPath: widgets.yaml
mountPath: /app/config/widgets.yaml
- name: logs
mountPath: /app/config/logs
livenessProbe:
failureThreshold: 3
initialDelaySeconds: 0
periodSeconds: 10
tcpSocket:
port: 3000
timeoutSeconds: 1
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 0
periodSeconds: 10
tcpSocket:
port: 3000
timeoutSeconds: 1
startupProbe:
failureThreshold: 30
initialDelaySeconds: 0
periodSeconds: 5
tcpSocket:
port: 3000
timeoutSeconds: 1
volumes:
- name: homepage-config
configMap:
name: homepage
- name: logs
emptyDir: {}

View file

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Before After
Before After

View file

@ -0,0 +1,26 @@
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: homepage
labels:
app.kubernetes.io/instance: homepage
app.kubernetes.io/name: homepage
app.kubernetes.io/version: v0.6.10
annotations:
cert-manager.io/cluster-issuer: letsencrypt-issuer
spec:
tls:
- hosts:
- "dashboard.int.nc.landry.land"
rules:
- host: "dashboard.int.nc.landry.land"
http:
paths:
- path: "/"
pathType: Prefix
backend:
service:
name: homepage
port:
number: 3000

View file

@ -0,0 +1,9 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- configmap.yaml
- deployment.yaml
- ingress.yaml
- rbac.yaml
- sa.yaml
- service.yaml

View file

@ -0,0 +1,68 @@
---
# Source: gethomepage/charts/homepage/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: homepage
labels:
app.kubernetes.io/instance: homepage
app.kubernetes.io/name: homepage
app.kubernetes.io/version: v0.6.10
rules:
- apiGroups:
- ""
resources:
- namespaces
- pods
- nodes
verbs:
- get
- list
- apiGroups:
- extensions
- networking.k8s.io
resources:
- ingresses
verbs:
- get
- list
- apiGroups:
- traefik.containo.us
- traefik.io
resources:
- ingressroutes
verbs:
- get
- list
- apiGroups:
- metrics.k8s.io
resources:
- nodes
- pods
verbs:
- get
- list
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions/status
verbs:
- get
---
# Source: gethomepage/charts/homepage/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: homepage
labels:
app.kubernetes.io/instance: homepage
app.kubernetes.io/name: homepage
app.kubernetes.io/version: v0.6.10
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: homepage
subjects:
- kind: ServiceAccount
name: homepage
namespace: argocd

View file

@ -0,0 +1,23 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: homepage
labels:
app.kubernetes.io/instance: homepage
app.kubernetes.io/name: homepage
app.kubernetes.io/version: v0.6.10
secrets:
- name: homepage-sa-token
---
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
name: homepage-sa-token
labels:
app.kubernetes.io/instance: homepage
app.kubernetes.io/name: homepage
app.kubernetes.io/version: v0.6.10
annotations:
kubernetes.io/service-account.name: homepage

View file

@ -0,0 +1,21 @@
---
apiVersion: v1
kind: Service
metadata:
name: homepage
labels:
app.kubernetes.io/service: homepage
app.kubernetes.io/instance: homepage
app.kubernetes.io/name: homepage
app.kubernetes.io/version: v0.6.10
annotations:
spec:
type: ClusterIP
ports:
- port: 3000
targetPort: http
protocol: TCP
name: http
selector:
app.kubernetes.io/instance: homepage
app.kubernetes.io/name: homepage

View file

@ -0,0 +1,11 @@
{
"appName": "gethomepage",
"userGivenName": "gethomepage",
"destNamespace": "homepage",
"destServer": "https://kubernetes.default.svc",
"srcPath": "apps/gethomepage/overlays/system",
"srcRepoURL": "ssh://git@gitea-ssh.gitops.svc.cluster.local:2222/davad/argo.git",
"srcTargetRevision": "",
"labels": null,
"annotations": null
}

View file

@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base

View file

@ -1,84 +0,0 @@
homepage:
config:
bookmarks:
- Developer:
- Github:
- abbr: GH
href: https://github.com/
services:
layout:
Files:
Media:
Games:
Manage Homelab:
Manage Media:
widgets:
# show the kubernetes widget, with the cluster summary and individual nodes
- datetime:
text_size: xl
format:
hour12: true
dateStyle: long
timeStyle: short
- kubernetes:
cluster:
show: true
cpu: true
memory: true
showLabel: true
label: "cluster"
nodes:
show: true
cpu: true
memory: true
showLabel: true
- search:
provider: duckduckgo
target: _blank
kubernetes:
mode: cluster
settings:
layout:
Media:
style: row
columns: 4
Games:
style: row
columns: 4
Files:
Manage Homelab:
Manage Library:
style: row
columns: 4
# The service account is necessary to allow discovery of other services
serviceAccount:
create: true
name: homepage
# This enables the service account to access the necessary resources
enableRbac: true
ingress:
main:
enabled: true
annotations:
cert-manager.io/cluster-issuer: letsencrypt-issuer
# Example annotations to add Homepage to your Homepage!
# gethomepage.dev/enabled: "true"
# gethomepage.dev/name: "Homepage"
# gethomepage.dev/description: "Dynamically Detected Homepage"
# gethomepage.dev/group: "Dynamic"
# gethomepage.dev/icon: "homepage.png"
hosts:
- host: dashboard.int.nc.landry.land
paths:
- path: /
pathType: Prefix
tls:
- hosts:
- dashboard.int.nc.landry.land

View file

@ -0,0 +1,14 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- email-claim-pvc.yaml
- email-deployment.yaml
- email-service.yaml
- kavita-comics-pv.yaml
- kavita-comics-pvc.yaml
- kavita-config-pvc.yaml
- kavita-deployment.yaml
- kavita-ebooks-pv.yaml
- kavita-ebooks-pvc.yaml
- kavita-ingress.yaml
- kavita-service.yaml

View file

@ -0,0 +1,11 @@
{
"appName": "kavita",
"userGivenName": "kavita",
"destNamespace": "media",
"destServer": "https://kubernetes.default.svc",
"srcPath": "apps/kavita/overlays/media",
"srcRepoURL": "ssh://git@gitea-ssh.gitops.svc.cluster.local:2222/davad/argo.git",
"srcTargetRevision": "",
"labels": null,
"annotations": null
}

View file

@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base

View file

@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- github.com/metallb/metallb/config/native?ref=v0.13.12

View file

@ -0,0 +1,11 @@
{
"appName": "metallb",
"userGivenName": "metallb",
"destNamespace": "metallb-system",
"destServer": "https://kubernetes.default.svc",
"srcPath": "apps/metallb/overlays/system",
"srcRepoURL": "ssh://git@gitea-ssh.gitops.svc.cluster.local:2222/davad/argo.git",
"srcTargetRevision": "",
"labels": null,
"annotations": null
}

View file

@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base

View file

@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./minio-dev.yaml

View file

@ -0,0 +1,40 @@
# Deploys a new Namespace for the MinIO Pod
apiVersion: v1
kind: Namespace
metadata:
name: minio-dev # Change this value if you want a different namespace name
labels:
name: minio-dev # Change this value to match metadata.name
---
# Deploys a new MinIO Pod into the metadata.namespace Kubernetes namespace
#
# The `spec.containers[0].args` contains the command run on the pod
# The `/data` directory corresponds to the `spec.containers[0].volumeMounts[0].mountPath`
# That mount path corresponds to a Kubernetes HostPath which binds `/data` to a local drive or volume on the worker node where the pod runs
#
apiVersion: v1
kind: Pod
metadata:
labels:
app: minio
name: minio
namespace: minio-dev # Change this value to match the namespace metadata.name
spec:
containers:
- name: minio
image: quay.io/minio/minio:latest
command:
- /bin/bash
- -c
args:
- minio server /data --console-address :9090
volumeMounts:
- mountPath: /data
name: localvolume # Corresponds to the `spec.volumes` Persistent Volume
nodeSelector:
kubernetes.io/hostname: elli # Specify a node label associated to the Worker Node on which you want to deploy the pod.
volumes:
- name: localvolume
hostPath: # MinIO generally recommends using locally-attached volumes
path: /storage/local-k8s/minio # Specify a path to a local drive or volume on the Kubernetes worker node
type: DirectoryOrCreate # The path to the last directory must exist

View file

@ -0,0 +1,11 @@
{
"appName": "minio",
"userGivenName": "minio",
"destNamespace": "minio-dev",
"destServer": "https://kubernetes.default.svc",
"srcPath": "apps/minio/overlays/system",
"srcRepoURL": "ssh://git@gitea-ssh.gitops.svc.cluster.local:2222/davad/argo.git",
"srcTargetRevision": "",
"labels": null,
"annotations": null
}

View file

@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base

View file