initial import
This commit is contained in:
commit
4906c52d80
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
\#*#
|
||||
*~
|
||||
charts/
|
69
README.md
Normal file
69
README.md
Normal file
|
@ -0,0 +1,69 @@
|
|||
# `argo1`
|
||||
|
||||
#### A different opinionated opinion on how to bootstrap your ArgoCD
|
||||
|
||||
This repo is a basic skeleton for managing your apps with ArgoCD.
|
||||
|
||||
It uses helm to bootstrap and maintain the ArgoCD installation. You may
|
||||
then add additional applications in argo1/templates either as helm charts
|
||||
or as directories which should live alongside `argo1`.
|
||||
|
||||
## Setup your own Argo1
|
||||
|
||||
1. Clone this repo as a template
|
||||
2. If you will be using a private repo, configure a secret similar to secret.yaml
|
||||
* You might also wish to use sealed secrets (via kubeseal).
|
||||
* Check `secrets/` for more info on secrets and git repos.
|
||||
3. update `argo1/values.yaml`
|
||||
* At the very least, you will need to update the bootstrap.source.repoURL to
|
||||
point to your clone -- this URL must match the prefix of the secret from
|
||||
step 2, as well.
|
||||
* You may configure the argo-cd helm template via the argo-cd map in values.yaml.
|
||||
A basic example is available in the default values.yaml file which suppresses
|
||||
installing the CRDs (which are instead installed via install-crds.sh)
|
||||
|
||||
4. Install
|
||||
```bash
|
||||
bash install.sh
|
||||
```
|
||||
5. all done!
|
||||
|
||||
## App of Apps pattern
|
||||
|
||||
This is already an app of apps.
|
||||
|
||||
Add additional applications to `templates/`. These may reference Values or
|
||||
they may be verbatim manifests (be careful of any `{{}}` in your manifests
|
||||
though!)
|
||||
|
||||
Do not modify (or be careful with) `1-self.yaml` which is the application which
|
||||
references this repo to enable self-management.
|
||||
|
||||
## Uninstalling
|
||||
|
||||
```bash
|
||||
bash uninstall.sh
|
||||
```
|
||||
|
||||
## Adding an application
|
||||
|
||||
An application is added to `argo1/templates` similarly to `sealed-secrets.yaml` for
|
||||
a helm chart or similarly to `secrets.yaml` for a project colocated in this repo.
|
||||
|
||||
Steps for adding an application:
|
||||
- if helm chart, copy `argo1/templates/sealed-secrets.yaml` to a new file in the same folder
|
||||
- if local manifests, copy `argo1/templates/secrets.yaml` to a new file in the same folder
|
||||
- update the new file. at least the following will change:
|
||||
- the key in `.Values` on line 1
|
||||
- `metadata.name`
|
||||
- `spec.source`
|
||||
|
||||
Applications which affect how secrets are loaded for Git repos must update the following
|
||||
pre-bootstrap files:
|
||||
- `argo1/install-crds.sh`
|
||||
- `argo1/delete-crds.sh`
|
||||
- `install.sh`
|
||||
- `uninstall.sh`
|
||||
|
||||
|
||||
[argo-crds]: https://argo-cd.readthedocs.io/en/stable/operator-manual/installation/
|
6
argo1/Chart.lock
Normal file
6
argo1/Chart.lock
Normal file
|
@ -0,0 +1,6 @@
|
|||
dependencies:
|
||||
- name: argo-cd
|
||||
repository: https://argoproj.github.io/argo-helm
|
||||
version: 5.29.1
|
||||
digest: sha256:bc009287f8e46edcddb1d36d4e6865080d92e97b6572ae2fd4d553d5e41cd2a2
|
||||
generated: "2023-04-23T21:03:44.445603-05:00"
|
13
argo1/Chart.yaml
Normal file
13
argo1/Chart.yaml
Normal file
|
@ -0,0 +1,13 @@
|
|||
apiVersion: v2
|
||||
name: argo1
|
||||
description: A Helm chart for your management ArgoCD of your management ArgoCD
|
||||
|
||||
type: application
|
||||
version: 0.1.0
|
||||
appVersion: &argoVersion |-
|
||||
5.29.1
|
||||
|
||||
dependencies:
|
||||
- name: argo-cd
|
||||
version: *argoVersion
|
||||
repository: "https://argoproj.github.io/argo-helm"
|
54
argo1/delete-crds.sh
Normal file
54
argo1/delete-crds.sh
Normal file
|
@ -0,0 +1,54 @@
|
|||
#!/bin/bash
|
||||
|
||||
MAINDIR="$(dirname "$0")"
|
||||
cd "$MAINDIR"
|
||||
|
||||
application_chart_info() {
|
||||
F="$1"
|
||||
yq -o json . "$F" | jq -r '
|
||||
.spec.source
|
||||
| (
|
||||
@sh "CHART=\(.chart)",
|
||||
@sh "VERSION=\(.targetRevision)",
|
||||
@sh "REPO=\(.repoURL)"
|
||||
)
|
||||
'
|
||||
}
|
||||
|
||||
dependency_chart_info() {
|
||||
F="${1:-"$MAINDIR"/Chart.yaml}"
|
||||
DEP="${2:-0}"
|
||||
|
||||
yq -o json . "$F" | jq -r --argjson d "$DEP" '
|
||||
.dependencies[$d]
|
||||
| (
|
||||
@sh "CHART=\(.name)",
|
||||
@sh "VERSION=\(.version)",
|
||||
@sh "REPO=\(.repository)"
|
||||
)
|
||||
'
|
||||
}
|
||||
|
||||
(
|
||||
set -e
|
||||
eval "$(dependency_chart_info)"
|
||||
set -x
|
||||
helm template argocd-crds --include-crds "$CHART" --repo "$REPO" --version "$VERSION" | yq 'select(.kind == "CustomResourceDefinition")' | kubectl delete -f -
|
||||
)
|
||||
|
||||
RC=$?
|
||||
if [ $RC -ne 0 ];then
|
||||
1>&2 echo "error deleting ArgoCD CRDs"
|
||||
fi
|
||||
|
||||
(
|
||||
set -e
|
||||
eval "$(application_chart_info templates/sealed-secrets.yaml)"
|
||||
set -x
|
||||
helm template sealed-secrets-crds --include-crds "$CHART" --repo "$REPO" --version "$VERSION" | yq 'select(.kind == "CustomResourceDefinition")' | kubectl delete -f -
|
||||
)
|
||||
|
||||
RC=$?
|
||||
if [ $RC -ne 0 ];then
|
||||
1>&2 echo "error deleting Sealed Secrets CRDs"
|
||||
fi
|
56
argo1/install-crds.sh
Normal file
56
argo1/install-crds.sh
Normal file
|
@ -0,0 +1,56 @@
|
|||
#!/bin/bash
|
||||
|
||||
MAINDIR="$(dirname "$0")"
|
||||
cd "$MAINDIR"
|
||||
|
||||
application_chart_info() {
|
||||
F="$1"
|
||||
yq -o json . "$F" | jq -r '
|
||||
.spec.source
|
||||
| (
|
||||
@sh "CHART=\(.chart)",
|
||||
@sh "VERSION=\(.targetRevision)",
|
||||
@sh "REPO=\(.repoURL)"
|
||||
)
|
||||
'
|
||||
}
|
||||
|
||||
dependency_chart_info() {
|
||||
F="${1:-"$MAINDIR"/Chart.yaml}"
|
||||
DEP="${2:-0}"
|
||||
|
||||
yq -o json . "$F" | jq -r --argjson d "$DEP" '
|
||||
.dependencies[$d]
|
||||
| (
|
||||
@sh "CHART=\(.name)",
|
||||
@sh "VERSION=\(.version)",
|
||||
@sh "REPO=\(.repository)"
|
||||
)
|
||||
'
|
||||
}
|
||||
|
||||
(
|
||||
set -e
|
||||
eval "$(dependency_chart_info)"
|
||||
set -x
|
||||
helm template argocd-crds --include-crds "$CHART" --repo "$REPO" --version "$VERSION" | yq 'select(.kind == "CustomResourceDefinition")' | kubectl apply -f -
|
||||
)
|
||||
|
||||
RC=$?
|
||||
if [ $RC -ne 0 ];then
|
||||
1>&2 echo "exiting due to error creating ArgoCD CRDs"
|
||||
exit $RC
|
||||
fi
|
||||
|
||||
(
|
||||
set -e
|
||||
eval "$(application_chart_info templates/sealed-secrets.yaml)"
|
||||
set -x
|
||||
helm template sealed-secrets-crds --include-crds "$CHART" --repo "$REPO" --version "$VERSION" | yq 'select(.kind == "CustomResourceDefinition")' | kubectl apply -f -
|
||||
)
|
||||
|
||||
RC=$?
|
||||
if [ $RC -ne 0 ];then
|
||||
1>&2 echo "exiting due to error creating Sealed Secrets CRDs"
|
||||
exit $RC
|
||||
fi
|
33
argo1/templates/sealed-secrets.yaml
Normal file
33
argo1/templates/sealed-secrets.yaml
Normal file
|
@ -0,0 +1,33 @@
|
|||
# {{ if (index .Values "sealed-secrets").enabled -}}
|
||||
---
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: "{{ .Release.Name }}-sealed-secrets"
|
||||
namespace: argocd
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
chart: sealed-secrets
|
||||
repoURL: https://bitnami-labs.github.io/sealed-secrets
|
||||
targetRevision: 2.7.4
|
||||
helm:
|
||||
releaseName: "sealed-secrets-controller" # required for kubeseal to work ezpz
|
||||
destination:
|
||||
server: "https://kubernetes.default.svc"
|
||||
namespace: kube-system
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
retry:
|
||||
limit: 10
|
||||
backoff:
|
||||
duration: 5s
|
||||
factor: 2
|
||||
maxDuration: 3m0s
|
||||
# {{- end }}
|
33
argo1/templates/secrets.yaml
Normal file
33
argo1/templates/secrets.yaml
Normal file
|
@ -0,0 +1,33 @@
|
|||
{{ if (index .Values "secrets").enabled -}}
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: {{ .Release.Name }}-secrets
|
||||
namespace: argocd
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
path: secrets
|
||||
repoURL: "{{ .Values.bootstrap.source.repoURL }}"
|
||||
targetRevision: "{{ .Values.bootstrap.source.targetRevision }}"
|
||||
directory:
|
||||
recurse: true
|
||||
include: '*.yaml'
|
||||
destination:
|
||||
server: "https://kubernetes.default.svc"
|
||||
namespace: argocd
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
retry:
|
||||
limit: 10
|
||||
backoff:
|
||||
duration: 5s
|
||||
factor: 2
|
||||
maxDuration: 3m0s
|
||||
{{- end }}
|
30
argo1/templates/self.yaml
Normal file
30
argo1/templates/self.yaml
Normal file
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: "{{ .Release.Name }}"
|
||||
namespace: "{{ .Release.Namespace }}"
|
||||
# DO NOT place the resource finalizer here. Since this is ArgoCD itself, it
|
||||
# will never be able to finalize itself since it will have to delete itself
|
||||
# before removing the finalizer.
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: "{{.Values.bootstrap.source.repoURL}}"
|
||||
targetRevision: "{{.Values.bootstrap.source.targetRevision}}"
|
||||
path: argo1
|
||||
destination:
|
||||
namespace: "{{ .Release.Namespace }}"
|
||||
name: in-cluster
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
retry:
|
||||
limit: 10
|
||||
backoff:
|
||||
duration: 5s
|
||||
factor: 2
|
||||
maxDuration: 3m0s
|
15
argo1/values.yaml
Normal file
15
argo1/values.yaml
Normal file
|
@ -0,0 +1,15 @@
|
|||
bootstrap:
|
||||
source:
|
||||
repoURL: "https://set.to.your.fork/of/this"
|
||||
targetRevision: "main"
|
||||
|
||||
secrets: {enabled: true}
|
||||
sealed-secrets: {enabled: true}
|
||||
|
||||
argo-cd:
|
||||
crds:
|
||||
install: false
|
||||
|
||||
configs:
|
||||
params:
|
||||
"server.insecure": "true"
|
25
install.sh
Normal file
25
install.sh
Normal file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
cd "$(dirname "$0")/argo1"
|
||||
|
||||
TARGETNS="argocd"
|
||||
ORIGNS="$(kubectl config view --minify -o jsonpath='{..namespace}')"
|
||||
|
||||
(
|
||||
set -e
|
||||
|
||||
1>&2 echo "creating namespace if it doesn't exist"
|
||||
jq -n --args '{"apiVersion":"v1","kind":"Namespace","metadata":{"name": $ARGS.positional[0]}}' "$TARGETNS" | kubectl apply -f -
|
||||
|
||||
[ x"$TARGETNS" != x"$ORIGNS" ] && kubectl config set-context --current --namespace $TARGETNS
|
||||
helm dependency build
|
||||
bash install-crds.sh
|
||||
helm install -n "$TARGETNS" argo1 .
|
||||
kubectl apply -f ../secrets
|
||||
kubectl wait -n $TARGETNS deploy/argo1-argocd-server --for=condition=available
|
||||
until argocd --core app sync argo1-sealed-secrets;do sleep 1;done
|
||||
until argocd --core app sync argo1-secrets;do sleep 1;done
|
||||
until argocd --core app sync argo1;do sleep 1;done
|
||||
)
|
||||
|
||||
[ x"$TARGETNS" != x"$ORIGNS" ] && kubectl config set-context --current --namespace "$ORIGNS"
|
18
secrets/README.md
Normal file
18
secrets/README.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
Secrets.
|
||||
|
||||
Any manifests in this folder ending in .yaml will be installed.
|
||||
|
||||
It is recommended that SealedSecrets or similar are used to
|
||||
avoid directly including secrets in your Git repo.
|
||||
|
||||
For example, the sample secret may be modified and then sealed.
|
||||
|
||||
```bash
|
||||
cp git-creds-plain.yaml.sample git-creds-plain.yaml
|
||||
vi git-creds-plain.yaml
|
||||
kubeseal -o yaml < git-creds-plain.yaml > git-creds.yaml
|
||||
rm git-creds-plain.yaml
|
||||
git add git-creds.yaml
|
||||
git commit -m 'add git-creds sealed secret'
|
||||
git push
|
||||
```
|
22
secrets/sealed-secret.yaml
Normal file
22
secrets/sealed-secret.yaml
Normal file
|
@ -0,0 +1,22 @@
|
|||
apiVersion: bitnami.com/v1alpha1
|
||||
kind: SealedSecret
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: local-git-token
|
||||
namespace: argocd
|
||||
spec:
|
||||
encryptedData:
|
||||
password: AgAlNckjIJjOhBKYA54pngBa50DagQ6BtT0I9vvjyhbwBV62efdfnIrRcPSUzrXzSnCMrJPFCYyGZQwHCe7+MurVLPX+i94bBDFjZlGwP7kokaMQjTi4122nWbM0y9AGrYQUtDV3KodRdUkhRP8aAuhqtbzOjqSKB96xHc9EzUKupwrhs7iymbY50d5b7FVxvCBWL0ZzctIwlZU7o2OQ46ImmrAo/0Hn1ueI2wsuhSjg4a4xsh1GipVsRWTCuLO5Ot0eDOgEqQEhTQji5+uwOy4iCuYnj+UHlNodClGsn9MsRv4dIZhCt8kapKKTv4PdQNKSq9JjefgPjyXJs7Za5xTOj07KSsOHdrOQOBNzbf2piaKiGt3p1e8/NhdhB4ODpxbW973y/2ErR4xcf+hpCKQ8CqffNIYEvcRs+NcZAq0afaHQymWTjzqRgYjtceDp8gNIUbQxD5WRlbvaxRwgDWfe4aSrp/cRw7JbwkcOEQGfjGNJr15PmYO7jT8yb8ZJNavUG9KK4tCio8j2nCC7OZECewWr1vj/FLquYvD6AYeKMHKgfL2eRdxcqTwbXIoWXAP6JeWF1oN97xN0TANPljf+Pyt89D73BHMDVuQ1Ei2528y7JZy6xir7C3PoDRBBbSX0imMmHFCngSwtbGYMKdRfbxJ7rG+aamYGo6LUfqArrpnXDGPe4ti/FIp/fUKjYs7azT1f+Ntwfg==
|
||||
project: AgCaMGRFcW9LaVW8M5dLLwpEGEAnbwXgHZzBWkgkc804rL9lKNuu6L40l0QmZizziEf14u3MdVh5VecHo9julJgMQNaArWIwOLRGR3vcETcYdYHjMmQwUT+TO7GwY7xJZCAxEKMoQrM74ha+wgT2uWMn0uEOFTkobTQfnWLoTlXZcspIWFcTNhdgZeJKAqZMKIt7yE1CF0AjMy+7XWDAGHOByyWllpZSHp2wh78fuaK0tLGzY50+NmwE44cft6lATSh5a/Ko1UL+1uCDeMRvrs2cR5+1Zh9MNWbXHKCggyM81vojf831p58dfJ3yPzXJTWLADZ/k2o3liWvY43W5mp/C4my9wUYR9JRXFsByvbvtu+7vvdhFV2YLEPErKvJAVv66R/r+6u3YQTAAtz8iAHaxLtEn9Tj91b+iBeCqZnnChqfRF4Ts2XZvSmwH6O1V8k6Lv1s9ULYN7lDesvO0W4vbkO01P72vaPgjWYgDLkxeWrnEx5jQM9jPs29U9NaCiiWxnHxReGN87WklCA0Gsb5eyXmbXoh50qICx26Cf2TUqbrVGyMPT0pEJdavXpX7mgQDohP9iAy9ALGFicUmZ8gDH9DeadtqkHT8UgGWWoAGroTMulRCWK1v+plVfRJkfrtw3AXmWTegkNFYX8lYjyAHJokMOEpF4OjL1By2XngfwAnd2eAiSWtU1cPL1Jjv2NCYDR5ZlHXu
|
||||
type: AgBWOyU8137TFCt3kJC2WJV3gXlBQEirknbHVmS3IDcxwmyhuIxZh5NeLbDfc7Ip9OEtGQFViBD523gUzr3qJRZBE0IAWplF98+NwRopT3jVjxRCt8H6yF8+/3EiagUBe/9WM/eb5+S428KMDT7eDn9PiB6pEjoduxD5w/l+QDBUQQOoejc98bzxjC8ml8EpkaMS4H4yiO7JAlW2QYFRyF1fFaopoEdwyIEkPJ5Br/TXDOtdJeCEIhUhNKE+wQmNZc7MBJKWiqGyb54HzdsAndmF2PQs1FZ+sUCn0xJtu1pP8WTpcKGm4VpHPASlDNQgpuNFBvkYRGe+MErAmqyrAs0E5VU3R0qoIkmbhuvXY+gOploJ2YljG5gqLUx8DtECoSmkrF92oQZx61Yf4duvE/mEciWcDRThzUXwrG8A+qj8B/JxomoEQB4xu/l3WgNBOPMonF77b2dpTckBfH9VH70QKygbMTGAj7zl/sZDavPMZq37SCqNTmRhcDBs1qt3wtv8sUy6F4RUmr6XZsOtePxGg+WYijeHpXXeQSu7oASiZgUcNnjIPFPLc64IXoUv3s4a/QiSGRCgz8uUqws6QSu+TggY4P7f8VBOrJATv4jbOc++XGgWe0o/+b9oQACn5qPrdCkR4hiGd5wZ1BQXVINK5FMXCJq3l4kIjxDdKC6TjfG4vhi2VLld5eAz6f9cNphrocM=
|
||||
url: AgAk92yrw8BJX0rVsCkZOEz3PhkLMoNhKBOXEAGqlcH+AESKIKUH152fMcfFKNj3DBrOEaNGXM+HiM1DLCd+e4A46ytx/aqSF4uEno2853wLlHjlLQlqfSWdkMYwosSV11Y9MuMGhGTMyCB/u10QUIycUjBs/gZEHDrJV/ObJYtw1pIlMadeKG5nomYYoOiMArdKZ1EXqv010imTItAhrW+Xn4h7/GftCEm2vWPbCdTbFBNIirif2DIAge7kTM3NeLzeLdAqf+tM7+A2Ekw7lU6+bnuVGGNWzEbQI/e4soSGYATQqVdhRPD/UFRJJrmp6IFZ2ymgqKr7t7EbTJ8UKr+GiMP2Gy/9ihBe3cDiQuVEfj791yHMSfChkIQ4vDYzJjMueYJE5pAz04y6QMbqgDxfVaQlx1B2XTP2ma3W+9bMB8vrDCuqK5iWtfM1jSmLVnM10KCsxcQAraE6C8jOArpkUqMPzsCmIfAudEe8FUxv56EeOP0MVT7sHLDKjklxqfgFCzzeqpGAZOP+k8zLT89vXlqbgeUWl3VmXMRqheDmhS6v8YiwJhkusvEdMeC8GOukvXM5limKC/+SZDIUNLlf0wct8/ymi0nkkmcGsfI2Jl7M5ZyOrjjXfvMLeNhc/vE+atXeKIXy8NLoDM0UwjyvMiO2mOpx3ZUwu2M5ff2i9n3rpxevYTh+fpOLWz2CXpLkMzvIm8wIgOow/4mWWYuY1Oqg
|
||||
username: AgCIo+y2uwCJVEfnLl8wwTKLyw10rMfpJExCHcXq7dBlYWit2tG/uBQr6SM0jqlRINoe0jSNcaVUuzdRZWjvRwW7fwRonz2rjFih9wdmCXYhSc5K4qF5FeB8mO7tmOW+CzILUviZfqnqTyYLzd66BV2etCusuGHPBGomOYsaELYLMzQmpKPLt7an4PP8dUAM09aCeKe0KkTwQcgCkNRKBPRysg1mXnulCpGgWdUDGsj5QCM3byp2+l45g+/RDvELZgnkRjzVNNnXK9AI4Xy3vekDMoNEuFX3A+YWoBwI6LRSRWFOy5hi6w596PrvCq/O4FEomIsFqk9jkBY7dEVXsUX6JKVpIxkwtlKSChO3rt558YGipamt1csNKstM7frgtkzfXoNB7jQiKzHULeimtZnUOSjI8TaboeBKKKLHfrlbIWrJBHD1xJ3kuYCM/O7dpHM5aGBOwPSbjc72ur9Lso/uDs/ZvibsYkuaIBnP+Y8rj+t2d6cFe8//W4zcC90L+0Gnxn1/rLyuAp+B92bb13yq7sY50la2zu7zmvsL41/V4NYErgAUMciT2bSZMvSNh6wtx2IhCyJJSByDbsUMth7ixzfbuK8bgIeoyS3L3V17pB90YI9ttGNLmZ5zJLXzIhejD817EpnrIXHBQqjl0fNpxRgwJw2rmAH8fkKxSbsdT+hX3BORI/LUmFMuXuWhsarwbjTXmVHUV5qvbX0=
|
||||
template:
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
argocd.argoproj.io/secret-type: repo-creds
|
||||
name: local-git-token
|
||||
namespace: argocd
|
||||
type: Opaque
|
||||
|
14
secrets/secret.yaml
Normal file
14
secrets/secret.yaml
Normal file
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
stringData:
|
||||
password: password
|
||||
project: default
|
||||
type: git
|
||||
url: https://github.com/
|
||||
username: bobtedsmithy
|
||||
kind: Secret
|
||||
metadata:
|
||||
labels:
|
||||
argocd.argoproj.io/secret-type: repo-creds
|
||||
name: local-git-token
|
||||
namespace: argocd
|
||||
type: Opaque
|
18
uninstall.sh
Normal file
18
uninstall.sh
Normal file
|
@ -0,0 +1,18 @@
|
|||
#!/bin/bash
|
||||
|
||||
cd "$(dirname "$0")/argo1"
|
||||
|
||||
TARGETNS="argocd"
|
||||
ORIGNS="$(kubectl config view --minify -o jsonpath='{..namespace}')"
|
||||
|
||||
(
|
||||
set -e
|
||||
|
||||
[ x"$TARGETNS" != x"$ORIGNS" ] && kubectl config set-context --current --namespace $TARGETNS
|
||||
argocd --core app set argo1 --helm-set sealed-secrets.enabled=false --helm-set secrets.enabled=false
|
||||
argocd --core app sync argo1 || argocd --core app wait --sync argo1
|
||||
helm uninstall -n "$TARGETNS" argo1
|
||||
bash delete-crds.sh
|
||||
)
|
||||
|
||||
[ x"$TARGETNS" != x"$ORIGNS" ] && kubectl config set-context --current --namespace "$ORIGNS"
|
Loading…
Reference in New Issue
Block a user