Longhorn to cluster

This commit is contained in:
Simon Kaiser committed 2022-06-23 12:38:25 +02:00
1 parent 6de4360227
commit d25f378d69
9 files changed
+53 -161

No files matched your search

+18 -17
View File
@@ -10,35 +10,24 @@ All services deployed for kaisers.info as GitOps-capable k8s deployment
curl -sfL https://get.k3s.io | sh -s - server --disable local-storage
```
### Cert-Manager CRDs
### CRDs
```
// version must fit cert-manager in gitops-kaisers-info
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.0/cert-manager.yaml
```
### ArgoCD
```
helm install -n argocd argo-cd argo/argo-cd --create-namespace
// Currently not unused: kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj-labs/applicationset/v0.3.0/manifests/install.yaml
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
kubectl apply -k https://github.com/argoproj/argo-cd/manifests/crds\?ref\=stable
```
### Cluster
```
kubectl create namespace argocd
kubectl apply -f application-cluster-kaisers-info.yaml
```
### Longhorn
```
kubectl apply -f application-longhorn-kaisers-info.yaml
```
### GitOps
```
kubectl apply -f application-gitops-kaisers-info.yaml
```
### Sealed-Secrets
#### Own Certificates
#### Sealed-Secrets
##### Own Certificates
https://github.com/bitnami-labs/sealed-secrets/blob/main/docs/bring-your-own-certificates.md
```
@@ -53,7 +42,7 @@ kubectl -n "$NAMESPACE" label secret "$SECRETNAME" sealedsecrets.bitnami.com/sea
kubectl -n "$NAMESPACE" delete pod -l name=app.kubernetes.io/name=sealed-secrets
```
#### Sealing a secret
##### Sealing a secret
```
echo -n "PASSWORD" \
@@ -63,6 +52,18 @@ echo -n "PASSWORD" \
kubectl apply -f sealed-secret.yaml
```
### GitOps
```
kubectl apply -f application-gitops-kaisers-info.yaml
```
### ArgoCD
```
helm install -n argocd argo-cd argo/argo-cd --create-namespace
// Currently not unused: kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj-labs/applicationset/v0.3.0/manifests/install.yaml
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
```
## Services
### Services
kubectl apply -f application-services-kaisers-info.yaml
-51
View File
@@ -1,51 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: longhorn-kaisers-info
namespace: argocd
# Finalizer that ensures that project is not deleted until it is not referenced by any application
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
description: Longhorn distributed block storage for kaisers.info
clusterResourceWhitelist:
- group: '*'
kind: '*'
destinations:
- name: '*'
namespace: '*'
server: '*'
namespaceResourceWhitelist:
- group: '*'
kind: '*'
sourceRepos:
- '*'
---
apiVersion: v1
kind: Secret
metadata:
name: repo-k8s-kaisers-info
namespace: argocd
labels:
argocd.argoproj.io/secret-type: repository
stringData:
url: https://git.kaisers.info/simonkaiser/k8s-kaisers-info
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: longhorn-kaisers-info
namespace: argocd
spec:
destination:
name: in-cluster
namespace: argocd
project: longhorn-kaisers-info
source:
repoURL: https://git.kaisers.info/simonkaiser/k8s-kaisers-info
path: longhorn-kaisers-info
targetRevision: master
syncPolicy:
automated:
prune: true
selfHeal: true
-51
View File
@@ -1,51 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: services-kaisers-info
namespace: argocd
# Finalizer that ensures that project is not deleted until it is not referenced by any application
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
description: Services for kaisers.info
clusterResourceWhitelist:
- group: '*'
kind: '*'
destinations:
- name: '*'
namespace: '*'
server: '*'
namespaceResourceWhitelist:
- group: '*'
kind: '*'
sourceRepos:
- '*'
---
apiVersion: v1
kind: Secret
metadata:
name: repo-k8s-kaisers-info
namespace: argocd
labels:
argocd.argoproj.io/secret-type: repository
stringData:
url: https://git.kaisers.info/simonkaiser/k8s-kaisers-info
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: services-kaisers-info
namespace: argocd
spec:
destination:
name: in-cluster
namespace: argocd
project: services-kaisers-info
source:
repoURL: https://git.kaisers.info/simonkaiser/k8s-kaisers-info
path: services-kaisers-info
targetRevision: master
syncPolicy:
automated:
prune: true
selfHeal: true
+28
View File
@@ -0,0 +1,28 @@
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"argoproj.io/v1alpha1","kind":"AppProject","metadata":{"annotations":{},"finalizers":["resources-finalizer.argocd.argoproj.io"],"name":"longhorn-kaisers-info","namespace":"argocd"},"spec":{"clusterResourceWhitelist":[{"group":"*","kind":"*"}],"description":"Longhorn distributed block storage for kaisers.info","destinations":[{"name":"*","namespace":"*","server":"*"}],"namespaceResourceWhitelist":[{"group":"*","kind":"*"}],"sourceRepos":["*"]}}
creationTimestamp: "2022-06-22T17:08:07Z"
deletionGracePeriodSeconds: 0
deletionTimestamp: "2022-06-22T18:45:41Z"
generation: 2
name: longhorn-kaisers-info
namespace: argocd
resourceVersion: "9612"
uid: ae57d5a0-4258-4f7d-a193-acf84010b9ee
spec:
clusterResourceWhitelist:
- group: '*'
kind: '*'
description: Longhorn distributed block storage for kaisers.info
destinations:
- name: '*'
namespace: '*'
server: '*'
namespaceResourceWhitelist:
- group: '*'
kind: '*'
sourceRepos:
- '*'
@@ -9,5 +9,12 @@ apiVersion: v1
kind: Namespace
metadata:
name: "sealed-secrets"
annotations:
argocd.argoproj.io/sync-wave: "-1"
---
apiVersion: v1
kind: Namespace
metadata:
name: "longhorn-system"
annotations:
argocd.argoproj.io/sync-wave: "-1"
-23
View File
@@ -1,23 +0,0 @@
apiVersion: v2
name: longhorn-kaisers-info
description: Applications
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
appVersion: "0.1.0"
@@ -1,6 +0,0 @@
apiVersion: v1
kind: Namespace
metadata:
name: "longhorn-system"
annotations:
argocd.argoproj.io/sync-wave: "-1"
-13
View File
@@ -1,13 +0,0 @@
spec:
destination:
name: in-cluster
source:
path: longhorn-kaisers-info
repoURL: https://git.kaisers.info/simonkaiser/k8s-kaisers-info.git
targetRevision: master
project: longhorn-kaisers-info
namespace: argocd
syncPolicy:
automated:
prune: true
selfHeal: true