Autopilot Bootstrap
This commit is contained in:
38
bootstrap/argo-cd.yaml
Normal file
38
bootstrap/argo-cd.yaml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: argocd-autopilot
|
||||||
|
app.kubernetes.io/name: argo-cd
|
||||||
|
name: argo-cd
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: argocd
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
ignoreDifferences:
|
||||||
|
- group: argoproj.io
|
||||||
|
jsonPointers:
|
||||||
|
- /status
|
||||||
|
kind: Application
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
path: bootstrap/argo-cd
|
||||||
|
repoURL: http://192.168.4.101:3000/innohub/k3s.git
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
allowEmpty: true
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- allowEmpty=true
|
||||||
|
status:
|
||||||
|
health: {}
|
||||||
|
summary: {}
|
||||||
|
sync:
|
||||||
|
comparedTo:
|
||||||
|
destination: {}
|
||||||
|
source:
|
||||||
|
repoURL: ""
|
||||||
|
status: ""
|
||||||
17
bootstrap/argo-cd/kustomization.yaml
Normal file
17
bootstrap/argo-cd/kustomization.yaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
configMapGenerator:
|
||||||
|
- behavior: merge
|
||||||
|
literals:
|
||||||
|
- |
|
||||||
|
repository.credentials=- passwordSecret:
|
||||||
|
key: git_token
|
||||||
|
name: autopilot-secret
|
||||||
|
url: http://192.168.4.101:3000/
|
||||||
|
usernameSecret:
|
||||||
|
key: git_username
|
||||||
|
name: autopilot-secret
|
||||||
|
name: argocd-cm
|
||||||
|
kind: Kustomization
|
||||||
|
namespace: argocd
|
||||||
|
resources:
|
||||||
|
- github.com/argoproj-labs/argocd-autopilot/manifests/base?ref=v0.4.17
|
||||||
47
bootstrap/cluster-resources.yaml
Normal file
47
bootstrap/cluster-resources.yaml
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: ApplicationSet
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-wave: "0"
|
||||||
|
creationTimestamp: null
|
||||||
|
name: cluster-resources
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
generators:
|
||||||
|
- git:
|
||||||
|
files:
|
||||||
|
- path: bootstrap/cluster-resources/*.json
|
||||||
|
repoURL: http://192.168.4.101:3000/innohub/k3s.git
|
||||||
|
requeueAfterSeconds: 20
|
||||||
|
revision: ""
|
||||||
|
template:
|
||||||
|
metadata: {}
|
||||||
|
spec:
|
||||||
|
destination: {}
|
||||||
|
project: ""
|
||||||
|
syncPolicy:
|
||||||
|
preserveResourcesOnDeletion: true
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: argocd-autopilot
|
||||||
|
app.kubernetes.io/name: cluster-resources-{{name}}
|
||||||
|
name: cluster-resources-{{name}}
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
destination:
|
||||||
|
server: '{{server}}'
|
||||||
|
ignoreDifferences:
|
||||||
|
- group: argoproj.io
|
||||||
|
jsonPointers:
|
||||||
|
- /status
|
||||||
|
kind: Application
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
path: bootstrap/cluster-resources/{{name}}
|
||||||
|
repoURL: http://192.168.4.101:3000/innohub/k3s.git
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
allowEmpty: true
|
||||||
|
selfHeal: true
|
||||||
|
status: {}
|
||||||
1
bootstrap/cluster-resources/in-cluster.json
Normal file
1
bootstrap/cluster-resources/in-cluster.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"name":"in-cluster","server":"https://kubernetes.default.svc"}
|
||||||
3
bootstrap/cluster-resources/in-cluster/README.md
Normal file
3
bootstrap/cluster-resources/in-cluster/README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# Cluster Resources
|
||||||
|
This directory contains all cluster resources that should be applied to cluster: `in-cluster`.
|
||||||
|
For example `Namespace` resources that are shared by multiple applications on the same namespace.
|
||||||
9
bootstrap/cluster-resources/in-cluster/argocd-ns.yaml
Normal file
9
bootstrap/cluster-resources/in-cluster/argocd-ns.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-options: Prune=false
|
||||||
|
creationTimestamp: null
|
||||||
|
name: argocd
|
||||||
|
spec: {}
|
||||||
|
status: {}
|
||||||
40
bootstrap/root.yaml
Normal file
40
bootstrap/root.yaml
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: argocd-autopilot
|
||||||
|
app.kubernetes.io/name: root
|
||||||
|
name: root
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: argocd
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
ignoreDifferences:
|
||||||
|
- group: argoproj.io
|
||||||
|
jsonPointers:
|
||||||
|
- /status
|
||||||
|
kind: Application
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
path: projects
|
||||||
|
repoURL: http://192.168.4.101:3000/innohub/k3s.git
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
allowEmpty: true
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- allowEmpty=true
|
||||||
|
status:
|
||||||
|
health: {}
|
||||||
|
summary: {}
|
||||||
|
sync:
|
||||||
|
comparedTo:
|
||||||
|
destination: {}
|
||||||
|
source:
|
||||||
|
repoURL: ""
|
||||||
|
status: ""
|
||||||
21
projects/README.md
Normal file
21
projects/README.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Projects
|
||||||
|
This directory contains all of your `argocd-autopilot` projects. Projects provide a way to logically group applications and easily control things such as defaults and restrictions.
|
||||||
|
|
||||||
|
### Creating a new project
|
||||||
|
To create a new project run:
|
||||||
|
```bash
|
||||||
|
export GIT_TOKEN=<YOUR_TOKEN>
|
||||||
|
export GIT_REPO=<REPO_URL>
|
||||||
|
|
||||||
|
argocd-autopilot project create <PROJECT_NAME>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Creating a new project on different cluster
|
||||||
|
You can create a project that deploys applications to a different cluster, instead of the cluster where Argo-CD is installed. To do that run:
|
||||||
|
```bash
|
||||||
|
export GIT_TOKEN=<YOUR_TOKEN>
|
||||||
|
export GIT_REPO=<REPO_URL>
|
||||||
|
|
||||||
|
argocd-autopilot project create <PROJECT_NAME> --dest-kube-context <CONTEXT_NAME>
|
||||||
|
```
|
||||||
|
Now all applications in this project that do not explicitly specify a different `--dest-server` will be created on the project's destination server.
|
||||||
Reference in New Issue
Block a user