Compare commits
485 Commits
2db48a9dfb
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 4ee1a7e442 | |||
| 40ed5b5645 | |||
| 12f746c252 | |||
| b70c2342b6 | |||
| 6b29f4e5e9 | |||
| 1259655d91 | |||
| 08310e6376 | |||
| 484c963bfa | |||
| a44e2c9c73 | |||
| ad3644cedf | |||
| f9f220486e | |||
| c097cac4df | |||
| abf06173c2 | |||
| fd82b1013b | |||
| a861eb2dad | |||
| 7fdd6707ce | |||
| 2d90dd3d22 | |||
| 1839db41b1 | |||
| 76e1da7b55 | |||
| f7d4812660 | |||
| 65532383e9 | |||
| dbe83c45b3 | |||
| 0435d65bfd | |||
| 0d50a8fc32 | |||
| 41abf0d421 | |||
| 50de14e1b8 | |||
| d77c40e8ac | |||
| 52d9149c0f | |||
| 3cb85dea90 | |||
| 2209e5211f | |||
| 277097493d | |||
| a45419dc2b | |||
| 51a064bf82 | |||
| c3cb76831a | |||
| 24cc0f4e53 | |||
| 7f67c90b94 | |||
| 2c20abda1d | |||
| 926020970b | |||
| 6eccd0219a | |||
|
|
eeb760c62d | ||
| 1b89106485 | |||
| e89f61dedd | |||
| 8827edd328 | |||
| c322a7627d | |||
|
|
239bccb8ee | ||
|
|
24593bae8d | ||
|
|
d2a3c7cce0 | ||
|
|
2fd8c948d9 | ||
|
|
a6ebd2b871 | ||
|
|
10b939c6d3 | ||
|
|
6563c80f12 | ||
|
|
5a39395e0f | ||
|
|
5a144bd2fe | ||
| ffc0f1fa86 | |||
| 84ce3303f6 | |||
| 4badef2780 | |||
| 7ff12ff8e5 | |||
| b8620ce286 | |||
| 6f5fe42ad9 | |||
|
|
b13914fb19 | ||
|
|
6e5023f84d | ||
| 63698af819 | |||
| 83bda54bb0 | |||
| c80cc05fd5 | |||
| ab50210834 | |||
| 12a16fb176 | |||
| 7db650dbb2 | |||
| 43b42f6442 | |||
| 1b3c7a3544 | |||
|
|
41a229af78 | ||
|
|
a1a24f6047 | ||
|
|
75bafa1f0b | ||
|
|
9c4bb86ee9 | ||
|
|
656f9e7b28 | ||
|
|
81922b6bce | ||
|
|
a09a0390b0 | ||
|
|
c8840f7662 | ||
| a9bcbff5ac | |||
| 9b1866525f | |||
| 1821800c3a | |||
|
|
f8fc4e79e2 | ||
| f4030bee91 | |||
| 24ebe68664 | |||
| a5126d3636 | |||
|
|
078f5bc388 | ||
|
|
24d0612222 | ||
|
|
be917876a3 | ||
|
|
d70e4d1db9 | ||
| e277602a5a | |||
| 21ec47187f | |||
| 035e599194 | |||
| 5bee409112 | |||
| 689da9b9db | |||
|
|
0851bfdae0 | ||
|
|
05b779600d | ||
|
|
821a667d1a | ||
| 79eec7e560 | |||
| 007efdcb8b | |||
| 86a9e8ebcf | |||
| 27e13655eb | |||
| aef60d765b | |||
| 4ec4dd99c7 | |||
| e540b1e6d1 | |||
| bef6a2d1d7 | |||
| 71eb4415f8 | |||
| 1897181c97 | |||
| be0873d8ee | |||
| 2143505817 | |||
| 3ca3e14c29 | |||
| 9d08c0eaee | |||
| 1fc6a66a5d | |||
| 216d839df2 | |||
| 1f89ccfae6 | |||
| 1ede5b2a08 | |||
| 6ddce7829b | |||
| 887f5ef8e9 | |||
| 11d60b0936 | |||
| fcdfd21fec | |||
| f58d2c7e5b | |||
|
|
217b140ab8 | ||
|
|
5b02095007 | ||
|
|
0a263eb1cc | ||
|
|
c4979c0698 | ||
| 29d038406a | |||
| 2261d13409 | |||
| 0ebb161e7a | |||
| e90948a3b7 | |||
| c18e158fd1 | |||
| 347ce9f572 | |||
| e46e58031a | |||
| 0ed82b270c | |||
| a97660b49f | |||
| 179c4708c4 | |||
| 8fb1d12c01 | |||
| 1e10e3fdda | |||
| d6ebb7314b | |||
| 23578283a3 | |||
| 67bd67ca32 | |||
| 8c44f6580c | |||
| 19367c78ba | |||
| 5cc7c45ccf | |||
| 8211dfb63a | |||
| 3a9f5cb46c | |||
| 729759d2bb | |||
| 42dfaf1aaf | |||
| b56063b06e | |||
| 2b66791a89 | |||
| 201e0c3566 | |||
| d31081957e | |||
| c566592097 | |||
| fbd952aad3 | |||
| e98f3d4b04 | |||
| 3fa4c7e305 | |||
| a2ba404db6 | |||
| 0444d567f0 | |||
| 1c6c77ef50 | |||
| 31529e8a13 | |||
| bd63376510 | |||
| 7d43851221 | |||
| 4d13b7a313 | |||
| ca282500d1 | |||
| 239c46c3c1 | |||
| e99a9f6003 | |||
| b0fcc72dfe | |||
| 5129dda963 | |||
| 77689317ce | |||
| eb28b4f2df | |||
| 97d3125aa1 | |||
| d1ca550071 | |||
| 55250717f3 | |||
|
|
9c748befcf | ||
|
|
fb6741a447 | ||
| d333a104ab | |||
| bbf32cfd01 | |||
| 750c0b6931 | |||
| 19019b9672 | |||
| 38b57ade6f | |||
| 0bd7cd005e | |||
| 3a2a0d47ef | |||
| 8513a01738 | |||
| 634e04b240 | |||
| c58e9b2bbb | |||
| 3628973c65 | |||
| cc4f5b0eb5 | |||
| a6049673eb | |||
| 79bc67730e | |||
| 92528aee1d | |||
| 673935d16d | |||
| 7906cd43be | |||
| 45743eccc2 | |||
| ea9c15ac52 | |||
| fea66ba7f1 | |||
| 31e68fe8f3 | |||
| 1c8577160e | |||
| 22ccacc30c | |||
| ea34e4a0eb | |||
| ff9a427106 | |||
| 83f3bf744d | |||
| e36338ef48 | |||
| 70c83afce0 | |||
| 824d2268f2 | |||
| 1ef7f09d56 | |||
| ad5486b2c7 | |||
| 3efb914168 | |||
| d6dfac7499 | |||
| 53b7c2e358 | |||
| b50e096242 | |||
| bf230033b9 | |||
| 9cfef254c1 | |||
| 4aef688cc8 | |||
| a13cca80b0 | |||
| 925001d18d | |||
| 30f1e63b6c | |||
| 4156250859 | |||
| 03c8a25d83 | |||
| 40c0b051a7 | |||
| 8b6a405a7a | |||
| 0e65ec0f11 | |||
| 021b88337d | |||
| 0515542c8c | |||
| 746dad8983 | |||
| dfc13bdac2 | |||
| ec2821c023 | |||
| ba6aea45fd | |||
| 0c5d9828fd | |||
| d1c594a91e | |||
| aec9d77b08 | |||
| d16d48f1e1 | |||
| 26c9482345 | |||
| 7822ba599b | |||
| 2ef7c26453 | |||
| e1ffab5edc | |||
| ae03e9bf1d | |||
| e04d267791 | |||
| de3b6f07fc | |||
| 3c9f1b8b47 | |||
| 0abe7ae464 | |||
| 4c794b471f | |||
| 333892ffca | |||
| 302becc82e | |||
| 6ff35d3e12 | |||
|
|
966ec21418 | ||
| 91a7c4df71 | |||
| c3122a8eae | |||
| 251ed76c60 | |||
|
|
8b43b149d8 | ||
| be6000a721 | |||
| 3cd9aa2dba | |||
| 7f09bb35c8 | |||
| 61d9990269 | |||
| 69a94b9339 | |||
| c521d70b11 | |||
| ddd485c7ac | |||
| 9afab5d853 | |||
| afebee4777 | |||
| 1e5661b6ee | |||
|
|
ef76774251 | ||
| cdeb762e25 | |||
| e28e807f18 | |||
| 2c4258ffdc | |||
|
|
9e24b14d78 | ||
|
|
b7b69d4721 | ||
| e7d9a6c892 | |||
| 76d041bcde | |||
| 421723d8f0 | |||
| d5f78da216 | |||
| 95dbef7b19 | |||
| 68ead251a8 | |||
| 763c33ca7d | |||
| d5362b5818 | |||
| 2f549443e0 | |||
| 5fc0f3b467 | |||
| ba1b7a9b3b | |||
|
|
5b5475f912 | ||
|
|
da279b3c44 | ||
|
|
80e888ec26 | ||
| e6172a0d7d | |||
| e4ae42e89f | |||
| 9f8c6fcf30 | |||
| 563298321c | |||
| 4d2bb25dd2 | |||
| ae0950625c | |||
| b46d5d66d2 | |||
| f95f5ea23e | |||
| 118994d7f5 | |||
| fc15336438 | |||
| 3b71257f0b | |||
| cdf5816d5d | |||
| a049158ff6 | |||
| 9184a02490 | |||
| 65d3c58080 | |||
| 8b33462a96 | |||
| 23c2febeec | |||
| 6d3c1e4405 | |||
| aa9ca6f517 | |||
| f121a6e0d9 | |||
| 4686703176 | |||
| 479c75360e | |||
|
|
46b846fca1 | ||
|
|
a085fa35f7 | ||
|
|
34ba9ecba7 | ||
| b396ff1776 | |||
| 13640fb351 | |||
| 255dbb62b2 | |||
| 9ecff31ebb | |||
| 5f4daca17f | |||
| a3dbf1a26f | |||
| eb74c435c1 | |||
| b2685f6ce3 | |||
| 6ceed3014e | |||
| 028948a640 | |||
| af5fd10104 | |||
| 3a25bbbf24 | |||
| 8d1e15beca | |||
| d76202ebb0 | |||
| b35a0c0614 | |||
| 51d8695393 | |||
|
|
1fa83c2b1c | ||
|
|
0b9ca3a9ad | ||
| 3bfaf7366f | |||
| f18146c964 | |||
| 3d4da1f3c4 | |||
|
|
d189cc9cce | ||
| 516fe6b3d1 | |||
| c118bfe668 | |||
| 5bf74dc33b | |||
| 1339a39e89 | |||
| 7aadca21b0 | |||
|
|
4310e62837 | ||
| 0d4061158a | |||
| ebb12d5098 | |||
| 7b4d071801 | |||
| 1ddb46a894 | |||
| 54f75ec765 | |||
| d7bd8b5138 | |||
| e679f4bef7 | |||
| a104e9a293 | |||
| ffc9e84eda | |||
| f34665e1ff | |||
| d6342dd340 | |||
| 23e93865a1 | |||
| 8ce8cc5fbd | |||
|
|
59d17c054d | ||
| 23ce20b6c8 | |||
| b89c999f5f | |||
| 50ce645c6d | |||
| 7c80b4fe48 | |||
| 5b3bd4447d | |||
| 1bbb4aa6c1 | |||
| 750952af7b | |||
| ef400a6bef | |||
| 95d37de264 | |||
| aa9398ecb5 | |||
| 272973a3ed | |||
| c399c9186c | |||
| f8e417a8bb | |||
| 96f0721499 | |||
| 64fa627751 | |||
| b4f19f4a23 | |||
| 28c269c98d | |||
| 10c527966d | |||
| 976ff956ce | |||
| 5bf65cdf2b | |||
| 26c94742ae | |||
| 0d207fdb0c | |||
|
|
3c981366b6 | ||
| 049f201130 | |||
| 2b82537a21 | |||
| eddab7443e | |||
| 638252e082 | |||
| 956d7be62b | |||
| d38b1fec14 | |||
| ba51b204a4 | |||
| 5e118fb35e | |||
| 4ed61fc34a | |||
| b479b929ec | |||
| 52de130b4a | |||
| 13061e392a | |||
| c140c94a98 | |||
| 3c1b887fc8 | |||
| 6d443dbdc6 | |||
| 50b3a9d46d | |||
| ff6a89bead | |||
| 07e86511c5 | |||
| dcb64cc04b | |||
| c420790a4e | |||
| 8be0f7dbc2 | |||
| 6dc77a9dca | |||
| 710f771fb9 | |||
| 998bf9428a | |||
| 50f52e5e23 | |||
| f2a7a538ff | |||
| 0d321a4864 | |||
| df2f7bce39 | |||
| ecf703c938 | |||
| 592ce843a5 | |||
| 303593d886 | |||
| 4ffc8e4ea6 | |||
| 9c7b06f78d | |||
| 9ecf48108d | |||
| 1db752520e | |||
| b63c1c691b | |||
| c021cf7ef7 | |||
| 13f9b3830c | |||
| b2c289aee3 | |||
| 3176a9c92a | |||
| f41889854d | |||
| c748bd7f9a | |||
| 4752c35680 | |||
| 5dd093f13f | |||
| 45353f5fb2 | |||
| 799bd202f5 | |||
| fd80464945 | |||
| fc5fcc4185 | |||
| e1ae00b104 | |||
| 4770aac82a | |||
| 8f9b7aebab | |||
| c21fcba11a | |||
| dda8324d8f | |||
| 5d8d6159d5 | |||
| 3d31bd7f6e | |||
| 907418eb7f | |||
| 809f619ee8 | |||
| 668223937a | |||
| 0cca217e17 | |||
| 1a831f97d1 | |||
| 7967f8fec9 | |||
| 70a742c89c | |||
| 1ae337b223 | |||
| 358f5bf0cc | |||
| f7d48608b8 | |||
| 0ccbc331e8 | |||
| af58f48071 | |||
| 6fd3e765b7 | |||
| 621be852b6 | |||
| 54e2db8955 | |||
| 42beecfb21 | |||
|
|
5e4655a608 | ||
|
|
105c49f7f5 | ||
| 4480a433b8 | |||
| 5048e3a264 | |||
|
|
2807898ec5 | ||
| e889cd5c86 | |||
| 130ffcde8d | |||
| 22dc196dc0 | |||
|
|
bc5b64e9bb | ||
|
|
10df513e78 | ||
|
|
8cf2e14ffa | ||
|
|
6c45266da1 | ||
| dd2a5caa43 | |||
| c5f276fc0c | |||
| 65919f08c7 | |||
| fa4f6c0c52 | |||
| a04c0b52ba | |||
| 72adf64aa7 | |||
| d9acb2dd04 | |||
| 2b7769e01a | |||
| e70e8c762b | |||
| 3b25eb51fd | |||
|
|
2b68fbcce2 | ||
|
|
547a112648 | ||
|
|
b93513b084 | ||
|
|
db930c86c0 | ||
|
|
521ef95ed8 | ||
|
|
65a40645d4 | ||
|
|
d8b138793e | ||
|
|
87b463842c | ||
|
|
2f24412251 | ||
|
|
273b09e726 | ||
| aaeda43cc6 | |||
| c1b813fd83 | |||
| 233f407d1c | |||
| 8e9bd6655d | |||
| 6b83b8b77a | |||
| 17ea544346 | |||
| 2b9a299668 | |||
| 63fcc89442 | |||
| 9f782de92e | |||
| d9f4b19f69 | |||
| a78cf23c95 | |||
| 0f6ff9111a | |||
| 164ef2595c | |||
| ee5bdcd65f | |||
| b2fbb8e4eb | |||
|
|
5e0eb6efcb |
@@ -3,12 +3,15 @@ kind: Service
|
|||||||
metadata:
|
metadata:
|
||||||
name: adguard-home
|
name: adguard-home
|
||||||
namespace: adguard-home
|
namespace: adguard-home
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: adguard-home
|
app.kubernetes.io/name: adguard-home
|
||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
app.kubernetes.io/name: adguard-home
|
app.kubernetes.io/name: adguard-home
|
||||||
type: ClusterIP
|
type: LoadBalancer
|
||||||
internalTrafficPolicy: Cluster
|
internalTrafficPolicy: Cluster
|
||||||
ports:
|
ports:
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
@@ -32,11 +35,11 @@ spec:
|
|||||||
targetPort: 80
|
targetPort: 80
|
||||||
name: http-tcp
|
name: http-tcp
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
port: 443
|
port: 10443
|
||||||
targetPort: 443
|
targetPort: 443
|
||||||
name: https-tcp
|
name: https-tcp
|
||||||
- protocol: UDP
|
- protocol: UDP
|
||||||
port: 443
|
port: 10443
|
||||||
targetPort: 443
|
targetPort: 443
|
||||||
name: https-udp
|
name: https-udp
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
|
|||||||
61
apps/adguard-home/env/k3s-cluster/ingress.yaml
vendored
61
apps/adguard-home/env/k3s-cluster/ingress.yaml
vendored
@@ -1,61 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: adguard-home-ingress
|
|
||||||
namespace: adguard-home
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "adguard-home.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: adguard-home
|
|
||||||
port:
|
|
||||||
number: 10080
|
|
||||||
- host: "adguard-home.cluster.local"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: adguard-home
|
|
||||||
port:
|
|
||||||
number: 10080
|
|
||||||
- host: "setup.adguard-home.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: adguard-home
|
|
||||||
port:
|
|
||||||
number: 13000
|
|
||||||
- host: "setup.adguard-home.cluster.local"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: adguard-home
|
|
||||||
port:
|
|
||||||
number: 13000
|
|
||||||
- host: "doh.adguard-home.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: adguard-home
|
|
||||||
port:
|
|
||||||
number: 443
|
|
||||||
@@ -2,4 +2,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- ../../base
|
- ../../base
|
||||||
- ./ingress.yaml
|
|
||||||
12
apps/chartmuseum/env/k3s-cluster/config.json
vendored
Normal file
12
apps/chartmuseum/env/k3s-cluster/config.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"appName": "chartmuseum",
|
||||||
|
"userGivenName": "chartmuseum",
|
||||||
|
"namespace": "chartmuseum",
|
||||||
|
"destNamespace": "chartmuseum",
|
||||||
|
"destServer": "https://kubernetes.default.svc",
|
||||||
|
"srcPath": "apps/chartmuseum/env/k3s-cluster",
|
||||||
|
"srcRepoURL": "https://github.com/3dwardch3ng/home-cluster-ops.git",
|
||||||
|
"srcTargetRevision": "",
|
||||||
|
"labels": null,
|
||||||
|
"annotations": null
|
||||||
|
}
|
||||||
8
apps/chartmuseum/env/k3s-cluster/kustomization.yaml
vendored
Normal file
8
apps/chartmuseum/env/k3s-cluster/kustomization.yaml
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
helmCharts:
|
||||||
|
- name: chartmuseum
|
||||||
|
repo: https://chartmuseum.github.io/charts
|
||||||
|
version: 3.10.3
|
||||||
|
releaseName: chartmuseum
|
||||||
|
valuesFile: values.yaml
|
||||||
24
apps/chartmuseum/env/k3s-cluster/values.yaml
vendored
Normal file
24
apps/chartmuseum/env/k3s-cluster/values.yaml
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
env:
|
||||||
|
open:
|
||||||
|
AUTH_ANONYMOUS_GET: true
|
||||||
|
DISABLE_API: false
|
||||||
|
CACHE: redis
|
||||||
|
CACHE_REDIS_ADDR: redis-master.redis.svc.cluster.local:6379
|
||||||
|
existingSecret: chartmuseum-secrets
|
||||||
|
existingSecretMappings:
|
||||||
|
BASIC_AUTH_USER: auth-user
|
||||||
|
BASIC_AUTH_PASS: auth-password
|
||||||
|
CACHE_REDIS_PASSWORD: redis-password
|
||||||
|
service:
|
||||||
|
type: LoadBalancer
|
||||||
|
externalPort: 8899
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
existingClaim: chartmuseum-pvc
|
||||||
|
ingress:
|
||||||
|
enabled: true
|
||||||
|
hosts:
|
||||||
|
- name: chartmuseum.cluster.edward.sydney
|
||||||
|
tls: true
|
||||||
|
tlsSecret: chartmuseum-tls
|
||||||
|
ingressClassName: nginx
|
||||||
@@ -3,6 +3,6 @@ kind: Kustomization
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: coder
|
- name: coder
|
||||||
repo: https://helm.coder.com/v2
|
repo: https://helm.coder.com/v2
|
||||||
version: 2.14.1
|
version: 2.15.0
|
||||||
releaseName: coder
|
releaseName: coder
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
10
apps/coder/env/k3s-cluster/values.yaml
vendored
10
apps/coder/env/k3s-cluster/values.yaml
vendored
@@ -18,5 +18,11 @@ coder:
|
|||||||
- name: coder-data
|
- name: coder-data
|
||||||
mountPath: /config
|
mountPath: /config
|
||||||
service:
|
service:
|
||||||
type: NodePort
|
type: ClusterIP
|
||||||
httpNodePort: 31180
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
|
ingress:
|
||||||
|
enable: true
|
||||||
|
className: nginx
|
||||||
|
host: "coder.cluster.edward.sydney"
|
||||||
12
apps/ec-config-server/env/k3s-cluster/config.json
vendored
Normal file
12
apps/ec-config-server/env/k3s-cluster/config.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"appName": "ec-config-server",
|
||||||
|
"userGivenName": "ec-config-server",
|
||||||
|
"namespace": "ec-proj",
|
||||||
|
"destNamespace": "ec-proj",
|
||||||
|
"destServer": "https://kubernetes.default.svc",
|
||||||
|
"srcPath": "apps/ec-config-server/env/k3s-cluster",
|
||||||
|
"srcRepoURL": "https://github.com/3dwardch3ng/home-cluster-ops.git",
|
||||||
|
"srcTargetRevision": "",
|
||||||
|
"labels": null,
|
||||||
|
"annotations": null
|
||||||
|
}
|
||||||
8
apps/ec-config-server/env/k3s-cluster/kustomization.yaml
vendored
Normal file
8
apps/ec-config-server/env/k3s-cluster/kustomization.yaml
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
helmCharts:
|
||||||
|
- name: ec-config-server
|
||||||
|
repo: https://chartmuseum.cluster.edward.sydney:8899/
|
||||||
|
version: 1.0.12
|
||||||
|
releaseName: ec-config-server
|
||||||
|
valuesFile: values.yaml
|
||||||
9
apps/ec-config-server/env/k3s-cluster/values.yaml
vendored
Normal file
9
apps/ec-config-server/env/k3s-cluster/values.yaml
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
environment:
|
||||||
|
configServerAuth:
|
||||||
|
existingSecret: ec-config-server-auth-secrets
|
||||||
|
service:
|
||||||
|
type: LoadBalancer
|
||||||
|
spring:
|
||||||
|
activeprofile: native,k3s
|
||||||
|
persistence:
|
||||||
|
hostPath: /mnt/nfs/AppData/ec-config-server/config
|
||||||
@@ -3,6 +3,6 @@ kind: Kustomization
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: gitea
|
- name: gitea
|
||||||
repo: oci://registry-1.docker.io/bitnamicharts
|
repo: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 2.3.18
|
version: 2.3.22
|
||||||
releaseName: gitea
|
releaseName: gitea
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
22
apps/gitea/env/k3s-cluster/values.yaml
vendored
22
apps/gitea/env/k3s-cluster/values.yaml
vendored
@@ -1,4 +1,7 @@
|
|||||||
namespaceOverride: "gitea"
|
namespaceOverride: "gitea"
|
||||||
|
rootURL: "https://gitea.cluster.edward.sydney"
|
||||||
|
updateStrategy:
|
||||||
|
type: Recreate
|
||||||
podAntiAffinityPreset: ""
|
podAntiAffinityPreset: ""
|
||||||
adminUsername: "gitea_admin"
|
adminUsername: "gitea_admin"
|
||||||
adminEmail: "edward@cheng.sydney"
|
adminEmail: "edward@cheng.sydney"
|
||||||
@@ -11,12 +14,21 @@ smtpUser: "me@edward.sydney"
|
|||||||
smtpExistingSecret: "gitea-secrets"
|
smtpExistingSecret: "gitea-secrets"
|
||||||
persistence:
|
persistence:
|
||||||
existingClaim: "gitea-pvc"
|
existingClaim: "gitea-pvc"
|
||||||
|
resourcesPreset: "xlarge"
|
||||||
|
podSecurityContext:
|
||||||
|
fsGroup: 1000
|
||||||
|
containerSecurityContext:
|
||||||
|
runAsUser: 1000
|
||||||
|
runAsGroup: 1000
|
||||||
service:
|
service:
|
||||||
ports:
|
ports:
|
||||||
http: 10080
|
http: 10880
|
||||||
ssh: 10022
|
ssh: 10222
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
ingress:
|
ingress:
|
||||||
enabled: true
|
enabled: false
|
||||||
ingressClassName: "nginx"
|
ingressClassName: "nginx"
|
||||||
hostname: "gitea.cluster.edward.sydney"
|
hostname: "gitea.cluster.edward.sydney"
|
||||||
serviceAccount:
|
serviceAccount:
|
||||||
@@ -28,3 +40,7 @@ externalDatabase:
|
|||||||
user: "gitea_user"
|
user: "gitea_user"
|
||||||
existingSecret: "gitea-secrets"
|
existingSecret: "gitea-secrets"
|
||||||
existingSecretPasswordKey: "db-password"
|
existingSecretPasswordKey: "db-password"
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/os: linux
|
||||||
|
kubernetes.io/arch: amd64
|
||||||
|
kubernetes.io/hostname: k3s-cluster-node-y
|
||||||
@@ -39,3 +39,5 @@ spec:
|
|||||||
hostPath:
|
hostPath:
|
||||||
path: /mnt/nfs/AppData/homer/www
|
path: /mnt/nfs/AppData/homer/www
|
||||||
type: Directory
|
type: Directory
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/os: linux
|
||||||
|
|||||||
@@ -3,12 +3,15 @@ kind: Service
|
|||||||
metadata:
|
metadata:
|
||||||
name: homer
|
name: homer
|
||||||
namespace: homer
|
namespace: homer
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: homer
|
app.kubernetes.io/name: homer
|
||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
app.kubernetes.io/name: homer
|
app.kubernetes.io/name: homer
|
||||||
type: ClusterIP
|
type: LoadBalancer
|
||||||
internalTrafficPolicy: Cluster
|
internalTrafficPolicy: Cluster
|
||||||
ports:
|
ports:
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
|
|||||||
@@ -2,4 +2,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- ../../base
|
- ../../base
|
||||||
- ./ingress.yaml
|
|
||||||
10
apps/jellyfin/env/k3s-cluster/ingress.yaml
vendored
10
apps/jellyfin/env/k3s-cluster/ingress.yaml
vendored
@@ -9,16 +9,6 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: nginx
|
||||||
rules:
|
rules:
|
||||||
- host: "jellyfin.cluster.local"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: jellyfin
|
|
||||||
port:
|
|
||||||
number: 8096
|
|
||||||
- host: "jellyfin.cluster.edward.sydney"
|
- host: "jellyfin.cluster.edward.sydney"
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- ../../base
|
- ../../base
|
||||||
- ./ingress.yaml
|
# - ./ingress.yaml
|
||||||
@@ -20,7 +20,7 @@ spec:
|
|||||||
app.kubernetes.io/instance: kavita
|
app.kubernetes.io/instance: kavita
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: jvmilazz0/kavita:0.8.2
|
- image: jvmilazz0/kavita:0.8.3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: kavita
|
name: kavita
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -3,6 +3,6 @@ kind: Kustomization
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: kubernetes-dashboard
|
- name: kubernetes-dashboard
|
||||||
repo: https://kubernetes.github.io/dashboard/
|
repo: https://kubernetes.github.io/dashboard/
|
||||||
version: 7.5.0
|
version: 7.6.1
|
||||||
releaseName: kubernetes-dashboard
|
releaseName: kubernetes-dashboard
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
@@ -22,10 +22,10 @@ spec:
|
|||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: "3Gi"
|
memory: "3Gi"
|
||||||
cpu: "1"
|
cpu: "2"
|
||||||
requests:
|
requests:
|
||||||
memory: "2Gi"
|
memory: "2Gi"
|
||||||
cpu: "500m"
|
cpu: "2"
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8081
|
- containerPort: 8081
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
@@ -36,3 +36,6 @@ spec:
|
|||||||
hostPath:
|
hostPath:
|
||||||
path: /mnt/nfs/AppData/nexus
|
path: /mnt/nfs/AppData/nexus
|
||||||
type: Directory
|
type: Directory
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/os: linux
|
||||||
|
kubernetes.io/arch: arm64
|
||||||
@@ -10,8 +10,7 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
app: nexus
|
app: nexus
|
||||||
type: NodePort
|
type: LoadBalancer
|
||||||
ports:
|
ports:
|
||||||
- port: 8081
|
- port: 8081
|
||||||
targetPort: 8081
|
targetPort: 8081
|
||||||
nodePort: 32000
|
|
||||||
@@ -1,21 +1,21 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: homer-ingress
|
name: nexus-ingress
|
||||||
namespace: homer
|
namespace: nexus
|
||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
nginx.ingress.kubernetes.io/use-regex: "true"
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: nginx
|
||||||
rules:
|
rules:
|
||||||
- host: "home.edward.sydney"
|
- host: "nexus.cluster.edward.sydney"
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
- pathType: Prefix
|
- pathType: Prefix
|
||||||
path: "/"
|
path: "/"
|
||||||
backend:
|
backend:
|
||||||
service:
|
service:
|
||||||
name: homer
|
name: nexus
|
||||||
port:
|
port:
|
||||||
number: 8088
|
number: 8081
|
||||||
@@ -36,7 +36,7 @@ spec:
|
|||||||
serviceAccount: plane-srv-account
|
serviceAccount: plane-srv-account
|
||||||
serviceAccountName: plane-srv-account
|
serviceAccountName: plane-srv-account
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/arch: arm64
|
kubernetes.io/os: linux
|
||||||
---
|
---
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
@@ -94,7 +94,7 @@ spec:
|
|||||||
serviceAccount: plane-srv-account
|
serviceAccount: plane-srv-account
|
||||||
serviceAccountName: plane-srv-account
|
serviceAccountName: plane-srv-account
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/arch: arm64
|
kubernetes.io/os: linux
|
||||||
---
|
---
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
@@ -143,7 +143,7 @@ spec:
|
|||||||
serviceAccount: plane-srv-account
|
serviceAccount: plane-srv-account
|
||||||
serviceAccountName: plane-srv-account
|
serviceAccountName: plane-srv-account
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/arch: arm64
|
kubernetes.io/os: linux
|
||||||
---
|
---
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
@@ -182,7 +182,7 @@ spec:
|
|||||||
serviceAccount: plane-srv-account
|
serviceAccount: plane-srv-account
|
||||||
serviceAccountName: plane-srv-account
|
serviceAccountName: plane-srv-account
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/arch: arm64
|
kubernetes.io/os: linux
|
||||||
---
|
---
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
@@ -221,7 +221,7 @@ spec:
|
|||||||
serviceAccount: plane-srv-account
|
serviceAccount: plane-srv-account
|
||||||
serviceAccountName: plane-srv-account
|
serviceAccountName: plane-srv-account
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/arch: arm64
|
kubernetes.io/os: linux
|
||||||
---
|
---
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
@@ -270,5 +270,5 @@ spec:
|
|||||||
serviceAccount: plane-srv-account
|
serviceAccount: plane-srv-account
|
||||||
serviceAccountName: plane-srv-account
|
serviceAccountName: plane-srv-account
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/arch: arm64
|
kubernetes.io/os: linux
|
||||||
---
|
---
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
namespace: plane
|
|
||||||
name: plane-ingress
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: plane.cluster.edward.sydney
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
port:
|
|
||||||
number: 3000
|
|
||||||
name: plane-web
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
port:
|
|
||||||
number: 8000
|
|
||||||
name: plane-api
|
|
||||||
path: /api
|
|
||||||
pathType: Prefix
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
port:
|
|
||||||
number: 8000
|
|
||||||
name: plane-api
|
|
||||||
path: /auth
|
|
||||||
pathType: Prefix
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
port:
|
|
||||||
number: 3000
|
|
||||||
name: plane-space
|
|
||||||
path: /spaces
|
|
||||||
pathType: Prefix
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
port:
|
|
||||||
number: 3000
|
|
||||||
name: plane-admin
|
|
||||||
path: /god-mode
|
|
||||||
pathType: Prefix
|
|
||||||
@@ -7,4 +7,3 @@ resources:
|
|||||||
- ./deployment.yaml
|
- ./deployment.yaml
|
||||||
- ./stateful-set.yaml
|
- ./stateful-set.yaml
|
||||||
- ./service.yaml
|
- ./service.yaml
|
||||||
- ./ingress.yaml
|
|
||||||
@@ -7,9 +7,10 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
app.name: plane-admin
|
app.name: plane-admin
|
||||||
spec:
|
spec:
|
||||||
|
type: LoadBalancer
|
||||||
ports:
|
ports:
|
||||||
- name: admin-3000
|
- name: admin-3000
|
||||||
port: 3000
|
port: 3333
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: 3000
|
targetPort: 3000
|
||||||
selector:
|
selector:
|
||||||
@@ -23,9 +24,10 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
app.name: plane-api
|
app.name: plane-api
|
||||||
spec:
|
spec:
|
||||||
|
type: LoadBalancer
|
||||||
ports:
|
ports:
|
||||||
- name: api-8000
|
- name: api-8000
|
||||||
port: 8000
|
port: 8808
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: 8000
|
targetPort: 8000
|
||||||
selector:
|
selector:
|
||||||
@@ -39,9 +41,10 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
app.name: plane-space
|
app.name: plane-space
|
||||||
spec:
|
spec:
|
||||||
|
type: LoadBalancer
|
||||||
ports:
|
ports:
|
||||||
- name: space-3000
|
- name: space-3000
|
||||||
port: 3000
|
port: 3330
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: 3000
|
targetPort: 3000
|
||||||
selector:
|
selector:
|
||||||
@@ -55,9 +58,10 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
app.name: plane-web
|
app.name: plane-web
|
||||||
spec:
|
spec:
|
||||||
|
type: LoadBalancer
|
||||||
ports:
|
ports:
|
||||||
- name: web-3000
|
- name: web-3000
|
||||||
port: 3000
|
port: 3033
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: 3000
|
targetPort: 3000
|
||||||
selector:
|
selector:
|
||||||
@@ -71,6 +75,7 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
app.name: plane-redis
|
app.name: plane-redis
|
||||||
spec:
|
spec:
|
||||||
|
type: LoadBalancer
|
||||||
ports:
|
ports:
|
||||||
- name: redis-6379
|
- name: redis-6379
|
||||||
port: 6379
|
port: 6379
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
app.name: plane-redis
|
app.name: plane-redis
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: valkey/valkey:7.2.6-alpine
|
- image: valkey/valkey:8.0.0-alpine
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
name: plane-redis
|
name: plane-redis
|
||||||
stdin: true
|
stdin: true
|
||||||
|
|||||||
@@ -8,6 +8,12 @@ extraEnv:
|
|||||||
PLEX_UID: 1000
|
PLEX_UID: 1000
|
||||||
PLEX_GID: 1000
|
PLEX_GID: 1000
|
||||||
ALLOWED_NETWORKS: "0.0.0.0/0"
|
ALLOWED_NETWORKS: "0.0.0.0/0"
|
||||||
|
service:
|
||||||
|
type: LoadBalancer
|
||||||
|
port: 32400
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
extraVolumeMounts:
|
extraVolumeMounts:
|
||||||
- name: plex-tv
|
- name: plex-tv
|
||||||
mountPath: /tv
|
mountPath: /tv
|
||||||
|
|||||||
@@ -3,6 +3,9 @@ kind: Service
|
|||||||
metadata:
|
metadata:
|
||||||
name: qbittorrent
|
name: qbittorrent
|
||||||
namespace: qbittorrent
|
namespace: qbittorrent
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: qbittorrent
|
app.kubernetes.io/name: qbittorrent
|
||||||
spec:
|
spec:
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ spec:
|
|||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
containers:
|
containers:
|
||||||
- name: rlpa-server
|
- name: rlpa-server
|
||||||
image: damonto/estkme-cloud:v1.0.13
|
image: damonto/estkme-cloud:1.1.0
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -3,12 +3,15 @@ kind: Service
|
|||||||
metadata:
|
metadata:
|
||||||
name: rlpa-server
|
name: rlpa-server
|
||||||
namespace: rlpa
|
namespace: rlpa
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: rlpa
|
app.kubernetes.io/name: rlpa
|
||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
app.kubernetes.io/name: rlpa
|
app.kubernetes.io/name: rlpa
|
||||||
type: ClusterIP
|
type: LoadBalancer
|
||||||
internalTrafficPolicy: Cluster
|
internalTrafficPolicy: Cluster
|
||||||
ports:
|
ports:
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
|
|||||||
@@ -32,3 +32,6 @@ spec:
|
|||||||
hostPath:
|
hostPath:
|
||||||
path: /mnt/nfs/AppData/snippet-box
|
path: /mnt/nfs/AppData/snippet-box
|
||||||
type: Directory
|
type: Directory
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/os: linux
|
||||||
|
kubernetes.io/arch: arm64
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: snippet-box-ingress
|
|
||||||
namespace: snippet-box
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "snippet-box.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: snippet-box
|
|
||||||
port:
|
|
||||||
number: 5000
|
|
||||||
@@ -3,4 +3,3 @@ kind: Kustomization
|
|||||||
resources:
|
resources:
|
||||||
- ./deployment.yaml
|
- ./deployment.yaml
|
||||||
- ./service.yaml
|
- ./service.yaml
|
||||||
- ./ingress.yaml
|
|
||||||
@@ -8,10 +8,10 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
app.kubernetes.io/name: snippet-box
|
app.kubernetes.io/name: snippet-box
|
||||||
type: ClusterIP
|
type: LoadBalancer
|
||||||
internalTrafficPolicy: Cluster
|
internalTrafficPolicy: Cluster
|
||||||
ports:
|
ports:
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
port: 5000
|
port: 5055
|
||||||
targetPort: 5000
|
targetPort: 5000
|
||||||
name: snippet-box
|
name: snippet-box
|
||||||
|
|||||||
@@ -3,6 +3,6 @@ kind: Kustomization
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: sonarqube
|
- name: sonarqube
|
||||||
repo: oci://registry-1.docker.io/bitnamicharts
|
repo: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 5.2.12
|
version: 5.2.13
|
||||||
releaseName: sonarqube
|
releaseName: sonarqube
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
19
apps/sonarqube/env/k3s-cluster/values.yaml
vendored
19
apps/sonarqube/env/k3s-cluster/values.yaml
vendored
@@ -1,7 +1,9 @@
|
|||||||
priorityClassName: system-cluster-critical
|
priorityClassName: system-cluster-critical
|
||||||
|
image:
|
||||||
|
debug: true
|
||||||
podAntiAffinityPreset: ""
|
podAntiAffinityPreset: ""
|
||||||
namespaceOverride: "sonarqube"
|
namespaceOverride: "sonarqube"
|
||||||
clusterDomain: sonarqube.cluster.edward.sydney
|
clusterDomain: cluster.edward.sydney
|
||||||
sonarqubeUsername: sonarqube
|
sonarqubeUsername: sonarqube
|
||||||
existingSecret: "sonarqube-secrets"
|
existingSecret: "sonarqube-secrets"
|
||||||
sonarqubeEmail: "me@edward.sydney"
|
sonarqubeEmail: "me@edward.sydney"
|
||||||
@@ -10,22 +12,21 @@ smtpPort: "587"
|
|||||||
smtpUser: "me@edward.sydney"
|
smtpUser: "me@edward.sydney"
|
||||||
smtpProtocol: "TLS"
|
smtpProtocol: "TLS"
|
||||||
smtpExistingSecret: "sonarqube-secrets"
|
smtpExistingSecret: "sonarqube-secrets"
|
||||||
|
resourcesPreset: "2xlarge"
|
||||||
podSecurityContext:
|
podSecurityContext:
|
||||||
fsGroup: 1000
|
fsGroup: 1000
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
|
updateStrategy:
|
||||||
|
type: Recreate
|
||||||
service:
|
service:
|
||||||
ports:
|
ports:
|
||||||
http: 8090
|
http: 8090
|
||||||
elastic: 9091
|
elastic: 9091
|
||||||
nodePorts:
|
annotations:
|
||||||
http: 30089
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
elastic: 30091
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
ingress:
|
|
||||||
enabled: true
|
|
||||||
ingressClassName: "nginx"
|
|
||||||
hostname: "sonarqube.cluster.edward.sydney"
|
|
||||||
persistence:
|
persistence:
|
||||||
enabled: true
|
enabled: true
|
||||||
storageClass: local-path
|
storageClass: local-path
|
||||||
@@ -40,4 +41,4 @@ externalDatabase:
|
|||||||
user: "sonarqube_user"
|
user: "sonarqube_user"
|
||||||
existingSecret: "sonarqube-secrets"
|
existingSecret: "sonarqube-secrets"
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/hostname: k3s-cluster-node-3
|
kubernetes.io/hostname: k3s-cluster-node-y
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: stirling-pdf
|
- name: stirling-pdf
|
||||||
image: frooodle/s-pdf:0.27.0
|
image: frooodle/s-pdf:0.29.0
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
env:
|
env:
|
||||||
|
|||||||
@@ -3,15 +3,18 @@ kind: Service
|
|||||||
metadata:
|
metadata:
|
||||||
name: stirling-pdf
|
name: stirling-pdf
|
||||||
namespace: stirling-pdf
|
namespace: stirling-pdf
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: stirling-pdf
|
app.kubernetes.io/name: stirling-pdf
|
||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
app.kubernetes.io/name: stirling-pdf
|
app.kubernetes.io/name: stirling-pdf
|
||||||
type: ClusterIP
|
type: LoadBalancer
|
||||||
internalTrafficPolicy: Cluster
|
internalTrafficPolicy: Cluster
|
||||||
ports:
|
ports:
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
port: 8080
|
port: 8880
|
||||||
targetPort: 8080
|
targetPort: 8080
|
||||||
name: http
|
name: http
|
||||||
|
|||||||
@@ -2,4 +2,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- ../../base
|
- ../../base
|
||||||
- ./ingress.yaml
|
|
||||||
@@ -3,12 +3,15 @@ kind: Service
|
|||||||
metadata:
|
metadata:
|
||||||
name: trillium
|
name: trillium
|
||||||
namespace: trillium
|
namespace: trillium
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: trillium
|
app.kubernetes.io/name: trillium
|
||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
app.kubernetes.io/name: trillium
|
app.kubernetes.io/name: trillium
|
||||||
type: ClusterIP
|
type: LoadBalancer
|
||||||
internalTrafficPolicy: Cluster
|
internalTrafficPolicy: Cluster
|
||||||
ports:
|
ports:
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
|
|||||||
21
apps/trillium/env/k3s-cluster/ingress.yaml
vendored
21
apps/trillium/env/k3s-cluster/ingress.yaml
vendored
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: trillium-ingress
|
|
||||||
namespace: trillium
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "trillium.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: trillium
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
||||||
@@ -2,4 +2,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- ../../base
|
- ../../base
|
||||||
- ./ingress.yaml
|
|
||||||
@@ -3,12 +3,15 @@ kind: Service
|
|||||||
metadata:
|
metadata:
|
||||||
name: vaultwarden
|
name: vaultwarden
|
||||||
namespace: vaultwarden
|
namespace: vaultwarden
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: vaultwarden
|
app.kubernetes.io/name: vaultwarden
|
||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
app.kubernetes.io/name: vaultwarden
|
app.kubernetes.io/name: vaultwarden
|
||||||
type: ClusterIP
|
type: LoadBalancer
|
||||||
internalTrafficPolicy: Cluster
|
internalTrafficPolicy: Cluster
|
||||||
ports:
|
ports:
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
|
|||||||
21
apps/vaultwarden/env/k3s-cluster/ingress.yaml
vendored
21
apps/vaultwarden/env/k3s-cluster/ingress.yaml
vendored
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: vaultwarden-ingress
|
|
||||||
namespace: vaultwarden
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "vaultwarden.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: vaultwarden
|
|
||||||
port:
|
|
||||||
number: 11080
|
|
||||||
@@ -2,4 +2,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- ../../base
|
- ../../base
|
||||||
- ./ingress.yaml
|
|
||||||
26
infrastructures/argo-events/base/cluster-role-binding.yaml
Normal file
26
infrastructures/argo-events/base/cluster-role-binding.yaml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: argo-events-binding
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: argo-events-role
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: argo-events-sa
|
||||||
|
namespace: argo-events
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: argo-events-webhook-binding
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: argo-events-webhook
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: argo-events-webhook-sa
|
||||||
|
namespace: argo-events
|
||||||
230
infrastructures/argo-events/base/cluster-role.yaml
Normal file
230
infrastructures/argo-events/base/cluster-role.yaml
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
rbac.authorization.k8s.io/aggregate-to-admin: "true"
|
||||||
|
name: argo-events-aggregate-to-admin
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- sensors
|
||||||
|
- sensors/finalizers
|
||||||
|
- sensors/status
|
||||||
|
- eventsources
|
||||||
|
- eventsources/finalizers
|
||||||
|
- eventsources/status
|
||||||
|
- eventbus
|
||||||
|
- eventbus/finalizers
|
||||||
|
- eventbus/status
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- deletecollection
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
rbac.authorization.k8s.io/aggregate-to-edit: "true"
|
||||||
|
name: argo-events-aggregate-to-edit
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- sensors
|
||||||
|
- sensors/finalizers
|
||||||
|
- sensors/status
|
||||||
|
- eventsources
|
||||||
|
- eventsources/finalizers
|
||||||
|
- eventsources/status
|
||||||
|
- eventbus
|
||||||
|
- eventbus/finalizers
|
||||||
|
- eventbus/status
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- deletecollection
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
rbac.authorization.k8s.io/aggregate-to-view: "true"
|
||||||
|
name: argo-events-aggregate-to-view
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- sensors
|
||||||
|
- sensors/finalizers
|
||||||
|
- sensors/status
|
||||||
|
- eventsources
|
||||||
|
- eventsources/finalizers
|
||||||
|
- eventsources/status
|
||||||
|
- eventbus
|
||||||
|
- eventbus/finalizers
|
||||||
|
- eventbus/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: argo-events-role
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- coordination.k8s.io
|
||||||
|
resources:
|
||||||
|
- leases
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- create
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- sensors
|
||||||
|
- sensors/finalizers
|
||||||
|
- sensors/status
|
||||||
|
- eventsources
|
||||||
|
- eventsources/finalizers
|
||||||
|
- eventsources/status
|
||||||
|
- eventbus
|
||||||
|
- eventbus/finalizers
|
||||||
|
- eventbus/status
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- deletecollection
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
- pods/exec
|
||||||
|
- configmaps
|
||||||
|
- services
|
||||||
|
- persistentvolumeclaims
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- secrets
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- apps
|
||||||
|
resources:
|
||||||
|
- deployments
|
||||||
|
- statefulsets
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: argo-events-webhook
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- secrets
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- create
|
||||||
|
- update
|
||||||
|
- delete
|
||||||
|
- patch
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- apps
|
||||||
|
resources:
|
||||||
|
- deployments
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- apiGroups:
|
||||||
|
- admissionregistration.k8s.io
|
||||||
|
resources:
|
||||||
|
- validatingwebhookconfigurations
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- create
|
||||||
|
- update
|
||||||
|
- delete
|
||||||
|
- patch
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- eventbus
|
||||||
|
- eventsources
|
||||||
|
- sensors
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- rbac.authorization.k8s.io
|
||||||
|
resources:
|
||||||
|
- clusterroles
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
76
infrastructures/argo-events/base/configmap.yaml
Normal file
76
infrastructures/argo-events/base/configmap.yaml
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
controller-config.yaml: |
|
||||||
|
eventBus:
|
||||||
|
nats:
|
||||||
|
versions:
|
||||||
|
- version: 0.22.1
|
||||||
|
natsStreamingImage: nats-streaming:0.22.1
|
||||||
|
metricsExporterImage: natsio/prometheus-nats-exporter:0.8.0
|
||||||
|
jetstream:
|
||||||
|
# Default JetStream settings, could be overridden by EventBus JetStream specs
|
||||||
|
settings: |
|
||||||
|
# https://docs.nats.io/running-a-nats-service/configuration#jetstream
|
||||||
|
# Only configure "max_memory_store" or "max_file_store", do not set "store_dir" as it has been hardcoded.
|
||||||
|
# e.g. 1G. -1 means no limit, up to 75% of available memory
|
||||||
|
max_memory_store: -1
|
||||||
|
# e.g. 20G. -1 means no limit, Up to 1TB if available
|
||||||
|
max_file_store: 1TB
|
||||||
|
streamConfig: |
|
||||||
|
# The default properties of the streams to be created in this JetStream service
|
||||||
|
maxMsgs: 50000
|
||||||
|
maxAge: 168h
|
||||||
|
maxBytes: -1
|
||||||
|
replicas: 3
|
||||||
|
duplicates: 300s
|
||||||
|
versions:
|
||||||
|
- version: latest
|
||||||
|
natsImage: nats:2.10.10
|
||||||
|
metricsExporterImage: natsio/prometheus-nats-exporter:0.14.0
|
||||||
|
configReloaderImage: natsio/nats-server-config-reloader:0.14.0
|
||||||
|
startCommand: /nats-server
|
||||||
|
- version: 2.8.1
|
||||||
|
natsImage: nats:2.8.1
|
||||||
|
metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1
|
||||||
|
configReloaderImage: natsio/nats-server-config-reloader:0.7.0
|
||||||
|
startCommand: /nats-server
|
||||||
|
- version: 2.8.1-alpine
|
||||||
|
natsImage: nats:2.8.1-alpine
|
||||||
|
metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1
|
||||||
|
configReloaderImage: natsio/nats-server-config-reloader:0.7.0
|
||||||
|
startCommand: nats-server
|
||||||
|
- version: 2.8.2
|
||||||
|
natsImage: nats:2.8.2
|
||||||
|
metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1
|
||||||
|
configReloaderImage: natsio/nats-server-config-reloader:0.7.0
|
||||||
|
startCommand: /nats-server
|
||||||
|
- version: 2.8.2-alpine
|
||||||
|
natsImage: nats:2.8.2-alpine
|
||||||
|
metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1
|
||||||
|
configReloaderImage: natsio/nats-server-config-reloader:0.7.0
|
||||||
|
startCommand: nats-server
|
||||||
|
- version: 2.9.1
|
||||||
|
natsImage: nats:2.9.1
|
||||||
|
metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1
|
||||||
|
configReloaderImage: natsio/nats-server-config-reloader:0.7.0
|
||||||
|
startCommand: /nats-server
|
||||||
|
- version: 2.9.12
|
||||||
|
natsImage: nats:2.9.12
|
||||||
|
metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1
|
||||||
|
configReloaderImage: natsio/nats-server-config-reloader:0.7.0
|
||||||
|
startCommand: /nats-server
|
||||||
|
- version: 2.9.16
|
||||||
|
natsImage: nats:2.9.16
|
||||||
|
metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1
|
||||||
|
configReloaderImage: natsio/nats-server-config-reloader:0.7.0
|
||||||
|
startCommand: /nats-server
|
||||||
|
- version: 2.10.10
|
||||||
|
natsImage: nats:2.10.10
|
||||||
|
metricsExporterImage: natsio/prometheus-nats-exporter:0.14.0
|
||||||
|
configReloaderImage: natsio/nats-server-config-reloader:0.14.0
|
||||||
|
startCommand: /nats-server
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: argo-events-controller-config
|
||||||
|
namespace: argo-events
|
||||||
120
infrastructures/argo-events/base/custom-resource-definition.yaml
Normal file
120
infrastructures/argo-events/base/custom-resource-definition.yaml
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: eventbus.argoproj.io
|
||||||
|
spec:
|
||||||
|
group: argoproj.io
|
||||||
|
names:
|
||||||
|
kind: EventBus
|
||||||
|
listKind: EventBusList
|
||||||
|
plural: eventbus
|
||||||
|
shortNames:
|
||||||
|
- eb
|
||||||
|
singular: eventbus
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
status:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
required:
|
||||||
|
- metadata
|
||||||
|
- spec
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: eventsources.argoproj.io
|
||||||
|
spec:
|
||||||
|
group: argoproj.io
|
||||||
|
names:
|
||||||
|
kind: EventSource
|
||||||
|
listKind: EventSourceList
|
||||||
|
plural: eventsources
|
||||||
|
shortNames:
|
||||||
|
- es
|
||||||
|
singular: eventsource
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
status:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
required:
|
||||||
|
- metadata
|
||||||
|
- spec
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: sensors.argoproj.io
|
||||||
|
spec:
|
||||||
|
group: argoproj.io
|
||||||
|
names:
|
||||||
|
kind: Sensor
|
||||||
|
listKind: SensorList
|
||||||
|
plural: sensors
|
||||||
|
shortNames:
|
||||||
|
- sn
|
||||||
|
singular: sensor
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
status:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
required:
|
||||||
|
- metadata
|
||||||
|
- spec
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
82
infrastructures/argo-events/base/deployment.yaml
Normal file
82
infrastructures/argo-events/base/deployment.yaml
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: controller-manager
|
||||||
|
namespace: argo-events
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: controller-manager
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: controller-manager
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- controller
|
||||||
|
env:
|
||||||
|
- name: ARGO_EVENTS_IMAGE
|
||||||
|
value: quay.io/argoproj/argo-events:v1.9.2
|
||||||
|
- name: NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
image: quay.io/argoproj/argo-events:v1.9.2
|
||||||
|
imagePullPolicy: Always
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 8081
|
||||||
|
initialDelaySeconds: 3
|
||||||
|
periodSeconds: 3
|
||||||
|
name: controller-manager
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /readyz
|
||||||
|
port: 8081
|
||||||
|
initialDelaySeconds: 3
|
||||||
|
periodSeconds: 3
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/argo-events
|
||||||
|
name: controller-config-volume
|
||||||
|
securityContext:
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 9731
|
||||||
|
serviceAccountName: argo-events-sa
|
||||||
|
volumes:
|
||||||
|
- configMap:
|
||||||
|
name: argo-events-controller-config
|
||||||
|
name: controller-config-volume
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: events-webhook
|
||||||
|
namespace: argo-events
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: events-webhook
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: events-webhook
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- webhook-service
|
||||||
|
env:
|
||||||
|
- name: NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
- name: PORT
|
||||||
|
value: "443"
|
||||||
|
image: quay.io/argoproj/argo-events:v1.9.2
|
||||||
|
imagePullPolicy: Always
|
||||||
|
name: webhook
|
||||||
|
serviceAccountName: argo-events-webhook-sa
|
||||||
10
infrastructures/argo-events/base/kustomization.yaml
Normal file
10
infrastructures/argo-events/base/kustomization.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ./custom-resource-definition.yaml
|
||||||
|
- ./service-account.yaml
|
||||||
|
- ./cluster-role.yaml
|
||||||
|
- ./cluster-role-binding.yaml
|
||||||
|
- ./configmap.yaml
|
||||||
|
- ./deployment.yaml
|
||||||
|
- ./service.yaml
|
||||||
12
infrastructures/argo-events/base/service-account.yaml
Normal file
12
infrastructures/argo-events/base/service-account.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: argo-events-sa
|
||||||
|
namespace: argo-events
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: argo-events-webhook-sa
|
||||||
|
namespace: argo-events
|
||||||
12
infrastructures/argo-events/base/service.yaml
Normal file
12
infrastructures/argo-events/base/service.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: events-webhook
|
||||||
|
namespace: argo-events
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 443
|
||||||
|
targetPort: 443
|
||||||
|
selector:
|
||||||
|
app: events-webhook
|
||||||
14
infrastructures/argo-events/env/k3s-cluster/config.json
vendored
Normal file
14
infrastructures/argo-events/env/k3s-cluster/config.json
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"appName": "argo-events",
|
||||||
|
"userGivenName": "argo-events",
|
||||||
|
"namespace": "argo-events",
|
||||||
|
"destNamespace": "argo-events",
|
||||||
|
"destServer": "https://kubernetes.default.svc",
|
||||||
|
"srcPath": "infrastructures/argo-events/env/k3s-cluster",
|
||||||
|
"srcRepoURL": "https://github.com/3dwardch3ng/home-cluster-ops.git",
|
||||||
|
"srcTargetRevision": "",
|
||||||
|
"labels": null,
|
||||||
|
"annotations": {
|
||||||
|
"argo-events.argoproj.io/release-version": "v1.9.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
37
infrastructures/argo-events/env/k3s-cluster/examples/event-source.yaml
vendored
Normal file
37
infrastructures/argo-events/env/k3s-cluster/examples/event-source.yaml
vendored
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: EventSource
|
||||||
|
metadata:
|
||||||
|
name: webhook
|
||||||
|
spec:
|
||||||
|
service:
|
||||||
|
ports:
|
||||||
|
- port: 12000
|
||||||
|
targetPort: 12000
|
||||||
|
webhook:
|
||||||
|
# event-source can run multiple HTTP servers. Simply define a unique port to start a new HTTP server
|
||||||
|
example:
|
||||||
|
# port to run HTTP server on
|
||||||
|
port: "12000"
|
||||||
|
# endpoint to listen to
|
||||||
|
endpoint: /example
|
||||||
|
# HTTP request method to allow. In this case, only POST requests are accepted
|
||||||
|
method: POST
|
||||||
|
|
||||||
|
# example-foo:
|
||||||
|
# port: "12000"
|
||||||
|
# endpoint: /example2
|
||||||
|
# method: POST
|
||||||
|
|
||||||
|
# Uncomment to use secure webhook
|
||||||
|
# example-secure:
|
||||||
|
# port: "13000"
|
||||||
|
# endpoint: "/secure"
|
||||||
|
# method: "POST"
|
||||||
|
# # k8s secret that contains the cert
|
||||||
|
# serverCertSecret:
|
||||||
|
# name: my-secret
|
||||||
|
# key: cert-key
|
||||||
|
# # k8s secret that contains the private key
|
||||||
|
# serverKeySecret:
|
||||||
|
# name: my-secret
|
||||||
|
# key: pk-key
|
||||||
24
infrastructures/argo-events/env/k3s-cluster/examples/eventbus.yaml
vendored
Normal file
24
infrastructures/argo-events/env/k3s-cluster/examples/eventbus.yaml
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: EventBus
|
||||||
|
metadata:
|
||||||
|
name: default
|
||||||
|
spec:
|
||||||
|
nats:
|
||||||
|
native:
|
||||||
|
# Optional, defaults to 3. If it is < 3, set it to 3, that is the minimal requirement.
|
||||||
|
replicas: 3
|
||||||
|
# Optional, authen strategy, "none" or "token", defaults to "none"
|
||||||
|
auth: token
|
||||||
|
# containerTemplate:
|
||||||
|
# resources:
|
||||||
|
# requests:
|
||||||
|
# cpu: "10m"
|
||||||
|
# metricsContainerTemplate:
|
||||||
|
# resources:
|
||||||
|
# requests:
|
||||||
|
# cpu: "10m"
|
||||||
|
# antiAffinity: false
|
||||||
|
# persistence:
|
||||||
|
# storageClassName: standard
|
||||||
|
# accessMode: ReadWriteOnce
|
||||||
|
# volumeSize: 10Gi
|
||||||
@@ -1,21 +1,21 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: stirling-pdf-ingress
|
name: event-example-ingress
|
||||||
namespace: stirling-pdf
|
namespace: argo-events
|
||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
nginx.ingress.kubernetes.io/use-regex: "true"
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: nginx
|
||||||
rules:
|
rules:
|
||||||
- host: "s-pdf.cluster.edward.sydney"
|
- host: "event-example.cluster.edward.sydney"
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
- pathType: Prefix
|
- pathType: Prefix
|
||||||
path: "/"
|
path: "/"
|
||||||
backend:
|
backend:
|
||||||
service:
|
service:
|
||||||
name: stirling-pdf
|
name: webhook-eventsource-svc
|
||||||
port:
|
port:
|
||||||
number: 8080
|
number: 12000
|
||||||
33
infrastructures/argo-events/env/k3s-cluster/examples/sensor.yaml
vendored
Normal file
33
infrastructures/argo-events/env/k3s-cluster/examples/sensor.yaml
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: operate-workflow-sa
|
||||||
|
---
|
||||||
|
# Similarly you can use a ClusterRole and ClusterRoleBinding
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
name: operate-workflow-role
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
verbs:
|
||||||
|
- "*"
|
||||||
|
resources:
|
||||||
|
- workflows
|
||||||
|
- workflowtemplates
|
||||||
|
- cronworkflows
|
||||||
|
- clusterworkflowtemplates
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: operate-workflow-role-binding
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: operate-workflow-role
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: operate-workflow-sa
|
||||||
47
infrastructures/argo-events/env/k3s-cluster/examples/webhook.yaml
vendored
Normal file
47
infrastructures/argo-events/env/k3s-cluster/examples/webhook.yaml
vendored
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Sensor
|
||||||
|
metadata:
|
||||||
|
name: webhook
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
serviceAccountName: operate-workflow-sa
|
||||||
|
dependencies:
|
||||||
|
- name: test-dep
|
||||||
|
eventSourceName: webhook
|
||||||
|
eventName: example
|
||||||
|
triggers:
|
||||||
|
- template:
|
||||||
|
name: webhook-workflow-trigger
|
||||||
|
k8s:
|
||||||
|
operation: create
|
||||||
|
source:
|
||||||
|
resource:
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Workflow
|
||||||
|
metadata:
|
||||||
|
generateName: webhook-
|
||||||
|
spec:
|
||||||
|
entrypoint: whalesay
|
||||||
|
arguments:
|
||||||
|
parameters:
|
||||||
|
- name: message
|
||||||
|
# the value will get overridden by event payload from test-dep
|
||||||
|
value: "hello world!"
|
||||||
|
templates:
|
||||||
|
- name: whalesay
|
||||||
|
inputs:
|
||||||
|
parameters:
|
||||||
|
- name: message
|
||||||
|
container:
|
||||||
|
image: docker/whalesay:latest
|
||||||
|
command: [cowsay]
|
||||||
|
args: ["{{inputs.parameters.message}}"]
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/os: linux
|
||||||
|
kubernetes.io/arch: amd64
|
||||||
|
parameters:
|
||||||
|
- src:
|
||||||
|
dependencyName: test-dep
|
||||||
|
dataKey: body
|
||||||
|
dest: spec.arguments.parameters.0.value
|
||||||
29
infrastructures/argo-events/env/k3s-cluster/examples/workflow.yaml
vendored
Normal file
29
infrastructures/argo-events/env/k3s-cluster/examples/workflow.yaml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# This file enables a Workflow Pod (running Emissary executor) to be able to read and patch WorkflowTaskResults,
|
||||||
|
# which get shared with the Workflow Controller. The Controller uses the results to update Workflow status.
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
workflows.argoproj.io/description: |
|
||||||
|
Recomended minimum permissions for the `emissary` executor.
|
||||||
|
name: executor
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflowtaskresults
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- patch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: executor-default
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: executor
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: default
|
||||||
10
infrastructures/argo-events/env/k3s-cluster/kustomization.yaml
vendored
Normal file
10
infrastructures/argo-events/env/k3s-cluster/kustomization.yaml
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ../../base
|
||||||
|
# - ./examples/eventbus.yaml
|
||||||
|
# - ./examples/event-source.yaml
|
||||||
|
# - ./examples/ingress.yaml
|
||||||
|
# - ./examples/sensor.yaml
|
||||||
|
# - ./examples/workflow.yaml
|
||||||
|
# - ./examples/webhook.yaml
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: argo-binding
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: argo-cluster-role
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: argo
|
||||||
|
namespace: argo
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: argo-clusterworkflowtemplate-role-binding
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: argo-clusterworkflowtemplate-role
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: argo
|
||||||
|
namespace: argo
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: argo-server-binding
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: argo-server-cluster-role
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: argo-server
|
||||||
|
namespace: argo
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: argo-server-clusterworkflowtemplate-role-binding
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: argo-server-clusterworkflowtemplate-role
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: argo-server
|
||||||
|
namespace: argo
|
||||||
298
infrastructures/argo-workflows/base/cluster-role.yaml
Normal file
298
infrastructures/argo-workflows/base/cluster-role.yaml
Normal file
@@ -0,0 +1,298 @@
|
|||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
rbac.authorization.k8s.io/aggregate-to-admin: "true"
|
||||||
|
name: argo-aggregate-to-admin
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflows
|
||||||
|
- workflows/finalizers
|
||||||
|
- workfloweventbindings
|
||||||
|
- workfloweventbindings/finalizers
|
||||||
|
- workflowtemplates
|
||||||
|
- workflowtemplates/finalizers
|
||||||
|
- cronworkflows
|
||||||
|
- cronworkflows/finalizers
|
||||||
|
- clusterworkflowtemplates
|
||||||
|
- clusterworkflowtemplates/finalizers
|
||||||
|
- workflowtasksets
|
||||||
|
- workflowtasksets/finalizers
|
||||||
|
- workflowtaskresults
|
||||||
|
- workflowtaskresults/finalizers
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- deletecollection
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
rbac.authorization.k8s.io/aggregate-to-edit: "true"
|
||||||
|
name: argo-aggregate-to-edit
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflows
|
||||||
|
- workflows/finalizers
|
||||||
|
- workfloweventbindings
|
||||||
|
- workfloweventbindings/finalizers
|
||||||
|
- workflowtemplates
|
||||||
|
- workflowtemplates/finalizers
|
||||||
|
- cronworkflows
|
||||||
|
- cronworkflows/finalizers
|
||||||
|
- clusterworkflowtemplates
|
||||||
|
- clusterworkflowtemplates/finalizers
|
||||||
|
- workflowtaskresults
|
||||||
|
- workflowtaskresults/finalizers
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- deletecollection
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
rbac.authorization.k8s.io/aggregate-to-view: "true"
|
||||||
|
name: argo-aggregate-to-view
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflows
|
||||||
|
- workflows/finalizers
|
||||||
|
- workfloweventbindings
|
||||||
|
- workfloweventbindings/finalizers
|
||||||
|
- workflowtemplates
|
||||||
|
- workflowtemplates/finalizers
|
||||||
|
- cronworkflows
|
||||||
|
- cronworkflows/finalizers
|
||||||
|
- clusterworkflowtemplates
|
||||||
|
- clusterworkflowtemplates/finalizers
|
||||||
|
- workflowtaskresults
|
||||||
|
- workflowtaskresults/finalizers
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: argo-cluster-role
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
- pods/exec
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- watch
|
||||||
|
- list
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- persistentvolumeclaims
|
||||||
|
- persistentvolumeclaims/finalizers
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- update
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflows
|
||||||
|
- workflows/finalizers
|
||||||
|
- workflowtasksets
|
||||||
|
- workflowtasksets/finalizers
|
||||||
|
- workflowartifactgctasks
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- create
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflowtemplates
|
||||||
|
- workflowtemplates/finalizers
|
||||||
|
- clusterworkflowtemplates
|
||||||
|
- clusterworkflowtemplates/finalizers
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflowtaskresults
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- deletecollection
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- serviceaccounts
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- cronworkflows
|
||||||
|
- cronworkflows/finalizers
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- policy
|
||||||
|
resources:
|
||||||
|
- poddisruptionbudgets
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- delete
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: argo-clusterworkflowtemplate-role
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- clusterworkflowtemplates
|
||||||
|
- clusterworkflowtemplates/finalizers
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: argo-server-cluster-role
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- watch
|
||||||
|
- list
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- secrets
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- create
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
- pods/exec
|
||||||
|
- pods/log
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- watch
|
||||||
|
- create
|
||||||
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- serviceaccounts
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- eventsources
|
||||||
|
- sensors
|
||||||
|
- workflows
|
||||||
|
- workfloweventbindings
|
||||||
|
- workflowtemplates
|
||||||
|
- cronworkflows
|
||||||
|
- clusterworkflowtemplates
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: argo-server-clusterworkflowtemplate-role
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- clusterworkflowtemplates
|
||||||
|
- clusterworkflowtemplates/finalizers
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
110
infrastructures/argo-workflows/base/configmap.yaml
Normal file
110
infrastructures/argo-workflows/base/configmap.yaml
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
artifactRepository: |
|
||||||
|
s3:
|
||||||
|
bucket: argo-workflows
|
||||||
|
endpoint: minio.minio.svc.cluster.local:19000
|
||||||
|
insecure: true
|
||||||
|
accessKeySecret:
|
||||||
|
name: argo-workflows-minio-cred
|
||||||
|
key: accesskey
|
||||||
|
secretKeySecret:
|
||||||
|
name: argo-workflows-minio-cred
|
||||||
|
key: secretkey
|
||||||
|
columns: |
|
||||||
|
- name: Workflow Completed
|
||||||
|
type: label
|
||||||
|
key: workflows.argoproj.io/completed
|
||||||
|
executor: |
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 10m
|
||||||
|
memory: 64Mi
|
||||||
|
images: |
|
||||||
|
docker/whalesay:v3.5.10:
|
||||||
|
cmd: [cowsay]
|
||||||
|
links: |
|
||||||
|
- name: Workflow Link
|
||||||
|
scope: workflow
|
||||||
|
url: http://logging-facility?namespace=${metadata.namespace}&workflowName=${metadata.name}&startedAt=${status.startedAt}&finishedAt=${status.finishedAt}
|
||||||
|
- name: Pod Link
|
||||||
|
scope: pod
|
||||||
|
url: http://logging-facility?namespace=${metadata.namespace}&podName=${metadata.name}&startedAt=${status.startedAt}&finishedAt=${status.finishedAt}
|
||||||
|
- name: Pod Logs Link
|
||||||
|
scope: pod-logs
|
||||||
|
url: http://logging-facility?namespace=${metadata.namespace}&podName=${metadata.name}&startedAt=${status.startedAt}&finishedAt=${status.finishedAt}
|
||||||
|
- name: Event Source Logs Link
|
||||||
|
scope: event-source-logs
|
||||||
|
url: http://logging-facility?namespace=${metadata.namespace}&podName=${metadata.name}&startedAt=${status.startedAt}&finishedAt=${status.finishedAt}
|
||||||
|
- name: Sensor Logs Link
|
||||||
|
scope: sensor-logs
|
||||||
|
url: http://logging-facility?namespace=${metadata.namespace}&podName=${metadata.name}&startedAt=${status.startedAt}&finishedAt=${status.finishedAt}
|
||||||
|
- name: Completed Workflows
|
||||||
|
scope: workflow-list
|
||||||
|
url: http://workflows?label=workflows.argoproj.io/completed=true
|
||||||
|
metricsConfig: |
|
||||||
|
enabled: true
|
||||||
|
path: /metrics
|
||||||
|
port: 9090
|
||||||
|
namespaceParallelism: "10"
|
||||||
|
persistence: |
|
||||||
|
connectionPool:
|
||||||
|
maxIdleConns: 100
|
||||||
|
maxOpenConns: 0
|
||||||
|
connMaxLifetime: 0s
|
||||||
|
nodeStatusOffLoad: true
|
||||||
|
archive: true
|
||||||
|
archiveTTL: 7d
|
||||||
|
postgresql:
|
||||||
|
host: postgresql-primary.argocd.svc.cluster.local
|
||||||
|
port: 5432
|
||||||
|
database: argo_workflows
|
||||||
|
tableName: argo_workflows
|
||||||
|
userNameSecret:
|
||||||
|
name: argo-workflows-postgres-config
|
||||||
|
key: username
|
||||||
|
passwordSecret:
|
||||||
|
name: argo-workflows-postgres-config
|
||||||
|
key: password
|
||||||
|
retentionPolicy: |
|
||||||
|
completed: 10
|
||||||
|
failed: 3
|
||||||
|
errored: 3
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: workflow-controller-configmap
|
||||||
|
namespace: argo
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
default-v1: |
|
||||||
|
archiveLogs: true
|
||||||
|
s3:
|
||||||
|
bucket: argo-workflows
|
||||||
|
endpoint: minio.minio.svc.cluster.local:19000
|
||||||
|
insecure: true
|
||||||
|
accessKeySecret:
|
||||||
|
name: argo-workflows-minio-cred
|
||||||
|
key: accesskey
|
||||||
|
secretKeySecret:
|
||||||
|
name: argo-workflows-minio-cred
|
||||||
|
key: secretkey
|
||||||
|
empty: ""
|
||||||
|
my-key: |
|
||||||
|
archiveLogs: true
|
||||||
|
s3:
|
||||||
|
bucket: argo-workflows
|
||||||
|
endpoint: minio.minio.svc.cluster.local:19000
|
||||||
|
insecure: true
|
||||||
|
accessKeySecret:
|
||||||
|
name: argo-workflows-minio-cred
|
||||||
|
key: accesskey
|
||||||
|
secretKeySecret:
|
||||||
|
name: argo-workflows-minio-cred
|
||||||
|
key: secretkey
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
workflows.argoproj.io/default-artifact-repository: default-v1
|
||||||
|
name: artifact-repositories
|
||||||
@@ -0,0 +1,888 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: clusterworkflowtemplates.argoproj.io
|
||||||
|
spec:
|
||||||
|
group: argoproj.io
|
||||||
|
names:
|
||||||
|
kind: ClusterWorkflowTemplate
|
||||||
|
listKind: ClusterWorkflowTemplateList
|
||||||
|
plural: clusterworkflowtemplates
|
||||||
|
shortNames:
|
||||||
|
- clusterwftmpl
|
||||||
|
- cwft
|
||||||
|
singular: clusterworkflowtemplate
|
||||||
|
scope: Cluster
|
||||||
|
versions:
|
||||||
|
- name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
required:
|
||||||
|
- metadata
|
||||||
|
- spec
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: cronworkflows.argoproj.io
|
||||||
|
spec:
|
||||||
|
group: argoproj.io
|
||||||
|
names:
|
||||||
|
kind: CronWorkflow
|
||||||
|
listKind: CronWorkflowList
|
||||||
|
plural: cronworkflows
|
||||||
|
shortNames:
|
||||||
|
- cwf
|
||||||
|
- cronwf
|
||||||
|
singular: cronworkflow
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
status:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
required:
|
||||||
|
- metadata
|
||||||
|
- spec
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: workflowartifactgctasks.argoproj.io
|
||||||
|
spec:
|
||||||
|
group: argoproj.io
|
||||||
|
names:
|
||||||
|
kind: WorkflowArtifactGCTask
|
||||||
|
listKind: WorkflowArtifactGCTaskList
|
||||||
|
plural: workflowartifactgctasks
|
||||||
|
shortNames:
|
||||||
|
- wfat
|
||||||
|
singular: workflowartifactgctask
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
status:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
required:
|
||||||
|
- metadata
|
||||||
|
- spec
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: workfloweventbindings.argoproj.io
|
||||||
|
spec:
|
||||||
|
group: argoproj.io
|
||||||
|
names:
|
||||||
|
kind: WorkflowEventBinding
|
||||||
|
listKind: WorkflowEventBindingList
|
||||||
|
plural: workfloweventbindings
|
||||||
|
shortNames:
|
||||||
|
- wfeb
|
||||||
|
singular: workfloweventbinding
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
required:
|
||||||
|
- metadata
|
||||||
|
- spec
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: workflows.argoproj.io
|
||||||
|
spec:
|
||||||
|
group: argoproj.io
|
||||||
|
names:
|
||||||
|
kind: Workflow
|
||||||
|
listKind: WorkflowList
|
||||||
|
plural: workflows
|
||||||
|
shortNames:
|
||||||
|
- wf
|
||||||
|
singular: workflow
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- description: Status of the workflow
|
||||||
|
jsonPath: .status.phase
|
||||||
|
name: Status
|
||||||
|
type: string
|
||||||
|
- description: When the workflow was started
|
||||||
|
format: date-time
|
||||||
|
jsonPath: .status.startedAt
|
||||||
|
name: Age
|
||||||
|
type: date
|
||||||
|
- description: Human readable message indicating details about why the workflow
|
||||||
|
is in this condition.
|
||||||
|
jsonPath: .status.message
|
||||||
|
name: Message
|
||||||
|
type: string
|
||||||
|
name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
status:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
required:
|
||||||
|
- metadata
|
||||||
|
- spec
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources: {}
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: workflowtaskresults.argoproj.io
|
||||||
|
spec:
|
||||||
|
group: argoproj.io
|
||||||
|
names:
|
||||||
|
kind: WorkflowTaskResult
|
||||||
|
listKind: WorkflowTaskResultList
|
||||||
|
plural: workflowtaskresults
|
||||||
|
singular: workflowtaskresult
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
outputs:
|
||||||
|
properties:
|
||||||
|
artifacts:
|
||||||
|
items:
|
||||||
|
properties:
|
||||||
|
archive:
|
||||||
|
properties:
|
||||||
|
none:
|
||||||
|
type: object
|
||||||
|
tar:
|
||||||
|
properties:
|
||||||
|
compressionLevel:
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
type: object
|
||||||
|
zip:
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
archiveLogs:
|
||||||
|
type: boolean
|
||||||
|
artifactGC:
|
||||||
|
properties:
|
||||||
|
podMetadata:
|
||||||
|
properties:
|
||||||
|
annotations:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
labels:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
serviceAccountName:
|
||||||
|
type: string
|
||||||
|
strategy:
|
||||||
|
enum:
|
||||||
|
- ""
|
||||||
|
- OnWorkflowCompletion
|
||||||
|
- OnWorkflowDeletion
|
||||||
|
- Never
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
artifactory:
|
||||||
|
properties:
|
||||||
|
passwordSecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
usernameSecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- url
|
||||||
|
type: object
|
||||||
|
azure:
|
||||||
|
properties:
|
||||||
|
accountKeySecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
blob:
|
||||||
|
type: string
|
||||||
|
container:
|
||||||
|
type: string
|
||||||
|
endpoint:
|
||||||
|
type: string
|
||||||
|
useSDKCreds:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- blob
|
||||||
|
- container
|
||||||
|
- endpoint
|
||||||
|
type: object
|
||||||
|
deleted:
|
||||||
|
type: boolean
|
||||||
|
from:
|
||||||
|
type: string
|
||||||
|
fromExpression:
|
||||||
|
type: string
|
||||||
|
gcs:
|
||||||
|
properties:
|
||||||
|
bucket:
|
||||||
|
type: string
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
serviceAccountKeySecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
git:
|
||||||
|
properties:
|
||||||
|
branch:
|
||||||
|
type: string
|
||||||
|
depth:
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
disableSubmodules:
|
||||||
|
type: boolean
|
||||||
|
fetch:
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
insecureIgnoreHostKey:
|
||||||
|
type: boolean
|
||||||
|
passwordSecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
repo:
|
||||||
|
type: string
|
||||||
|
revision:
|
||||||
|
type: string
|
||||||
|
singleBranch:
|
||||||
|
type: boolean
|
||||||
|
sshPrivateKeySecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
usernameSecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- repo
|
||||||
|
type: object
|
||||||
|
globalName:
|
||||||
|
type: string
|
||||||
|
hdfs:
|
||||||
|
properties:
|
||||||
|
addresses:
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
force:
|
||||||
|
type: boolean
|
||||||
|
hdfsUser:
|
||||||
|
type: string
|
||||||
|
krbCCacheSecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
krbConfigConfigMap:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
krbKeytabSecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
krbRealm:
|
||||||
|
type: string
|
||||||
|
krbServicePrincipalName:
|
||||||
|
type: string
|
||||||
|
krbUsername:
|
||||||
|
type: string
|
||||||
|
path:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- path
|
||||||
|
type: object
|
||||||
|
http:
|
||||||
|
properties:
|
||||||
|
auth:
|
||||||
|
properties:
|
||||||
|
basicAuth:
|
||||||
|
properties:
|
||||||
|
passwordSecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
usernameSecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
clientCert:
|
||||||
|
properties:
|
||||||
|
clientCertSecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
clientKeySecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
oauth2:
|
||||||
|
properties:
|
||||||
|
clientIDSecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
clientSecretSecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
endpointParams:
|
||||||
|
items:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
scopes:
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
tokenURLSecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
headers:
|
||||||
|
items:
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- value
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- url
|
||||||
|
type: object
|
||||||
|
mode:
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
oss:
|
||||||
|
properties:
|
||||||
|
accessKeySecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
bucket:
|
||||||
|
type: string
|
||||||
|
createBucketIfNotPresent:
|
||||||
|
type: boolean
|
||||||
|
endpoint:
|
||||||
|
type: string
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
lifecycleRule:
|
||||||
|
properties:
|
||||||
|
markDeletionAfterDays:
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
markInfrequentAccessAfterDays:
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
type: object
|
||||||
|
secretKeySecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
securityToken:
|
||||||
|
type: string
|
||||||
|
useSDKCreds:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
path:
|
||||||
|
type: string
|
||||||
|
raw:
|
||||||
|
properties:
|
||||||
|
data:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- data
|
||||||
|
type: object
|
||||||
|
recurseMode:
|
||||||
|
type: boolean
|
||||||
|
s3:
|
||||||
|
properties:
|
||||||
|
accessKeySecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
bucket:
|
||||||
|
type: string
|
||||||
|
caSecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
createBucketIfNotPresent:
|
||||||
|
properties:
|
||||||
|
objectLocking:
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
|
encryptionOptions:
|
||||||
|
properties:
|
||||||
|
enableEncryption:
|
||||||
|
type: boolean
|
||||||
|
kmsEncryptionContext:
|
||||||
|
type: string
|
||||||
|
kmsKeyId:
|
||||||
|
type: string
|
||||||
|
serverSideCustomerKeySecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
endpoint:
|
||||||
|
type: string
|
||||||
|
insecure:
|
||||||
|
type: boolean
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
region:
|
||||||
|
type: string
|
||||||
|
roleARN:
|
||||||
|
type: string
|
||||||
|
secretKeySecret:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
useSDKCreds:
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
|
subPath:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
exitCode:
|
||||||
|
type: string
|
||||||
|
parameters:
|
||||||
|
items:
|
||||||
|
properties:
|
||||||
|
default:
|
||||||
|
type: string
|
||||||
|
description:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
globalName:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
valueFrom:
|
||||||
|
properties:
|
||||||
|
configMapKeyRef:
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
default:
|
||||||
|
type: string
|
||||||
|
event:
|
||||||
|
type: string
|
||||||
|
expression:
|
||||||
|
type: string
|
||||||
|
jqFilter:
|
||||||
|
type: string
|
||||||
|
jsonPath:
|
||||||
|
type: string
|
||||||
|
parameter:
|
||||||
|
type: string
|
||||||
|
path:
|
||||||
|
type: string
|
||||||
|
supplied:
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
result:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
phase:
|
||||||
|
type: string
|
||||||
|
progress:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- metadata
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: workflowtasksets.argoproj.io
|
||||||
|
spec:
|
||||||
|
group: argoproj.io
|
||||||
|
names:
|
||||||
|
kind: WorkflowTaskSet
|
||||||
|
listKind: WorkflowTaskSetList
|
||||||
|
plural: workflowtasksets
|
||||||
|
shortNames:
|
||||||
|
- wfts
|
||||||
|
singular: workflowtaskset
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
status:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
required:
|
||||||
|
- metadata
|
||||||
|
- spec
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: workflowtemplates.argoproj.io
|
||||||
|
spec:
|
||||||
|
group: argoproj.io
|
||||||
|
names:
|
||||||
|
kind: WorkflowTemplate
|
||||||
|
listKind: WorkflowTemplateList
|
||||||
|
plural: workflowtemplates
|
||||||
|
shortNames:
|
||||||
|
- wftmpl
|
||||||
|
singular: workflowtemplate
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
required:
|
||||||
|
- metadata
|
||||||
|
- spec
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
142
infrastructures/argo-workflows/base/deployment.yaml
Normal file
142
infrastructures/argo-workflows/base/deployment.yaml
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: argo-server
|
||||||
|
namespace: argo
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: argo-server
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: argo-server
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- server
|
||||||
|
- --auth-mode
|
||||||
|
- server
|
||||||
|
- --auth-mode
|
||||||
|
- client
|
||||||
|
env: []
|
||||||
|
image: quay.io/argoproj/argocli:v3.5.11
|
||||||
|
name: argo-server
|
||||||
|
ports:
|
||||||
|
- containerPort: 2746
|
||||||
|
name: web
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 2746
|
||||||
|
scheme: HTTPS
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 20
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /tmp
|
||||||
|
name: tmp
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/os: linux
|
||||||
|
kubernetes.io/arch: amd64
|
||||||
|
securityContext:
|
||||||
|
runAsNonRoot: true
|
||||||
|
serviceAccountName: argo-server
|
||||||
|
volumes:
|
||||||
|
- emptyDir: {}
|
||||||
|
name: tmp
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: workflow-controller
|
||||||
|
namespace: argo
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: workflow-controller
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: workflow-controller
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args: []
|
||||||
|
command:
|
||||||
|
- workflow-controller
|
||||||
|
env:
|
||||||
|
- name: LEADER_ELECTION_IDENTITY
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
apiVersion: v1
|
||||||
|
fieldPath: metadata.name
|
||||||
|
image: quay.io/argoproj/workflow-controller:v3.5.11
|
||||||
|
livenessProbe:
|
||||||
|
failureThreshold: 3
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 6060
|
||||||
|
initialDelaySeconds: 90
|
||||||
|
periodSeconds: 60
|
||||||
|
timeoutSeconds: 30
|
||||||
|
name: workflow-controller
|
||||||
|
ports:
|
||||||
|
- containerPort: 9090
|
||||||
|
name: metrics
|
||||||
|
- containerPort: 6060
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/os: linux
|
||||||
|
kubernetes.io/arch: amd64
|
||||||
|
priorityClassName: workflow-controller
|
||||||
|
securityContext:
|
||||||
|
runAsNonRoot: true
|
||||||
|
serviceAccountName: argo
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: httpbin
|
||||||
|
name: httpbin
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: httpbin
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: httpbin
|
||||||
|
spec:
|
||||||
|
automountServiceAccountToken: false
|
||||||
|
containers:
|
||||||
|
- image: kong/httpbin
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /get
|
||||||
|
port: 80
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 10
|
||||||
|
name: main
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
name: api
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /get
|
||||||
|
port: 80
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 10
|
||||||
14
infrastructures/argo-workflows/base/kustomization.yaml
Normal file
14
infrastructures/argo-workflows/base/kustomization.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ./custom-resource-definition.yaml
|
||||||
|
- ./service-account.yaml
|
||||||
|
- ./role.yaml
|
||||||
|
- ./cluster-role.yaml
|
||||||
|
- ./role-binding.yaml
|
||||||
|
- ./cluster-role-binding.yaml
|
||||||
|
- ./configmap.yaml
|
||||||
|
- ./secret.yaml
|
||||||
|
- ./service.yaml
|
||||||
|
- ./priority-class.yaml
|
||||||
|
- ./deployment.yaml
|
||||||
6
infrastructures/argo-workflows/base/priority-class.yaml
Normal file
6
infrastructures/argo-workflows/base/priority-class.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
apiVersion: scheduling.k8s.io/v1
|
||||||
|
kind: PriorityClass
|
||||||
|
metadata:
|
||||||
|
name: workflow-controller
|
||||||
|
value: 1000000
|
||||||
87
infrastructures/argo-workflows/base/role-binding.yaml
Normal file
87
infrastructures/argo-workflows/base/role-binding.yaml
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: argo-binding
|
||||||
|
namespace: argo
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: argo-role
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: argo
|
||||||
|
namespace: argo
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: agent-default
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: agent
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: default
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: artifactgc-default
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: artifactgc
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: default
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: executor-default
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: executor
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: default
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: github.com
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: submit-workflow-template
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: github.com
|
||||||
|
namespace: argo
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: pod-manager-default
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: pod-manager
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: default
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: workflow-manager-default
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: workflow-manager
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: default
|
||||||
142
infrastructures/argo-workflows/base/role.yaml
Normal file
142
infrastructures/argo-workflows/base/role.yaml
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
name: argo-role
|
||||||
|
namespace: argo
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- coordination.k8s.io
|
||||||
|
resources:
|
||||||
|
- leases
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- secrets
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
workflows.argoproj.io/description: |
|
||||||
|
This is the minimum recommended permissions needed if you want to use the agent, e.g. for HTTP or plugin templates.
|
||||||
|
|
||||||
|
If <= v3.2 you must replace `workflowtasksets/status` with `patch workflowtasksets`.
|
||||||
|
name: agent
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflowtasksets
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflowtasksets/status
|
||||||
|
verbs:
|
||||||
|
- patch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
workflows.argoproj.io/description: |
|
||||||
|
This is the minimum recommended permissions needed if you want to use artifact GC.
|
||||||
|
name: artifactgc
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflowartifactgctasks
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflowartifactgctasks/status
|
||||||
|
verbs:
|
||||||
|
- patch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
workflows.argoproj.io/description: |
|
||||||
|
Recomended minimum permissions for the `emissary` executor.
|
||||||
|
name: executor
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflowtaskresults
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- patch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
workflows.argoproj.io/description: |
|
||||||
|
This is an example of the permissions you would need if you wanted to use a resource template to create and manage
|
||||||
|
other pods. The same pattern would be suitable for other resurces, e.g. a service
|
||||||
|
name: pod-manager
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- patch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
name: submit-workflow-template
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workfloweventbindings
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflowtemplates
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflows
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
workflows.argoproj.io/description: |
|
||||||
|
This is an example of the permissions you would need if you wanted to use a resource template to create and manage
|
||||||
|
other workflows. The same pattern would be suitable for other resurces, e.g. a service
|
||||||
|
name: workflow-manager
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- argoproj.io
|
||||||
|
resources:
|
||||||
|
- workflows
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
16
infrastructures/argo-workflows/base/secret.yaml
Normal file
16
infrastructures/argo-workflows/base/secret.yaml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kubernetes.io/service-account.name: default
|
||||||
|
name: default.service-account-token
|
||||||
|
type: kubernetes.io/service-account-token
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kubernetes.io/service-account.name: github.com
|
||||||
|
name: github.com.service-account-token
|
||||||
|
type: kubernetes.io/service-account-token
|
||||||
17
infrastructures/argo-workflows/base/service-account.yaml
Normal file
17
infrastructures/argo-workflows/base/service-account.yaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: argo
|
||||||
|
namespace: argo
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: argo-server
|
||||||
|
namespace: argo
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: github.com
|
||||||
32
infrastructures/argo-workflows/base/service.yaml
Normal file
32
infrastructures/argo-workflows/base/service.yaml
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
|
name: argo-server
|
||||||
|
namespace: argo
|
||||||
|
spec:
|
||||||
|
type: LoadBalancer
|
||||||
|
ports:
|
||||||
|
- name: web
|
||||||
|
port: 2746
|
||||||
|
targetPort: 2746
|
||||||
|
selector:
|
||||||
|
app: argo-server
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: httpbin
|
||||||
|
name: httpbin
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: api
|
||||||
|
port: 9100
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: httpbin
|
||||||
14
infrastructures/argo-workflows/env/k3s-cluster/config.json
vendored
Normal file
14
infrastructures/argo-workflows/env/k3s-cluster/config.json
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"appName": "argo-workflows",
|
||||||
|
"userGivenName": "argo-workflows",
|
||||||
|
"namespace": "argo",
|
||||||
|
"destNamespace": "argo",
|
||||||
|
"destServer": "https://kubernetes.default.svc",
|
||||||
|
"srcPath": "infrastructures/argo-workflows/env/k3s-cluster",
|
||||||
|
"srcRepoURL": "https://github.com/3dwardch3ng/home-cluster-ops.git",
|
||||||
|
"srcTargetRevision": "",
|
||||||
|
"labels": null,
|
||||||
|
"annotations": {
|
||||||
|
"argo-workflows.argoproj.io/release-version": "v3.5.10"
|
||||||
|
}
|
||||||
|
}
|
||||||
4
infrastructures/argo-workflows/env/k3s-cluster/kustomization.yaml
vendored
Normal file
4
infrastructures/argo-workflows/env/k3s-cluster/kustomization.yaml
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ../../base
|
||||||
@@ -3,6 +3,6 @@ kind: Kustomization
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: cert-manager
|
- name: cert-manager
|
||||||
repo: https://charts.jetstack.io
|
repo: https://charts.jetstack.io
|
||||||
version: v1.15.2
|
version: v1.15.3
|
||||||
releaseName: cert-manager
|
releaseName: cert-manager
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
@@ -3,6 +3,6 @@ kind: Kustomization
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: ingress-nginx
|
- name: ingress-nginx
|
||||||
repo: https://kubernetes.github.io/ingress-nginx
|
repo: https://kubernetes.github.io/ingress-nginx
|
||||||
version: 4.11.1
|
version: 4.11.2
|
||||||
releaseName: ingress-nginx
|
releaseName: ingress-nginx
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
@@ -3,3 +3,71 @@ rbac:
|
|||||||
|
|
||||||
controller:
|
controller:
|
||||||
priorityClassName: system-cluster-critical
|
priorityClassName: system-cluster-critical
|
||||||
|
|
||||||
|
extraArgs:
|
||||||
|
update-status-on-shutdown: "false"
|
||||||
|
|
||||||
|
allowSnippetAnnotations: true
|
||||||
|
|
||||||
|
config:
|
||||||
|
proxy-buffer-size: 16k
|
||||||
|
use-gzip: true
|
||||||
|
enable-brotli: true
|
||||||
|
hsts-max-age: 31536000
|
||||||
|
hsts-preload: true
|
||||||
|
disable-ipv6: true
|
||||||
|
disable-ipv6-dns: true
|
||||||
|
keep-alive-requests: 1000
|
||||||
|
use-geoip2: false
|
||||||
|
custom-http-errors: 401,403,404,500,501,502,503,504
|
||||||
|
|
||||||
|
extraEnvs:
|
||||||
|
- name: TZ
|
||||||
|
value: Australia/Sydney
|
||||||
|
|
||||||
|
addHeaders:
|
||||||
|
Referrer-Policy: same-origin, strict-origin-when-cross-origin
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
X-XSS-Protection: 1; mode=block
|
||||||
|
|
||||||
|
ingressClassResource:
|
||||||
|
default: true
|
||||||
|
|
||||||
|
service:
|
||||||
|
externalTrafficPolicy: Cluster
|
||||||
|
ipFamilyPolicy: SingleStack
|
||||||
|
|
||||||
|
metrics:
|
||||||
|
enabled: ${metrics_enabled:=false}
|
||||||
|
# serviceMonitor:
|
||||||
|
# enabled: ${metrics_enabled:=false}
|
||||||
|
# scrapeInterval: 1m
|
||||||
|
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/nginx/template
|
||||||
|
name: nginx-template-volume
|
||||||
|
readOnly: true
|
||||||
|
volumes:
|
||||||
|
- name: nginx-template-volume
|
||||||
|
hostPath:
|
||||||
|
path: /mnt/nfs/AppData/ingress-nginx/etc/nginx/template
|
||||||
|
type: Directory
|
||||||
|
|
||||||
|
defaultBackend:
|
||||||
|
enabled: true
|
||||||
|
image:
|
||||||
|
repository: ghcr.io/tarampampam/error-pages
|
||||||
|
tag: 3.3.0@sha256:43c9917e99ac1bb4df3c4e037327637e502e2ab4c3d84803b223d5b7db6d4cd7
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
extraEnvs:
|
||||||
|
- name: TEMPLATE_NAME
|
||||||
|
value: connection
|
||||||
|
- name: SHOW_DETAILS
|
||||||
|
value: "true"
|
||||||
|
- name: READ_BUFFER_SIZE
|
||||||
|
value: "8192"
|
||||||
@@ -1,8 +1,4 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
helmCharts:
|
resources:
|
||||||
- name: ingress-nginx
|
- ../../base
|
||||||
repo: https://kubernetes.github.io/ingress-nginx
|
|
||||||
version: 4.11.1
|
|
||||||
releaseName: ingress-nginx
|
|
||||||
valuesFile: values.yaml
|
|
||||||
@@ -3,6 +3,6 @@ kind: Kustomization
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: logstash
|
- name: logstash
|
||||||
repo: oci://registry-1.docker.io/bitnamicharts
|
repo: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 6.3.2
|
version: 6.3.4
|
||||||
releaseName: logstash
|
releaseName: logstash
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
@@ -3,6 +3,6 @@ kind: Kustomization
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: minio
|
- name: minio
|
||||||
repo: oci://registry-1.docker.io/bitnamicharts
|
repo: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 14.6.33
|
version: 14.7.10
|
||||||
releaseName: minio
|
releaseName: minio
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
@@ -1,23 +1,21 @@
|
|||||||
namespaceOverride: "minio"
|
namespaceOverride: "minio"
|
||||||
clusterDomain: minio.cluster.edward.sydney
|
image:
|
||||||
|
debug: true
|
||||||
|
clusterDomain: cluster.edward.sydney
|
||||||
auth:
|
auth:
|
||||||
existingSecret: "minio-secrets"
|
existingSecret: "minio-secrets"
|
||||||
rootUserSecretKey: "root_user"
|
rootUserSecretKey: "root_user"
|
||||||
rootPasswordSecretKey: "root_password"
|
rootPasswordSecretKey: "root_password"
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/hostname: k3s-cluster-node-2
|
kubernetes.io/hostname: k3s-cluster-node-y
|
||||||
service:
|
service:
|
||||||
|
type: LoadBalancer
|
||||||
ports:
|
ports:
|
||||||
api: 19000
|
api: 19000
|
||||||
console: 19001
|
console: 19001
|
||||||
ingress:
|
annotations:
|
||||||
enabled: true
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
ingressClassName: "nginx"
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
hostname: "minio.cluster.edward.sydney"
|
|
||||||
apiIngress:
|
|
||||||
enabled: true
|
|
||||||
ingressClassName: "nginx"
|
|
||||||
hostname: "api.minio.cluster.edward.sydney"
|
|
||||||
persistence:
|
persistence:
|
||||||
existingClaim: "minio-pvc"
|
existingClaim: "minio-pvc"
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
|
|||||||
@@ -3,6 +3,6 @@ kind: Kustomization
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: mongodb
|
- name: mongodb
|
||||||
repo: oci://registry-1.docker.io/bitnamicharts
|
repo: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 15.6.18
|
version: 15.6.26
|
||||||
releaseName: mongodb
|
releaseName: mongodb
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
@@ -8,6 +8,8 @@ auth:
|
|||||||
- edward
|
- edward
|
||||||
- anysync
|
- anysync
|
||||||
existingSecret: "mongodb-secrets"
|
existingSecret: "mongodb-secrets"
|
||||||
|
updateStrategy:
|
||||||
|
type: Recreate
|
||||||
automountServiceAccountToken: true
|
automountServiceAccountToken: true
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/arch: amd64
|
kubernetes.io/arch: amd64
|
||||||
@@ -20,6 +22,9 @@ startupProbe:
|
|||||||
enabled: true
|
enabled: true
|
||||||
service:
|
service:
|
||||||
type: LoadBalancer
|
type: LoadBalancer
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
persistence:
|
persistence:
|
||||||
existingClaim: "mongodb-pvc"
|
existingClaim: "mongodb-pvc"
|
||||||
persistentVolumeClaimRetentionPolicy:
|
persistentVolumeClaimRetentionPolicy:
|
||||||
|
|||||||
@@ -3,6 +3,6 @@ kind: Kustomization
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: netdata
|
- name: netdata
|
||||||
repo: https://netdata.github.io/helmchart/
|
repo: https://netdata.github.io/helmchart/
|
||||||
version: 3.7.97
|
version: 3.7.102
|
||||||
releaseName: netdata
|
releaseName: netdata
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
image:
|
image:
|
||||||
tag: stable
|
tag: stable
|
||||||
|
ingress:
|
||||||
|
hosts:
|
||||||
|
- netdata.cluster.edward.sydney
|
||||||
restarter:
|
restarter:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
parent:
|
parent:
|
||||||
claiming:
|
claiming:
|
||||||
enabled: true
|
enabled: true
|
||||||
token: HOJS7JMbEzKuDjbkJJv_Qp5369dyBGc0-qQ2DpKfWT22tiNWRZVH63bALjOv6A4bevsAJixzY1rIKO-1RvIr-NKGiYGpgfrMt1I5loXpU4CY7BgJp22jpK72kvRLwdM2rhNLcSQ
|
token: HOJS7JMbEzKuDjbkJJv_Qp5369dyBGc0-qQ2DpKfWT22tiNWRZVH63bALjOv6A4bevsAJixzY1rIKO-1RvIr-NKGiYGpgfrMt1I5loXpU4CY7BgJp22jpK72kvRLwdM2rhNLcSQ
|
||||||
rooms: 20334923-196a-477e-9a12-cfd5d02b24ec
|
rooms: 20334923-196a-477e-9a12-cfd5d02b24ec
|
||||||
|
|
||||||
child:
|
child:
|
||||||
claiming:
|
claiming:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|||||||
12
infrastructures/newrelic/env/k3s-cluster/config.json
vendored
Normal file
12
infrastructures/newrelic/env/k3s-cluster/config.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"appName": "newrelic",
|
||||||
|
"userGivenName": "newrelic",
|
||||||
|
"namespace": "newrelic",
|
||||||
|
"destNamespace": "newrelic",
|
||||||
|
"destServer": "https://kubernetes.default.svc",
|
||||||
|
"srcPath": "infrastructures/newrelic/env/k3s-cluster",
|
||||||
|
"srcRepoURL": "https://github.com/3dwardch3ng/home-cluster-ops.git",
|
||||||
|
"srcTargetRevision": "",
|
||||||
|
"labels": null,
|
||||||
|
"annotations": null
|
||||||
|
}
|
||||||
8
infrastructures/newrelic/env/k3s-cluster/kustomization.yaml
vendored
Normal file
8
infrastructures/newrelic/env/k3s-cluster/kustomization.yaml
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
helmCharts:
|
||||||
|
- name: nri-bundle
|
||||||
|
repo: https://helm-charts.newrelic.com
|
||||||
|
version: 5.0.92
|
||||||
|
releaseName: nri-bundle
|
||||||
|
valuesFile: values.yaml
|
||||||
192
infrastructures/newrelic/env/k3s-cluster/values.yaml
vendored
Normal file
192
infrastructures/newrelic/env/k3s-cluster/values.yaml
vendored
Normal file
@@ -0,0 +1,192 @@
|
|||||||
|
kubeEvents:
|
||||||
|
enabled: true
|
||||||
|
logging:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
newrelic-infrastructure:
|
||||||
|
# newrelic-infrastructure.enabled -- Install the [`newrelic-infrastructure` chart](https://github.com/newrelic/nri-kubernetes/tree/main/charts/newrelic-infrastructure)
|
||||||
|
enabled: true
|
||||||
|
privileged: true
|
||||||
|
|
||||||
|
nri-prometheus:
|
||||||
|
# nri-prometheus.enabled -- Install the [`nri-prometheus` chart](https://github.com/newrelic/nri-prometheus/tree/main/charts/nri-prometheus)
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
nri-metadata-injection:
|
||||||
|
# nri-metadata-injection.enabled -- Install the [`nri-metadata-injection` chart](https://github.com/newrelic/k8s-metadata-injection/tree/main/charts/nri-metadata-injection)
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
kube-state-metrics:
|
||||||
|
prometheusScrape: false
|
||||||
|
image:
|
||||||
|
tag: v2.10.0
|
||||||
|
revisionHistoryLimit: 5
|
||||||
|
releaseLabel: true
|
||||||
|
# kube-state-metrics.enabled -- Install the [`kube-state-metrics` chart](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-state-metrics) from the stable helm charts repository.
|
||||||
|
# This is mandatory if `infrastructure.enabled` is set to `true` and the user does not provide its own instance of KSM version >=1.8 and <=2.0. Note, kube-state-metrics v2+ disables labels/annotations
|
||||||
|
# metrics by default. You can enable the target labels/annotations metrics to be monitored by using the metricLabelsAllowlist/metricAnnotationsAllowList options described [here](https://github.com/prometheus-community/helm-charts/blob/159cd8e4fb89b8b107dcc100287504bb91bf30e0/charts/kube-state-metrics/values.yaml#L274) in
|
||||||
|
# your Kubernetes clusters.
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
nri-kube-events:
|
||||||
|
# nri-kube-events.enabled -- Install the [`nri-kube-events` chart](https://github.com/newrelic/nri-kube-events/tree/main/charts/nri-kube-events)
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
newrelic-logging:
|
||||||
|
# newrelic-logging.enabled -- Install the [`newrelic-logging` chart](https://github.com/newrelic/helm-charts/tree/master/charts/newrelic-logging)
|
||||||
|
enabled: true
|
||||||
|
# fluentBit:
|
||||||
|
# -- What path will be mounted to read logs from the node
|
||||||
|
# linuxMountPath: /var
|
||||||
|
# persistence:
|
||||||
|
# -- Fluent Bit persistence is needed to keep track of tailed logs, if set to none data loss or logs duplications could happen. Options are "hostPath", "none", "persistentVolume"
|
||||||
|
# mode: hostPath
|
||||||
|
# persistentVolume:
|
||||||
|
# -- When using persistent volume a storage class could be needed depending on the cluster. It should be a storage class that allows ReadWriteMany
|
||||||
|
# storageClass:
|
||||||
|
|
||||||
|
|
||||||
|
newrelic-pixie:
|
||||||
|
# newrelic-pixie.enabled -- Install the [`newrelic-pixie`](https://github.com/newrelic/helm-charts/tree/master/charts/newrelic-pixie)
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
pixie-chart:
|
||||||
|
# pixie-chart.enabled -- Install the [`pixie-chart` chart](https://docs.pixielabs.ai/installing-pixie/install-schemes/helm/#3.-deploy)
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
newrelic-infra-operator:
|
||||||
|
# newrelic-infra-operator.enabled -- Install the [`newrelic-infra-operator` chart](https://github.com/newrelic/newrelic-infra-operator/tree/main/charts/newrelic-infra-operator) (Beta)
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
newrelic-prometheus-agent:
|
||||||
|
# newrelic-prometheus-agent.enabled -- Install the [`newrelic-prometheus-agent` chart](https://github.com/newrelic/newrelic-prometheus-configurator/tree/main/charts/newrelic-prometheus-agent)
|
||||||
|
enabled: false
|
||||||
|
lowDataMode: true
|
||||||
|
config:
|
||||||
|
kubernetes:
|
||||||
|
integrations_filter:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
newrelic-k8s-metrics-adapter:
|
||||||
|
# newrelic-k8s-metrics-adapter.enabled -- Install the [`newrelic-k8s-metrics-adapter.` chart](https://github.com/newrelic/newrelic-k8s-metrics-adapter/tree/main/charts/newrelic-k8s-metrics-adapter) (Beta)
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
|
||||||
|
# -- change the behaviour globally to all the supported helm charts.
|
||||||
|
# See [user's guide of the common library](https://github.com/newrelic/helm-charts/blob/master/library/common-library/README.md) for further information.
|
||||||
|
# @default -- See [`values.yaml`](values.yaml)
|
||||||
|
global:
|
||||||
|
# -- The cluster name for the Kubernetes cluster.
|
||||||
|
cluster: Home Lab K3S Cluster
|
||||||
|
|
||||||
|
# -- The license key for your New Relic Account. This will be preferred configuration option if both `licenseKey` and `customSecret` are specified.
|
||||||
|
licenseKey: ""
|
||||||
|
# -- The license key for your New Relic Account. This will be preferred configuration option if both `insightsKey` and `customSecret` are specified.
|
||||||
|
insightsKey: ""
|
||||||
|
# -- Name of the Secret object where the license key is stored
|
||||||
|
customSecretName: newrelic-secrets
|
||||||
|
|
||||||
|
# -- Key in the Secret object where the license key is stored
|
||||||
|
customSecretLicenseKey: licence-key
|
||||||
|
|
||||||
|
# -- Additional labels for chart objects
|
||||||
|
labels: {}
|
||||||
|
# -- Additional labels for chart pods
|
||||||
|
podLabels: {}
|
||||||
|
|
||||||
|
images:
|
||||||
|
# -- Changes the registry where to get the images. Useful when there is an internal image cache/proxy
|
||||||
|
registry: ""
|
||||||
|
# -- Set secrets to be able to fetch images
|
||||||
|
pullSecrets: []
|
||||||
|
|
||||||
|
serviceAccount:
|
||||||
|
# -- Add these annotations to the service account we create
|
||||||
|
annotations: {}
|
||||||
|
# -- Configures if the service account should be created or not
|
||||||
|
create:
|
||||||
|
# -- Change the name of the service account. This is honored if you disable on this chart the creation of the service account so you can use your own
|
||||||
|
name:
|
||||||
|
|
||||||
|
# -- (bool) Sets pod's hostNetwork
|
||||||
|
# @default -- false
|
||||||
|
hostNetwork:
|
||||||
|
# -- Sets pod's dnsConfig
|
||||||
|
dnsConfig: {}
|
||||||
|
|
||||||
|
# -- Sets pod's priorityClassName
|
||||||
|
priorityClassName: ""
|
||||||
|
# -- Sets security context (at pod level)
|
||||||
|
podSecurityContext: {}
|
||||||
|
# -- Sets security context (at container level)
|
||||||
|
containerSecurityContext: {}
|
||||||
|
|
||||||
|
# -- Sets pod/node affinities
|
||||||
|
affinity: {}
|
||||||
|
# -- Sets pod's node selector
|
||||||
|
nodeSelector: {}
|
||||||
|
# -- Sets pod's tolerations to node taints
|
||||||
|
tolerations: []
|
||||||
|
|
||||||
|
# -- Adds extra attributes to the cluster and all the metrics emitted to the backend
|
||||||
|
customAttributes: {}
|
||||||
|
|
||||||
|
# -- (bool) Reduces number of metrics sent in order to reduce costs
|
||||||
|
# @default -- false
|
||||||
|
lowDataMode: true
|
||||||
|
|
||||||
|
# -- (bool) In each integration it has different behavior. See [Further information](#values-managed-globally-3) but all aims to send less metrics to the backend to try to save costs |
|
||||||
|
# @default -- false
|
||||||
|
privileged: true
|
||||||
|
|
||||||
|
# -- (bool) Must be set to `true` when deploying in an EKS Fargate environment
|
||||||
|
# @default -- false
|
||||||
|
fargate:
|
||||||
|
|
||||||
|
# -- Configures the integration to send all HTTP/HTTPS request through the proxy in that URL. The URL should have a standard format like `https://user:password@hostname:port`
|
||||||
|
proxy:
|
||||||
|
|
||||||
|
# -- (bool) Send the metrics to the staging backend. Requires a valid staging license key
|
||||||
|
# @default -- false
|
||||||
|
nrStaging:
|
||||||
|
fedramp:
|
||||||
|
# fedramp.enabled -- (bool) Enables FedRAMP
|
||||||
|
# @default -- false
|
||||||
|
enabled:
|
||||||
|
|
||||||
|
# -- (bool) Sets the debug logs to this integration or all integrations if it is set globally
|
||||||
|
# @default -- false
|
||||||
|
verboseLog:
|
||||||
|
|
||||||
|
|
||||||
|
# To add values to the subcharts. Follow Helm's guide: https://helm.sh/docs/chart_template_guide/subcharts_and_globals
|
||||||
|
|
||||||
|
# If you wish to monitor services running on Kubernetes you can provide integrations
|
||||||
|
# configuration under `integrations_config` that it will passed down to the `newrelic-infrastructure` chart.
|
||||||
|
#
|
||||||
|
# You just need to create a new entry where the "name" is the filename of the configuration file and the data is the content of
|
||||||
|
# the integration configuration. The name must end in ".yaml" as this will be the
|
||||||
|
# filename generated and the Infrastructure agent only looks for YAML files.
|
||||||
|
#
|
||||||
|
# The data part is the actual integration configuration as described in the spec here:
|
||||||
|
# https://docs.newrelic.com/docs/integrations/integrations-sdk/file-specifications/integration-configuration-file-specifications-agent-v180
|
||||||
|
#
|
||||||
|
# In the following example you can see how to monitor a Redis integration with autodiscovery
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# newrelic-infrastructure:
|
||||||
|
# integrations:
|
||||||
|
# nri-redis-sampleapp:
|
||||||
|
# discovery:
|
||||||
|
# command:
|
||||||
|
# exec: /var/db/newrelic-infra/nri-discovery-kubernetes --tls --port 10250
|
||||||
|
# match:
|
||||||
|
# label.app: sampleapp
|
||||||
|
# integrations:
|
||||||
|
# - name: nri-redis
|
||||||
|
# env:
|
||||||
|
# # using the discovered IP as the hostname address
|
||||||
|
# HOSTNAME: ${discovery.ip}
|
||||||
|
# PORT: 6379
|
||||||
|
# labels:
|
||||||
|
# env: test
|
||||||
@@ -3,6 +3,6 @@ kind: Kustomization
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: postgresql
|
- name: postgresql
|
||||||
repo: oci://registry-1.docker.io/bitnamicharts
|
repo: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 15.5.21
|
version: 15.5.32
|
||||||
releaseName: postgresql
|
releaseName: postgresql
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
@@ -21,6 +21,9 @@ primary:
|
|||||||
name: "postgresql-primary"
|
name: "postgresql-primary"
|
||||||
service:
|
service:
|
||||||
type: "LoadBalancer"
|
type: "LoadBalancer"
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
persistence:
|
persistence:
|
||||||
existingClaim: postgresql-primary-pvc
|
existingClaim: postgresql-primary-pvc
|
||||||
selector:
|
selector:
|
||||||
@@ -41,6 +44,9 @@ readReplicas:
|
|||||||
type: "LoadBalancer"
|
type: "LoadBalancer"
|
||||||
ports:
|
ports:
|
||||||
postgresql: 5433
|
postgresql: 5433
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
persistence:
|
persistence:
|
||||||
existingClaim: postgresql-replica-pvc
|
existingClaim: postgresql-replica-pvc
|
||||||
selector:
|
selector:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
app: prometheus-node-exporter
|
app: prometheus-node-exporter
|
||||||
spec:
|
spec:
|
||||||
replicas: 5
|
replicas: 6
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: prometheus-node-exporter
|
app: prometheus-node-exporter
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ spec:
|
|||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
containers:
|
containers:
|
||||||
- name: prometheus
|
- name: prometheus
|
||||||
image: prom/prometheus:v2.54.0
|
image: prom/prometheus:v2.54.1
|
||||||
args:
|
args:
|
||||||
- "--storage.tsdb.retention.time=14d"
|
- "--storage.tsdb.retention.time=14d"
|
||||||
- "--config.file=/etc/prometheus/prometheus.yaml"
|
- "--config.file=/etc/prometheus/prometheus.yaml"
|
||||||
@@ -42,7 +42,7 @@ spec:
|
|||||||
- name: prometheus-storage-volume
|
- name: prometheus-storage-volume
|
||||||
mountPath: /prometheus/
|
mountPath: /prometheus/
|
||||||
- name: grafana
|
- name: grafana
|
||||||
image: grafana/grafana:11.1.3
|
image: grafana/grafana:11.2.0
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 3000
|
- containerPort: 3000
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
|
|||||||
@@ -9,14 +9,12 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
app: prometheus
|
app: prometheus
|
||||||
type: NodePort
|
type: LoadBalancer
|
||||||
ports:
|
ports:
|
||||||
- port: 9999
|
- port: 9999
|
||||||
targetPort: 9090
|
targetPort: 9090
|
||||||
nodePort: 30999
|
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
name: http
|
name: http
|
||||||
- name: grafana-port
|
- name: grafana-port
|
||||||
port: 3030
|
port: 3030
|
||||||
nodePort: 30303
|
|
||||||
targetPort: 3000
|
targetPort: 3000
|
||||||
@@ -19,7 +19,7 @@ spec:
|
|||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
containers:
|
containers:
|
||||||
- name: redis-insight
|
- name: redis-insight
|
||||||
image: redis/redisinsight:2.54
|
image: redis/redisinsight:2.56
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -3,10 +3,13 @@ kind: Service
|
|||||||
metadata:
|
metadata:
|
||||||
name: redis-insight
|
name: redis-insight
|
||||||
namespace: redis
|
namespace: redis
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/address-pool: k3s-cluster-ip-pool
|
||||||
|
metallb.universe.tf/allow-shared-ip: k3s-cluster
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: redis-insight
|
app.kubernetes.io/name: redis-insight
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: LoadBalancer
|
||||||
ports:
|
ports:
|
||||||
- port: 5540
|
- port: 5540
|
||||||
targetPort: 5540
|
targetPort: 5540
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user