Compare commits
510 Commits
jaeger-ope
...
main
Author | SHA1 | Date |
---|---|---|
|
bd7ce6db25 | |
|
8ac04753df | |
|
e3ff031bfa | |
|
9c9abf4646 | |
|
2a624a7195 | |
|
ba67df8984 | |
|
e2dc6645ca | |
|
05e6fa34d5 | |
|
1db9b6368c | |
|
4aab996119 | |
|
29a0e21b58 | |
|
2ee81aa797 | |
|
3f88797298 | |
|
4b3ba57811 | |
|
30607499d1 | |
|
26e6439422 | |
|
64baeb5478 | |
|
de6fa208e3 | |
|
4c63b62873 | |
|
ebdb6ea4fe | |
|
1dca63981e | |
|
f4213e24f1 | |
|
e55d6dd135 | |
|
b8e09c0493 | |
|
c137b94665 | |
|
f3c883908e | |
|
423a5e88c2 | |
|
cb6c8f8367 | |
|
0eec3a3e5b | |
|
66146779ba | |
|
e54885cba5 | |
|
3cc7dc4481 | |
|
582607a8ea | |
|
2e18693412 | |
|
f8fc3e6d88 | |
|
71b8509b86 | |
|
0240058683 | |
|
047a76c0a6 | |
|
d4e163e131 | |
|
94cb97a689 | |
|
2e10d52717 | |
|
3af618dde0 | |
|
29af76b8c9 | |
|
94950b7c83 | |
|
f0594b7564 | |
|
fd4cacd532 | |
|
e838d5bf2c | |
|
ce83c06bd2 | |
|
483d3a992b | |
|
c5707b42d0 | |
|
21f1f4cc54 | |
|
938c7aba12 | |
|
f78e1873cf | |
|
b0083c1d56 | |
|
315d42576e | |
|
ca66cf10be | |
|
4200a33d6d | |
|
aab8043555 | |
|
0ae447d796 | |
|
9ecec5955f | |
|
c642bd4311 | |
|
3345c43357 | |
|
28ab98bfb2 | |
|
48f82ee995 | |
|
45257ce7dc | |
|
4e702e2ef7 | |
|
b626e41bce | |
|
2c2d2aa283 | |
|
059f49fae1 | |
|
7abc513c86 | |
|
3861966d47 | |
|
091b03e788 | |
|
fc641ec04c | |
|
71c2aaf603 | |
|
9cbfa456c1 | |
|
04f77762a8 | |
|
a4e5b41025 | |
|
dfd78e067f | |
|
11b990faf6 | |
|
fac871f176 | |
|
52336d1128 | |
|
fef7bf5e0f | |
|
87bb542d5a | |
|
7adf270acd | |
|
07f7fa78b6 | |
|
8ce23bf5d2 | |
|
b02bfb7e20 | |
|
4cf24b05f8 | |
|
8ba20b0881 | |
|
8500d1b48d | |
|
5f5546e612 | |
|
12fa2b58ce | |
|
12b22618d0 | |
|
1b850f5c38 | |
|
5a4292d22c | |
|
f989a076f2 | |
|
eb3175c43a | |
|
35843926f2 | |
|
acc1f42fb4 | |
|
fe9f9e9564 | |
|
8e239b9c8f | |
|
3f52229898 | |
|
2978b488f1 | |
|
312d55a06e | |
|
9b3c700a4c | |
|
1b4143ded4 | |
|
d3d857f40e | |
|
30fb3ba810 | |
|
afa7a5a21e | |
|
cfcab808d0 | |
|
92897dbd7f | |
|
bc949f1894 | |
|
35a351deca | |
|
3296c8f147 | |
|
037b8753d6 | |
|
eabcc6512a | |
|
ebe914d5f8 | |
|
a3bbc0e0fd | |
|
d8b08cb1cc | |
|
98b49f8b63 | |
|
f8412bb687 | |
|
8ac9c8a0a3 | |
|
c50013db43 | |
|
40bedbf380 | |
|
231e2e823c | |
|
fbe40d3c73 | |
|
e41e581fc2 | |
|
9b2717f7fc | |
|
b4c7bb9d99 | |
|
36790813e2 | |
|
45f36376f1 | |
|
e703262d30 | |
|
61747dd4c3 | |
|
4699285c3e | |
|
3231a91092 | |
|
7bcc93bc02 | |
|
db5101102b | |
|
57487fa32b | |
|
b884987103 | |
|
116a4af909 | |
|
1cd5db09e0 | |
|
17e99d1b20 | |
|
580b6047ce | |
|
f5bffea547 | |
|
328d87a31c | |
|
4674c17a41 | |
|
99a5949d26 | |
|
400f784a0a | |
|
93ed2e564b | |
|
e7515bb580 | |
|
8e0dbeb3ab | |
|
2ec9b7f9ab | |
|
b91b292bd6 | |
|
a0fdc1db62 | |
|
de3c936213 | |
|
829643dab7 | |
|
1941e337c5 | |
|
6ab6ed3f46 | |
|
b2373eb552 | |
|
f920e75276 | |
|
09f72bd7e5 | |
|
a8bfa947ab | |
|
f0774213c7 | |
|
384b6cce99 | |
|
d5785f077b | |
|
b15cb666e7 | |
|
551b24edf5 | |
|
ac5908e3c5 | |
|
51aa8eff72 | |
|
afbcef9ab4 | |
|
98d24435f1 | |
|
878b3cf735 | |
|
658ebbe17a | |
|
ac6755106b | |
|
4809d14baa | |
|
b04033d6a1 | |
|
3a4bc37924 | |
|
6a5ec3ff23 | |
|
6f62ef4ff0 | |
|
eff00f612e | |
|
9a05e4af5a | |
|
8e314e8f39 | |
|
ea657295fb | |
|
3d899e5529 | |
|
7d716f0d6f | |
|
663f7a1dad | |
|
dd1ef1fa5f | |
|
42f136ea1a | |
|
fa003c9b6f | |
|
e37405bd1e | |
|
48801f8ebe | |
|
db1194357a | |
|
5bf2659708 | |
|
b90d9143fd | |
|
eb6176b6b8 | |
|
d9594dbc0d | |
|
67ff9ba0c9 | |
|
9b91ea9a9a | |
|
178b4a2691 | |
|
90cced487e | |
|
944d0c49f6 | |
|
666f4bc115 | |
|
84e63adbd5 | |
|
d544cbc55f | |
|
0ce6986977 | |
|
7190d6f656 | |
|
b2d89cd05a | |
|
dc5e2754f0 | |
|
d1fa7dcde9 | |
|
374d0fccbf | |
|
68bb276de4 | |
|
25b254d05c | |
|
8aee713f71 | |
|
7dd36ad069 | |
|
c4798ab2a0 | |
|
55cca1253f | |
|
c14317c3d8 | |
|
e653db448a | |
|
3048d09ad0 | |
|
d7671badf1 | |
|
7a67740730 | |
|
721a838313 | |
|
51fb536423 | |
|
09d5d8a6f6 | |
|
3ca3be251c | |
|
08421337e0 | |
|
453decf5e9 | |
|
d890da8308 | |
|
e4f7b8923c | |
|
a731640fd5 | |
|
7fa1f72614 | |
|
ad966ce9c3 | |
|
2a5a388552 | |
|
1d63902b97 | |
|
a5d26829c0 | |
|
6e63b647d9 | |
|
ce449a3471 | |
|
bf6b78122d | |
|
280366cf48 | |
|
05e5d286f7 | |
|
f86bfccac3 | |
|
df16630dbd | |
|
9044c9c467 | |
|
297eb760f2 | |
|
62e8906004 | |
|
d7527ea66c | |
|
3518c73017 | |
|
31978ce4c9 | |
|
08228f0ec9 | |
|
66041eeaf1 | |
|
78fee9d1f3 | |
|
12801b7ccd | |
|
0bea3da5f4 | |
|
adae9ad7f6 | |
|
4361e012b5 | |
|
c63f2c7546 | |
|
6281e66550 | |
|
988cff10bd | |
|
6d71584778 | |
|
ca11e60b23 | |
|
f834005049 | |
|
2dd48239ad | |
|
321d5e6030 | |
|
c0575ee658 | |
|
fe2a4a238e | |
|
c25508269f | |
|
39a97d6439 | |
|
68ca23f9d3 | |
|
2d7c176455 | |
|
5114e95890 | |
|
588da8cf4b | |
|
3d45c3fe86 | |
|
407f236be9 | |
|
e3f8d5e6b4 | |
|
9245f1b30d | |
|
a4254587ae | |
|
cc057a37ed | |
|
4976505020 | |
|
59f51fd7ca | |
|
ac557aa198 | |
|
10961f91e3 | |
|
20a651107d | |
|
30b7afb960 | |
|
162625bf1b | |
|
4529d4c672 | |
|
47b441f185 | |
|
4b02736983 | |
|
0436623903 | |
|
ca7d8a630b | |
|
b276225fd3 | |
|
2c3367d7a4 | |
|
178e00e252 | |
|
4b115ef5dc | |
|
6a0adf83df | |
|
ec9457be59 | |
|
e6973eee10 | |
|
16489af4c9 | |
|
d037a8e4ec | |
|
cbd83e4948 | |
|
133b422697 | |
|
c52ef8b3d0 | |
|
1e552816e3 | |
|
ff49522946 | |
|
c08ca10c5c | |
|
861a4be502 | |
|
09ccf786ea | |
|
7a57e08076 | |
|
d56e4d166f | |
|
2a1eb0a1da | |
|
452f831153 | |
|
3ff1a9ffe7 | |
|
a4261c136f | |
|
1df004b86d | |
|
27f6dc698f | |
|
54ffa7dee7 | |
|
707a8d4742 | |
|
f625a92077 | |
|
22ec6765f9 | |
|
8cd4c35b20 | |
|
0aab6dd97c | |
|
d8f64b734b | |
|
0bf505b18c | |
|
157d2d5c5d | |
|
d4edae67e7 | |
|
f650cf3db7 | |
|
2b42bb6f77 | |
|
aa5a9e2adf | |
|
508aebdeef | |
|
0f0afbeb1c | |
|
de29fe71b3 | |
|
aee420f636 | |
|
fd87c9a502 | |
|
cbe8caba85 | |
|
c8d296f8d5 | |
|
f8027a4399 | |
|
94ec116f52 | |
|
b3916f6070 | |
|
92e7afdf7b | |
|
4071a995f9 | |
|
6ea35f4822 | |
|
4992cf189f | |
|
64d9e53862 | |
|
17babdd614 | |
|
fe4ae0cd2a | |
|
162d5170fb | |
|
872fce37cf | |
|
f6e2e04d00 | |
|
f1cfa69a45 | |
|
e6733f383f | |
|
d085678849 | |
|
996bd4ade7 | |
|
5b643444ad | |
|
520fd422cc | |
|
3183a8aeb9 | |
|
72db111cf6 | |
|
2fd804a3a6 | |
|
78fc456bfe | |
|
93e6107620 | |
|
3a3999ef7b | |
|
ba4e779403 | |
|
b3f7490073 | |
|
6d8c886cad | |
|
c737191457 | |
|
d5cfa84ebb | |
|
9aec558c42 | |
|
a711c3cce1 | |
|
5cb7571597 | |
|
aa3b160bf0 | |
|
802674f22e | |
|
b111915bc2 | |
|
dd7192f42b | |
|
045550f569 | |
|
d23f05081f | |
|
a915f0f585 | |
|
c1e114dc03 | |
|
30fc26e405 | |
|
36b2178cbc | |
|
30377cea7d | |
|
2994f77101 | |
|
ca6bc3d0a3 | |
|
5a243240f0 | |
|
fe0841bba4 | |
|
dab35966cb | |
|
e25df0acb8 | |
|
596c29b33a | |
|
8b18a19c57 | |
|
8cc7aa84ad | |
|
e7c938a1be | |
|
1ca613f6ff | |
|
bd34186449 | |
|
b48e4abd86 | |
|
f7f826e1f7 | |
|
8285bdaf07 | |
|
1c41c30da2 | |
|
a9e6359cd4 | |
|
eccdd9afbf | |
|
e14ffd195a | |
|
1d423b2b7e | |
|
7442e64c99 | |
|
8a92649a91 | |
|
d7f2f28c3f | |
|
cecd8eab1f | |
|
1703755b6e | |
|
4f8e3a85cb | |
|
7478fec60c | |
|
c6092641e8 | |
|
b652a89dda | |
|
5bc39863de | |
|
e68b194f41 | |
|
6cc7cd02b7 | |
|
a7b98eb8f3 | |
|
c733165302 | |
|
a12ebd80d9 | |
|
71f9c2f1e9 | |
|
f7819532a2 | |
|
9f31f58b35 | |
|
884cb652b9 | |
|
ef0d6eaa6b | |
|
2057f79a71 | |
|
84e35de5df | |
|
de3d9cf59c | |
|
c93edf259a | |
|
bdb667cb09 | |
|
48194e91ee | |
|
32d7fb792a | |
|
e30fe61b2f | |
|
3058070163 | |
|
c1df2ceb25 | |
|
da5283380e | |
|
fa4dac8d77 | |
|
515fdd87b5 | |
|
9584c1baa2 | |
|
a6a31492e4 | |
|
92de6fd2ac | |
|
bda450cc48 | |
|
bac12f258a | |
|
6787ff09ce | |
|
0dc06f9b5f | |
|
e922ea2ed7 | |
|
4e1289282c | |
|
e73dcfc595 | |
|
d4042b2aff | |
|
251ae36bc0 | |
|
6fbb82bb71 | |
|
5899a0240a | |
|
8f09b6ef63 | |
|
870cc83051 | |
|
31b54c7dfd | |
|
b21c7774a3 | |
|
a5f9bfe48c | |
|
6b456d10b7 | |
|
c4ba4d81a0 | |
|
e4c0adcc5a | |
|
c0334c917c | |
|
28713c1f00 | |
|
0ef07fe281 | |
|
2ddbe261a4 | |
|
8394b964ea | |
|
4d0d20bced | |
|
e3ab2f5fea | |
|
95a123773d | |
|
3caf84a4e8 | |
|
6594edea71 | |
|
d0ef1f9704 | |
|
7c76e6dd5e | |
|
bea041f2d6 | |
|
8ac9f6f08a | |
|
cf8d8954a3 | |
|
ddb9875936 | |
|
7d99dbf4fa | |
|
6a756082e6 | |
|
c6e825a510 | |
|
c636a695ca | |
|
f8e9b6946e | |
|
fa48abcb91 | |
|
056191e109 | |
|
e378d34b82 | |
|
88b94e782b | |
|
d421a2e556 | |
|
948a42ee88 | |
|
71e841e47f | |
|
83de018ef2 | |
|
5772a9785b | |
|
a7294b5337 | |
|
f00578c1ee | |
|
7883d61920 | |
|
fc87249b7f | |
|
64352aea62 | |
|
f53e828ca7 | |
|
2f60c580bd | |
|
851bcaede6 | |
|
e01d66ba03 | |
|
fb3f2da453 | |
|
0c1d8e189d | |
|
a2038191ff | |
|
f044347432 | |
|
03a02f3b19 | |
|
582dd9ddf1 | |
|
51caca56ab | |
|
129e530857 | |
|
67faa9f39b | |
|
023a2abbbc | |
|
b63ead3693 | |
|
a86be940f4 | |
|
bf50f21090 | |
|
4fb1ad9e99 | |
|
e823f33559 | |
|
30513ec82a | |
|
62aa2402e0 | |
|
5b9292d712 |
|
@ -0,0 +1,4 @@
|
||||||
|
# https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
|
||||||
|
|
||||||
|
/charts/jaeger/ @dvonthenen @mikelorant @naseemkullah @pavelnikolov
|
||||||
|
/charts/jaeger-operator/ @batazor @cpanato
|
|
@ -0,0 +1,16 @@
|
||||||
|
#### What this PR does
|
||||||
|
|
||||||
|
#### Which issue this PR fixes
|
||||||
|
|
||||||
|
*(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format,
|
||||||
|
will close that issue when PR gets merged)*
|
||||||
|
|
||||||
|
- fixes #
|
||||||
|
|
||||||
|
#### Checklist
|
||||||
|
|
||||||
|
- [ ] [DCO](https://github.com/jaegertracing/helm-charts/blob/main/CONTRIBUTING.md#sign-off-your-work) signed
|
||||||
|
- [ ] Commits are [GPG signed](https://docs.github.com/en/github/authenticating-to-github/about-commit-signature-verification)
|
||||||
|
- [ ] Chart Version bumped
|
||||||
|
- [ ] Title of the PR starts with chart name (`[jaeger]` or `[jaeger-operator]`)
|
||||||
|
- [ ] README.md has been updated to match version/contain new values
|
|
@ -0,0 +1,51 @@
|
||||||
|
name: Prepare K8s for Helm tests
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Set up Helm
|
||||||
|
uses: azure/setup-helm@v4
|
||||||
|
with:
|
||||||
|
version: v3.14.4
|
||||||
|
|
||||||
|
# Python is required because `ct lint` runs Yamale (https://github.com/23andMe/Yamale) and
|
||||||
|
# yamllint (https://github.com/adrienverge/yamllint) which require Python
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: '3.11'
|
||||||
|
|
||||||
|
- name: Set up chart-testing
|
||||||
|
uses: helm/chart-testing-action@v2.6.1
|
||||||
|
with:
|
||||||
|
version: v3.10.1
|
||||||
|
|
||||||
|
- name: Create kind cluster
|
||||||
|
uses: helm/kind-action@v1.9.0
|
||||||
|
|
||||||
|
- name: Install kubectl
|
||||||
|
uses: azure/setup-kubectl@v4.0.0
|
||||||
|
with:
|
||||||
|
version: 'v1.28.8'
|
||||||
|
id: install
|
||||||
|
|
||||||
|
- name: Set up cert-manager
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml --namespace ingress-nginx
|
||||||
|
kubectl label node --all ingress-ready=true
|
||||||
|
kubectl describe pod --selector=app.kubernetes.io/component=controller -n ingress-nginx
|
||||||
|
kubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller --timeout=5m
|
||||||
|
kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.6.1/cert-manager.yaml
|
||||||
|
|
||||||
|
- name: Set up cmctl
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
curl -sSL -o cmctl.tar.gz https://github.com/cert-manager/cert-manager/releases/download/v1.6.1/cmctl-linux-amd64.tar.gz
|
||||||
|
tar xzf cmctl.tar.gz
|
||||||
|
sudo mv cmctl /usr/local/bin
|
||||||
|
cmctl version
|
||||||
|
|
||||||
|
- name: Check if cert-manager is up
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cmctl check api --wait=5m
|
|
@ -3,26 +3,87 @@ name: Lint and Test Charts
|
||||||
on: pull_request
|
on: pull_request
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lint-test:
|
lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- uses: actions/checkout@v2
|
||||||
uses: actions/checkout@v1
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Set up Helm
|
||||||
|
uses: azure/setup-helm@v4
|
||||||
|
with:
|
||||||
|
version: v3.14.4
|
||||||
|
|
||||||
|
# Python is required because `ct lint` runs Yamale (https://github.com/23andMe/Yamale) and
|
||||||
|
# yamllint (https://github.com/adrienverge/yamllint) which require Python
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: '3.11'
|
||||||
|
|
||||||
|
- name: Set up chart-testing
|
||||||
|
uses: helm/chart-testing-action@v2.6.1
|
||||||
|
with:
|
||||||
|
version: v3.10.1
|
||||||
|
|
||||||
|
- name: Run chart-testing (list-changed)
|
||||||
|
id: list-changed
|
||||||
|
run: |
|
||||||
|
changed=$(ct list-changed --config ct.yaml)
|
||||||
|
if [[ -n "$changed" ]]; then
|
||||||
|
echo "::set-output name=changed::true"
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Run chart-testing (lint)
|
- name: Run chart-testing (lint)
|
||||||
id: lint
|
run: ct lint --config ct.yaml
|
||||||
uses: helm/chart-testing-action@v1.0.0-alpha.3
|
|
||||||
with:
|
|
||||||
command: lint
|
|
||||||
|
|
||||||
- name: Create kind cluster
|
test-with-cassandra:
|
||||||
uses: helm/kind-action@v1.0.0-alpha.3
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
installLocalPathProvisioner: true
|
fetch-depth: 0
|
||||||
# Only build a kind cluster if there are chart changes to test.
|
|
||||||
if: steps.lint.outputs.changed == 'true'
|
|
||||||
|
|
||||||
- name: Run chart-testing (install)
|
- uses: ./.github/actions/prepare-k8s
|
||||||
uses: helm/chart-testing-action@v1.0.0-alpha.3
|
|
||||||
|
- name: Run cassandra-chart-testing (install)
|
||||||
|
run: ct install --config ct.yaml
|
||||||
|
test-with-allInOne:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
command: install
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- uses: ./.github/actions/prepare-k8s
|
||||||
|
|
||||||
|
- name: Run allInOne-chart-testing (install)
|
||||||
|
run: |
|
||||||
|
ct install --config ct.yaml --helm-extra-set-args "
|
||||||
|
--set provisionDataStore.cassandra=false
|
||||||
|
--set storage.type=memory
|
||||||
|
--set allInOne.enabled=true
|
||||||
|
--set agent.enabled=false
|
||||||
|
--set collector.enabled=false
|
||||||
|
--set query.enabled=false"
|
||||||
|
test-with-elasticsearch:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- uses: ./.github/actions/prepare-k8s
|
||||||
|
|
||||||
|
- name: Run elasticsearch-chart-testing (install)
|
||||||
|
run: |
|
||||||
|
ct install --config ct.yaml --helm-extra-set-args "
|
||||||
|
--set provisionDataStore.cassandra=false
|
||||||
|
--set provisionDataStore.elasticsearch=true
|
||||||
|
--set storage.type=elasticsearch
|
||||||
|
--set elasticsearch.master.masterOnly=false
|
||||||
|
--set elasticsearch.master.replicaCount=1
|
||||||
|
--set elasticsearch.data.replicaCount=0
|
||||||
|
--set elasticsearch.coordinating.replicaCount=0
|
||||||
|
--set elasticsearch.ingest.replicaCount=0"
|
|
@ -3,35 +3,34 @@ name: Release Charts
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Configure Git
|
- name: Configure Git
|
||||||
run: |
|
run: |
|
||||||
git config user.name "$GITHUB_ACTOR"
|
git config user.name "$GITHUB_ACTOR"
|
||||||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||||
|
|
||||||
# See https://github.com/helm/chart-releaser-action/issues/6
|
|
||||||
- name: Install Helm
|
- name: Install Helm
|
||||||
run: |
|
uses: azure/setup-helm@v1
|
||||||
curl -sSLo get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get
|
with:
|
||||||
chmod 700 get_helm.sh
|
version: v3.4.1
|
||||||
./get_helm.sh
|
|
||||||
helm init --client-only
|
|
||||||
|
|
||||||
- name: Add dependency chart repos
|
- name: Add dependency chart repos
|
||||||
run: |
|
run: |
|
||||||
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
|
helm repo add incubator https://charts.helm.sh/incubator
|
||||||
helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/
|
|
||||||
helm repo add elastic https://helm.elastic.co
|
helm repo add elastic https://helm.elastic.co
|
||||||
|
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||||
|
|
||||||
- name: Run chart-releaser
|
- name: Run chart-releaser
|
||||||
uses: helm/chart-releaser-action@v1.0.0-alpha.2
|
uses: helm/chart-releaser-action@v1.1.0
|
||||||
env:
|
env:
|
||||||
CR_TOKEN: "${{ secrets.CR_TOKEN }}"
|
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
# Helm chart automated files
|
# Helm chart automated files
|
||||||
/charts/*/charts
|
/charts/*/charts
|
||||||
/charts/*/requirements.lock
|
/charts/*/requirements.lock
|
||||||
|
/charts/*/*.tgz
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
## Community Code of Conduct
|
## Community Code of Conduct
|
||||||
|
|
||||||
Jaeger follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
|
Jaeger follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md).
|
||||||
|
|
|
@ -36,7 +36,7 @@ See `git help commit`:
|
||||||
* Must pass [DCO check](#sign-off-your-work)
|
* Must pass [DCO check](#sign-off-your-work)
|
||||||
* Must follow [Charts best practices](https://helm.sh/docs/topics/chart_best_practices/)
|
* Must follow [Charts best practices](https://helm.sh/docs/topics/chart_best_practices/)
|
||||||
* Must pass CI jobs for linting and installing changed charts with the [chart-testing](https://github.com/helm/chart-testing) tool
|
* Must pass CI jobs for linting and installing changed charts with the [chart-testing](https://github.com/helm/chart-testing) tool
|
||||||
* Any change to a chart requires a version bump following [semver](https://semver.org/) principles. See [Immutability(#immutability) and [Versioning](#versioning) below
|
* Any change to a chart requires a version bump following [semver](https://semver.org/) principles. See [Immutability](#immutability) and [Versioning](#versioning) below
|
||||||
|
|
||||||
Once changes have been merged, the release job will automatically run to package and release changed charts.
|
Once changes have been merged, the release job will automatically run to package and release changed charts.
|
||||||
|
|
||||||
|
|
13
README.md
13
README.md
|
@ -1,10 +1,15 @@
|
||||||
# Kubernetes Helm Charts for Jaeger backend
|
# Jaeger Helm Charts
|
||||||
|
|
||||||
[](https://opensource.org/licenses/Apache-2.0)
|
[](https://opensource.org/licenses/Apache-2.0)
|
||||||
[](https://github.com/jaegertracing/helm-charts/actions)
|
[](https://github.com/jaegertracing/helm-charts/actions)
|
||||||
|
|
||||||
This functionality is in beta and is subject to change. The code is provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features.
|
This functionality is in beta and is subject to change. The code is provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features.
|
||||||
|
|
||||||
|
# 🛑 If you are looking for Helm Chart for Jaeger-v2
|
||||||
|
|
||||||
|
it is located in the [v2 branch](https://github.com/jaegertracing/helm-charts/blob/v2/charts/jaeger/README-v2.md).
|
||||||
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
[Helm](https://helm.sh) must be installed to use the charts.
|
[Helm](https://helm.sh) must be installed to use the charts.
|
||||||
|
@ -18,6 +23,10 @@ $ helm repo add jaegertracing https://jaegertracing.github.io/helm-charts
|
||||||
|
|
||||||
You can then run `helm search repo jaegertracing` to see the charts.
|
You can then run `helm search repo jaegertracing` to see the charts.
|
||||||
|
|
||||||
|
See additional documentation:
|
||||||
|
* [Jaeger chart](./charts/jaeger)
|
||||||
|
* [Jaeger Operator chart](./charts/jaeger-operator)
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
We'd love to have you contribute! Please refer to our [contribution guidelines](CONTRIBUTING.md) for details.
|
We'd love to have you contribute! Please refer to our [contribution guidelines](CONTRIBUTING.md) for details.
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
The following table shows the compatibility of `Jaeger Operator helm chart` with different components, in this particular case we shows Jaeger Operator, Kubernetes and Strimzi operator compatibility. Cert-manager installed or certificate for webhook service in a secret is required in version 2.29.0+ of the helm chart.
|
||||||
|
|
||||||
|
| Chart version | Jaeger Operator | Kubernetes | Strimzi Operator | Cert-Manager |
|
||||||
|
|---------------------------|-----------------|-----------------|--------------------|--------------|
|
||||||
|
| 2.57.0 | v1.61.x | v1.19 to v1.29 | v0.32 | v1.6.1+ |
|
||||||
|
| 2.54.0 | v1.57.x | v1.19 to v1.29 | v0.32 | v1.6.1+ |
|
||||||
|
| 2.50.0 | v1.52.x | v1.19 to v1.28 | v0.32 | v1.6.1+ |
|
||||||
|
| 2.49.0 | v1.49.x | v1.19 to v1.28 | v0.32 | v1.6.1+ |
|
||||||
|
| 2.47.0 | v1.47.x | v1.19 to v1.26 | v0.23 | v1.6.1+ |
|
||||||
|
| 2.46.0 | v1.46.x | v1.19 to v1.26 | v0.23 | v1.6.1+ |
|
||||||
|
| 2.45.0 | v1.45.x | v1.19 to v1.26 | v0.23 | v1.6.1+ |
|
||||||
|
| 2.42.0 | v1.43.x | v1.19 to v1.26 | v0.23 | v1.6.1+ |
|
||||||
|
| 2.41.0 | v1.42.x | v1.19 to v1.24 | v0.23 | v1.6.1+ |
|
||||||
|
| (Missing) | | v1.19 to v1.23 | v0.23 | v1.6.1+ |
|
||||||
|
| (Missing) | v1.41.x | v1.19 to v1.23 | v0.23 | v1.6.1+ |
|
||||||
|
| (Missing) | v1.40.x | v1.19 to v1.23 | v0.23 | v1.6.1+ |
|
||||||
|
| 2.37.0 | v1.39.x | v1.19 to v1.24 | v0.23 | v1.6.1+ |
|
||||||
|
| 2.36.0 | v1.38.x | v1.19 to v1.24 | v0.23 | v1.6.1+ |
|
||||||
|
| 2.35.0 | v1.37.x | v1.19 to v1.24 | v0.23 | v1.6.1+ |
|
||||||
|
| 2.34.0 | v1.36.x | v1.19 to v1.24 | v0.23 | v1.6.1+ |
|
||||||
|
| 2.33.0 | v1.35.x | v1.19 to v1.24 | v0.23 | v1.6.1+ |
|
||||||
|
| 2.32.0(C), 2.32.1, 2.32.2 | v1.34.x | v1.19 to v1.24 | v0.23 | v1.6.1+ |
|
||||||
|
| (Missing) | v1.33.x | v1.19 to v1.23 | v0.23 | v1.6.1+ |
|
||||||
|
| 2.30.0(C), 2.31.0(C) | v1.32.x | v1.19 to v1.21 | v0.23 | v1.6.1+ |
|
||||||
|
| 2.29.0(C) | v1.31.x | v1.19 to v1.21 | v0.23 | v1.6.1+ |
|
||||||
|
| 2.28.0 | v1.30.x | v1.19 to v1.21 | v0.23 | |
|
||||||
|
| 2.27.1 | v1.29.x | v1.19 to v1.21 | v0.23 | |
|
||||||
|
| 2.27.0 | v1.28.x | v1.19 to v1.21 | v0.23 | |
|
||||||
|
| 2.26.0 | v1.27.x | v1.19 to v1.21 | v0.23 | |
|
||||||
|
| (Missing) | v1.26.x | v1.19 to v1.21 | v0.23 | |
|
||||||
|
| (Missing) | v1.25.x | v1.19 to v1.21 | v0.23 | |
|
||||||
|
| 2.23.0, 2.24.0, 2.25.0 | v1.24.x | v1.19 to v1.21 | v0.23 | |
|
||||||
|
| (Missing) | v1.23.x | v1.19 to v1.21 | v0.19, v0.20 | |
|
||||||
|
| 2.21.* | v1.22.x | v1.18 to v1.20 | v0.19 | |
|
||||||
|
Legend:
|
||||||
|
- `(C)` Chart is corrupted. Please do not use it, see [link](https://github.com/jaegertracing/helm-charts/issues/351) and [link](https://github.com/jaegertracing/helm-charts/issues/373)
|
||||||
|
- `(Missing)` Missing chart version for specified Jaeger Operator version
|
|
@ -1,11 +1,12 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
description: jaeger-operator Helm chart for Kubernetes
|
description: jaeger-operator Helm chart for Kubernetes
|
||||||
name: jaeger-operator
|
name: jaeger-operator
|
||||||
version: 2.14.0
|
version: 2.57.0
|
||||||
appVersion: 1.17.0
|
appVersion: 1.61.0
|
||||||
home: https://www.jaegertracing.io/
|
home: https://www.jaegertracing.io/
|
||||||
icon: https://www.jaegertracing.io/img/jaeger-icon-reverse-color.svg
|
icon: https://www.jaegertracing.io/img/jaeger-icon-reverse-color.svg
|
||||||
source: https://github.com/jaegertracing/jaeger-operator
|
sources:
|
||||||
|
- https://github.com/jaegertracing/jaeger-operator
|
||||||
maintainers:
|
maintainers:
|
||||||
- email: ctadeu@gmail.com
|
- email: ctadeu@gmail.com
|
||||||
name: cpanato
|
name: cpanato
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
approvers:
|
|
||||||
- cpanato
|
|
||||||
- batazor
|
|
||||||
reviewers:
|
|
||||||
- cpanato
|
|
||||||
- batazor
|
|
|
@ -14,7 +14,13 @@ This chart bootstraps a jaeger-operator deployment on a [Kubernetes](http://kube
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
- Kubernetes 1.8+ with Beta APIs enabled
|
- Kubernetes 1.19+
|
||||||
|
- Helm 3
|
||||||
|
- cert-manager 1.6.1+ installed, or certificate for webhook service in a secret
|
||||||
|
|
||||||
|
## Check compability matrix
|
||||||
|
|
||||||
|
See the compatibility matrix [here](./COMPATIBILITY.md).
|
||||||
|
|
||||||
## Installing the Chart
|
## Installing the Chart
|
||||||
|
|
||||||
|
@ -24,10 +30,10 @@ Add the Jaeger Tracing Helm repository:
|
||||||
$ helm repo add jaegertracing https://jaegertracing.github.io/helm-charts
|
$ helm repo add jaegertracing https://jaegertracing.github.io/helm-charts
|
||||||
```
|
```
|
||||||
|
|
||||||
To install the chart with the release name `my-release`:
|
To install the chart with the release name `my-release` in `observability` namespace:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
$ helm install --name my-release jaegertracing/jaeger-operator
|
$ helm install my-release jaegertracing/jaeger-operator -n observability
|
||||||
```
|
```
|
||||||
|
|
||||||
The command deploys jaeger-operator on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
|
The command deploys jaeger-operator on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
|
||||||
|
@ -48,24 +54,31 @@ The command removes all the Kubernetes components associated with the chart and
|
||||||
|
|
||||||
The following table lists the configurable parameters of the jaeger-operator chart and their default values.
|
The following table lists the configurable parameters of the jaeger-operator chart and their default values.
|
||||||
|
|
||||||
| Parameter | Description | Default |
|
| Parameter | Description | Default |
|
||||||
| :---------------------- | :---------------------------------------------------------------------------------------------------------- | :------------------------------ |
|
| :-------------------------- | :---------------------------------------------------------------------------------------------------------- |:--------------------------------|
|
||||||
| `image.repository` | Controller container image repository | `jaegertracing/jaeger-operator` |
|
| `serviceExtraLabels` | Additional labels to jaeger-operator service | `{}` |
|
||||||
| `image.tag` | Controller container image tag | `1.17.0` |
|
| `extraLabels` | Additional labels to jaeger-operator deployment | `{}` |
|
||||||
| `image.pullPolicy` | Controller container image pull policy | `IfNotPresent` |
|
| `image.repository` | Controller container image repository | `jaegertracing/jaeger-operator` |
|
||||||
| `jaeger.create` | Jaeger instance will be created | `false` |
|
| `image.tag` | Controller container image tag | `1.61.0` |
|
||||||
| `jaeger.spec` | Jaeger instance specification | `{}` |
|
| `image.pullPolicy` | Controller container image pull policy | `IfNotPresent` |
|
||||||
| `crd.install` | CustomResourceDefinition will be installed | `true` |
|
| `jaeger.create` | Jaeger instance will be created | `false` |
|
||||||
| `rbac.create` | All required roles and rolebindings will be created | `true` |
|
| `jaeger.spec` | Jaeger instance specification | `{}` |
|
||||||
| `serviceAccount.create` | Service account to use | `true` |
|
| `rbac.create` | All required roles and rolebindings will be created | `true` |
|
||||||
| `rbac.pspEnabled` | Pod security policy for pod will be created and included in rbac role | `false` |
|
| `serviceAccount.create` | Service account to use | `true` |
|
||||||
| `rbac.clusterRole` | ClusterRole will be used by operator ServiceAccount | `false` |
|
| `rbac.pspEnabled` | Pod security policy for pod will be created and included in rbac role | `false` |
|
||||||
| `serviceAccount.name` | Service account name to use. If not set and create is true, a name is generated using the fullname template | `nil` |
|
| `rbac.clusterRole` | ClusterRole will be used by operator ServiceAccount | `false` |
|
||||||
| `resources` | K8s pod resources | `None` |
|
| `serviceAccount.name` | Service account name to use. If not set and create is true, a name is generated using the fullname template | `nil` |
|
||||||
| `nodeSelector` | Node labels for pod assignment | `{}` |
|
| `extraArgs` | Additional command line arguments arguments passed to the operator | `{}` |
|
||||||
| `tolerations` | Toleration labels for pod assignment | `[]` |
|
| `extraEnv` | Additional environment variables passed to the operator. For example: name: LOG-LEVEL value: debug | `[]` |
|
||||||
| `affinity` | Affinity settings for pod assignment | `{}` |
|
| `replicaCount` | Desired number of operator pods | `1` |
|
||||||
| `securityContext` | Security context for pod | `{}` |
|
| `resources` | K8s pod resources | `None` |
|
||||||
|
| `nodeSelector` | Node labels for pod assignment | `{}` |
|
||||||
|
| `tolerations` | Toleration labels for pod assignment | `[]` |
|
||||||
|
| `topologySpreadConstraints` | Topology Spread Constraints for pod assignment | `[]` |
|
||||||
|
| `affinity` | Affinity settings for pod assignment | `{}` |
|
||||||
|
| `securityContext` | Security context for pod | `{}` |
|
||||||
|
| `containerSecurityContext` | Security context for the container | `{}` |
|
||||||
|
| `priorityClassName` | Priority class name for the pod | `None` |
|
||||||
|
|
||||||
Specify each parameter you'd like to override using a YAML file as described above in the [installation](#installing-the-chart) section.
|
Specify each parameter you'd like to override using a YAML file as described above in the [installation](#installing-the-chart) section.
|
||||||
|
|
||||||
|
@ -76,6 +89,13 @@ $ helm install jaegertracing/jaeger-operator --name my-release \
|
||||||
--set rbac.create=false
|
--set rbac.create=false
|
||||||
```
|
```
|
||||||
|
|
||||||
|
To install the chart without creating the CRDs (any files under `chart/crds`) make use of the `--skip-crds` flag. For example,
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ helm install jaegertracing/jaeger-operator --name my-release \
|
||||||
|
--skip-crds
|
||||||
|
```
|
||||||
|
|
||||||
## After the Helm Installation
|
## After the Helm Installation
|
||||||
|
|
||||||
### Creating a new Jaeger instance
|
### Creating a new Jaeger instance
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,7 +2,7 @@ jaeger-operator is installed.
|
||||||
|
|
||||||
|
|
||||||
Check the jaeger-operator logs
|
Check the jaeger-operator logs
|
||||||
export POD=$(kubectl get pods-l app.kubernetes.io/instance={{ .Release.Name }} -lapp.kubernetes.io/name=jaeger-operator --namespace {{ .Release.Namespace }} --output name)
|
export POD=$(kubectl get pods -l app.kubernetes.io/instance={{ .Release.Name }} -l app.kubernetes.io/name=jaeger-operator --namespace {{ .Release.Namespace }} --output name)
|
||||||
kubectl logs $POD --namespace={{ .Release.Namespace }}
|
kubectl logs $POD --namespace={{ .Release.Namespace }}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -45,4 +45,5 @@ Create chart name and version as used by the chart label.
|
||||||
{{/* Generate basic labels */}}
|
{{/* Generate basic labels */}}
|
||||||
{{- define "jaeger-operator.labels" }}
|
{{- define "jaeger-operator.labels" }}
|
||||||
app.kubernetes.io/name: {{ include "jaeger-operator.name" . }}
|
app.kubernetes.io/name: {{ include "jaeger-operator.name" . }}
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
{{- if .Values.certs.certificate.create }}
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: {{ default "jaeger-operator-service-cert" .Values.certs.certificate.secretName }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
spec:
|
||||||
|
dnsNames:
|
||||||
|
- "{{ default "jaeger-operator-webhook-service" .Values.webhooks.service.name }}.{{ .Release.Namespace }}.svc"
|
||||||
|
- "{{ default "jaeger-operator-webhook-service" .Values.webhooks.service.name }}.{{ .Release.Namespace }}.svc.cluster.local"
|
||||||
|
issuerRef:
|
||||||
|
{{- if .Values.certs.issuer.create }}
|
||||||
|
kind: Issuer
|
||||||
|
{{- else }}
|
||||||
|
kind: {{ .Values.certs.certificate.issuerKind }}
|
||||||
|
{{- end }}
|
||||||
|
name: {{ default "selfsigned-issuer" .Values.certs.issuer.name }}
|
||||||
|
secretName: {{ default "jaeger-operator-service-cert" .Values.certs.certificate.secretName }}
|
||||||
|
subject:
|
||||||
|
organizationalUnits:
|
||||||
|
- "{{ include "jaeger-operator.name" . }}"
|
||||||
|
{{- end }}
|
|
@ -1,6 +0,0 @@
|
||||||
{{- if .Values.crd.install }}
|
|
||||||
{{- range $path, $bytes := .Files.Glob "crds/*.yaml" }}
|
|
||||||
{{ $.Files.Get $path }}
|
|
||||||
---
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
|
@ -2,10 +2,14 @@ apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "jaeger-operator.fullname" . }}
|
name: {{ include "jaeger-operator.fullname" . }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{ include "jaeger-operator.labels" . | indent 4 }}
|
{{ include "jaeger-operator.labels" . | indent 4 }}
|
||||||
|
{{- with .Values.extraLabels }}
|
||||||
|
{{ . | toYaml | indent 4 }}
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: {{ .Values.replicaCount }}
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
{{ include "jaeger-operator.labels" . | indent 6 }}
|
{{ include "jaeger-operator.labels" . | indent 6 }}
|
||||||
|
@ -14,6 +18,9 @@ spec:
|
||||||
name: {{ include "jaeger-operator.fullname" . }}
|
name: {{ include "jaeger-operator.fullname" . }}
|
||||||
labels:
|
labels:
|
||||||
{{ include "jaeger-operator.labels" . | indent 8 }}
|
{{ include "jaeger-operator.labels" . | indent 8 }}
|
||||||
|
{{- with .Values.extraLabels }}
|
||||||
|
{{ . | toYaml | indent 8 }}
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
{{- if .Values.serviceAccount.create }}
|
{{- if .Values.serviceAccount.create }}
|
||||||
serviceAccountName: {{ include "jaeger-operator.serviceAccountName" . }}
|
serviceAccountName: {{ include "jaeger-operator.serviceAccountName" . }}
|
||||||
|
@ -21,6 +28,9 @@ spec:
|
||||||
{{- with .Values.securityContext }}
|
{{- with .Values.securityContext }}
|
||||||
securityContext:
|
securityContext:
|
||||||
{{ toYaml . | indent 8 }}
|
{{ toYaml . | indent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.priorityClassName }}
|
||||||
|
priorityClassName: {{ .Values.priorityClassName | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if and .Values.image.imagePullSecrets (not .Values.serviceAccount.create ) }}
|
{{- if and .Values.image.imagePullSecrets (not .Values.serviceAccount.create ) }}
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
|
@ -28,14 +38,38 @@ spec:
|
||||||
- name: {{ . }}
|
- name: {{ . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.hostNetwork }}
|
||||||
|
hostNetwork: {{ .Values.hostNetwork }}
|
||||||
|
{{- end }}
|
||||||
containers:
|
containers:
|
||||||
- name: {{ include "jaeger-operator.fullname" . }}
|
- name: {{ include "jaeger-operator.fullname" . }}
|
||||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8383
|
- containerPort: {{ .Values.metricsPort }}
|
||||||
name: metrics
|
name: metrics
|
||||||
args: ["start"]
|
- containerPort: {{ .Values.webhooks.port }}
|
||||||
|
name: webhook-server
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /tmp/k8s-webhook-server/serving-certs
|
||||||
|
name: cert
|
||||||
|
readOnly: true
|
||||||
|
args:
|
||||||
|
- start
|
||||||
|
- {{ printf "--metrics-port=%v" .Values.metricsPort }}
|
||||||
|
- {{ printf "--webhook-bind-port=%v" .Values.webhooks.port }}
|
||||||
|
{{- $replicaCount := int .Values.replicaCount }}
|
||||||
|
{{- if gt $replicaCount 1 }}
|
||||||
|
- --leader-elect
|
||||||
|
{{- end }}
|
||||||
|
{{- range $key, $value := .Values.extraArgs }}
|
||||||
|
{{- if $value }}
|
||||||
|
- --{{ $key }}={{ $value }}
|
||||||
|
{{- else }}
|
||||||
|
- --{{ $key }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
env:
|
env:
|
||||||
- name: WATCH_NAMESPACE
|
- name: WATCH_NAMESPACE
|
||||||
{{- if .Values.rbac.clusterRole }}
|
{{- if .Values.rbac.clusterRole }}
|
||||||
|
@ -55,8 +89,20 @@ spec:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
- name: OPERATOR_NAME
|
- name: OPERATOR_NAME
|
||||||
value: {{ include "jaeger-operator.fullname" . | quote }}
|
value: {{ include "jaeger-operator.fullname" . | quote }}
|
||||||
|
{{- if .Values.extraEnv }}
|
||||||
|
{{- toYaml .Values.extraEnv | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
resources:
|
resources:
|
||||||
{{ toYaml .Values.resources | indent 12 }}
|
{{ toYaml .Values.resources | indent 12 }}
|
||||||
|
{{- with .Values.containerSecurityContext }}
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
volumes:
|
||||||
|
- name: cert
|
||||||
|
secret:
|
||||||
|
defaultMode: 420
|
||||||
|
secretName: {{ default "jaeger-operator-service-cert" .Values.certs.certificate.secretName }}
|
||||||
{{- with .Values.nodeSelector }}
|
{{- with .Values.nodeSelector }}
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
{{ toYaml . | indent 8 }}
|
{{ toYaml . | indent 8 }}
|
||||||
|
@ -67,5 +113,9 @@ spec:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- with .Values.tolerations }}
|
{{- with .Values.tolerations }}
|
||||||
tolerations:
|
tolerations:
|
||||||
|
{{ toYaml . | indent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.topologySpreadConstraints }}
|
||||||
|
topologySpreadConstraints:
|
||||||
{{ toYaml . | indent 8 }}
|
{{ toYaml . | indent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
{{- if .Values.certs.issuer.create }}
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Issuer
|
||||||
|
metadata:
|
||||||
|
name: {{ default "selfsigned-issuer" .Values.certs.issuer.name }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
spec:
|
||||||
|
selfSigned: {}
|
||||||
|
{{- end }}
|
|
@ -3,6 +3,7 @@ apiVersion: jaegertracing.io/v1
|
||||||
kind: Jaeger
|
kind: Jaeger
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "jaeger-operator.fullname" . }}-jaeger
|
name: {{ include "jaeger-operator.fullname" . }}-jaeger
|
||||||
|
namespace: {{ default .Release.Namespace .Values.jaeger.namespace }}
|
||||||
{{- with .Values.jaeger.spec }}
|
{{- with .Values.jaeger.spec }}
|
||||||
spec:
|
spec:
|
||||||
{{ toYaml . | indent 2}}
|
{{ toYaml . | indent 2}}
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
{{- if and (.Values.webhooks.mutatingWebhook.create) (.Values.webhooks.service.create) }}
|
||||||
|
apiVersion: admissionregistration.k8s.io/v1
|
||||||
|
kind: MutatingWebhookConfiguration
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/inject-ca-from: {{ default .Release.Namespace .Values.certs.certificate.namespace }}/{{ default "jaeger-operator-service-cert" .Values.certs.certificate.secretName }}
|
||||||
|
labels:
|
||||||
|
{{ include "jaeger-operator.labels" . | indent 4 }}
|
||||||
|
name: jaeger-operator-mutating-webhook-configuration
|
||||||
|
webhooks:
|
||||||
|
- admissionReviewVersions:
|
||||||
|
- v1
|
||||||
|
clientConfig:
|
||||||
|
service:
|
||||||
|
name: {{ default "jaeger-operator-webhook-service" .Values.webhooks.service.name }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
path: /mutate-v1-deployment
|
||||||
|
failurePolicy: Ignore
|
||||||
|
name: deployment.sidecar-injector.jaegertracing.io
|
||||||
|
objectSelector:
|
||||||
|
matchExpressions:
|
||||||
|
- key: app.kubernetes.io/name
|
||||||
|
operator: NotIn
|
||||||
|
values:
|
||||||
|
- {{ include "jaeger-operator.name" . }}
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- apps
|
||||||
|
apiVersions:
|
||||||
|
- v1
|
||||||
|
operations:
|
||||||
|
- CREATE
|
||||||
|
- UPDATE
|
||||||
|
resources:
|
||||||
|
- deployments
|
||||||
|
sideEffects: None
|
||||||
|
- admissionReviewVersions:
|
||||||
|
- v1
|
||||||
|
clientConfig:
|
||||||
|
service:
|
||||||
|
name: {{ default "jaeger-operator-webhook-service" .Values.webhooks.service.name }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
path: /mutate-jaegertracing-io-v1-jaeger
|
||||||
|
failurePolicy: Fail
|
||||||
|
name: mjaeger.kb.io
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- jaegertracing.io
|
||||||
|
apiVersions:
|
||||||
|
- v1
|
||||||
|
operations:
|
||||||
|
- CREATE
|
||||||
|
- UPDATE
|
||||||
|
resources:
|
||||||
|
- jaegers
|
||||||
|
sideEffects: None
|
||||||
|
{{- end }}
|
|
@ -8,89 +8,169 @@ metadata:
|
||||||
{{ include "jaeger-operator.labels" . | indent 4 }}
|
{{ include "jaeger-operator.labels" . | indent 4 }}
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- apps
|
||||||
resources:
|
resources:
|
||||||
- pods
|
- daemonsets
|
||||||
- services
|
- deployments
|
||||||
- endpoints
|
- replicasets
|
||||||
- persistentvolumeclaims
|
- statefulsets
|
||||||
- events
|
|
||||||
- configmaps
|
|
||||||
- secrets
|
|
||||||
- serviceaccounts
|
|
||||||
verbs:
|
verbs:
|
||||||
- '*'
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- apps
|
- apps
|
||||||
resources:
|
resources:
|
||||||
- deployments
|
- deployments
|
||||||
- daemonsets
|
|
||||||
- replicasets
|
|
||||||
- statefulsets
|
|
||||||
verbs:
|
verbs:
|
||||||
- '*'
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- monitoring.coreos.com
|
- apps
|
||||||
resources:
|
resources:
|
||||||
- servicemonitors
|
- deployments/status
|
||||||
verbs:
|
verbs:
|
||||||
- get
|
- get
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- autoscaling
|
||||||
|
resources:
|
||||||
|
- horizontalpodautoscalers
|
||||||
|
verbs:
|
||||||
- create
|
- create
|
||||||
- apiGroups:
|
- delete
|
||||||
- io.jaegertracing
|
- get
|
||||||
resources:
|
- list
|
||||||
- '*'
|
- patch
|
||||||
verbs:
|
- update
|
||||||
- '*'
|
- watch
|
||||||
- apiGroups:
|
|
||||||
- extensions
|
|
||||||
resources:
|
|
||||||
- replicasets
|
|
||||||
- deployments
|
|
||||||
- daemonsets
|
|
||||||
- statefulsets
|
|
||||||
- ingresses
|
|
||||||
verbs:
|
|
||||||
- "*"
|
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- batch
|
- batch
|
||||||
resources:
|
resources:
|
||||||
- jobs
|
|
||||||
- cronjobs
|
- cronjobs
|
||||||
|
- jobs
|
||||||
verbs:
|
verbs:
|
||||||
- "*"
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- route.openshift.io
|
- console.openshift.io
|
||||||
resources:
|
resources:
|
||||||
- routes
|
- consolelinks
|
||||||
verbs:
|
verbs:
|
||||||
- "*"
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- logging.openshift.io
|
- coordination.k8s.io
|
||||||
resources:
|
resources:
|
||||||
- elasticsearches
|
- leases
|
||||||
verbs:
|
verbs:
|
||||||
- '*'
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
- persistentvolumeclaims
|
||||||
|
- pods
|
||||||
|
- secrets
|
||||||
|
- serviceaccounts
|
||||||
|
- services
|
||||||
|
- services/finalizers
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- namespaces
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- namespaces/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- extensions
|
||||||
|
resources:
|
||||||
|
- ingresses
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- image.openshift.io
|
||||||
|
resources:
|
||||||
|
- imagestreams
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- jaegertracing.io
|
- jaegertracing.io
|
||||||
resources:
|
resources:
|
||||||
- '*'
|
- jaegers
|
||||||
verbs:
|
verbs:
|
||||||
- '*'
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- rbac.authorization.k8s.io
|
- jaegertracing.io
|
||||||
resources:
|
resources:
|
||||||
- clusterrolebindings
|
- jaegers/finalizers
|
||||||
verbs:
|
verbs:
|
||||||
- '*'
|
- update
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- apps
|
- jaegertracing.io
|
||||||
- extensions
|
|
||||||
resourceNames:
|
|
||||||
- jaeger-operator
|
|
||||||
resources:
|
resources:
|
||||||
- deployments/finalizers
|
- jaegers/status
|
||||||
verbs:
|
verbs:
|
||||||
|
- get
|
||||||
|
- patch
|
||||||
- update
|
- update
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- kafka.strimzi.io
|
- kafka.strimzi.io
|
||||||
|
@ -98,7 +178,92 @@ rules:
|
||||||
- kafkas
|
- kafkas
|
||||||
- kafkausers
|
- kafkausers
|
||||||
verbs:
|
verbs:
|
||||||
- '*'
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- logging.openshift.io
|
||||||
|
resources:
|
||||||
|
- elasticsearch
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- logging.openshift.io
|
||||||
|
resources:
|
||||||
|
- elasticsearches
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- monitoring.coreos.com
|
||||||
|
resources:
|
||||||
|
- servicemonitors
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- networking.k8s.io
|
||||||
|
resources:
|
||||||
|
- ingresses
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- networking.k8s.io
|
||||||
|
resources:
|
||||||
|
- ingressclasses
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- rbac.authorization.k8s.io
|
||||||
|
resources:
|
||||||
|
- clusterrolebindings
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- route.openshift.io
|
||||||
|
resources:
|
||||||
|
- routes
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
{{- if .Values.rbac.pspEnabled }}
|
{{- if .Values.rbac.pspEnabled }}
|
||||||
- apiGroups: ['policy']
|
- apiGroups: ['policy']
|
||||||
resources: ['podsecuritypolicies']
|
resources: ['podsecuritypolicies']
|
||||||
|
|
|
@ -6,6 +6,10 @@ metadata:
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{ include "jaeger-operator.labels" . | indent 4 }}
|
{{ include "jaeger-operator.labels" . | indent 4 }}
|
||||||
|
{{- if .Values.serviceAccount.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{ toYaml .Values.serviceAccount.annotations | indent 4 }}
|
||||||
|
{{- end }}
|
||||||
{{- if .Values.image.imagePullSecrets }}
|
{{- if .Values.image.imagePullSecrets }}
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
{{- range .Values.image.imagePullSecrets }}
|
{{- range .Values.image.imagePullSecrets }}
|
||||||
|
|
|
@ -2,15 +2,47 @@ apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "jaeger-operator.fullname" . }}-metrics
|
name: {{ include "jaeger-operator.fullname" . }}-metrics
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{ include "jaeger-operator.labels" . | indent 4 }}
|
{{ include "jaeger-operator.labels" . | indent 4 }}
|
||||||
|
{{- with .Values.serviceExtraLabels }}
|
||||||
|
{{ . | toYaml | indent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.service.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{ toYaml .Values.service.annotations | indent 4 }}
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
ports:
|
ports:
|
||||||
- name: metrics
|
- name: metrics
|
||||||
port: 8383
|
port: {{ .Values.metricsPort }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: 8383
|
targetPort: {{ .Values.metricsPort }}
|
||||||
|
{{- if and (eq .Values.service.type "NodePort") (.Values.service.nodePort) }}
|
||||||
|
nodePort: {{ .Values.service.nodePort }}
|
||||||
|
{{- end }}
|
||||||
selector:
|
selector:
|
||||||
app.kubernetes.io/name: {{ include "jaeger-operator.name" . }}
|
app.kubernetes.io/name: {{ include "jaeger-operator.name" . }}
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
type: ClusterIP
|
type: {{ .Values.service.type }}
|
||||||
|
---
|
||||||
|
{{- if .Values.webhooks.service.create }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{ include "jaeger-operator.labels" . | indent 4 }}
|
||||||
|
name: {{ default "jaeger-operator-webhook-service" .Values.webhooks.service.name }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
{{- if .Values.webhooks.service.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{ toYaml .Values.webhooks.service.annotations | indent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 443
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: {{ .Values.webhooks.port }}
|
||||||
|
selector:
|
||||||
|
{{ include "jaeger-operator.labels" . | indent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
{{- if and (.Values.webhooks.validatingWebhook.create) (.Values.webhooks.service.create) }}
|
||||||
|
apiVersion: admissionregistration.k8s.io/v1
|
||||||
|
kind: ValidatingWebhookConfiguration
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/inject-ca-from: {{ default .Release.Namespace .Values.certs.certificate.namespace }}/{{ default "jaeger-operator-service-cert" .Values.certs.certificate.secretName }}
|
||||||
|
name: jaeger-operator-validating-webhook-configuration
|
||||||
|
webhooks:
|
||||||
|
- admissionReviewVersions:
|
||||||
|
- v1
|
||||||
|
clientConfig:
|
||||||
|
service:
|
||||||
|
name: {{ default "jaeger-operator-webhook-service" .Values.webhooks.service.name }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
path: /validate-jaegertracing-io-v1-jaeger
|
||||||
|
failurePolicy: Fail
|
||||||
|
name: vjaeger.kb.io
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- jaegertracing.io
|
||||||
|
apiVersions:
|
||||||
|
- v1
|
||||||
|
operations:
|
||||||
|
- CREATE
|
||||||
|
- UPDATE
|
||||||
|
resources:
|
||||||
|
- jaegers
|
||||||
|
sideEffects: None
|
||||||
|
{{- end }}
|
|
@ -1,18 +1,42 @@
|
||||||
# Default values for jaeger-operator.
|
# Default values for jaeger-operator.
|
||||||
# This is a YAML-formatted file.
|
# This is a YAML-formatted file.
|
||||||
# Declare variables to be passed into your templates.
|
# Declare variables to be passed into your templates.
|
||||||
|
|
||||||
image:
|
image:
|
||||||
repository: jaegertracing/jaeger-operator
|
repository: jaegertracing/jaeger-operator
|
||||||
tag: 1.17.0
|
tag: 1.61.0
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
imagePullSecrets: []
|
imagePullSecrets: []
|
||||||
|
|
||||||
crd:
|
certs:
|
||||||
install: true
|
issuer:
|
||||||
|
create: true
|
||||||
|
name: ""
|
||||||
|
certificate:
|
||||||
|
create: true
|
||||||
|
namespace: ""
|
||||||
|
secretName: ""
|
||||||
|
# Specify the cert-manager issuer kind to use an existing cert-manager
|
||||||
|
# issuer; typically Issuer or ClusterIssuer
|
||||||
|
# This field will be ignored if issuer.create is true
|
||||||
|
issuerKind: Issuer
|
||||||
|
|
||||||
|
webhooks:
|
||||||
|
mutatingWebhook:
|
||||||
|
create: true
|
||||||
|
validatingWebhook:
|
||||||
|
create: true
|
||||||
|
port: 9443
|
||||||
|
service:
|
||||||
|
annotations: {}
|
||||||
|
create: true
|
||||||
|
name: ""
|
||||||
|
|
||||||
jaeger:
|
jaeger:
|
||||||
# Specifies whether Jaeger instance should be created
|
# Specifies whether Jaeger instance should be created
|
||||||
create: false
|
create: false
|
||||||
|
# namespace where Jaeger resource should be created default to .Release.Namespace
|
||||||
|
namespace:
|
||||||
spec: {}
|
spec: {}
|
||||||
|
|
||||||
rbac:
|
rbac:
|
||||||
|
@ -21,12 +45,42 @@ rbac:
|
||||||
pspEnabled: false
|
pspEnabled: false
|
||||||
clusterRole: false
|
clusterRole: false
|
||||||
|
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
# Specify a specific node port when type is NodePort
|
||||||
|
# nodePort: 32500
|
||||||
|
# Annotations for service
|
||||||
|
annotations: {}
|
||||||
|
|
||||||
serviceAccount:
|
serviceAccount:
|
||||||
# Specifies whether a ServiceAccount should be created
|
# Specifies whether a ServiceAccount should be created
|
||||||
create: true
|
create: true
|
||||||
# The name of the ServiceAccount to use.
|
# The name of the ServiceAccount to use.
|
||||||
# If not set and create is true, a name is generated using the fullname template
|
# If not set and create is true, a name is generated using the fullname template
|
||||||
name:
|
name:
|
||||||
|
# Annotations for serviceAccount
|
||||||
|
annotations: {}
|
||||||
|
|
||||||
|
extraArgs: {}
|
||||||
|
# Specifies extra command line arguments arguments passed to the operator:
|
||||||
|
# foo: bar
|
||||||
|
|
||||||
|
# Specifies extra environment variables passed to the operator:
|
||||||
|
extraEnv: []
|
||||||
|
# Specifies log-level for the operator:
|
||||||
|
# - name: LOG-LEVEL
|
||||||
|
# value: debug
|
||||||
|
|
||||||
|
serviceExtraLabels: {}
|
||||||
|
# Specifies extra labels for the operator-metric service:
|
||||||
|
# foo: bar
|
||||||
|
|
||||||
|
extraLabels: {}
|
||||||
|
# Specifies extra labels for the operator deployment:
|
||||||
|
# foo: bar
|
||||||
|
|
||||||
|
# Specifies desired number of operator pods
|
||||||
|
replicaCount: 1
|
||||||
|
|
||||||
resources: {}
|
resources: {}
|
||||||
# limits:
|
# limits:
|
||||||
|
@ -40,6 +94,17 @@ nodeSelector: {}
|
||||||
|
|
||||||
tolerations: []
|
tolerations: []
|
||||||
|
|
||||||
|
topologySpreadConstraints: []
|
||||||
|
|
||||||
affinity: {}
|
affinity: {}
|
||||||
|
|
||||||
securityContext: {}
|
securityContext: {}
|
||||||
|
|
||||||
|
containerSecurityContext: {}
|
||||||
|
|
||||||
|
priorityClassName:
|
||||||
|
|
||||||
|
# Specifies weather host network should be used
|
||||||
|
hostNetwork: false
|
||||||
|
|
||||||
|
metricsPort: 8383
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
dependencies:
|
||||||
|
- name: cassandra
|
||||||
|
repository: https://charts.helm.sh/incubator
|
||||||
|
version: 0.15.3
|
||||||
|
- name: elasticsearch
|
||||||
|
repository: https://charts.bitnami.com/bitnami
|
||||||
|
version: 20.0.4
|
||||||
|
- name: kafka
|
||||||
|
repository: https://charts.bitnami.com/bitnami
|
||||||
|
version: 26.6.2
|
||||||
|
- name: common
|
||||||
|
repository: https://charts.bitnami.com/bitnami
|
||||||
|
version: 2.19.1
|
||||||
|
digest: sha256:16dad4387f2b392d5034731f997518ff05b77909220ce45ee6dd69664942f2df
|
||||||
|
generated: "2024-04-11T08:42:48.824851-04:00"
|
|
@ -1,23 +1,46 @@
|
||||||
apiVersion: v1
|
apiVersion: v2
|
||||||
appVersion: 1.17.0
|
appVersion: 1.53.0
|
||||||
description: A Jaeger Helm chart for Kubernetes
|
description: A Jaeger Helm chart for Kubernetes
|
||||||
name: jaeger
|
name: jaeger
|
||||||
version: 0.20.0
|
type: application
|
||||||
|
version: 3.4.1
|
||||||
|
# CronJobs require v1.21
|
||||||
|
kubeVersion: ">= 1.21-0"
|
||||||
keywords:
|
keywords:
|
||||||
- jaeger
|
- jaeger
|
||||||
- opentracing
|
- opentracing
|
||||||
- tracing
|
- tracing
|
||||||
- instrumentation
|
- instrumentation
|
||||||
home: https://jaegertracing.io
|
home: https://jaegertracing.io
|
||||||
icon: https://camo.githubusercontent.com/afa87494e0753b4b1f5719a2f35aa5263859dffb/687474703a2f2f6a61656765722e72656164746865646f63732e696f2f656e2f6c61746573742f696d616765732f6a61656765722d766563746f722e737667
|
icon: https://www.jaegertracing.io/img/jaeger-icon-reverse-color.svg
|
||||||
sources:
|
sources:
|
||||||
- https://hub.docker.com/u/jaegertracing/
|
- https://hub.docker.com/u/jaegertracing/
|
||||||
maintainers:
|
maintainers:
|
||||||
- name: dvonthenen
|
- name: dvonthenen
|
||||||
email: david.vonthenen@dell.com
|
email: david.vonthenen@dell.com
|
||||||
|
- name: mehta-ankit
|
||||||
|
email: ankit.mehta@appian.com
|
||||||
- name: mikelorant
|
- name: mikelorant
|
||||||
email: michael.lorant@fairfaxmedia.com.au
|
email: michael.lorant@fairfaxmedia.com.au
|
||||||
- name: naseemkullah
|
- name: naseemkullah
|
||||||
email: naseem@transit.app
|
email: naseem@transit.app
|
||||||
- name: pavelnikolov
|
- name: pavelnikolov
|
||||||
email: pavel.nikolov@fairfaxmedia.com.au
|
email: me@pavelnikolov.net
|
||||||
|
- name: jkowall
|
||||||
|
email: jkowall@kowall.net
|
||||||
|
dependencies:
|
||||||
|
- name: cassandra
|
||||||
|
version: 0.15.3
|
||||||
|
repository: https://charts.helm.sh/incubator
|
||||||
|
condition: provisionDataStore.cassandra
|
||||||
|
- name: elasticsearch
|
||||||
|
version: 20.0.4
|
||||||
|
repository: https://charts.bitnami.com/bitnami
|
||||||
|
condition: provisionDataStore.elasticsearch
|
||||||
|
- name: kafka
|
||||||
|
version: 26.6.2
|
||||||
|
repository: https://charts.bitnami.com/bitnami
|
||||||
|
condition: provisionDataStore.kafka
|
||||||
|
- name: common
|
||||||
|
repository: https://charts.bitnami.com/bitnami
|
||||||
|
version: 2.x.x
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
approvers:
|
|
||||||
- dvonthenen
|
|
||||||
- mikelorant
|
|
||||||
- naseemkullah
|
|
||||||
- pavelnikolov
|
|
||||||
reviewers:
|
|
||||||
- dvonthenen
|
|
||||||
- mikelorant
|
|
||||||
- naseemkullah
|
|
||||||
- pavelnikolov
|
|
|
@ -14,7 +14,7 @@ Add the Jaeger Tracing Helm repository:
|
||||||
helm repo add jaegertracing https://jaegertracing.github.io/helm-charts
|
helm repo add jaegertracing https://jaegertracing.github.io/helm-charts
|
||||||
```
|
```
|
||||||
|
|
||||||
To install the chart with the release name `jaeger`, run the following command:
|
To install a release named `jaeger`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
helm install jaeger jaegertracing/jaeger
|
helm install jaeger jaegertracing/jaeger
|
||||||
|
@ -25,106 +25,80 @@ By default, the chart deploys the following:
|
||||||
- Jaeger Agent DaemonSet
|
- Jaeger Agent DaemonSet
|
||||||
- Jaeger Collector Deployment
|
- Jaeger Collector Deployment
|
||||||
- Jaeger Query (UI) Deployment
|
- Jaeger Query (UI) Deployment
|
||||||
- Cassandra StatefulSet
|
- Cassandra StatefulSet (subject to change!)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
IMPORTANT NOTE: For testing purposes, the footprint for Cassandra can be reduced significantly in the event resources become constrained (such as running on your local laptop or in a Vagrant environment). You can override the resources required run running this command:
|
## Configuration
|
||||||
|
|
||||||
```bash
|
See [Customizing the Chart Before Installing](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing). To see all configurable options with detailed comments, visit the chart's [values.yaml](https://github.com/jaegertracing/helm-charts/blob/master/charts/jaeger/values.yaml), or run these configuration commands:
|
||||||
helm install jaeger jaegertracing/jaeger \
|
|
||||||
--set cassandra.config.max_heap_size=1024M \
|
```console
|
||||||
--set cassandra.config.heap_new_size=256M \
|
$ helm show values jaegertracing/jaeger
|
||||||
--set cassandra.resources.requests.memory=2048Mi \
|
|
||||||
--set cassandra.resources.requests.cpu=0.4 \
|
|
||||||
--set cassandra.resources.limits.memory=2048Mi \
|
|
||||||
--set cassandra.resources.limits.cpu=0.4
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Installing the Chart using an Existing Cassandra Cluster
|
You may also `helm show values` on this chart's [dependencies](#dependencies) for additional options.
|
||||||
|
|
||||||
If you already have an existing running Cassandra cluster, you can configure the chart as follows to use it as your backing store (make sure you replace `<HOST>`, `<PORT>`, etc with your values):
|
### Dependencies
|
||||||
|
|
||||||
```bash
|
If installing with a dependency such as Cassandra, Elasticsearch and/or Kafka
|
||||||
helm install jaeger jaegertracing/jaeger \
|
their, values can be shown by running:
|
||||||
--set provisionDataStore.cassandra=false \
|
|
||||||
--set storage.cassandra.host=<HOST> \
|
```console
|
||||||
--set storage.cassandra.port=<PORT> \
|
helm repo add elastic https://helm.elastic.co
|
||||||
--set storage.cassandra.user=<USER> \
|
helm show values elastic/elasticsearch
|
||||||
--set storage.cassandra.password=<PASSWORD>
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Installing the Chart using an Existing Cassandra Cluster with TLS
|
```console
|
||||||
|
helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/
|
||||||
If you already have an existing running Cassandra cluster with TLS, you can configure the chart as follows to use it as your backing store:
|
helm show values incubator/cassandra
|
||||||
|
|
||||||
Content of the `values.yaml` file:
|
|
||||||
|
|
||||||
```YAML
|
|
||||||
storage:
|
|
||||||
type: cassandra
|
|
||||||
cassandra:
|
|
||||||
host: <HOST>
|
|
||||||
port: <PORT>
|
|
||||||
user: <USER>
|
|
||||||
password: <PASSWORD>
|
|
||||||
tls:
|
|
||||||
enabled: true
|
|
||||||
secretName: cassandra-tls-secret
|
|
||||||
|
|
||||||
provisionDataStore:
|
|
||||||
cassandra: false
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Content of the `jaeger-tls-cassandra-secret.yaml` file:
|
```console
|
||||||
|
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||||
```YAML
|
helm show values bitnami/kafka
|
||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: cassandra-tls-secret
|
|
||||||
data:
|
|
||||||
commonName: <SERVER NAME>
|
|
||||||
ca-cert.pem: |
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
<CERT>
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
client-cert.pem: |
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
<CERT>
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
client-key.pem: |
|
|
||||||
-----BEGIN RSA PRIVATE KEY-----
|
|
||||||
-----END RSA PRIVATE KEY-----
|
|
||||||
cqlshrc: |
|
|
||||||
[ssl]
|
|
||||||
certfile = ~/.cassandra/ca-cert.pem
|
|
||||||
userkey = ~/.cassandra/client-key.pem
|
|
||||||
usercert = ~/.cassandra/client-cert.pem
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash
|
Please note, any dependency values must be nested within the key named after the
|
||||||
kubectl apply -f jaeger-tls-cassandra-secret.yaml
|
chart, i.e. `elasticsearch`, `cassandra` and/or `kafka`.
|
||||||
helm install jaeger jaegertracing/jaeger --values values.yaml
|
|
||||||
```
|
|
||||||
|
|
||||||
## Installing the Chart using a New ElasticSearch Cluster
|
## Storage
|
||||||
|
|
||||||
|
As per Jaeger documentation, for large scale production deployment the Jaeger
|
||||||
|
team [recommends Elasticsearch backend over Cassandra](https://www.jaegertracing.io/docs/latest/faq/#what-is-the-recommended-storage-backend),
|
||||||
|
as such the default backend may change in the future and **it is highly
|
||||||
|
recommended to explicitly configure storage**.
|
||||||
|
|
||||||
|
If you are just starting out with a testing/demo setup, you can also use in-memory storage for a
|
||||||
|
fast and easy setup experience using the [Jaeger All in One executable](https://www.jaegertracing.io/docs/1.29/getting-started/#all-in-one).
|
||||||
|
|
||||||
|
### Elasticsearch configuration
|
||||||
|
|
||||||
|
#### Elasticsearch Rollover
|
||||||
|
|
||||||
|
If using the [Elasticsearch
|
||||||
|
Rollover](https://www.jaegertracing.io/docs/latest/deployment/#elasticsearch-rollover)
|
||||||
|
feature, elasticsearch must already be present and so must be deployed
|
||||||
|
separately from this chart, if not the rollover init hook won't be able to
|
||||||
|
complete successfully.
|
||||||
|
|
||||||
|
#### Installing the Chart using a New ElasticSearch Cluster
|
||||||
|
|
||||||
To install the chart with the release name `jaeger` using a new ElasticSearch cluster instead of Cassandra (default), run the following command:
|
To install the chart with the release name `jaeger` using a new ElasticSearch cluster instead of Cassandra (default), run the following command:
|
||||||
|
|
||||||
```bash
|
```console
|
||||||
helm install jaeger jaegertracing/jaeger \
|
helm install jaeger jaegertracing/jaeger \
|
||||||
--set provisionDataStore.cassandra=false \
|
--set provisionDataStore.cassandra=false \
|
||||||
--set provisionDataStore.elasticsearch=true \
|
--set provisionDataStore.elasticsearch=true \
|
||||||
--set storage.type=elasticsearch
|
--set storage.type=elasticsearch
|
||||||
```
|
```
|
||||||
|
|
||||||
## Installing the Chart using an Existing Elasticsearch Cluster
|
#### Installing the Chart using an Existing Elasticsearch Cluster
|
||||||
|
|
||||||
A release can be configured as follows to use an existing ElasticSearch cluster as it as the storage backend:
|
A release can be configured as follows to use an existing ElasticSearch cluster as it as the storage backend:
|
||||||
|
|
||||||
```bash
|
```console
|
||||||
helm install jaeger jaegertracing/jaeger \
|
helm install jaeger jaegertracing/jaeger \
|
||||||
--set provisionDataStore.cassandra=false \
|
--set provisionDataStore.cassandra=false \
|
||||||
--set storage.type=elasticsearch \
|
--set storage.type=elasticsearch \
|
||||||
|
@ -134,7 +108,7 @@ helm install jaeger jaegertracing/jaeger \
|
||||||
--set storage.elasticsearch.password=<password>
|
--set storage.elasticsearch.password=<password>
|
||||||
```
|
```
|
||||||
|
|
||||||
## Installing the Chart using an Existing ElasticSearch Cluster with TLS
|
#### Installing the Chart using an Existing ElasticSearch Cluster with TLS
|
||||||
|
|
||||||
If you already have an existing running ElasticSearch cluster with TLS, you can configure the chart as follows to use it as your backing store:
|
If you already have an existing running ElasticSearch cluster with TLS, you can configure the chart as follows to use it as your backing store:
|
||||||
|
|
||||||
|
@ -184,175 +158,295 @@ spark:
|
||||||
```
|
```
|
||||||
|
|
||||||
Generate configmap jaeger-tls:
|
Generate configmap jaeger-tls:
|
||||||
```bash
|
|
||||||
|
```console
|
||||||
keytool -import -trustcacerts -keystore trust.store -storepass changeit -alias es-root -file es.pem
|
keytool -import -trustcacerts -keystore trust.store -storepass changeit -alias es-root -file es.pem
|
||||||
kubectl create configmap jaeger-tls --from-file=trust.store --from-file=es.pem
|
kubectl create configmap jaeger-tls --from-file=trust.store --from-file=es.pem
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash
|
```console
|
||||||
helm install jaeger jaegertracing/jaeger --values jaeger-values.yaml
|
helm install jaeger jaegertracing/jaeger --values jaeger-values.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
## Installing the Chart with Ingester enabled
|
### Cassandra configuration
|
||||||
|
|
||||||
|
#### Installing the Chart using an Existing Cassandra Cluster
|
||||||
|
|
||||||
|
If you already have an existing running Cassandra cluster, you can configure the chart as follows to use it as your backing store (make sure you replace `<HOST>`, `<PORT>`, etc with your values):
|
||||||
|
|
||||||
|
```console
|
||||||
|
helm install jaeger jaegertracing/jaeger \
|
||||||
|
--set provisionDataStore.cassandra=false \
|
||||||
|
--set storage.cassandra.host=<HOST> \
|
||||||
|
--set storage.cassandra.port=<PORT> \
|
||||||
|
--set storage.cassandra.user=<USER> \
|
||||||
|
--set storage.cassandra.password=<PASSWORD>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Installing the Chart using an Existing Cassandra Cluster with TLS
|
||||||
|
|
||||||
|
If you already have an existing running Cassandra cluster with TLS, you can configure the chart as follows to use it as your backing store:
|
||||||
|
|
||||||
|
Content of the `values.yaml` file:
|
||||||
|
|
||||||
|
```YAML
|
||||||
|
storage:
|
||||||
|
type: cassandra
|
||||||
|
cassandra:
|
||||||
|
host: <HOST>
|
||||||
|
port: <PORT>
|
||||||
|
user: <USER>
|
||||||
|
password: <PASSWORD>
|
||||||
|
tls:
|
||||||
|
enabled: true
|
||||||
|
secretName: cassandra-tls-secret
|
||||||
|
|
||||||
|
provisionDataStore:
|
||||||
|
cassandra: false
|
||||||
|
```
|
||||||
|
|
||||||
|
Content of the `jaeger-tls-cassandra-secret.yaml` file:
|
||||||
|
|
||||||
|
```YAML
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: cassandra-tls-secret
|
||||||
|
data:
|
||||||
|
commonName: <SERVER NAME>
|
||||||
|
ca-cert.pem: |
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
<CERT>
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
client-cert.pem: |
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
<CERT>
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
client-key.pem: |
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
|
cqlshrc: |
|
||||||
|
[ssl]
|
||||||
|
certfile = ~/.cassandra/ca-cert.pem
|
||||||
|
userkey = ~/.cassandra/client-key.pem
|
||||||
|
usercert = ~/.cassandra/client-cert.pem
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```console
|
||||||
|
kubectl apply -f jaeger-tls-cassandra-secret.yaml
|
||||||
|
helm install jaeger jaegertracing/jaeger --values values.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ingester Configuration
|
||||||
|
|
||||||
|
#### Installing the Chart with Ingester enabled
|
||||||
|
|
||||||
The architecture illustrated below can be achieved by enabling the ingester component. When enabled, Cassandra or Elasticsearch (depending on the configured values) now becomes the ingester's storage backend, whereas Kafka becomes the storage backend of the collector service.
|
The architecture illustrated below can be achieved by enabling the ingester component. When enabled, Cassandra or Elasticsearch (depending on the configured values) now becomes the ingester's storage backend, whereas Kafka becomes the storage backend of the collector service.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Installing the Chart with Ingester enabled using a New Kafka Cluster
|
#### Installing the Chart with Ingester enabled using a New Kafka Cluster
|
||||||
|
|
||||||
To provision a new Kafka cluster along with jaeger-ingester:
|
To provision a new Kafka cluster along with jaeger-ingester:
|
||||||
|
|
||||||
```bash
|
```console
|
||||||
helm install jaeger jaegertracing/jaeger \
|
helm install jaeger jaegertracing/jaeger \
|
||||||
--set provisionDataStore.kafka=true \
|
--set provisionDataStore.kafka=true \
|
||||||
--set ingester.enabled=true
|
--set ingester.enabled=true
|
||||||
```
|
```
|
||||||
|
|
||||||
## Installing the Chart with Ingester using an existing Kafka Cluster
|
#### Installing the Chart with Ingester using an existing Kafka Cluster
|
||||||
|
|
||||||
You can use an exisiting Kafka cluster with jaeger too
|
You can use an existing Kafka cluster with jaeger too
|
||||||
|
|
||||||
```bash
|
```console
|
||||||
helm install jaeger jaegertracing/jaeger \
|
helm install jaeger jaegertracing/jaeger \
|
||||||
--set ingester.enabled=true \
|
--set ingester.enabled=true \
|
||||||
--set storage.kafka.brokers={<BROKER1:PORT>,<BROKER2:PORT>} \
|
--set storage.kafka.brokers={<BROKER1:PORT>,<BROKER2:PORT>} \
|
||||||
--set storage.kafka.topic=<TOPIC>
|
--set storage.kafka.topic=<TOPIC>
|
||||||
```
|
```
|
||||||
|
|
||||||
## Configuration
|
### Other Storage Configuration
|
||||||
|
|
||||||
The following table lists the configurable parameters of the Jaeger chart and their default values.
|
If you are using grpc-plugin based storage, you can set environment
|
||||||
|
variables that are needed by the plugin.
|
||||||
|
|
||||||
| Parameter | Description | Default |
|
As as example if using the [jaeger-mongodb](https://github.com/mongodb-labs/jaeger-mongodb)
|
||||||
|-----------|-------------|---------|
|
plugin you can set the `MONGO_URL` as follows...
|
||||||
| `<component>.nodeSelector` | Node selector | {} |
|
|
||||||
| `<component>.tolerations` | Node tolerations | [] |
|
|
||||||
| `<component.affinity` | Affinity | {} |
|
|
||||||
| `<component>.podSecurityContext` | Pod security context | {} |
|
|
||||||
| `<component>.securityContext` | Container security context | {} |
|
|
||||||
| `<component>.serviceAccount.create` | Create service account | `true` |
|
|
||||||
| `<component>.serviceAccount.name` | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | `` |
|
|
||||||
| `agent.annotations` | Annotations for Agent | `nil` |
|
|
||||||
| `agent.cmdlineParams` |Additional command line parameters| `nil` |
|
|
||||||
| `agent.dnsPolicy` | Configure DNS policy for agents | `ClusterFirst` |
|
|
||||||
| `agent.service.annotations` | Annotations for Agent SVC | `nil` |
|
|
||||||
| `agent.service.binaryPort` | jaeger.thrift over binary thrift | `6832` |
|
|
||||||
| `agent.service.compactPort` | jaeger.thrift over compact thrift| `6831` |
|
|
||||||
| `agent.image` | Image for Jaeger Agent | `jaegertracing/jaeger-agent` |
|
|
||||||
| `agent.podAnnotations` | Annotations for Agent pod | `nil` |
|
|
||||||
| `agent.pullPolicy` | Agent image pullPolicy | `IfNotPresent` |
|
|
||||||
| `agent.service.loadBalancerSourceRanges` | list of IP CIDRs allowed access to load balancer (if supported) | `[]` |
|
|
||||||
| `agent.service.annotations` | Annotations for Agent SVC | `nil` |
|
|
||||||
| `agent.service.binaryPort` | jaeger.thrift over binary thrift | `6832` |
|
|
||||||
| `agent.service.compactPort` | jaeger.thrift over compact thrift | `6831` |
|
|
||||||
| `agent.service.zipkinThriftPort` | zipkin.thrift over compact thrift | `5775` |
|
|
||||||
| `agent.extraConfigmapMounts` | Additional agent configMap mounts | `[]` |
|
|
||||||
| `agent.extraSecretMounts` | Additional agent secret mounts | `[]` |
|
|
||||||
| `agent.useHostNetwork` | Enable hostNetwork for agents | `false` |
|
|
||||||
| `collector.autoscaling.enabled` | Enable horizontal pod autoscaling | `false` |
|
|
||||||
| `collector.autoscaling.minReplicas` | Minimum replicas | 2 |
|
|
||||||
| `collector.autoscaling.maxReplicas` | Maximum replicas | 10 |
|
|
||||||
| `collector.autoscaling.targetCPUUtilizationPercentage` | Target CPU utilization | 80 |
|
|
||||||
| `collector.autoscaling.targetMemoryUtilizationPercentage` | Target memory utilization | `nil` |
|
|
||||||
| `collector.cmdlineParams` | Additional command line parameters | `nil` |
|
|
||||||
| `collector.podAnnotations` | Annotations for Collector pod | `nil` |
|
|
||||||
| `collector.service.httpPort` | Client port for HTTP thrift | `14268` |
|
|
||||||
| `collector.service.annotations` | Annotations for Collector SVC | `nil` |
|
|
||||||
| `collector.image` | Image for jaeger collector | `jaegertracing/jaeger-collector` |
|
|
||||||
| `collector.pullPolicy` | Collector image pullPolicy | `IfNotPresent` |
|
|
||||||
| `collector.service.annotations` | Annotations for Collector SVC | `nil` |
|
|
||||||
| `collector.service.httpPort` | Client port for HTTP thrift | `14268` |
|
|
||||||
| `collector.service.loadBalancerSourceRanges` | list of IP CIDRs allowed access to load balancer (if supported) | `[]` |
|
|
||||||
| `collector.service.tchannelPort` | Jaeger Agent port for thrift| `14267` |
|
|
||||||
| `collector.service.type` | Service type | `ClusterIP` |
|
|
||||||
| `collector.service.zipkinPort` | Zipkin port for JSON/thrift HTTP | `nil` |
|
|
||||||
| `collector.extraConfigmapMounts` | Additional collector configMap mounts | `[]` |
|
|
||||||
| `collector.extraSecretMounts` | Additional collector secret mounts | `[]` |
|
|
||||||
| `collector.samplingConfig` | [Sampling strategies json file](https://www.jaegertracing.io/docs/latest/sampling/#collector-sampling-configuration) | `nil` |
|
|
||||||
| `ingester.enabled` | Enable ingester component, collectors will write to Kafka | `false` |
|
|
||||||
| `ingester.autoscaling.enabled` | Enable horizontal pod autoscaling | `false` |
|
|
||||||
| `ingester.autoscaling.minReplicas` | Minimum replicas | 2 |
|
|
||||||
| `ingester.autoscaling.maxReplicas` | Maximum replicas | 10 |
|
|
||||||
| `ingester.autoscaling.targetCPUUtilizationPercentage` | Target CPU utilization | 80 |
|
|
||||||
| `ingester.autoscaling.targetMemoryUtilizationPercentage` | Target memory utilization | `nil` |
|
|
||||||
| `ingester.cmdlineParams` | Additional command line parameters | `nil` |
|
|
||||||
| `ingester.podAnnotations` | Annotations for Ingester pod | `nil` |
|
|
||||||
| `ingester.service.annotations` | Annotations for Ingester SVC | `nil` |
|
|
||||||
| `ingester.image` | Image for jaeger Ingester | `jaegertracing/jaeger-ingester` |
|
|
||||||
| `ingester.pullPolicy` | Ingester image pullPolicy | `IfNotPresent` |
|
|
||||||
| `ingester.service.annotations` | Annotations for Ingester SVC | `nil` |
|
|
||||||
| `ingester.service.loadBalancerSourceRanges` | list of IP CIDRs allowed access to load balancer (if supported) | `[]` |
|
|
||||||
| `ingester.service.type` | Service type | `ClusterIP` |
|
|
||||||
| `ingester.extraConfigmapMounts` | Additional Ingester configMap mounts | `[]` |
|
|
||||||
| `ingester.extraSecretMounts` | Additional Ingester secret mounts | `[]` |
|
|
||||||
| `fullnameOverride` | Override full name | `nil` |
|
|
||||||
| `hotrod.enabled` | Enables the Hotrod demo app | `false` |
|
|
||||||
| `hotrod.service.loadBalancerSourceRanges` | list of IP CIDRs allowed access to load balancer (if supported) | `[]` |
|
|
||||||
| `nameOverride` | Override name| `nil` |
|
|
||||||
| `provisionDataStore.cassandra` | Provision Cassandra Data Store| `true` |
|
|
||||||
| `provisionDataStore.elasticsearch` | Provision Elasticsearch Data Store | `false` |
|
|
||||||
| `provisionDataStore.kafka` | Provision Kafka Data Store | `false` |
|
|
||||||
| `query.agentSidecar.enabled` | Enable agent sidecare for query deployment | `true` |
|
|
||||||
| `query.service.annotations` | Annotations for Query SVC | `nil` |
|
|
||||||
| `query.cmdlineParams` | Additional command line parameters | `nil` |
|
|
||||||
| `query.image` | Image for Jaeger Query UI | `jaegertracing/jaeger-query` |
|
|
||||||
| `query.ingress.enabled` | Allow external traffic access | `false` |
|
|
||||||
| `query.ingress.annotations` | Configure annotations for Ingress | `{}` |
|
|
||||||
| `query.ingress.hosts` | Configure host for Ingress | `nil` |
|
|
||||||
| `query.ingress.tls` | Configure tls for Ingress | `nil` |
|
|
||||||
| `query.podAnnotations` | Annotations for Query pod | `nil` |
|
|
||||||
| `query.pullPolicy` | Query UI image pullPolicy | `IfNotPresent` |
|
|
||||||
| `query.service.loadBalancerSourceRanges` | list of IP CIDRs allowed access to load balancer (if supported) | `[]` |
|
|
||||||
| `query.service.port` | External accessible port | `80` |
|
|
||||||
| `query.service.type` | Service type | `ClusterIP` |
|
|
||||||
| `query.basePath` | Base path of Query UI, used for ingress as well (if it is enabled) | `/` |
|
|
||||||
| `query.extraConfigmapMounts` | Additional query configMap mounts | `[]` |
|
|
||||||
| `schema.annotations` | Annotations for the schema job| `nil` |
|
|
||||||
| `schema.extraConfigmapMounts` | Additional cassandra schema job configMap mounts | `[]` |
|
|
||||||
| `schema.image` | Image to setup cassandra schema | `jaegertracing/jaeger-cassandra-schema` |
|
|
||||||
| `schema.mode` | Schema mode (prod or test) | `prod` |
|
|
||||||
| `schema.pullPolicy` | Schema image pullPolicy | `IfNotPresent` |
|
|
||||||
| `schema.activeDeadlineSeconds` | Deadline in seconds for cassandra schema creation job to complete | `120` |
|
|
||||||
| `schema.traceTtl` | Time to live for trace data in seconds | `nil` |
|
|
||||||
| `schema.keyspace` | Set explicit keyspace name | `nil` |
|
|
||||||
| `schema.dependenciesTtl` | Time to live for dependencies data in seconds | `nil` |
|
|
||||||
| `spark.enabled` | Enables the dependencies job| `false` |
|
|
||||||
| `spark.image` | Image for the dependencies job| `jaegertracing/spark-dependencies` |
|
|
||||||
| `spark.pullPolicy` | Image pull policy of the deps image | `Always` |
|
|
||||||
| `spark.schedule` | Schedule of the cron job | `"49 23 * * *"` |
|
|
||||||
| `spark.successfulJobsHistoryLimit` | Cron job successfulJobsHistoryLimit | `5` |
|
|
||||||
| `spark.failedJobsHistoryLimit` | Cron job failedJobsHistoryLimit | `5` |
|
|
||||||
| `spark.tag` | Tag of the dependencies job image | `latest` |
|
|
||||||
| `spark.extraConfigmapMounts` | Additional spark configMap mounts | `[]` |
|
|
||||||
| `spark.extraSecretMounts` | Additional spark secret mounts | `[]` |
|
|
||||||
| `storage.cassandra.existingSecret` | Name of existing password secret object (for password authentication | `nil`
|
|
||||||
| `storage.cassandra.host` | Provisioned cassandra host | `cassandra` |
|
|
||||||
| `storage.cassandra.keyspace` | Schema name for cassandra | `jaeger_v1_test` |
|
|
||||||
| `storage.cassandra.password` | Provisioned cassandra password (ignored if storage.cassandra.existingSecret set) | `password` |
|
|
||||||
| `storage.cassandra.port` | Provisioned cassandra port | `9042` |
|
|
||||||
| `storage.cassandra.tls.enabled` | Provisioned cassandra TLS connection enabled | `false` |
|
|
||||||
| `storage.cassandra.tls.secretName` | Provisioned cassandra TLS connection existing secret name (possible keys in secret: `ca-cert.pem`, `client-key.pem`, `client-cert.pem`, `cqlshrc`, `commonName`) | `` |
|
|
||||||
| `storage.cassandra.usePassword` | Use password | `true` |
|
|
||||||
| `storage.cassandra.user` | Provisioned cassandra username | `user` |
|
|
||||||
| `storage.elasticsearch.existingSecret` | Name of existing password secret object (for password authentication | `nil` |
|
|
||||||
| `storage.elasticsearch.host` | Provisioned elasticsearch host| `elasticsearch` |
|
|
||||||
| `storage.elasticsearch.password` | Provisioned elasticsearch password (ignored if storage.elasticsearch.existingSecret set | `changeme` |
|
|
||||||
| `storage.elasticsearch.port` | Provisioned elasticsearch port| `9200` |
|
|
||||||
| `storage.elasticsearch.scheme` | Provisioned elasticsearch scheme | `http` |
|
|
||||||
| `storage.elasticsearch.usePassword` | Use password | `true` |
|
|
||||||
| `storage.elasticsearch.user` | Provisioned elasticsearch user| `elastic` |
|
|
||||||
| `storage.elasticsearch.indexPrefix` | Index Prefix for elasticsearch | `nil` |
|
|
||||||
| `storage.elasticsearch.nodesWanOnly` | Only access specified es host | `false` |
|
|
||||||
| `storage.kafka.brokers` | Broker List for Kafka with port | `kafka:9092` |
|
|
||||||
| `storage.kafka.topic` | Topic name for Kafka | `jaeger_v1_test` |
|
|
||||||
| `storage.type` | Storage type (ES or Cassandra)| `cassandra` |
|
|
||||||
| `tag` | Image tag/version | `1.17.0` |
|
|
||||||
|
|
||||||
For more information about some of the tunable parameters that Cassandra provides, please visit the helm chart for [cassandra](https://github.com/kubernetes/charts/tree/master/incubator/cassandra) and the official [website](http://cassandra.apache.org/) at apache.org.
|
```YAML
|
||||||
|
storage:
|
||||||
|
type: grpc-plugin
|
||||||
|
grpcPlugin:
|
||||||
|
extraEnv:
|
||||||
|
- name: MONGO_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
key: MONGO_URL
|
||||||
|
name: jaeger-secrets
|
||||||
|
```
|
||||||
|
|
||||||
For more information about some of the tunable parameters that Jaeger provides, please visit the official [Jaeger repo](https://github.com/uber/jaeger) at GitHub.com.
|
### All in One In-Memory Configuration
|
||||||
|
|
||||||
### Pending enhancements
|
#### Installing the Chart using the All in One executable and in-memory storage
|
||||||
|
|
||||||
- [ ] Sidecar deployment support
|
To install the chart with the release name `jaeger` using in-memory storage and the All in One
|
||||||
|
executable, configure the chart as follows:
|
||||||
|
|
||||||
|
Content of the `values.yaml` file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
provisionDataStore:
|
||||||
|
cassandra: false
|
||||||
|
allInOne:
|
||||||
|
enabled: true
|
||||||
|
storage:
|
||||||
|
type: memory
|
||||||
|
agent:
|
||||||
|
enabled: false
|
||||||
|
collector:
|
||||||
|
enabled: false
|
||||||
|
query:
|
||||||
|
enabled: false
|
||||||
|
```
|
||||||
|
|
||||||
|
It's possible to specify resources, extra environment variables, and extra secrets for the all in one deployment:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
allInOne:
|
||||||
|
extraEnv:
|
||||||
|
- name: QUERY_BASE_PATH
|
||||||
|
value: /jaeger
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 500m
|
||||||
|
memory: 512Mi
|
||||||
|
requests:
|
||||||
|
cpu: 256m
|
||||||
|
memory: 128Mi
|
||||||
|
extraSecretMounts:
|
||||||
|
- name: jaeger-tls
|
||||||
|
mountPath: /tls
|
||||||
|
subPath: ""
|
||||||
|
secretName: jaeger-tls
|
||||||
|
readOnly: true
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
helm install jaeger jaegertracing/jaeger --values values.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
## oAuth2 Sidecar
|
||||||
|
If extra protection of the Jaeger UI is needed, then the oAuth2 sidecar can be enabled in the Jaeger Query. The oAuth2
|
||||||
|
sidecar acts as a security proxy in front of the Jaeger Query service and enforces user authentication before reaching
|
||||||
|
the Jaeger UI. This method can work with any valid provider including Keycloak, Azure, Google, GitHub, and more.
|
||||||
|
|
||||||
|
Offical docs [here](https://oauth2-proxy.github.io/oauth2-proxy/docs/behaviour)
|
||||||
|
|
||||||
|
Content of the `jaeger-values.yaml` file:
|
||||||
|
|
||||||
|
```YAML
|
||||||
|
query:
|
||||||
|
enabled: true
|
||||||
|
oAuthSidecar:
|
||||||
|
enabled: true
|
||||||
|
resources: {}
|
||||||
|
image:
|
||||||
|
registry: quay.io
|
||||||
|
repository: oauth2-proxy/oauth2-proxy
|
||||||
|
tag: v7.6.0
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
containerPort: 4180
|
||||||
|
args:
|
||||||
|
- --config
|
||||||
|
- /etc/oauth2-proxy/oauth2-proxy.cfg
|
||||||
|
- --client-secret
|
||||||
|
- "$(client-secret)"
|
||||||
|
extraEnv:
|
||||||
|
- name: client-secret
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: client-secret
|
||||||
|
key: client-secret-key
|
||||||
|
extraConfigmapMounts: []
|
||||||
|
extraSecretMounts: []
|
||||||
|
config: |-
|
||||||
|
provider = "oidc"
|
||||||
|
https_address = ":4180"
|
||||||
|
upstreams = ["http://localhost:16686"]
|
||||||
|
redirect_url = "https://jaeger-svc-domain/oauth2/callback"
|
||||||
|
client_id = "jaeger-query"
|
||||||
|
oidc_issuer_url = "https://keycloak-svc-domain/auth/realms/Default"
|
||||||
|
cookie_secure = "true"
|
||||||
|
cookie_secret = ""
|
||||||
|
email_domains = "*"
|
||||||
|
oidc_groups_claim = "groups"
|
||||||
|
user_id_claim = "preferred_username"
|
||||||
|
skip_provider_button = "true"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Installing extra kubernetes objects
|
||||||
|
|
||||||
|
If additional kubernetes objects need to be installed alongside this chart, set the `extraObjects` array to contain
|
||||||
|
the yaml describing these objects. The values in the array are treated as a template to allow the use of variable
|
||||||
|
substitution and function calls as in the example below.
|
||||||
|
|
||||||
|
Content of the `jaeger-values.yaml` file:
|
||||||
|
|
||||||
|
```YAML
|
||||||
|
extraObjects:
|
||||||
|
- apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: "{{ .Release.Name }}-someRoleBinding"
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: someRole
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: "{{ include \"jaeger.esLookback.serviceAccountName\" . }}"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuring the hotrod example application to send traces to the OpenTelemetry collector
|
||||||
|
|
||||||
|
If the `hotrod` example application is enabled it will export traces to Jaeger
|
||||||
|
via the Jaeger exporter. To switch this to another collector and/or protocol,
|
||||||
|
such as an OpenTelemetry OTLP Collector, see the example below.
|
||||||
|
|
||||||
|
The primary use case of sending the traces to the collector instead of directly
|
||||||
|
to Jaeger is to verify traces can get back to Jaeger or another distributed
|
||||||
|
tracing store and verify that pipeline with the pre-instrumented hotrod
|
||||||
|
application.
|
||||||
|
|
||||||
|
**NOTE: This will not install or setup the OpenTelemetry collector. To setup an example OpenTelemetry Collector, see the [OpenTelemetry helm
|
||||||
|
charts](https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-collector).**
|
||||||
|
|
||||||
|
Content of the `jaeger-values.yaml` file:
|
||||||
|
|
||||||
|
```YAML
|
||||||
|
hotrod:
|
||||||
|
enabled: true
|
||||||
|
# Switch from the jaeger protocol to OTLP
|
||||||
|
extraArgs:
|
||||||
|
- --otel-exporter=otlp
|
||||||
|
# Set the address of the OpenTelemetry collector endpoint
|
||||||
|
extraEnv:
|
||||||
|
- name: OTEL_EXPORTER_OTLP_ENDPOINT
|
||||||
|
value: http://my-otel-collector-opentelemetry-collector:4318
|
||||||
|
```
|
||||||
|
|
||||||
|
## Updating to Kafka to Kraft Mode
|
||||||
|
|
||||||
|
In the Kafka Helm Chart version 24.0.0 major refactors were done to support Kraft mode. More information can be found [here](https://github.com/bitnami/charts/tree/main/bitnami/kafka#to-2400).
|
||||||
|
|
||||||
|
#### Upgrading from Kraft mode
|
||||||
|
|
||||||
|
If you are upgrading from Kraft mode, follow the instructions [here](https://github.com/bitnami/charts/tree/main/bitnami/kafka#upgrading-from-zookeeper-mode).
|
||||||
|
|
||||||
|
#### Upgrading from Zookeeper mode
|
||||||
|
|
||||||
|
If you are upgrading from Zookeeper mode, follow the instructions [here](https://github.com/bitnami/charts/tree/main/bitnami/kafka#upgrading-from-zookeeper-mode).
|
||||||
|
|
||||||
|
After you complete the steps above, follow the instructions [here](https://github.com/bitnami/charts/tree/main/bitnami/kafka#migrating-from-zookeeper-early-access) to finally migrate from Zookeeper.
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
dependencies:
|
|
||||||
- name: cassandra
|
|
||||||
version: ^0.13.1
|
|
||||||
repository: https://kubernetes-charts-incubator.storage.googleapis.com/
|
|
||||||
condition: provisionDataStore.cassandra
|
|
||||||
- name: elasticsearch
|
|
||||||
version: ^7.5.1
|
|
||||||
repository: https://helm.elastic.co
|
|
||||||
condition: provisionDataStore.elasticsearch
|
|
||||||
- name: kafka
|
|
||||||
version: ^0.20.6
|
|
||||||
repository: https://kubernetes-charts-incubator.storage.googleapis.com/
|
|
||||||
condition: provisionDataStore.kafka
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
|
||||||
|
###################################################################
|
||||||
|
### IMPORTANT: Ensure that storage is explicitly configured ###
|
||||||
|
### Default storage options are subject to change. ###
|
||||||
|
### ###
|
||||||
|
### IMPORTANT: The use of <component>.env: {...} is deprecated. ###
|
||||||
|
### Please use <component>.extraEnv: [] instead. ###
|
||||||
|
###################################################################
|
||||||
|
|
||||||
You can log into the Jaeger Query UI here:
|
You can log into the Jaeger Query UI here:
|
||||||
|
|
||||||
{{- if contains "NodePort" .Values.query.service.type }}
|
{{- if contains "NodePort" .Values.query.service.type }}
|
||||||
|
|
|
@ -56,9 +56,9 @@ Create the name of the cassandra schema service account to use
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "jaeger.cassandraSchema.serviceAccountName" -}}
|
{{- define "jaeger.cassandraSchema.serviceAccountName" -}}
|
||||||
{{- if .Values.schema.serviceAccount.create -}}
|
{{- if .Values.schema.serviceAccount.create -}}
|
||||||
{{ default (printf "%s-cassandra-schema" (include "jaeger.fullname" .)) .Values.schema.serviceAccount.name }}
|
{{ default (printf "%s-cassandra-schema" (include "jaeger.fullname" .)) .Values.schema.serviceAccount.name }}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{ default "default" .Values.schema.serviceAccount.name }}
|
{{ default "default" .Values.schema.serviceAccount.name }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
@ -67,9 +67,42 @@ Create the name of the spark service account to use
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "jaeger.spark.serviceAccountName" -}}
|
{{- define "jaeger.spark.serviceAccountName" -}}
|
||||||
{{- if .Values.spark.serviceAccount.create -}}
|
{{- if .Values.spark.serviceAccount.create -}}
|
||||||
{{ default (printf "%s-spark" (include "jaeger.fullname" .)) .Values.spark.serviceAccount.name }}
|
{{ default (printf "%s-spark" (include "jaeger.fullname" .)) .Values.spark.serviceAccount.name }}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{ default "default" .Values.spark.serviceAccount.name }}
|
{{ default "default" .Values.spark.serviceAccount.name }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create the name of the esIndexCleaner service account to use
|
||||||
|
*/}}
|
||||||
|
{{- define "jaeger.esIndexCleaner.serviceAccountName" -}}
|
||||||
|
{{- if .Values.esIndexCleaner.serviceAccount.create -}}
|
||||||
|
{{ default (printf "%s-es-index-cleaner" (include "jaeger.fullname" .)) .Values.esIndexCleaner.serviceAccount.name }}
|
||||||
|
{{- else -}}
|
||||||
|
{{ default "default" .Values.esIndexCleaner.serviceAccount.name }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create the name of the esRollover service account to use
|
||||||
|
*/}}
|
||||||
|
{{- define "jaeger.esRollover.serviceAccountName" -}}
|
||||||
|
{{- if .Values.esRollover.serviceAccount.create -}}
|
||||||
|
{{ default (printf "%s-es-rollover" (include "jaeger.fullname" .)) .Values.esRollover.serviceAccount.name }}
|
||||||
|
{{- else -}}
|
||||||
|
{{ default "default" .Values.esRollover.serviceAccount.name }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create the name of the esLookback service account to use
|
||||||
|
*/}}
|
||||||
|
{{- define "jaeger.esLookback.serviceAccountName" -}}
|
||||||
|
{{- if .Values.esLookback.serviceAccount.create -}}
|
||||||
|
{{ default (printf "%s-es-lookback" (include "jaeger.fullname" .)) .Values.esLookback.serviceAccount.name }}
|
||||||
|
{{- else -}}
|
||||||
|
{{ default "default" .Values.esLookback.serviceAccount.name }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
@ -78,9 +111,9 @@ Create the name of the hotrod service account to use
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "jaeger.hotrod.serviceAccountName" -}}
|
{{- define "jaeger.hotrod.serviceAccountName" -}}
|
||||||
{{- if .Values.hotrod.serviceAccount.create -}}
|
{{- if .Values.hotrod.serviceAccount.create -}}
|
||||||
{{ default (printf "%s-hotrod" (include "jaeger.fullname" .)) .Values.hotrod.serviceAccount.name }}
|
{{ default (printf "%s-hotrod" (include "jaeger.fullname" .)) .Values.hotrod.serviceAccount.name }}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{ default "default" .Values.hotrod.serviceAccount.name }}
|
{{ default "default" .Values.hotrod.serviceAccount.name }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
@ -89,9 +122,9 @@ Create the name of the query service account to use
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "jaeger.query.serviceAccountName" -}}
|
{{- define "jaeger.query.serviceAccountName" -}}
|
||||||
{{- if .Values.query.serviceAccount.create -}}
|
{{- if .Values.query.serviceAccount.create -}}
|
||||||
{{ default (include "jaeger.query.name" .) .Values.query.serviceAccount.name }}
|
{{ default (include "jaeger.query.name" .) .Values.query.serviceAccount.name }}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{ default "default" .Values.query.serviceAccount.name }}
|
{{ default "default" .Values.query.serviceAccount.name }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
@ -100,9 +133,9 @@ Create the name of the agent service account to use
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "jaeger.agent.serviceAccountName" -}}
|
{{- define "jaeger.agent.serviceAccountName" -}}
|
||||||
{{- if .Values.agent.serviceAccount.create -}}
|
{{- if .Values.agent.serviceAccount.create -}}
|
||||||
{{ default (include "jaeger.agent.name" .) .Values.agent.serviceAccount.name }}
|
{{ default (include "jaeger.agent.name" .) .Values.agent.serviceAccount.name }}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{ default "default" .Values.agent.serviceAccount.name }}
|
{{ default "default" .Values.agent.serviceAccount.name }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
@ -111,20 +144,42 @@ Create the name of the collector service account to use
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "jaeger.collector.serviceAccountName" -}}
|
{{- define "jaeger.collector.serviceAccountName" -}}
|
||||||
{{- if .Values.collector.serviceAccount.create -}}
|
{{- if .Values.collector.serviceAccount.create -}}
|
||||||
{{ default (include "jaeger.collector.name" .) .Values.collector.serviceAccount.name }}
|
{{ default (include "jaeger.collector.name" .) .Values.collector.serviceAccount.name }}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{ default "default" .Values.collector.serviceAccount.name }}
|
{{ default "default" .Values.collector.serviceAccount.name }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create the collector ingress host
|
||||||
|
*/}}
|
||||||
|
{{- define "jaeger.collector.ingressHost" -}}
|
||||||
|
{{- if (kindIs "string" .) }}
|
||||||
|
{{- . }}
|
||||||
|
{{- else }}
|
||||||
|
{{- .host }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create the collector ingress servicePort
|
||||||
|
*/}}
|
||||||
|
{{- define "jaeger.collector.ingressServicePort" -}}
|
||||||
|
{{- if (kindIs "string" .context) }}
|
||||||
|
{{- .defaultServicePort }}
|
||||||
|
{{- else }}
|
||||||
|
{{- .context.servicePort }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Create the name of the ingester service account to use
|
Create the name of the ingester service account to use
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "jaeger.ingester.serviceAccountName" -}}
|
{{- define "jaeger.ingester.serviceAccountName" -}}
|
||||||
{{- if .Values.ingester.serviceAccount.create -}}
|
{{- if .Values.ingester.serviceAccount.create -}}
|
||||||
{{ default (include "jaeger.ingester.name" .) .Values.ingester.serviceAccount.name }}
|
{{ default (include "jaeger.ingester.name" .) .Values.ingester.serviceAccount.name }}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{ default "default" .Values.ingester.serviceAccount.name }}
|
{{ default "default" .Values.ingester.serviceAccount.name }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
@ -213,7 +268,11 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "elasticsearch.client.url" -}}
|
{{- define "elasticsearch.client.url" -}}
|
||||||
{{- $port := .Values.storage.elasticsearch.port | toString -}}
|
{{- $port := .Values.storage.elasticsearch.port | toString -}}
|
||||||
{{- printf "%s://%s:%s" .Values.storage.elasticsearch.scheme .Values.storage.elasticsearch.host $port }}
|
{{- $host := .Values.storage.elasticsearch.host }}
|
||||||
|
{{- if .Values.provisionDataStore.elasticsearch }}
|
||||||
|
{{- $host = printf "%s-elasticsearch" .Release.Name }}
|
||||||
|
{{- end }}
|
||||||
|
{{- printf "%s://%s:%s" .Values.storage.elasticsearch.scheme $host $port }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- define "jaeger.hotrod.tracing.host" -}}
|
{{- define "jaeger.hotrod.tracing.host" -}}
|
||||||
|
@ -237,3 +296,442 @@ Configure list of IP CIDRs allowed access to load balancer (if supported)
|
||||||
{{- $local := dict "first" true -}}
|
{{- $local := dict "first" true -}}
|
||||||
{{- range $k, $v := . -}}{{- if not $local.first -}},{{- end -}}{{- $v -}}{{- $_ := set $local "first" false -}}{{- end -}}
|
{{- range $k, $v := . -}}{{- if not $local.first -}},{{- end -}}{{- $v -}}{{- $_ := set $local "first" false -}}{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Cassandra related environment variables
|
||||||
|
*/}}
|
||||||
|
{{- define "cassandra.env" -}}
|
||||||
|
- name: CASSANDRA_SERVERS
|
||||||
|
value: {{ include "cassandra.host" . }}
|
||||||
|
- name: CASSANDRA_PORT
|
||||||
|
value: {{ .Values.storage.cassandra.port | quote }}
|
||||||
|
{{ if .Values.storage.cassandra.tls.enabled }}
|
||||||
|
- name: CASSANDRA_TLS_ENABLED
|
||||||
|
value: "true"
|
||||||
|
- name: CASSANDRA_TLS_SERVER_NAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: {{ .Values.storage.cassandra.tls.secretName }}
|
||||||
|
key: commonName
|
||||||
|
- name: CASSANDRA_TLS_KEY
|
||||||
|
value: "/cassandra-tls/client-key.pem"
|
||||||
|
- name: CASSANDRA_TLS_CERT
|
||||||
|
value: "/cassandra-tls/client-cert.pem"
|
||||||
|
- name: CASSANDRA_TLS_CA
|
||||||
|
value: "/cassandra-tls/ca-cert.pem"
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.cassandra.keyspace }}
|
||||||
|
- name: CASSANDRA_KEYSPACE
|
||||||
|
value: {{ .Values.storage.cassandra.keyspace }}
|
||||||
|
{{- end }}
|
||||||
|
- name: CASSANDRA_USERNAME
|
||||||
|
value: {{ .Values.storage.cassandra.user }}
|
||||||
|
- name: CASSANDRA_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: {{ if .Values.storage.cassandra.existingSecret }}{{ .Values.storage.cassandra.existingSecret }}{{- else }}{{ include "jaeger.fullname" . }}-cassandra{{- end }}
|
||||||
|
key: password
|
||||||
|
{{- range $key, $value := .Values.storage.cassandra.env }}
|
||||||
|
- name: {{ $key | quote }}
|
||||||
|
value: {{ $value | quote }}
|
||||||
|
{{ end -}}
|
||||||
|
{{- if .Values.storage.cassandra.extraEnv }}
|
||||||
|
{{ toYaml .Values.storage.cassandra.extraEnv }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Elasticsearch related environment variables
|
||||||
|
*/}}
|
||||||
|
{{- define "elasticsearch.env" -}}
|
||||||
|
- name: ES_SERVER_URLS
|
||||||
|
value: {{ include "elasticsearch.client.url" . }}
|
||||||
|
{{- if not .Values.storage.elasticsearch.anonymous }}
|
||||||
|
- name: ES_USERNAME
|
||||||
|
value: {{ .Values.storage.elasticsearch.user }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.usePassword }}
|
||||||
|
- name: ES_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: {{ if .Values.storage.elasticsearch.existingSecret }}{{ .Values.storage.elasticsearch.existingSecret }}{{- else }}{{ include "jaeger.fullname" . }}-elasticsearch{{- end }}
|
||||||
|
key: {{ default "password" .Values.storage.elasticsearch.existingSecretKey }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.tls.enabled }}
|
||||||
|
- name: ES_TLS_ENABLED
|
||||||
|
value: "true"
|
||||||
|
- name: ES_TLS_CA
|
||||||
|
value: {{ .Values.storage.elasticsearch.tls.ca }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.indexPrefix }}
|
||||||
|
- name: ES_INDEX_PREFIX
|
||||||
|
value: {{ .Values.storage.elasticsearch.indexPrefix }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range $key, $value := .Values.storage.elasticsearch.env }}
|
||||||
|
- name: {{ $key | quote }}
|
||||||
|
value: {{ $value | quote }}
|
||||||
|
{{ end -}}
|
||||||
|
{{- if .Values.storage.elasticsearch.extraEnv }}
|
||||||
|
{{ toYaml .Values.storage.elasticsearch.extraEnv }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
grpcPlugin related environment variables
|
||||||
|
*/}}
|
||||||
|
{{- define "grpcPlugin.env" -}}
|
||||||
|
{{- if .Values.storage.grpcPlugin.extraEnv }}
|
||||||
|
{{- toYaml .Values.storage.grpcPlugin.extraEnv }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
badger related environment variables
|
||||||
|
*/}}
|
||||||
|
{{- define "badger.env" -}}
|
||||||
|
- name: BADGER_EPHEMERAL
|
||||||
|
value: {{ .Values.storage.badger.ephemeral | quote }}
|
||||||
|
{{- if not .Values.storage.badger.ephemeral }}
|
||||||
|
- name: BADGER_DIRECTORY_VALUE
|
||||||
|
value: {{ print .Values.storage.badger.persistence.mountPath "/badger/data" | quote }}
|
||||||
|
- name: BADGER_DIRECTORY_KEY
|
||||||
|
value: {{ print .Values.storage.badger.persistence.mountPath "/badger/key" | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.badger.extraEnv }}
|
||||||
|
{{- toYaml .Values.storage.badger.extraEnv }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
memory related environment variables
|
||||||
|
*/}}
|
||||||
|
{{- define "memory.env" -}}
|
||||||
|
{{- if .Values.storage.memory.extraEnv }}
|
||||||
|
{{- toYaml .Values.storage.memory.extraEnv }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Cassandra, Elasticsearch, or grpc-plugin, badger, memory related environment variables depending on which is used
|
||||||
|
*/}}
|
||||||
|
{{- define "storage.env" -}}
|
||||||
|
{{- if eq .Values.storage.type "cassandra" -}}
|
||||||
|
{{ include "cassandra.env" . }}
|
||||||
|
{{- else if eq .Values.storage.type "elasticsearch" -}}
|
||||||
|
{{ include "elasticsearch.env" . }}
|
||||||
|
{{- else if or (eq .Values.storage.type "grpc-plugin") (eq .Values.storage.type "grpc") -}}
|
||||||
|
{{ include "grpcPlugin.env" . }}
|
||||||
|
{{- else if eq .Values.storage.type "badger" -}}
|
||||||
|
{{ include "badger.env" . }}
|
||||||
|
{{- else if eq .Values.storage.type "memory" -}}
|
||||||
|
{{ include "memory.env" . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Cassandra related command line options
|
||||||
|
*/}}
|
||||||
|
{{- define "cassandra.cmdArgs" -}}
|
||||||
|
{{- range $key, $value := .Values.storage.cassandra.cmdlineParams -}}
|
||||||
|
{{- if $value }}
|
||||||
|
- --{{ $key }}={{ $value }}
|
||||||
|
{{- else }}
|
||||||
|
- --{{ $key }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Elasticsearch related command line options
|
||||||
|
*/}}
|
||||||
|
{{- define "elasticsearch.cmdArgs" -}}
|
||||||
|
{{- range $key, $value := .Values.storage.elasticsearch.cmdlineParams -}}
|
||||||
|
{{- if $value }}
|
||||||
|
- --{{ $key }}={{ $value }}
|
||||||
|
{{- else }}
|
||||||
|
- --{{ $key }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Cassandra or Elasticsearch related command line options depending on which is used
|
||||||
|
*/}}
|
||||||
|
{{- define "storage.cmdArgs" -}}
|
||||||
|
{{- if eq .Values.storage.type "cassandra" -}}
|
||||||
|
{{- include "cassandra.cmdArgs" . -}}
|
||||||
|
{{- else if eq .Values.storage.type "elasticsearch" -}}
|
||||||
|
{{- include "elasticsearch.cmdArgs" . -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Add extra argument to the command line options
|
||||||
|
Usage:
|
||||||
|
{{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.collector.cmdlineParams ) | nindent 10 }}
|
||||||
|
*/}}
|
||||||
|
{{- define "extra.cmdArgs" -}}
|
||||||
|
{{- range $key, $value := .cmdlineParams -}}
|
||||||
|
{{- if $value }}
|
||||||
|
- --{{ $key }}={{ $value }}
|
||||||
|
{{- else }}
|
||||||
|
- --{{ $key }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Provides a basic ingress network policy
|
||||||
|
*/}}
|
||||||
|
{{- define "jaeger.ingress.networkPolicy" -}}
|
||||||
|
apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }}
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: {{ printf "%s-ingress" .Name }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: {{ .Component }}
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/component: {{ .Component }}
|
||||||
|
policyTypes:
|
||||||
|
- Ingress
|
||||||
|
ingress:
|
||||||
|
{{- if or .ComponentValues.networkPolicy.ingressRules.namespaceSelector .ComponentValues.networkPolicy.ingressRules.podSelector }}
|
||||||
|
- from:
|
||||||
|
{{- if .ComponentValues.networkPolicy.ingressRules.namespaceSelector }}
|
||||||
|
- namespaceSelector:
|
||||||
|
matchLabels: {{- include "common.tplvalues.render" (dict "value" .ComponentValues.networkPolicy.ingressRules.namespaceSelector "context" $) | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .ComponentValues.networkPolicy.ingressRules.podSelector }}
|
||||||
|
- podSelector:
|
||||||
|
matchLabels: {{- include "common.tplvalues.render" (dict "value" .ComponentValues.networkPolicy.ingressRules.podSelector "context" $) | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .ComponentValues.networkPolicy.ingressRules.customRules }}
|
||||||
|
{{- include "common.tplvalues.render" (dict "value" .ComponentValues.networkPolicy.ingressRules.customRules "context" $) | nindent 2 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Provides a basic egress network policy
|
||||||
|
*/}}
|
||||||
|
{{- define "jaeger.egress.networkPolicy" -}}
|
||||||
|
apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }}
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: {{ printf "%s-egress" .Name }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: {{ .Component }}
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/component: {{ .Component }}
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
egress:
|
||||||
|
{{- if or .ComponentValues.networkPolicy.egressRules.namespaceSelector .ComponentValues.networkPolicy.egressRules.podSelector }}
|
||||||
|
- to:
|
||||||
|
{{- if .ComponentValues.networkPolicy.egressRules.namespaceSelector }}
|
||||||
|
- namespaceSelector:
|
||||||
|
matchLabels: {{- include "common.tplvalues.render" (dict "value" .ComponentValues.networkPolicy.egressRules.namespaceSelector "context" $) | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .ComponentValues.networkPolicy.egressRules.podSelector }}
|
||||||
|
- podSelector:
|
||||||
|
matchLabels: {{- include "common.tplvalues.render" (dict "value" .ComponentValues.networkPolicy.egressRules.podSelector "context" $) | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .ComponentValues.networkPolicy.egressRules.customRules }}
|
||||||
|
{{- include "common.tplvalues.render" (dict "value" .ComponentValues.networkPolicy.egressRules.customRules "context" $) | nindent 2 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create image name value
|
||||||
|
If not tag is provided, it defaults to .Chart.AppVersion.
|
||||||
|
( dict "imageRoot" .Values.path.to.image "context" $ )
|
||||||
|
*/}}
|
||||||
|
{{- define "renderImage" -}}
|
||||||
|
{{- $image := merge .imageRoot (dict "tag" .context.Chart.AppVersion) -}}
|
||||||
|
{{- include "common.images.image" (dict "imageRoot" $image "global" .context.Values.global) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create image name for all in one image
|
||||||
|
*/}}
|
||||||
|
{{- define "allInOne.image" -}}
|
||||||
|
{{- include "renderImage" ( dict "imageRoot" .Values.allInOne.image "context" $ ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create pull secrets for all in one image
|
||||||
|
*/}}
|
||||||
|
{{- define "allInOne.imagePullSecrets" -}}
|
||||||
|
{{- include "common.images.renderPullSecrets" (dict "images" (list .Values.allInOne.image) "context" $) -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create image name for schema image
|
||||||
|
*/}}
|
||||||
|
{{- define "schema.image" -}}
|
||||||
|
{{- include "renderImage" ( dict "imageRoot" .Values.schema.image "context" $ ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create pull secrets for schema image
|
||||||
|
*/}}
|
||||||
|
{{- define "schema.imagePullSecrets" -}}
|
||||||
|
{{- include "common.images.renderPullSecrets" (dict "images" (list .Values.schema.image) "context" $) -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create image name for ingester image
|
||||||
|
*/}}
|
||||||
|
{{- define "ingester.image" -}}
|
||||||
|
{{- include "renderImage" ( dict "imageRoot" .Values.ingester.image "context" $ ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create pull secrets for ingester image
|
||||||
|
*/}}
|
||||||
|
{{- define "ingester.imagePullSecrets" -}}
|
||||||
|
{{- include "common.images.renderPullSecrets" (dict "images" (list .Values.ingester.image) "context" $) -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create image name for agent image
|
||||||
|
*/}}
|
||||||
|
{{- define "agent.image" -}}
|
||||||
|
{{- include "renderImage" ( dict "imageRoot" .Values.agent.image "context" $ ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create pull secrets for agent image
|
||||||
|
*/}}
|
||||||
|
{{- define "agent.imagePullSecrets" -}}
|
||||||
|
{{- include "common.images.renderPullSecrets" (dict "images" (list .Values.agent.image) "context" $) -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create image name for collector image
|
||||||
|
*/}}
|
||||||
|
{{- define "collector.image" -}}
|
||||||
|
{{- include "renderImage" ( dict "imageRoot" .Values.collector.image "context" $ ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create pull secrets for collector image
|
||||||
|
*/}}
|
||||||
|
{{- define "collector.imagePullSecrets" -}}
|
||||||
|
{{- include "common.images.renderPullSecrets" (dict "images" (list .Values.collector.image) "context" $) -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create image name for query image
|
||||||
|
*/}}
|
||||||
|
{{- define "query.image" -}}
|
||||||
|
{{- include "renderImage" ( dict "imageRoot" .Values.query.image "context" $ ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create pull secrets for query image
|
||||||
|
*/}}
|
||||||
|
{{- define "query.imagePullSecrets" -}}
|
||||||
|
{{- include "common.images.renderPullSecrets" (dict "images" (list .Values.query.image .Values.query.oAuthSidecar.image) "context" $) -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create image name for oAuthSidecar image
|
||||||
|
*/}}
|
||||||
|
{{- define "oAuthSidecar.image" -}}
|
||||||
|
{{- include "common.images.image" (dict "imageRoot" .Values.query.oAuthSidecar.image "global" .Values.global) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create image name for spark image
|
||||||
|
*/}}
|
||||||
|
{{- define "spark.image" -}}
|
||||||
|
{{- include "common.images.image" (dict "imageRoot" .Values.spark.image "global" .Values.global) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create pull secrets for spark image
|
||||||
|
*/}}
|
||||||
|
{{- define "spark.imagePullSecrets" -}}
|
||||||
|
{{- include "common.images.renderPullSecrets" (dict "images" (list .Values.spark.image) "context" $) -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create image name for esIndexCleaner image
|
||||||
|
*/}}
|
||||||
|
{{- define "esIndexCleaner.image" -}}
|
||||||
|
{{- include "renderImage" ( dict "imageRoot" .Values.esIndexCleaner.image "context" $ ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create pull secrets for esIndexCleaner image
|
||||||
|
*/}}
|
||||||
|
{{- define "esIndexCleaner.imagePullSecrets" -}}
|
||||||
|
{{- include "common.images.renderPullSecrets" (dict "images" (list .Values.esIndexCleaner.image) "context" $) -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create image name for esRollover image
|
||||||
|
*/}}
|
||||||
|
{{- define "esRollover.image" -}}
|
||||||
|
{{- include "renderImage" ( dict "imageRoot" .Values.esRollover.image "context" $ ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create pull secrets for esRollover image
|
||||||
|
*/}}
|
||||||
|
{{- define "esRollover.imagePullSecrets" -}}
|
||||||
|
{{- include "common.images.renderPullSecrets" (dict "images" (list .Values.esRollover.image) "context" $) -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create image name for esLookback image
|
||||||
|
*/}}
|
||||||
|
{{- define "esLookback.image" -}}
|
||||||
|
{{- include "renderImage" ( dict "imageRoot" .Values.esLookback.image "context" $ ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create pull secrets for esLookback image
|
||||||
|
*/}}
|
||||||
|
{{- define "esLookback.imagePullSecrets" -}}
|
||||||
|
{{- include "common.images.renderPullSecrets" (dict "images" (list .Values.esLookback.image) "context" $) -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create image name for hotrod image
|
||||||
|
*/}}
|
||||||
|
{{- define "hotrod.image" -}}
|
||||||
|
{{- include "renderImage" ( dict "imageRoot" .Values.hotrod.image "context" $ ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Define curl image declaration
|
||||||
|
*/}}
|
||||||
|
{{- define "curl.image" -}}
|
||||||
|
{{- $image := "curlimages/curl" -}}
|
||||||
|
{{- if .Values.global.imageRegistry -}}
|
||||||
|
{{ .Values.global.imageRegistry }}/{{ $image }}
|
||||||
|
{{- else -}}
|
||||||
|
{{ $image }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create pull secrets for hotrod image
|
||||||
|
*/}}
|
||||||
|
{{- define "hotrod.imagePullSecrets" -}}
|
||||||
|
{{- include "common.images.renderPullSecrets" (dict "images" (list .Values.hotrod.image) "context" $) -}}
|
||||||
|
{{- end }}
|
||||||
|
|
|
@ -8,48 +8,64 @@ metadata:
|
||||||
app.kubernetes.io/component: agent
|
app.kubernetes.io/component: agent
|
||||||
{{- if .Values.agent.annotations }}
|
{{- if .Values.agent.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.agent.annotations | indent 4 }}
|
{{- toYaml .Values.agent.annotations | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
{{- include "jaeger.selectorLabels" . | nindent 6 }}
|
{{- include "jaeger.selectorLabels" . | nindent 6 }}
|
||||||
app.kubernetes.io/component: agent
|
app.kubernetes.io/component: agent
|
||||||
|
{{- with .Values.agent.daemonset.updateStrategy }}
|
||||||
|
updateStrategy:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
{{- if .Values.agent.podAnnotations }}
|
{{- if .Values.agent.podAnnotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.agent.podAnnotations | indent 8 }}
|
{{- toYaml .Values.agent.podAnnotations | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.selectorLabels" . | nindent 8 }}
|
{{- include "jaeger.selectorLabels" . | nindent 8 }}
|
||||||
app.kubernetes.io/component: agent
|
app.kubernetes.io/component: agent
|
||||||
{{- if .Values.agent.podLabels }}
|
{{- if .Values.agent.podLabels }}
|
||||||
{{ toYaml .Values.agent.podLabels | indent 8 }}
|
{{- toYaml .Values.agent.podLabels | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
securityContext:
|
securityContext:
|
||||||
{{ toYaml .Values.agent.podSecurityContext | indent 8 }}
|
{{- toYaml .Values.agent.podSecurityContext | nindent 8 }}
|
||||||
{{- if .Values.agent.useHostNetwork }}
|
{{- if .Values.agent.useHostNetwork }}
|
||||||
hostNetwork: true
|
hostNetwork: true
|
||||||
{{- end }}
|
{{- end }}
|
||||||
dnsPolicy: {{ .Values.agent.dnsPolicy }}
|
dnsPolicy: {{ .Values.agent.dnsPolicy }}
|
||||||
|
{{- with .Values.agent.priorityClassName }}
|
||||||
|
priorityClassName: {{ . }}
|
||||||
|
{{- end }}
|
||||||
serviceAccountName: {{ template "jaeger.agent.serviceAccountName" . }}
|
serviceAccountName: {{ template "jaeger.agent.serviceAccountName" . }}
|
||||||
|
{{- include "agent.imagePullSecrets" . | nindent 6 }}
|
||||||
|
{{- if .Values.agent.initContainers }}
|
||||||
|
initContainers:
|
||||||
|
{{- toYaml .Values.agent.initContainers | nindent 8 }}
|
||||||
|
{{- end}}
|
||||||
containers:
|
containers:
|
||||||
- name: {{ template "jaeger.agent.name" . }}
|
- name: {{ template "jaeger.agent.name" . }}
|
||||||
securityContext:
|
securityContext:
|
||||||
{{ toYaml .Values.agent.securityContext | indent 10 }}
|
{{- toYaml .Values.agent.securityContext | nindent 10 }}
|
||||||
image: {{ .Values.agent.image }}:{{ .Values.tag }}
|
image: {{ include "agent.image" . }}
|
||||||
imagePullPolicy: {{ .Values.agent.pullPolicy }}
|
imagePullPolicy: {{ .Values.agent.image.pullPolicy }}
|
||||||
|
args:
|
||||||
|
{{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.agent.cmdlineParams ) | nindent 10 }}
|
||||||
env:
|
env:
|
||||||
|
{{- if .Values.agent.extraEnv }}
|
||||||
|
{{- toYaml .Values.agent.extraEnv | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
{{- if not (hasKey .Values.agent.cmdlineParams "reporter.grpc.host-port") }}
|
{{- if not (hasKey .Values.agent.cmdlineParams "reporter.grpc.host-port") }}
|
||||||
- name: REPORTER_GRPC_HOST_PORT
|
- name: REPORTER_GRPC_HOST_PORT
|
||||||
value: {{ include "jaeger.collector.name" . }}:{{ .Values.collector.service.grpcPort }}
|
value: {{ include "jaeger.collector.name" . }}:{{ .Values.collector.service.grpc.port }}
|
||||||
{{- end }}
|
|
||||||
{{- range $key, $value := .Values.agent.cmdlineParams }}
|
|
||||||
- name: {{ $key | replace "." "_" | replace "-" "_" | upper | quote }}
|
|
||||||
value: {{ $value | quote }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.agent.envFrom }}
|
||||||
|
envFrom: {{- toYaml . | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
ports:
|
ports:
|
||||||
- name: zipkin-compact
|
- name: zipkin-compact
|
||||||
containerPort: {{ .Values.agent.service.zipkinThriftPort }}
|
containerPort: {{ .Values.agent.service.zipkinThriftPort }}
|
||||||
|
@ -87,7 +103,7 @@ spec:
|
||||||
path: /
|
path: /
|
||||||
port: admin
|
port: admin
|
||||||
resources:
|
resources:
|
||||||
{{ toYaml .Values.agent.resources | indent 10 }}
|
{{- toYaml .Values.agent.resources | nindent 10 }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
{{- range .Values.agent.extraConfigmapMounts }}
|
{{- range .Values.agent.extraConfigmapMounts }}
|
||||||
- name: {{ .name }}
|
- name: {{ .name }}
|
||||||
|
|
|
@ -6,4 +6,9 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.labels" . | nindent 4 }}
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
app.kubernetes.io/component: agent
|
app.kubernetes.io/component: agent
|
||||||
|
{{- with .Values.agent.serviceAccount.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
automountServiceAccountToken: {{ .Values.agent.serviceAccount.automountServiceAccountToken }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
{{- if and (.Values.agent.enabled) (.Values.agent.serviceMonitor.enabled)}}
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.agent.name" . }}
|
||||||
|
{{- if .Values.agent.serviceMonitor.namespace }}
|
||||||
|
namespace: {{ .Values.agent.serviceMonitor.namespace }}
|
||||||
|
{{- end }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: agent
|
||||||
|
{{- if .Values.agent.serviceMonitor.additionalLabels }}
|
||||||
|
{{- toYaml .Values.agent.serviceMonitor.additionalLabels | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.agent.serviceMonitor.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.agent.serviceMonitor.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
endpoints:
|
||||||
|
- port: admin
|
||||||
|
path: /metrics
|
||||||
|
{{- if .Values.agent.serviceMonitor.interval }}
|
||||||
|
interval: {{ .Values.agent.serviceMonitor.interval }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.agent.serviceMonitor.scrapeTimeout }}
|
||||||
|
scrapeTimeout: {{ .Values.agent.serviceMonitor.scrapeTimeout }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.agent.serviceMonitor.relabelings }}
|
||||||
|
relabelings:
|
||||||
|
{{- toYaml .Values.agent.serviceMonitor.relabelings | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.agent.serviceMonitor.metricRelabelings }}
|
||||||
|
metricRelabelings:
|
||||||
|
{{- toYaml .Values.agent.serviceMonitor.metricRelabelings | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
namespaceSelector:
|
||||||
|
matchNames:
|
||||||
|
- {{ .Release.Namespace }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/component: agent
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
{{- end }}
|
|
@ -8,7 +8,7 @@ metadata:
|
||||||
app.kubernetes.io/component: agent
|
app.kubernetes.io/component: agent
|
||||||
{{- if .Values.agent.service.annotations }}
|
{{- if .Values.agent.service.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.agent.service.annotations | indent 4 }}
|
{{- toYaml .Values.agent.service.annotations | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
ports:
|
ports:
|
||||||
|
@ -28,6 +28,10 @@ spec:
|
||||||
port: {{ .Values.agent.service.samplingPort }}
|
port: {{ .Values.agent.service.samplingPort }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: http
|
targetPort: http
|
||||||
|
- name: admin
|
||||||
|
port: 14271
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: admin
|
||||||
type: {{ .Values.agent.service.type }}
|
type: {{ .Values.agent.service.type }}
|
||||||
selector:
|
selector:
|
||||||
{{- include "jaeger.selectorLabels" . | nindent 4 }}
|
{{- include "jaeger.selectorLabels" . | nindent 4 }}
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
{{- if .Values.allInOne.enabled -}}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.agent.name" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: service-agent
|
||||||
|
spec:
|
||||||
|
clusterIP: None
|
||||||
|
ports:
|
||||||
|
- name: zk-compact-trft
|
||||||
|
port: 5775
|
||||||
|
protocol: UDP
|
||||||
|
targetPort: 0
|
||||||
|
- name: config-rest
|
||||||
|
port: 5778
|
||||||
|
targetPort: 0
|
||||||
|
- name: jg-compact-trft
|
||||||
|
port: 6831
|
||||||
|
protocol: UDP
|
||||||
|
targetPort: 0
|
||||||
|
- name: jg-binary-trft
|
||||||
|
port: 6832
|
||||||
|
protocol: UDP
|
||||||
|
targetPort: 0
|
||||||
|
selector:
|
||||||
|
{{- include "jaeger.selectorLabels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: all-in-one
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,48 @@
|
||||||
|
{{- if .Values.allInOne.enabled -}}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.collector.name" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: service-collector
|
||||||
|
spec:
|
||||||
|
clusterIP: {{ .Values.allInOne.service.headless | ternary "None" "null" }}
|
||||||
|
ports:
|
||||||
|
- name: http-zipkin
|
||||||
|
port: 9411
|
||||||
|
targetPort: 0
|
||||||
|
{{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }}
|
||||||
|
appProtocol: http
|
||||||
|
{{- end }}
|
||||||
|
- name: grpc-http
|
||||||
|
port: 14250
|
||||||
|
targetPort: 0
|
||||||
|
{{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }}
|
||||||
|
appProtocol: grpc
|
||||||
|
{{- end }}
|
||||||
|
- name: c-tchan-trft
|
||||||
|
port: 14267
|
||||||
|
targetPort: 0
|
||||||
|
- name: http-c-binary-trft
|
||||||
|
port: 14268
|
||||||
|
targetPort: 0
|
||||||
|
{{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }}
|
||||||
|
appProtocol: http
|
||||||
|
{{- end }}
|
||||||
|
- name: {{ .Values.allInOne.service.collector.otlp.grpc.name }}
|
||||||
|
port: 4317
|
||||||
|
targetPort: 0
|
||||||
|
{{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }}
|
||||||
|
appProtocol: grpc
|
||||||
|
{{- end }}
|
||||||
|
- name: {{ .Values.allInOne.service.collector.otlp.http.name }}
|
||||||
|
port: 4318
|
||||||
|
targetPort: 0
|
||||||
|
{{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }}
|
||||||
|
appProtocol: http
|
||||||
|
{{- end }}
|
||||||
|
selector:
|
||||||
|
{{- include "jaeger.selectorLabels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: all-in-one
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,12 @@
|
||||||
|
{{- if .Values.allInOne.samplingConfig }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ include "jaeger.fullname" . }}-sampling-strategies
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: all-in-one
|
||||||
|
data:
|
||||||
|
strategies.json: |-
|
||||||
|
{{ tpl .Values.allInOne.samplingConfig . | indent 4 }}
|
||||||
|
{{- end }}
|
|
@ -0,0 +1,157 @@
|
||||||
|
{{- if .Values.allInOne.enabled -}}
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.fullname" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: all-in-one
|
||||||
|
prometheus.io/port: "14269"
|
||||||
|
prometheus.io/scrape: "true"
|
||||||
|
spec:
|
||||||
|
{{- if hasKey .Values.allInOne "replicas" }}
|
||||||
|
replicas: {{ .Values.allInOne.replicas }}
|
||||||
|
{{- end }}
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "jaeger.selectorLabels" . | nindent 6 }}
|
||||||
|
app.kubernetes.io/component: all-in-one
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.selectorLabels" . | nindent 8 }}
|
||||||
|
app.kubernetes.io/component: all-in-one
|
||||||
|
{{- if .Values.allInOne.podLabels }}
|
||||||
|
{{- toYaml .Values.allInOne.podLabels | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
annotations:
|
||||||
|
prometheus.io/port: "14269"
|
||||||
|
prometheus.io/scrape: "true"
|
||||||
|
spec:
|
||||||
|
{{- include "allInOne.imagePullSecrets" . | nindent 6 }}
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
{{- if .Values.allInOne.extraEnv }}
|
||||||
|
{{- toYaml .Values.allInOne.extraEnv | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
- name: SPAN_STORAGE_TYPE
|
||||||
|
value: {{ .Values.storage.type }}
|
||||||
|
{{- include "storage.env" . | nindent 12 }}
|
||||||
|
- name: COLLECTOR_ZIPKIN_HOST_PORT
|
||||||
|
value: :9411
|
||||||
|
- name: JAEGER_DISABLED
|
||||||
|
value: "false"
|
||||||
|
- name: COLLECTOR_OTLP_ENABLED
|
||||||
|
value: "true"
|
||||||
|
{{- if .Values.allInOne.samplingConfig }}
|
||||||
|
- name: SAMPLING_STRATEGIES_FILE
|
||||||
|
value: /etc/conf/strategies.json
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.allInOne.envFrom }}
|
||||||
|
envFrom: {{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.allInOne.securityContext | nindent 12 }}
|
||||||
|
image: {{ include "allInOne.image" . }}
|
||||||
|
imagePullPolicy: {{ .Values.allInOne.image.pullPolicy }}
|
||||||
|
name: jaeger
|
||||||
|
args:
|
||||||
|
{{- range $arg := .Values.allInOne.args }}
|
||||||
|
- "{{ tpl $arg $ }}"
|
||||||
|
{{- end }}
|
||||||
|
ports:
|
||||||
|
- containerPort: 5775
|
||||||
|
protocol: UDP
|
||||||
|
- containerPort: 6831
|
||||||
|
protocol: UDP
|
||||||
|
- containerPort: 6832
|
||||||
|
protocol: UDP
|
||||||
|
- containerPort: 5778
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 16686
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 16685
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 9411
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 4317
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 4318
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
failureThreshold: 5
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 14269
|
||||||
|
scheme: HTTP
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 15
|
||||||
|
successThreshold: 1
|
||||||
|
timeoutSeconds: 1
|
||||||
|
readinessProbe:
|
||||||
|
failureThreshold: 3
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 14269
|
||||||
|
scheme: HTTP
|
||||||
|
initialDelaySeconds: 1
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
timeoutSeconds: 1
|
||||||
|
{{- with .Values.allInOne.resources }}
|
||||||
|
resources:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- if not .Values.storage.badger.ephemeral }}
|
||||||
|
- name: badger-data
|
||||||
|
mountPath: {{ .Values.storage.badger.persistence.mountPath }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.allInOne.samplingConfig}}
|
||||||
|
- name: strategies
|
||||||
|
mountPath: /etc/conf/
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.allInOne.extraSecretMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
mountPath: {{ .mountPath }}
|
||||||
|
subPath: {{ .subPath }}
|
||||||
|
readOnly: {{ .readOnly }}
|
||||||
|
{{- end }}
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.allInOne.podSecurityContext | nindent 8 }}
|
||||||
|
serviceAccountName: {{ template "jaeger.fullname" . }}
|
||||||
|
volumes:
|
||||||
|
{{- if not .Values.storage.badger.ephemeral }}
|
||||||
|
- name: badger-data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: {{ .Values.storage.badger.persistence.useExistingPvcName | required "Using badger persistence it is required to set an existing PVC" }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.allInOne.samplingConfig}}
|
||||||
|
- name: strategies
|
||||||
|
configMap:
|
||||||
|
name: {{ include "jaeger.fullname" . }}-sampling-strategies
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.allInOne.extraSecretMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.allInOne.affinity }}
|
||||||
|
affinity:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.allInOne.topologySpreadConstraints }}
|
||||||
|
topologySpreadConstraints:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.allInOne.nodeSelector }}
|
||||||
|
nodeSelector:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.allInOne.tolerations }}
|
||||||
|
tolerations:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,31 @@
|
||||||
|
{{- if and (.Values.allInOne.enabled) (.Values.allInOne.ingress.enabled) -}}
|
||||||
|
{{- $ingressSupportsIngressClassName := eq (include "common.ingress.supportsIngressClassname" .) "true" }}
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.query.name" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: all-in-one
|
||||||
|
{{- if .Values.allInOne.ingress.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.allInOne.ingress.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
{{- if and $ingressSupportsIngressClassName .Values.allInOne.ingress.ingressClassName }}
|
||||||
|
ingressClassName: {{ .Values.allInOne.ingress.ingressClassName }}
|
||||||
|
{{- end }}
|
||||||
|
rules:
|
||||||
|
{{- range $host := .Values.allInOne.ingress.hosts }}
|
||||||
|
- host: {{ $host }}
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: {{ default "ImplementationSpecific" $.Values.allInOne.ingress.pathType }}
|
||||||
|
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "jaeger.query.name" $) "servicePort" 16686 "context" $) | nindent 14 }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if .Values.allInOne.ingress.tls }}
|
||||||
|
tls:
|
||||||
|
{{- toYaml .Values.allInOne.ingress.tls | nindent 4 }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{{- if .Values.allInOne.enabled -}}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.query.name" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: service-query
|
||||||
|
spec:
|
||||||
|
clusterIP: None
|
||||||
|
ports:
|
||||||
|
- name: http-query
|
||||||
|
port: 16686
|
||||||
|
targetPort: 16686
|
||||||
|
- name: grpc-query
|
||||||
|
port: 16685
|
||||||
|
targetPort: 16685
|
||||||
|
selector:
|
||||||
|
{{- include "jaeger.selectorLabels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: all-in-one
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,14 @@
|
||||||
|
{{- if .Values.allInOne.enabled -}}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.fullname" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: all-in-one
|
||||||
|
{{- with .Values.allInOne.serviceAccount.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
automountServiceAccountToken: {{ .Values.allInOne.serviceAccount.automountServiceAccountToken }}
|
||||||
|
{{- end -}}
|
|
@ -1,5 +1,6 @@
|
||||||
{{- if .Values.collector.enabled -}}
|
{{- if .Values.collector.enabled -}}
|
||||||
{{- if eq .Values.storage.type "cassandra" -}}
|
{{- if eq .Values.storage.type "cassandra" -}}
|
||||||
|
{{- if .Values.storage.cassandra.schemaJobEnabled -}}
|
||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -9,57 +10,55 @@ metadata:
|
||||||
app.kubernetes.io/component: cassandra-schema
|
app.kubernetes.io/component: cassandra-schema
|
||||||
{{- if .Values.schema.annotations }}
|
{{- if .Values.schema.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.schema.annotations | indent 4 }}
|
{{- toYaml .Values.schema.annotations | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
activeDeadlineSeconds: {{ .Values.schema.activeDeadlineSeconds }}
|
activeDeadlineSeconds: {{ .Values.schema.activeDeadlineSeconds }}
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "jaeger.fullname" . }}-cassandra-schema
|
name: {{ include "jaeger.fullname" . }}-cassandra-schema
|
||||||
|
{{- if .Values.schema.podAnnotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.schema.podAnnotations | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- if .Values.schema.podLabels }}
|
{{- if .Values.schema.podLabels }}
|
||||||
labels:
|
labels:
|
||||||
{{ toYaml .Values.schema.podLabels | indent 8 }}
|
{{- toYaml .Values.schema.podLabels | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.schema.podSecurityContext | nindent 8 }}
|
||||||
serviceAccountName: {{ template "jaeger.cassandraSchema.serviceAccountName" . }}
|
serviceAccountName: {{ template "jaeger.cassandraSchema.serviceAccountName" . }}
|
||||||
|
{{- include "schema.imagePullSecrets" . | nindent 6 }}
|
||||||
containers:
|
containers:
|
||||||
- name: {{ include "jaeger.fullname" . }}-cassandra-schema
|
- name: {{ include "jaeger.fullname" . }}-cassandra-schema
|
||||||
image: {{ .Values.schema.image }}:{{ .Values.tag }}
|
image: {{ include "schema.image" . }}
|
||||||
imagePullPolicy: {{ .Values.schema.pullPolicy }}
|
imagePullPolicy: {{ .Values.schema.image.pullPolicy }}
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.schema.securityContext | nindent 10 }}
|
||||||
env:
|
env:
|
||||||
- name: CQLSH_HOST
|
{{- if .Values.schema.extraEnv }}
|
||||||
value: {{ template "cassandra.host" . }}
|
{{- toYaml .Values.schema.extraEnv | nindent 10 }}
|
||||||
{{ if .Values.storage.cassandra.tls.enabled }}
|
{{- end }}
|
||||||
- name: CQLSH_SSL
|
{{ range $key, $value := .Values.schema.env }}
|
||||||
value: "--ssl"
|
- name: {{ $key | quote }}
|
||||||
|
value: {{ $value | quote }}
|
||||||
|
{{ end }}
|
||||||
|
{{- include "cassandra.env" . | nindent 10 }}
|
||||||
|
- name: CQLSH_HOST
|
||||||
|
value: {{ template "cassandra.host" . }}
|
||||||
|
{{ if .Values.storage.cassandra.tls.enabled }}
|
||||||
|
- name: CQLSH_SSL
|
||||||
|
value: "--ssl"
|
||||||
|
{{- end }}
|
||||||
|
- name: DATACENTER
|
||||||
|
value: {{ .Values.cassandra.config.dc_name | quote }}
|
||||||
|
{{- if .Values.storage.cassandra.keyspace }}
|
||||||
|
- name: KEYSPACE
|
||||||
|
value: {{ .Values.storage.cassandra.keyspace }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
- name: MODE
|
|
||||||
value: {{ .Values.schema.mode | quote }}
|
|
||||||
- name: DATACENTER
|
|
||||||
value: {{ .Values.cassandra.config.dc_name | quote }}
|
|
||||||
- name: CASSANDRA_PORT
|
|
||||||
value: {{ .Values.storage.cassandra.port | quote }}
|
|
||||||
- name: CASSANDRA_USERNAME
|
|
||||||
value: {{ .Values.storage.cassandra.user }}
|
|
||||||
- name: CASSANDRA_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ if .Values.storage.cassandra.existingSecret }}{{ .Values.storage.cassandra.existingSecret }}{{- else }}{{ include "jaeger.fullname" . }}-cassandra{{- end }}
|
|
||||||
key: password
|
|
||||||
{{- if .Values.storage.cassandra.keyspace }}
|
|
||||||
- name: KEYSPACE
|
|
||||||
value: {{ .Values.storage.cassandra.keyspace | quote }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.schema.traceTtl }}
|
|
||||||
- name: TRACE_TTL
|
|
||||||
value: {{ .Values.schema.traceTtl | quote }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.schema.dependenciesTtl }}
|
|
||||||
- name: DEPENDENCIES_TTL
|
|
||||||
value: {{ .Values.schema.dependenciesTtl | quote }}
|
|
||||||
{{- end }}
|
|
||||||
resources:
|
resources:
|
||||||
{{ toYaml .Values.schema.resources | indent 10 }}
|
{{- toYaml .Values.schema.resources | nindent 10 }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
{{- range .Values.schema.extraConfigmapMounts }}
|
{{- range .Values.schema.extraConfigmapMounts }}
|
||||||
- name: {{ .name }}
|
- name: {{ .name }}
|
||||||
|
@ -92,5 +91,19 @@ spec:
|
||||||
configMap:
|
configMap:
|
||||||
name: {{ .configMap }}
|
name: {{ .configMap }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.storage.cassandra.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.cassandra.tls.secretName }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .Values.storage.cassandra.tls.secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.schema.tolerations }}
|
||||||
|
tolerations:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.schema.nodeSelector }}
|
||||||
|
nodeSelector:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
|
@ -6,4 +6,5 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.labels" . | nindent 4 }}
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
app.kubernetes.io/component: cassandra-schema
|
app.kubernetes.io/component: cassandra-schema
|
||||||
|
automountServiceAccountToken: {{ .Values.schema.serviceAccount.automountServiceAccountToken }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
|
@ -8,7 +8,7 @@ metadata:
|
||||||
app.kubernetes.io/component: collector
|
app.kubernetes.io/component: collector
|
||||||
{{- if .Values.collector.annotations }}
|
{{- if .Values.collector.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.collector.annotations | indent 4 }}
|
{{- toYaml .Values.collector.annotations | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
{{- if not .Values.collector.autoscaling.enabled }}
|
{{- if not .Values.collector.autoscaling.enabled }}
|
||||||
|
@ -18,122 +18,127 @@ spec:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
{{- include "jaeger.selectorLabels" . | nindent 6 }}
|
{{- include "jaeger.selectorLabels" . | nindent 6 }}
|
||||||
app.kubernetes.io/component: collector
|
app.kubernetes.io/component: collector
|
||||||
strategy:
|
|
||||||
type: Recreate
|
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
checksum/config-env: {{ include (print $.Template.BasePath "/collector-configmap.yaml") . | sha256sum }}
|
checksum/config-env: {{ include (print $.Template.BasePath "/collector-configmap.yaml") . | sha256sum }}
|
||||||
{{- if .Values.collector.podAnnotations }}
|
{{- if .Values.collector.podAnnotations }}
|
||||||
{{ toYaml .Values.collector.podAnnotations | indent 8 }}
|
{{- toYaml .Values.collector.podAnnotations | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.selectorLabels" . | nindent 8 }}
|
{{- include "jaeger.selectorLabels" . | nindent 8 }}
|
||||||
app.kubernetes.io/component: collector
|
app.kubernetes.io/component: collector
|
||||||
{{- if .Values.collector.podLabels }}
|
{{- if .Values.collector.podLabels }}
|
||||||
{{ toYaml .Values.collector.podLabels | indent 8 }}
|
{{- toYaml .Values.collector.podLabels | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
|
{{- if .Values.provisionDataStore.elasticsearch }}
|
||||||
|
initContainers:
|
||||||
|
- name: elasticsearch-checker
|
||||||
|
image: {{ include "curl.image" . }}
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- "-c"
|
||||||
|
- |
|
||||||
|
url="{{ include "elasticsearch.client.url" . }}"
|
||||||
|
until [ "$(curl -s -o /dev/null -w '%{http_code}' "$url/_cluster/health")" = "200" ]; do
|
||||||
|
echo "Waiting for Elasticsearch at $url"
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
{{- end}}
|
||||||
|
{{- with .Values.collector.priorityClassName }}
|
||||||
|
priorityClassName: {{ . }}
|
||||||
|
{{- end }}
|
||||||
securityContext:
|
securityContext:
|
||||||
{{ toYaml .Values.collector.podSecurityContext | indent 8 }}
|
{{- toYaml .Values.collector.podSecurityContext | nindent 8 }}
|
||||||
serviceAccountName: {{ template "jaeger.collector.serviceAccountName" . }}
|
serviceAccountName: {{ template "jaeger.collector.serviceAccountName" . }}
|
||||||
|
{{- include "collector.imagePullSecrets" . | nindent 6 }}
|
||||||
|
{{- if .Values.collector.initContainers }}
|
||||||
|
initContainers:
|
||||||
|
{{- toYaml .Values.collector.initContainers | nindent 8 }}
|
||||||
|
{{- end}}
|
||||||
containers:
|
containers:
|
||||||
- name: {{ template "jaeger.collector.name" . }}
|
- name: {{ template "jaeger.collector.name" . }}
|
||||||
securityContext:
|
securityContext:
|
||||||
{{ toYaml .Values.collector.securityContext | indent 10 }}
|
{{- toYaml .Values.collector.securityContext | nindent 10 }}
|
||||||
image: {{ .Values.collector.image }}:{{ .Values.tag }}
|
image: {{ include "collector.image" . }}
|
||||||
imagePullPolicy: {{ .Values.collector.pullPolicy }}
|
imagePullPolicy: {{ .Values.collector.image.pullPolicy }}
|
||||||
env:
|
args:
|
||||||
{{- range $key, $value := .Values.collector.cmdlineParams }}
|
{{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.collector.cmdlineParams ) | nindent 10 }}
|
||||||
- name: {{ $key | replace "." "_" | replace "-" "_" | upper | quote }}
|
{{- if not .Values.ingester.enabled -}}
|
||||||
value: {{ $value | quote }}
|
{{- include "storage.cmdArgs" . | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
env:
|
||||||
|
{{- if .Values.collector.extraEnv }}
|
||||||
|
{{- toYaml .Values.collector.extraEnv | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.collector.service.zipkin }}
|
||||||
|
- name: COLLECTOR_ZIPKIN_HOST_PORT
|
||||||
|
value: {{ .Values.collector.service.zipkin.port | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if or .Values.collector.service.otlp.grpc .Values.collector.service.otlp.http }}
|
||||||
|
- name: COLLECTOR_OTLP_ENABLED
|
||||||
|
value: "true"
|
||||||
|
{{- if ne (default 4317 .Values.collector.service.otlp.grpc.port | toString ) "4317" }}
|
||||||
|
- name: COLLECTOR_OTLP_GRPC_HOST_PORT
|
||||||
|
value: {{ .Values.collector.service.otlp.grpc.port | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if ne (default 4318 .Values.collector.service.otlp.http.port | toString) "4318" }}
|
||||||
|
- name: COLLECTOR_OTLP_HTTP_HOST_PORT
|
||||||
|
value: {{ .Values.collector.service.otlp.http.port | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.collector.service.zipkinPort }}
|
|
||||||
- name: COLLECTOR_ZIPKIN_HTTP_PORT
|
|
||||||
value: {{ .Values.collector.service.zipkinPort | quote }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.ingester.enabled }}
|
{{- if .Values.ingester.enabled }}
|
||||||
- name: SPAN_STORAGE_TYPE
|
- name: SPAN_STORAGE_TYPE
|
||||||
value: kafka
|
value: kafka
|
||||||
|
{{- range $key, $value := .Values.storage.kafka.env }}
|
||||||
|
- name: {{ $key | quote }}
|
||||||
|
value: {{ $value | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.kafka.extraEnv }}
|
||||||
|
{{- toYaml .Values.storage.kafka.extraEnv | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
- name: KAFKA_PRODUCER_BROKERS
|
- name: KAFKA_PRODUCER_BROKERS
|
||||||
value: {{ include "helm-toolkit.utils.joinListWithComma" .Values.storage.kafka.brokers }}
|
value: {{ tpl (include "helm-toolkit.utils.joinListWithComma" .Values.storage.kafka.brokers) . }}
|
||||||
- name: KAFKA_PRODUCER_TOPIC
|
- name: KAFKA_PRODUCER_TOPIC
|
||||||
value: {{ .Values.storage.kafka.topic }}
|
value: {{ .Values.storage.kafka.topic }}
|
||||||
|
- name: KAFKA_PRODUCER_AUTHENTICATION
|
||||||
|
value: {{ .Values.storage.kafka.authentication }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
- name: SPAN_STORAGE_TYPE
|
- name: SPAN_STORAGE_TYPE
|
||||||
value: {{ .Values.storage.type }}
|
value: {{ .Values.storage.type }}
|
||||||
{{- if eq .Values.storage.type "cassandra" }}
|
{{- include "storage.env" . | nindent 10 }}
|
||||||
- name: CASSANDRA_SERVERS
|
|
||||||
value: {{ template "cassandra.host" . }}
|
|
||||||
- name: CASSANDRA_PORT
|
|
||||||
value: {{ .Values.storage.cassandra.port | quote }}
|
|
||||||
{{ if .Values.storage.cassandra.tls.enabled }}
|
|
||||||
- name: CASSANDRA_TLS
|
|
||||||
value: "true"
|
|
||||||
- name: CASSANDRA_TLS_SERVER_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ .Values.storage.cassandra.tls.secretName }}
|
|
||||||
key: commonName
|
|
||||||
- name: CASSANDRA_TLS_KEY
|
|
||||||
value: "/cassandra-tls/client-key.pem"
|
|
||||||
- name: CASSANDRA_TLS_CERT
|
|
||||||
value: "/cassandra-tls/client-cert.pem"
|
|
||||||
- name: CASSANDRA_TLS_CA
|
|
||||||
value: "/cassandra-tls/ca-cert.pem"
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.storage.cassandra.keyspace }}
|
|
||||||
- name: CASSANDRA_KEYSPACE
|
|
||||||
value: {{ .Values.storage.cassandra.keyspace }}
|
|
||||||
{{- end }}
|
|
||||||
- name: CASSANDRA_USERNAME
|
|
||||||
value: {{ .Values.storage.cassandra.user }}
|
|
||||||
- name: CASSANDRA_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ if .Values.storage.cassandra.existingSecret }}{{ .Values.storage.cassandra.existingSecret }}{{- else }}{{ include "jaeger.fullname" . }}-cassandra{{- end }}
|
|
||||||
key: password
|
|
||||||
{{- end }}
|
|
||||||
{{- if eq .Values.storage.type "elasticsearch" }}
|
|
||||||
{{- if .Values.storage.elasticsearch.usePassword }}
|
|
||||||
- name: ES_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ if .Values.storage.elasticsearch.existingSecret }}{{ .Values.storage.elasticsearch.existingSecret }}{{- else }}{{ include "jaeger.fullname" . }}-elasticsearch{{- end }}
|
|
||||||
key: password
|
|
||||||
{{- end }}
|
|
||||||
- name: ES_SERVER_URLS
|
|
||||||
value: {{ template "elasticsearch.client.url" . }}
|
|
||||||
- name: ES_USERNAME
|
|
||||||
value: {{ .Values.storage.elasticsearch.user }}
|
|
||||||
{{- if .Values.storage.elasticsearch.indexPrefix }}
|
|
||||||
- name: ES_INDEX_PREFIX
|
|
||||||
value: {{ .Values.storage.elasticsearch.indexPrefix }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.collector.samplingConfig}}
|
{{- if .Values.collector.samplingConfig}}
|
||||||
- name: SAMPLING_STRATEGIES_FILE
|
- name: SAMPLING_STRATEGIES_FILE
|
||||||
value: /etc/conf/strategies.json
|
value: /etc/conf/strategies.json
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.collector.envFrom }}
|
||||||
|
envFrom: {{- toYaml . | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
ports:
|
ports:
|
||||||
- containerPort: {{ .Values.collector.service.grpcPort }}
|
- containerPort: {{ .Values.collector.service.grpc.port }}
|
||||||
name: grpc
|
name: grpc
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
- containerPort: {{ .Values.collector.service.tchannelPort }}
|
- containerPort: {{ .Values.collector.service.http.port }}
|
||||||
name: tchannel
|
|
||||||
protocol: TCP
|
|
||||||
- containerPort: {{ .Values.collector.service.httpPort }}
|
|
||||||
name: http
|
name: http
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
- containerPort: 14269
|
- containerPort: 14269
|
||||||
name: admin
|
name: admin
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
{{- if .Values.collector.service.zipkinPort }}
|
{{- if .Values.collector.service.zipkin }}
|
||||||
- containerPort: {{ .Values.collector.service.zipkinPort }}
|
- containerPort: {{ .Values.collector.service.zipkin.port }}
|
||||||
name: zipkin
|
name: zipkin
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if or .Values.collector.service.otlp.grpc .Values.collector.service.otlp.http }}
|
||||||
|
- containerPort: {{ default 4317 .Values.collector.service.otlp.grpc.port }}
|
||||||
|
name: {{ .Values.collector.service.otlp.grpc.name }}
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: {{ default 4318 .Values.collector.service.otlp.http.port }}
|
||||||
|
name: {{ .Values.collector.service.otlp.http.name }}
|
||||||
|
protocol: TCP
|
||||||
|
{{- end }}
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /
|
path: /
|
||||||
|
@ -143,7 +148,7 @@ spec:
|
||||||
path: /
|
path: /
|
||||||
port: admin
|
port: admin
|
||||||
resources:
|
resources:
|
||||||
{{ toYaml .Values.collector.resources | indent 10 }}
|
{{- toYaml .Values.collector.resources | nindent 10 }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
{{- range .Values.collector.extraConfigmapMounts }}
|
{{- range .Values.collector.extraConfigmapMounts }}
|
||||||
- name: {{ .name }}
|
- name: {{ .name }}
|
||||||
|
@ -171,6 +176,12 @@ spec:
|
||||||
subPath: "client-key.pem"
|
subPath: "client-key.pem"
|
||||||
readOnly: true
|
readOnly: true
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
mountPath: {{ .Values.storage.elasticsearch.tls.mountPath }}
|
||||||
|
subPath: {{ .Values.storage.elasticsearch.tls.subPath }}
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
{{- if .Values.collector.samplingConfig}}
|
{{- if .Values.collector.samplingConfig}}
|
||||||
- name: strategies
|
- name: strategies
|
||||||
mountPath: /etc/conf/
|
mountPath: /etc/conf/
|
||||||
|
@ -193,6 +204,16 @@ spec:
|
||||||
configMap:
|
configMap:
|
||||||
name: {{ include "jaeger.fullname" . }}-sampling-strategies
|
name: {{ include "jaeger.fullname" . }}-sampling-strategies
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.storage.cassandra.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.cassandra.tls.secretName }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .Values.storage.cassandra.tls.secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
{{- end }}
|
||||||
{{- with .Values.collector.nodeSelector }}
|
{{- with .Values.collector.nodeSelector }}
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
|
@ -201,6 +222,10 @@ spec:
|
||||||
affinity:
|
affinity:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.collector.topologySpreadConstraints }}
|
||||||
|
topologySpreadConstraints:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- with .Values.collector.tolerations }}
|
{{- with .Values.collector.tolerations }}
|
||||||
tolerations:
|
tolerations:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{{- if .Values.collector.autoscaling.enabled }}
|
{{- if and .Values.collector.enabled .Values.collector.autoscaling.enabled }}
|
||||||
apiVersion: autoscaling/v2beta1
|
apiVersion: {{ include "common.capabilities.hpa.apiVersion" ( dict "context" $ ) }}
|
||||||
kind: HorizontalPodAutoscaler
|
kind: HorizontalPodAutoscaler
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ template "jaeger.collector.name" . }}
|
name: {{ template "jaeger.collector.name" . }}
|
||||||
|
@ -8,20 +8,36 @@ metadata:
|
||||||
app.kubernetes.io/component: collector
|
app.kubernetes.io/component: collector
|
||||||
spec:
|
spec:
|
||||||
scaleTargetRef:
|
scaleTargetRef:
|
||||||
apiVersion: apps/v1
|
apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }}
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
name: {{ template "jaeger.collector.name" . }}
|
name: {{ template "jaeger.collector.name" . }}
|
||||||
minReplicas: {{ .Values.collector.autoscaling.minReplicas }}
|
minReplicas: {{ .Values.collector.autoscaling.minReplicas }}
|
||||||
maxReplicas: {{ .Values.collector.autoscaling.maxReplicas }}
|
maxReplicas: {{ .Values.collector.autoscaling.maxReplicas }}
|
||||||
metrics:
|
metrics:
|
||||||
- type: Resource
|
|
||||||
resource:
|
|
||||||
name: cpu
|
|
||||||
targetAverageUtilization: {{ .Values.collector.autoscaling.targetCPUUtilizationPercentage | default 80 }}
|
|
||||||
{{- if .Values.collector.autoscaling.targetMemoryUtilizationPercentage }}
|
{{- if .Values.collector.autoscaling.targetMemoryUtilizationPercentage }}
|
||||||
- type: Resource
|
- type: Resource
|
||||||
resource:
|
resource:
|
||||||
name: memory
|
name: memory
|
||||||
|
{{- if eq "autoscaling/v2" (include "common.capabilities.hpa.apiVersion" ( dict "context" $ )) }}
|
||||||
|
target:
|
||||||
|
averageUtilization: {{ .Values.collector.autoscaling.targetMemoryUtilizationPercentage }}
|
||||||
|
type: Utilization
|
||||||
|
{{- else }}
|
||||||
targetAverageUtilization: {{ .Values.collector.autoscaling.targetMemoryUtilizationPercentage }}
|
targetAverageUtilization: {{ .Values.collector.autoscaling.targetMemoryUtilizationPercentage }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
- type: Resource
|
||||||
|
resource:
|
||||||
|
name: cpu
|
||||||
|
{{- if eq "autoscaling/v2" (include "common.capabilities.hpa.apiVersion" ( dict "context" $ )) }}
|
||||||
|
target:
|
||||||
|
averageUtilization: {{ .Values.collector.autoscaling.targetCPUUtilizationPercentage | default 80 }}
|
||||||
|
type: Utilization
|
||||||
|
{{- else }}
|
||||||
|
targetAverageUtilization: {{ .Values.collector.autoscaling.targetCPUUtilizationPercentage | default 80 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.collector.autoscaling.behavior }}
|
||||||
|
behavior:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
{{- if .Values.collector.ingress.enabled -}}
|
||||||
|
{{- $ingressSupportsIngressClassName := eq (include "common.ingress.supportsIngressClassname" .) "true" }}
|
||||||
|
{{- $defaultServicePort := .Values.collector.service.http.port -}}
|
||||||
|
{{- $basePath := .Values.collector.basePath -}}
|
||||||
|
apiVersion: {{ include "common.capabilities.ingress.apiVersion" $ }}
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.collector.name" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
{{- if .Values.collector.ingress.labels }}
|
||||||
|
{{- toYaml .Values.collector.ingress.labels | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
app.kubernetes.io/component: collector
|
||||||
|
{{- if .Values.collector.ingress.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.collector.ingress.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
{{- if and $ingressSupportsIngressClassName .Values.collector.ingress.ingressClassName }}
|
||||||
|
ingressClassName: {{ .Values.collector.ingress.ingressClassName }}
|
||||||
|
{{- end }}
|
||||||
|
rules:
|
||||||
|
{{- range .Values.collector.ingress.hosts }}
|
||||||
|
- host: {{ include "jaeger.collector.ingressHost" . | quote }}
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: {{ $basePath }}
|
||||||
|
pathType: {{ default "ImplementationSpecific" $.Values.collector.ingress.pathType }}
|
||||||
|
{{- $servicePortString := (include "jaeger.collector.ingressServicePort" (dict "defaultServicePort" $defaultServicePort "context" .)) }}
|
||||||
|
{{- $servicePort := default $servicePortString ($servicePortString | float64) }}
|
||||||
|
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "jaeger.collector.name" $) "servicePort" $servicePort "context" $) | nindent 14 }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if .Values.collector.ingress.tls }}
|
||||||
|
tls:
|
||||||
|
{{- toYaml .Values.collector.ingress.tls | nindent 4 }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{{- if and .Values.networkPolicy.enabled .Values.collector.networkPolicy.enabled .Values.collector.networkPolicy.egressRules }}
|
||||||
|
{{- $extraVals := dict "Name" (include "jaeger.collector.name" .) "Component" "collector" "ComponentValues" .Values.collector -}}
|
||||||
|
{{- $npVals := merge $extraVals . -}}
|
||||||
|
{{ include "jaeger.egress.networkPolicy" $npVals }}
|
||||||
|
{{- end }}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{{- if and .Values.networkPolicy.enabled .Values.collector.networkPolicy.enabled .Values.collector.networkPolicy.ingressRules -}}
|
||||||
|
{{- $extraVals := dict "Name" (include "jaeger.collector.name" .) "Component" "collector" "ComponentValues" .Values.collector -}}
|
||||||
|
{{- $npVals := merge $extraVals . -}}
|
||||||
|
{{ include "jaeger.ingress.networkPolicy" $npVals }}
|
||||||
|
{{- end -}}
|
|
@ -6,4 +6,9 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.labels" . | nindent 4 }}
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
app.kubernetes.io/component: collector
|
app.kubernetes.io/component: collector
|
||||||
|
{{- with .Values.collector.serviceAccount.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
automountServiceAccountToken: {{ .Values.collector.serviceAccount.automountServiceAccountToken }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
{{- if and (.Values.collector.enabled) (.Values.collector.serviceMonitor.enabled)}}
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.collector.name" . }}
|
||||||
|
{{- if .Values.collector.serviceMonitor.namespace }}
|
||||||
|
namespace: {{ .Values.collector.serviceMonitor.namespace }}
|
||||||
|
{{- end }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: collector
|
||||||
|
{{- if .Values.collector.serviceMonitor.additionalLabels }}
|
||||||
|
{{- toYaml .Values.collector.serviceMonitor.additionalLabels | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.collector.serviceMonitor.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.collector.serviceMonitor.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
endpoints:
|
||||||
|
- port: admin
|
||||||
|
path: /metrics
|
||||||
|
{{- if .Values.collector.serviceMonitor.interval }}
|
||||||
|
interval: {{ .Values.collector.serviceMonitor.interval }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.collector.serviceMonitor.scrapeTimeout }}
|
||||||
|
scrapeTimeout: {{ .Values.collector.serviceMonitor.scrapeTimeout }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.collector.serviceMonitor.relabelings }}
|
||||||
|
relabelings:
|
||||||
|
{{- toYaml .Values.collector.serviceMonitor.relabelings | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.collector.serviceMonitor.metricRelabelings }}
|
||||||
|
metricRelabelings:
|
||||||
|
{{- toYaml .Values.collector.serviceMonitor.metricRelabelings | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
namespaceSelector:
|
||||||
|
matchNames:
|
||||||
|
- {{ .Release.Namespace }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/component: collector
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
{{- end }}
|
|
@ -8,31 +8,70 @@ metadata:
|
||||||
app.kubernetes.io/component: collector
|
app.kubernetes.io/component: collector
|
||||||
{{- if .Values.collector.service.annotations }}
|
{{- if .Values.collector.service.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.collector.service.annotations | indent 4 }}
|
{{- toYaml .Values.collector.service.annotations | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
ports:
|
ports:
|
||||||
- name: grpc
|
- name: grpc
|
||||||
port: {{ .Values.collector.service.grpcPort }}
|
port: {{ .Values.collector.service.grpc.port }}
|
||||||
|
{{- if and (eq .Values.collector.service.type "NodePort") (.Values.collector.service.grpc.nodePort) }}
|
||||||
|
nodePort: {{ .Values.collector.service.grpc.nodePort }}
|
||||||
|
{{- end }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: grpc
|
targetPort: grpc
|
||||||
- name: tchannel
|
{{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }}
|
||||||
port: {{ .Values.collector.service.tchannelPort }}
|
appProtocol: grpc
|
||||||
protocol: TCP
|
{{- end }}
|
||||||
targetPort: tchannel
|
|
||||||
- name: http
|
- name: http
|
||||||
port: {{ .Values.collector.service.httpPort }}
|
port: {{ .Values.collector.service.http.port }}
|
||||||
|
{{- if and (eq .Values.collector.service.type "NodePort") (.Values.collector.service.http.nodePort) }}
|
||||||
|
nodePort: {{ .Values.collector.service.http.nodePort }}
|
||||||
|
{{- end }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: http
|
targetPort: http
|
||||||
{{- if .Values.collector.service.zipkinPort }}
|
{{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }}
|
||||||
|
appProtocol: http
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.collector.service.zipkin }}
|
||||||
- name: zipkin
|
- name: zipkin
|
||||||
port: {{ .Values.collector.service.zipkinPort }}
|
port: {{ .Values.collector.service.zipkin.port }}
|
||||||
|
{{- if and (eq .Values.collector.service.type "NodePort") (.Values.collector.service.zipkin.nodePort) }}
|
||||||
|
nodePort: {{ .Values.collector.service.zipkin.nodePort }}
|
||||||
|
{{- end }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: zipkin
|
targetPort: zipkin
|
||||||
|
{{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }}
|
||||||
|
appProtocol: http
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if or .Values.collector.service.otlp.grpc .Values.collector.service.otlp.http }}
|
||||||
|
- name: {{ .Values.collector.service.otlp.grpc.name }}
|
||||||
|
port: {{ default 4317 .Values.collector.service.otlp.grpc.port }}
|
||||||
|
{{- if and (eq .Values.collector.service.type "NodePort") (.Values.collector.service.otlp.grpc.nodePort) }}
|
||||||
|
nodePort: {{ .Values.collector.service.otlp.grpc.nodePort }}
|
||||||
|
{{- end }}
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: {{ .Values.collector.service.otlp.grpc.name }}
|
||||||
|
- name: {{ .Values.collector.service.otlp.http.name }}
|
||||||
|
port: {{ default 4318 .Values.collector.service.otlp.http.port }}
|
||||||
|
{{- if and (eq .Values.collector.service.type "NodePort") (.Values.collector.service.otlp.http.nodePort) }}
|
||||||
|
nodePort: {{ .Values.collector.service.otlp.http.nodePort }}
|
||||||
|
{{- end }}
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: {{ .Values.collector.service.otlp.http.name }}
|
||||||
|
{{- end }}
|
||||||
|
- name: {{ .Values.collector.service.admin.name }}
|
||||||
|
port: 14269
|
||||||
|
targetPort: {{ .Values.collector.service.admin.targetPort }}
|
||||||
selector:
|
selector:
|
||||||
{{- include "jaeger.selectorLabels" . | nindent 4 }}
|
{{- include "jaeger.selectorLabels" . | nindent 4 }}
|
||||||
app.kubernetes.io/component: collector
|
app.kubernetes.io/component: collector
|
||||||
|
{{- if and (eq .Values.collector.service.type "ClusterIP") .Values.collector.service.clusterIP }}
|
||||||
|
clusterIP: {{ .Values.collector.service.clusterIP }}
|
||||||
|
{{- end }}
|
||||||
type: {{ .Values.collector.service.type }}
|
type: {{ .Values.collector.service.type }}
|
||||||
|
{{- if and (eq .Values.collector.service.type "LoadBalancer") .Values.collector.service.loadBalancerIP }}
|
||||||
|
loadBalancerIP: {{ .Values.collector.service.loadBalancerIP }}
|
||||||
|
{{- end -}}
|
||||||
{{- template "loadBalancerSourceRanges" .Values.collector }}
|
{{- template "loadBalancerSourceRanges" .Values.collector }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
|
@ -5,6 +5,11 @@ metadata:
|
||||||
name: {{ include "jaeger.fullname" . }}-elasticsearch
|
name: {{ include "jaeger.fullname" . }}-elasticsearch
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.labels" . | nindent 4 }}
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
annotations:
|
||||||
|
"helm.sh/hook": pre-install,pre-upgrade
|
||||||
|
"helm.sh/hook-weight": "-1"
|
||||||
|
"helm.sh/hook-delete-policy": before-hook-creation
|
||||||
|
"helm.sh/resource-policy": keep
|
||||||
type: Opaque
|
type: Opaque
|
||||||
data:
|
data:
|
||||||
password: {{ .Values.storage.elasticsearch.password | b64enc | quote }}
|
password: {{ .Values.storage.elasticsearch.password | b64enc | quote }}
|
||||||
|
|
|
@ -0,0 +1,109 @@
|
||||||
|
{{- if .Values.esIndexCleaner.enabled -}}
|
||||||
|
apiVersion: {{ include "common.capabilities.cronjob.apiVersion" $ }}
|
||||||
|
kind: CronJob
|
||||||
|
metadata:
|
||||||
|
name: {{ include "jaeger.fullname" . }}-es-index-cleaner
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: es-index-cleaner
|
||||||
|
{{- if .Values.esIndexCleaner.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.esIndexCleaner.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
concurrencyPolicy: {{ .Values.esIndexCleaner.concurrencyPolicy }}
|
||||||
|
schedule: {{ .Values.esIndexCleaner.schedule | quote }}
|
||||||
|
successfulJobsHistoryLimit: {{ .Values.esIndexCleaner.successfulJobsHistoryLimit }}
|
||||||
|
failedJobsHistoryLimit: {{ .Values.esIndexCleaner.failedJobsHistoryLimit }}
|
||||||
|
suspend: false
|
||||||
|
jobTemplate:
|
||||||
|
spec:
|
||||||
|
{{- if .Values.esIndexCleaner.activeDeadlineSeconds }}
|
||||||
|
activeDeadlineSeconds: {{ .Values.esIndexCleaner.activeDeadlineSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.esIndexCleaner.ttlSecondsAfterFinished }}
|
||||||
|
ttlSecondsAfterFinished: {{ .Values.esIndexCleaner.ttlSecondsAfterFinished }}
|
||||||
|
{{- end }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
{{- if .Values.esIndexCleaner.podAnnotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.esIndexCleaner.podAnnotations | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.selectorLabels" . | nindent 12 }}
|
||||||
|
app.kubernetes.io/component: es-index-cleaner
|
||||||
|
{{- if .Values.esIndexCleaner.podLabels }}
|
||||||
|
{{- toYaml .Values.esIndexCleaner.podLabels | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
serviceAccountName: {{ template "jaeger.esIndexCleaner.serviceAccountName" . }}
|
||||||
|
{{- include "esIndexCleaner.imagePullSecrets" . | nindent 10 }}
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.esIndexCleaner.podSecurityContext | nindent 12 }}
|
||||||
|
containers:
|
||||||
|
- name: {{ include "jaeger.fullname" . }}-es-index-cleaner
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.esIndexCleaner.securityContext | nindent 14 }}
|
||||||
|
image: {{ include "esIndexCleaner.image" . }}
|
||||||
|
imagePullPolicy: {{ .Values.esIndexCleaner.image.pullPolicy }}
|
||||||
|
args:
|
||||||
|
- {{ .Values.esIndexCleaner.numberOfDays | quote }}
|
||||||
|
- {{ include "elasticsearch.client.url" . }}
|
||||||
|
{{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.esIndexCleaner.cmdlineParams ) | nindent 14 }}
|
||||||
|
env:
|
||||||
|
{{- if .Values.esIndexCleaner.extraEnv }}
|
||||||
|
{{- toYaml .Values.esIndexCleaner.extraEnv | nindent 14 }}
|
||||||
|
{{- end }}
|
||||||
|
{{ include "elasticsearch.env" . | nindent 14 }}
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.esIndexCleaner.resources | nindent 14 }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- range .Values.esIndexCleaner.extraConfigmapMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
mountPath: {{ .mountPath }}
|
||||||
|
subPath: {{ .subPath }}
|
||||||
|
readOnly: {{ .readOnly }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.esIndexCleaner.extraSecretMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
mountPath: {{ .mountPath }}
|
||||||
|
subPath: {{ .subPath }}
|
||||||
|
readOnly: {{ .readOnly }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
mountPath: {{ .Values.storage.elasticsearch.tls.mountPath }}
|
||||||
|
subPath: {{ .Values.storage.elasticsearch.tls.subPath }}
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
restartPolicy: OnFailure
|
||||||
|
{{- with .Values.esIndexCleaner.nodeSelector }}
|
||||||
|
nodeSelector:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.esIndexCleaner.affinity }}
|
||||||
|
affinity:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.esIndexCleaner.tolerations }}
|
||||||
|
tolerations:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
volumes:
|
||||||
|
{{- range .Values.esIndexCleaner.extraConfigmapMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
configMap:
|
||||||
|
name: {{ .configMap }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.esIndexCleaner.extraSecretMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,14 @@
|
||||||
|
{{- if and .Values.esIndexCleaner.enabled .Values.esIndexCleaner.serviceAccount.create -}}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.esIndexCleaner.serviceAccountName" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: es-index-cleaner
|
||||||
|
{{- with .Values.esIndexCleaner.serviceAccount.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
automountServiceAccountToken: {{ .Values.esIndexCleaner.serviceAccount.automountServiceAccountToken }}
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,110 @@
|
||||||
|
{{- if .Values.esLookback.enabled -}}
|
||||||
|
apiVersion: {{ include "common.capabilities.cronjob.apiVersion" $ }}
|
||||||
|
kind: CronJob
|
||||||
|
metadata:
|
||||||
|
name: {{ include "jaeger.fullname" . }}-es-lookback
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: es-lookback
|
||||||
|
{{- if .Values.esLookback.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.esLookback.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
concurrencyPolicy: {{ .Values.esLookback.concurrencyPolicy }}
|
||||||
|
schedule: {{ .Values.esLookback.schedule | quote }}
|
||||||
|
successfulJobsHistoryLimit: {{ .Values.esLookback.successfulJobsHistoryLimit }}
|
||||||
|
failedJobsHistoryLimit: {{ .Values.esLookback.failedJobsHistoryLimit }}
|
||||||
|
suspend: false
|
||||||
|
jobTemplate:
|
||||||
|
spec:
|
||||||
|
{{- if .Values.esLookback.activeDeadlineSeconds }}
|
||||||
|
activeDeadlineSeconds: {{ .Values.esLookback.activeDeadlineSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.esLookback.ttlSecondsAfterFinished }}
|
||||||
|
ttlSecondsAfterFinished: {{ .Values.esLookback.ttlSecondsAfterFinished }}
|
||||||
|
{{- end }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
{{- if .Values.esLookback.podAnnotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.esLookback.podAnnotations | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.selectorLabels" . | nindent 12 }}
|
||||||
|
app.kubernetes.io/component: es-lookback
|
||||||
|
{{- if .Values.esLookback.podLabels }}
|
||||||
|
{{- toYaml .Values.esLookback.podLabels | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
serviceAccountName: {{ template "jaeger.esLookback.serviceAccountName" . }}
|
||||||
|
{{- include "esLookback.imagePullSecrets" . | nindent 10 }}
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.esLookback.podSecurityContext | nindent 12 }}
|
||||||
|
restartPolicy: OnFailure
|
||||||
|
{{- with .Values.esLookback.nodeSelector }}
|
||||||
|
nodeSelector:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.esLookback.affinity }}
|
||||||
|
affinity:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.esLookback.tolerations }}
|
||||||
|
tolerations:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
containers:
|
||||||
|
- name: {{ include "jaeger.fullname" . }}-es-lookback
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.esLookback.securityContext | nindent 14 }}
|
||||||
|
image: {{ include "esLookback.image" . }}
|
||||||
|
imagePullPolicy: {{ .Values.esLookback.image.pullPolicy }}
|
||||||
|
args:
|
||||||
|
- lookback
|
||||||
|
- {{ include "elasticsearch.client.url" . }}
|
||||||
|
{{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.esLookback.cmdlineParams ) | nindent 14 }}
|
||||||
|
env:
|
||||||
|
{{ include "elasticsearch.env" . | nindent 14 }}
|
||||||
|
{{- if .Values.esLookback.extraEnv }}
|
||||||
|
{{- toYaml .Values.esLookback.extraEnv | nindent 14 }}
|
||||||
|
{{- end }}
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.esLookback.resources | nindent 14 }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- range .Values.esLookback.extraConfigmapMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
mountPath: {{ .mountPath }}
|
||||||
|
subPath: {{ .subPath }}
|
||||||
|
readOnly: {{ .readOnly }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.esLookback.extraSecretMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
mountPath: {{ .mountPath }}
|
||||||
|
subPath: {{ .subPath }}
|
||||||
|
readOnly: {{ .readOnly }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
mountPath: {{ .Values.storage.elasticsearch.tls.mountPath }}
|
||||||
|
subPath: {{ .Values.storage.elasticsearch.tls.subPath }}
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
volumes:
|
||||||
|
{{- range .Values.esLookback.extraConfigmapMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
configMap:
|
||||||
|
name: {{ .configMap }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.esLookback.extraSecretMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,14 @@
|
||||||
|
{{- if and .Values.esLookback.enabled .Values.esLookback.serviceAccount.create -}}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.esLookback.serviceAccountName" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: es-lookback
|
||||||
|
{{- with .Values.esLookback.serviceAccount.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
automountServiceAccountToken: {{ .Values.esLookback.serviceAccount.automountServiceAccountToken }}
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,110 @@
|
||||||
|
{{- if .Values.esRollover.enabled -}}
|
||||||
|
apiVersion: {{ include "common.capabilities.cronjob.apiVersion" $ }}
|
||||||
|
kind: CronJob
|
||||||
|
metadata:
|
||||||
|
name: {{ include "jaeger.fullname" . }}-es-rollover
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: es-rollover
|
||||||
|
{{- if .Values.esRollover.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.esRollover.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
concurrencyPolicy: {{ .Values.esRollover.concurrencyPolicy }}
|
||||||
|
schedule: {{ .Values.esRollover.schedule | quote }}
|
||||||
|
successfulJobsHistoryLimit: {{ .Values.esRollover.successfulJobsHistoryLimit }}
|
||||||
|
failedJobsHistoryLimit: {{ .Values.esRollover.failedJobsHistoryLimit }}
|
||||||
|
suspend: false
|
||||||
|
jobTemplate:
|
||||||
|
spec:
|
||||||
|
{{- if .Values.esRollover.activeDeadlineSeconds }}
|
||||||
|
activeDeadlineSeconds: {{ .Values.esRollover.activeDeadlineSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.esRollover.ttlSecondsAfterFinished }}
|
||||||
|
ttlSecondsAfterFinished: {{ .Values.esRollover.ttlSecondsAfterFinished }}
|
||||||
|
{{- end }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
{{- if .Values.esRollover.podAnnotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.esRollover.podAnnotations | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.selectorLabels" . | nindent 12 }}
|
||||||
|
app.kubernetes.io/component: es-rollover
|
||||||
|
{{- if .Values.esRollover.podLabels }}
|
||||||
|
{{- toYaml .Values.esRollover.podLabels | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
serviceAccountName: {{ template "jaeger.esRollover.serviceAccountName" . }}
|
||||||
|
{{- include "esRollover.imagePullSecrets" . | nindent 10 }}
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.esRollover.podSecurityContext | nindent 12 }}
|
||||||
|
restartPolicy: OnFailure
|
||||||
|
{{- with .Values.esRollover.nodeSelector }}
|
||||||
|
nodeSelector:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.esRollover.affinity }}
|
||||||
|
affinity:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.esRollover.tolerations }}
|
||||||
|
tolerations:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
containers:
|
||||||
|
- name: {{ include "jaeger.fullname" . }}-es-rollover
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.esRollover.securityContext | nindent 14 }}
|
||||||
|
image: {{ include "esRollover.image" . }}
|
||||||
|
imagePullPolicy: {{ .Values.esRollover.image.pullPolicy }}
|
||||||
|
args:
|
||||||
|
- rollover
|
||||||
|
- {{ include "elasticsearch.client.url" . }}
|
||||||
|
{{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.esRollover.cmdlineParams ) | nindent 14 }}
|
||||||
|
env:
|
||||||
|
{{ include "elasticsearch.env" . | nindent 14 }}
|
||||||
|
{{- if .Values.esRollover.extraEnv }}
|
||||||
|
{{- toYaml .Values.esRollover.extraEnv | nindent 14 }}
|
||||||
|
{{- end }}
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.esRollover.resources | nindent 14 }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- range .Values.esRollover.extraConfigmapMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
mountPath: {{ .mountPath }}
|
||||||
|
subPath: {{ .subPath }}
|
||||||
|
readOnly: {{ .readOnly }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.esRollover.extraSecretMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
mountPath: {{ .mountPath }}
|
||||||
|
subPath: {{ .subPath }}
|
||||||
|
readOnly: {{ .readOnly }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
mountPath: {{ .Values.storage.elasticsearch.tls.mountPath }}
|
||||||
|
subPath: {{ .Values.storage.elasticsearch.tls.subPath }}
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
volumes:
|
||||||
|
{{- range .Values.esRollover.extraConfigmapMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
configMap:
|
||||||
|
name: {{ .configMap }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.esRollover.extraSecretMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,99 @@
|
||||||
|
{{- if .Values.esRollover.enabled -}}
|
||||||
|
apiVersion: batch/v1
|
||||||
|
kind: Job
|
||||||
|
metadata:
|
||||||
|
name: {{ include "jaeger.fullname" . }}-es-rollover-init
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: es-rollover-init
|
||||||
|
annotations:
|
||||||
|
"helm.sh/hook": pre-install,pre-upgrade
|
||||||
|
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
|
||||||
|
{{- if .Values.esRollover.initHook.annotations }}
|
||||||
|
{{- toYaml .Values.esRollover.initHook.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
{{- if .Values.esRollover.initHook.activeDeadlineSeconds }}
|
||||||
|
activeDeadlineSeconds: {{ .Values.esRollover.initHook.activeDeadlineSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.esRollover.initHook.ttlSecondsAfterFinished }}
|
||||||
|
ttlSecondsAfterFinished: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
{{- with .Values.esRollover.initHook.podAnnotations }}
|
||||||
|
annotations: {{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.selectorLabels" . | nindent 8 }}
|
||||||
|
app.kubernetes.io/component: es-rollover-init
|
||||||
|
{{- if .Values.esRollover.initHook.podLabels }}
|
||||||
|
{{- toYaml .Values.esRollover.initHook.podLabels | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
serviceAccountName: {{ template "jaeger.esRollover.serviceAccountName" . }}
|
||||||
|
{{- include "esRollover.imagePullSecrets" . | nindent 6 }}
|
||||||
|
securityContext: {{- toYaml .Values.esRollover.podSecurityContext | nindent 8 }}
|
||||||
|
restartPolicy: OnFailure
|
||||||
|
{{- with .Values.esRollover.nodeSelector }}
|
||||||
|
nodeSelector: {{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.esRollover.affinity }}
|
||||||
|
affinity: {{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.esRollover.tolerations }}
|
||||||
|
tolerations: {{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
containers:
|
||||||
|
- name: {{ include "jaeger.fullname" . }}-es-rollover-init
|
||||||
|
securityContext: {{- toYaml .Values.esRollover.securityContext | nindent 12 }}
|
||||||
|
image: {{ include "esRollover.image" . }}
|
||||||
|
imagePullPolicy: {{ .Values.esRollover.image.pullPolicy }}
|
||||||
|
args:
|
||||||
|
- init
|
||||||
|
- {{ include "elasticsearch.client.url" . }}
|
||||||
|
{{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.esRollover.cmdlineParams ) | nindent 12 }}
|
||||||
|
env:
|
||||||
|
{{ include "elasticsearch.env" . | nindent 12 }}
|
||||||
|
{{- with .Values.esRollover.initHook.extraEnv }}
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
resources: {{- toYaml .Values.esRollover.resources | nindent 12 }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- range .Values.esRollover.extraConfigmapMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
mountPath: {{ .mountPath }}
|
||||||
|
subPath: {{ .subPath }}
|
||||||
|
readOnly: {{ .readOnly }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.esRollover.extraSecretMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
mountPath: {{ .mountPath }}
|
||||||
|
subPath: {{ .subPath }}
|
||||||
|
readOnly: {{ .readOnly }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
mountPath: {{ .Values.storage.elasticsearch.tls.mountPath }}
|
||||||
|
subPath: {{ .Values.storage.elasticsearch.tls.subPath }}
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
volumes:
|
||||||
|
{{- range .Values.esRollover.extraConfigmapMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
configMap:
|
||||||
|
name: {{ .configMap }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.esRollover.extraSecretMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,15 @@
|
||||||
|
{{- if and .Values.esRollover.enabled .Values.esRollover.serviceAccount.create -}}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.esRollover.serviceAccountName" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: es-index-rollover
|
||||||
|
annotations:
|
||||||
|
"helm.sh/hook": pre-install,pre-upgrade
|
||||||
|
# Must be created before the rollover init hook
|
||||||
|
"helm.sh/hook-weight": "-10"
|
||||||
|
"helm.sh/hook-delete-policy": before-hook-creation
|
||||||
|
automountServiceAccountToken: {{ .Values.esRollover.serviceAccount.automountServiceAccountToken }}
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,4 @@
|
||||||
|
{{- range .Values.extraObjects }}
|
||||||
|
---
|
||||||
|
{{ tpl (. | toYaml) $ }}
|
||||||
|
{{- end }}
|
|
@ -19,19 +19,28 @@ spec:
|
||||||
app.kubernetes.io/component: hotrod
|
app.kubernetes.io/component: hotrod
|
||||||
spec:
|
spec:
|
||||||
securityContext:
|
securityContext:
|
||||||
{{ toYaml .Values.hotrod.podSecurityContext | indent 8 }}
|
{{- toYaml .Values.hotrod.podSecurityContext | nindent 8 }}
|
||||||
serviceAccountName: {{ template "jaeger.hotrod.serviceAccountName" . }}
|
serviceAccountName: {{ template "jaeger.hotrod.serviceAccountName" . }}
|
||||||
|
{{- include "hotrod.imagePullSecrets" . | nindent 6 }}
|
||||||
containers:
|
containers:
|
||||||
- name: {{ include "jaeger.fullname" . }}-hotrod
|
- name: {{ include "jaeger.fullname" . }}-hotrod
|
||||||
securityContext:
|
securityContext:
|
||||||
{{ toYaml .Values.hotrod.securityContext | indent 12 }}
|
{{- toYaml .Values.hotrod.securityContext | nindent 12 }}
|
||||||
image: {{ .Values.hotrod.image.repository }}:{{ .Values.tag }}
|
image: {{ include "hotrod.image" . }}
|
||||||
imagePullPolicy: {{ .Values.hotrod.image.pullPolicy }}
|
imagePullPolicy: {{ .Values.hotrod.image.pullPolicy }}
|
||||||
|
args:
|
||||||
|
{{- toYaml .Values.hotrod.args | nindent 12 }}
|
||||||
|
{{- with .Values.hotrod.extraArgs }}
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
env:
|
env:
|
||||||
- name: JAEGER_AGENT_HOST
|
- name: JAEGER_AGENT_HOST
|
||||||
value: {{ template "jaeger.hotrod.tracing.host" . }}
|
value: {{ template "jaeger.hotrod.tracing.host" . }}
|
||||||
- name: JAEGER_AGENT_PORT
|
- name: JAEGER_AGENT_PORT
|
||||||
value: {{ .Values.hotrod.tracing.port | quote }}
|
value: {{ .Values.hotrod.tracing.port | quote }}
|
||||||
|
{{- if .Values.hotrod.extraEnv }}
|
||||||
|
{{- toYaml .Values.hotrod.extraEnv | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
containerPort: 8080
|
containerPort: 8080
|
||||||
|
@ -45,7 +54,7 @@ spec:
|
||||||
path: /
|
path: /
|
||||||
port: http
|
port: http
|
||||||
resources:
|
resources:
|
||||||
{{ toYaml .Values.hotrod.resources | indent 12 }}
|
{{- toYaml .Values.hotrod.resources | nindent 12 }}
|
||||||
{{- with .Values.hotrod.nodeSelector }}
|
{{- with .Values.hotrod.nodeSelector }}
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
|
|
|
@ -1,32 +1,35 @@
|
||||||
{{- if .Values.hotrod.enabled -}}
|
{{- if .Values.hotrod.enabled -}}
|
||||||
{{- if .Values.hotrod.ingress.enabled -}}
|
{{- if .Values.hotrod.ingress.enabled -}}
|
||||||
{{- $serviceName := include "jaeger.fullname" . -}}
|
{{- $ingressSupportsIngressClassName := eq (include "common.ingress.supportsIngressClassname" .) "true" }}
|
||||||
{{- $servicePort := .Values.hotrod.service.port -}}
|
{{- $serviceName := include "jaeger.fullname" . -}}
|
||||||
apiVersion: extensions/v1beta1
|
{{- $servicePort := .Values.hotrod.service.port -}}
|
||||||
|
apiVersion: {{ include "common.capabilities.ingress.apiVersion" $ }}
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "jaeger.fullname" . }}-hotrod
|
name: {{ include "jaeger.fullname" . }}-hotrod
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.labels" . | nindent 4 }}
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
app.kubernetes.io/component: hotrod
|
app.kubernetes.io/component: hotrod
|
||||||
{{- if .Values.hotrod.ingress.annotations }}
|
{{- if .Values.hotrod.ingress.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.hotrod.ingress.annotations | indent 4 }}
|
{{- toYaml .Values.hotrod.ingress.annotations | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
|
{{- if and $ingressSupportsIngressClassName .Values.hotrod.ingress.ingressClassName }}
|
||||||
|
ingressClassName: {{ .Values.hotrod.ingress.ingressClassName }}
|
||||||
|
{{- end }}
|
||||||
rules:
|
rules:
|
||||||
{{- range $host := .Values.hotrod.ingress.hosts }}
|
{{- range $host := .Values.hotrod.ingress.hosts }}
|
||||||
- host: {{ $host }}
|
- host: {{ $host | quote}}
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
- path: /
|
- path: /
|
||||||
backend:
|
pathType: {{ default "ImplementationSpecific" $.Values.hotrod.ingress.pathType }}
|
||||||
serviceName: {{ $serviceName }}-hotrod
|
backend: {{- include "common.ingress.backend" (dict "serviceName" (printf "%s-hotrod" $serviceName) "servicePort" $servicePort "context" $) | nindent 14 }}
|
||||||
servicePort: {{ $servicePort }}
|
{{- end -}}
|
||||||
{{- end -}}
|
|
||||||
{{- if .Values.hotrod.ingress.tls }}
|
{{- if .Values.hotrod.ingress.tls }}
|
||||||
tls:
|
tls:
|
||||||
{{ toYaml .Values.hotrod.ingress.tls | indent 4 }}
|
{{- toYaml .Values.hotrod.ingress.tls | nindent 4 }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
|
@ -6,4 +6,9 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.labels" . | nindent 4 }}
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
app.kubernetes.io/component: hotrod
|
app.kubernetes.io/component: hotrod
|
||||||
|
{{- with .Values.hotrod.serviceAccount.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
automountServiceAccountToken: {{ .Values.hotrod.serviceAccount.automountServiceAccountToken }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
|
@ -8,7 +8,7 @@ metadata:
|
||||||
app.kubernetes.io/component: hotrod
|
app.kubernetes.io/component: hotrod
|
||||||
{{- if .Values.hotrod.service.annotations }}
|
{{- if .Values.hotrod.service.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.hotrod.service.annotations | indent 4 }}
|
{{- toYaml .Values.hotrod.service.annotations | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
type: {{ .Values.hotrod.service.type }}
|
type: {{ .Values.hotrod.service.type }}
|
||||||
|
|
|
@ -8,7 +8,7 @@ metadata:
|
||||||
app.kubernetes.io/component: ingester
|
app.kubernetes.io/component: ingester
|
||||||
{{- if .Values.ingester.annotations }}
|
{{- if .Values.ingester.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.ingester.annotations | indent 4 }}
|
{{- toYaml .Values.ingester.annotations | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
{{- if not .Values.ingester.autoscaling.enabled }}
|
{{- if not .Values.ingester.autoscaling.enabled }}
|
||||||
|
@ -18,93 +18,74 @@ spec:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
{{- include "jaeger.selectorLabels" . | nindent 6 }}
|
{{- include "jaeger.selectorLabels" . | nindent 6 }}
|
||||||
app.kubernetes.io/component: ingester
|
app.kubernetes.io/component: ingester
|
||||||
strategy:
|
|
||||||
type: Recreate
|
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
{{- if .Values.ingester.podAnnotations }}
|
{{- if .Values.ingester.podAnnotations }}
|
||||||
{{ toYaml .Values.ingester.podAnnotations | indent 8 }}
|
{{- toYaml .Values.ingester.podAnnotations | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.selectorLabels" . | nindent 8 }}
|
{{- include "jaeger.selectorLabels" . | nindent 8 }}
|
||||||
app.kubernetes.io/component: ingester
|
app.kubernetes.io/component: ingester
|
||||||
{{- if .Values.ingester.podLabels }}
|
{{- if .Values.ingester.podLabels }}
|
||||||
{{ toYaml .Values.ingester.podLabels | indent 8 }}
|
{{- toYaml .Values.ingester.podLabels | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
|
serviceAccountName: {{ include "jaeger.ingester.serviceAccountName" . }}
|
||||||
securityContext:
|
securityContext:
|
||||||
{{ toYaml .Values.ingester.podSecurityContext | indent 8 }}
|
{{- toYaml .Values.ingester.podSecurityContext | nindent 8 }}
|
||||||
|
{{- include "ingester.imagePullSecrets" . | nindent 6 }}
|
||||||
|
{{- with .Values.ingester.nodeSelector }}
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
{{ toYaml .Values.ingester.nodeSelector | indent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
{{- if .Values.ingester.tolerations }}
|
{{- end }}
|
||||||
|
{{- with .Values.ingester.affinity }}
|
||||||
|
affinity:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.ingester.topologySpreadConstraints }}
|
||||||
|
topologySpreadConstraints:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.ingester.tolerations }}
|
||||||
tolerations:
|
tolerations:
|
||||||
{{ toYaml .Values.ingester.tolerations | indent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.ingester.initContainers }}
|
||||||
|
initContainers:
|
||||||
|
{{- toYaml .Values.ingester.initContainers | nindent 8 }}
|
||||||
|
{{- end}}
|
||||||
containers:
|
containers:
|
||||||
- name: {{ include "jaeger.fullname" . }}-ingester
|
- name: {{ include "jaeger.fullname" . }}-ingester
|
||||||
securityContext:
|
securityContext:
|
||||||
{{ toYaml .Values.ingester.securityContext | indent 10 }}
|
{{- toYaml .Values.ingester.securityContext | nindent 10 }}
|
||||||
image: {{ .Values.ingester.image }}:{{ .Values.tag }}
|
image: {{ include "ingester.image" . }}
|
||||||
imagePullPolicy: {{ .Values.ingester.pullPolicy }}
|
imagePullPolicy: {{ .Values.ingester.image.pullPolicy }}
|
||||||
|
args:
|
||||||
|
{{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.ingester.cmdlineParams ) | nindent 10 }}
|
||||||
|
{{- include "storage.cmdArgs" . | nindent 10 }}
|
||||||
env:
|
env:
|
||||||
{{- range $key, $value := .Values.ingester.cmdlineParams }}
|
{{- if .Values.ingester.extraEnv }}
|
||||||
- name: {{ $key | replace "." "_" | replace "-" "_" | upper | quote }}
|
{{- toYaml .Values.ingester.extraEnv | nindent 10 }}
|
||||||
value: {{ $value | quote }}
|
{{- end }}
|
||||||
{{- end }}
|
|
||||||
- name: SPAN_STORAGE_TYPE
|
- name: SPAN_STORAGE_TYPE
|
||||||
value: {{ .Values.storage.type }}
|
value: {{ .Values.storage.type }}
|
||||||
|
{{- include "storage.env" . | nindent 10 }}
|
||||||
|
{{ if .Values.storage.kafka.brokers }}
|
||||||
- name: KAFKA_CONSUMER_BROKERS
|
- name: KAFKA_CONSUMER_BROKERS
|
||||||
value: {{ include "helm-toolkit.utils.joinListWithComma" .Values.storage.kafka.brokers }}
|
value: {{ tpl (include "helm-toolkit.utils.joinListWithComma" .Values.storage.kafka.brokers) . }}
|
||||||
|
{{- end }}
|
||||||
|
{{ if .Values.storage.kafka.topic }}
|
||||||
- name: KAFKA_CONSUMER_TOPIC
|
- name: KAFKA_CONSUMER_TOPIC
|
||||||
value: {{ .Values.storage.kafka.topic }}
|
value: {{ .Values.storage.kafka.topic }}
|
||||||
{{- if eq .Values.storage.type "cassandra" }}
|
|
||||||
- name: CASSANDRA_SERVERS
|
|
||||||
value: {{ .Values.storage.cassandra.host | quote }}
|
|
||||||
- name: CASSANDRA_PORT
|
|
||||||
value: {{ .Values.storage.cassandra.port | quote }}
|
|
||||||
{{ if .Values.storage.cassandra.tls.enabled }}
|
|
||||||
- name: CASSANDRA_TLS
|
|
||||||
value: "true"
|
|
||||||
- name: CASSANDRA_TLS_SERVER_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ .Values.storage.cassandra.tls.secretName }}
|
|
||||||
key: commonName
|
|
||||||
- name: CASSANDRA_TLS_KEY
|
|
||||||
value: "/cassandra-tls/client-key.pem"
|
|
||||||
- name: CASSANDRA_TLS_CERT
|
|
||||||
value: "/cassandra-tls/client-cert.pem"
|
|
||||||
- name: CASSANDRA_TLS_CA
|
|
||||||
value: "/cassandra-tls/ca-cert.pem"
|
|
||||||
{{- end }}
|
|
||||||
- name: CASSANDRA_KEYSPACE
|
|
||||||
value: {{ .Values.storage.cassandra.keyspace | quote }}
|
|
||||||
- name: CASSANDRA_USERNAME
|
|
||||||
value: {{ .Values.storage.cassandra.user }}
|
|
||||||
- name: CASSANDRA_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ if .Values.storage.cassandra.existingSecret }}{{ .Values.storage.cassandra.existingSecret }}{{- else }}{{ include "jaeger.fullname" . }}-cassandra{{- end }}
|
|
||||||
key: password
|
|
||||||
{{- end }}
|
|
||||||
{{- if eq .Values.storage.type "elasticsearch" }}
|
|
||||||
{{- if .Values.storage.elasticsearch.usePassword }}
|
|
||||||
- name: ES_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ if .Values.storage.elasticsearch.existingSecret }}{{ .Values.storage.elasticsearch.existingSecret }}{{- else }}{{ include "jaeger.fullname" . }}-elasticsearch{{- end }}
|
|
||||||
key: password
|
|
||||||
{{- end }}
|
|
||||||
- name: ES_SERVER_URLS
|
|
||||||
value: {{ template "elasticsearch.client.url" . }}
|
|
||||||
- name: ES_USERNAME
|
|
||||||
value: {{ .Values.storage.elasticsearch.user }}
|
|
||||||
{{- if .Values.storage.elasticsearch.indexPrefix }}
|
|
||||||
- name: ES_INDEX_PREFIX
|
|
||||||
value: {{ .Values.storage.elasticsearch.indexPrefix }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{ if .Values.storage.kafka.authentication }}
|
||||||
|
- name: KAFKA_CONSUMER_AUTHENTICATION
|
||||||
|
value: {{ .Values.storage.kafka.authentication }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.ingester.envFrom }}
|
||||||
|
envFrom: {{- toYaml . | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 14270
|
- containerPort: 14270
|
||||||
name: admin
|
name: admin
|
||||||
|
@ -118,7 +99,7 @@ spec:
|
||||||
path: /
|
path: /
|
||||||
port: admin
|
port: admin
|
||||||
resources:
|
resources:
|
||||||
{{ toYaml .Values.ingester.resources | indent 10 }}
|
{{- toYaml .Values.ingester.resources | nindent 10 }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
{{- range .Values.ingester.extraConfigmapMounts }}
|
{{- range .Values.ingester.extraConfigmapMounts }}
|
||||||
- name: {{ .name }}
|
- name: {{ .name }}
|
||||||
|
@ -159,4 +140,9 @@ spec:
|
||||||
secret:
|
secret:
|
||||||
secretName: {{ .secretName }}
|
secretName: {{ .secretName }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.storage.cassandra.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.cassandra.tls.secretName }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .Values.storage.cassandra.tls.secretName }}
|
||||||
|
{{- end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{{- if .Values.ingester.autoscaling.enabled }}
|
{{- if and .Values.ingester.enabled .Values.ingester.autoscaling.enabled }}
|
||||||
apiVersion: autoscaling/v2beta1
|
apiVersion: {{ include "common.capabilities.hpa.apiVersion" ( dict "context" $ ) }}
|
||||||
kind: HorizontalPodAutoscaler
|
kind: HorizontalPodAutoscaler
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ template "jaeger.ingester.name" . }}
|
name: {{ template "jaeger.ingester.name" . }}
|
||||||
|
@ -8,20 +8,36 @@ metadata:
|
||||||
app.kubernetes.io/component: ingester
|
app.kubernetes.io/component: ingester
|
||||||
spec:
|
spec:
|
||||||
scaleTargetRef:
|
scaleTargetRef:
|
||||||
apiVersion: apps/v1
|
apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }}
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
name: {{ template "jaeger.ingester.name" . }}
|
name: {{ template "jaeger.ingester.name" . }}
|
||||||
minReplicas: {{ .Values.ingester.autoscaling.minReplicas }}
|
minReplicas: {{ .Values.ingester.autoscaling.minReplicas }}
|
||||||
maxReplicas: {{ .Values.ingester.autoscaling.maxReplicas }}
|
maxReplicas: {{ .Values.ingester.autoscaling.maxReplicas }}
|
||||||
metrics:
|
metrics:
|
||||||
- type: Resource
|
|
||||||
resource:
|
|
||||||
name: cpu
|
|
||||||
targetAverageUtilization: {{ .Values.ingester.autoscaling.targetCPUUtilizationPercentage | default 80 }}
|
|
||||||
{{- if .Values.ingester.autoscaling.targetMemoryUtilizationPercentage }}
|
{{- if .Values.ingester.autoscaling.targetMemoryUtilizationPercentage }}
|
||||||
- type: Resource
|
- type: Resource
|
||||||
resource:
|
resource:
|
||||||
name: memory
|
name: memory
|
||||||
|
{{- if eq "autoscaling/v2" (include "common.capabilities.hpa.apiVersion" ( dict "context" $ )) }}
|
||||||
|
target:
|
||||||
|
averageUtilization: {{ .Values.ingester.autoscaling.targetMemoryUtilizationPercentage }}
|
||||||
|
type: Utilization
|
||||||
|
{{- else }}
|
||||||
targetAverageUtilization: {{ .Values.ingester.autoscaling.targetMemoryUtilizationPercentage }}
|
targetAverageUtilization: {{ .Values.ingester.autoscaling.targetMemoryUtilizationPercentage }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
- type: Resource
|
||||||
|
resource:
|
||||||
|
name: cpu
|
||||||
|
{{- if eq "autoscaling/v2" (include "common.capabilities.hpa.apiVersion" ( dict "context" $ )) }}
|
||||||
|
target:
|
||||||
|
averageUtilization: {{ .Values.ingester.autoscaling.targetCPUUtilizationPercentage | default 80 }}
|
||||||
|
type: Utilization
|
||||||
|
{{- else }}
|
||||||
|
targetAverageUtilization: {{ .Values.ingester.autoscaling.targetCPUUtilizationPercentage | default 80 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.ingester.autoscaling.behavior }}
|
||||||
|
behavior:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -6,4 +6,9 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.labels" . | nindent 4 }}
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
app.kubernetes.io/component: ingester
|
app.kubernetes.io/component: ingester
|
||||||
|
{{- with .Values.ingester.serviceAccount.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
automountServiceAccountToken: {{ .Values.ingester.serviceAccount.automountServiceAccountToken }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
{{- if and (.Values.ingester.enabled) (.Values.ingester.serviceMonitor.enabled)}}
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.ingester.name" . }}
|
||||||
|
{{- if .Values.ingester.serviceMonitor.namespace }}
|
||||||
|
namespace: {{ .Values.ingester.serviceMonitor.namespace }}
|
||||||
|
{{- end }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: ingester
|
||||||
|
{{- if .Values.ingester.serviceMonitor.additionalLabels }}
|
||||||
|
{{- toYaml .Values.ingester.serviceMonitor.additionalLabels | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.ingester.serviceMonitor.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.ingester.serviceMonitor.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
endpoints:
|
||||||
|
- port: admin
|
||||||
|
path: /metrics
|
||||||
|
{{- if .Values.ingester.serviceMonitor.interval }}
|
||||||
|
interval: {{ .Values.ingester.serviceMonitor.interval }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.ingester.serviceMonitor.scrapeTimeout }}
|
||||||
|
scrapeTimeout: {{ .Values.ingester.serviceMonitor.scrapeTimeout }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.ingester.serviceMonitor.relabelings }}
|
||||||
|
relabelings:
|
||||||
|
{{- toYaml .Values.ingester.serviceMonitor.relabelings | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.ingester.serviceMonitor.metricRelabelings }}
|
||||||
|
metricRelabelings:
|
||||||
|
{{- toYaml .Values.ingester.serviceMonitor.metricRelabelings | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
namespaceSelector:
|
||||||
|
matchNames:
|
||||||
|
- {{ .Release.Namespace }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/component: ingester
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
{{- end }}
|
|
@ -0,0 +1,23 @@
|
||||||
|
{{- if .Values.ingester.enabled -}}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.ingester.name" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: ingester
|
||||||
|
{{- if .Values.ingester.service.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.ingester.service.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: admin
|
||||||
|
port: 14270
|
||||||
|
targetPort: admin
|
||||||
|
selector:
|
||||||
|
{{- include "jaeger.selectorLabels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: ingester
|
||||||
|
type: {{ .Values.ingester.service.type }}
|
||||||
|
{{- template "loadBalancerSourceRanges" .Values.ingester }}
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,12 @@
|
||||||
|
{{- if and .Values.query.oAuthSidecar.enabled .Values.query.oAuthSidecar.config}}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ include "jaeger.fullname" . }}-oauth-configuration
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: query
|
||||||
|
data:
|
||||||
|
oauth2-proxy.cfg: |-
|
||||||
|
{{ tpl .Values.query.oAuthSidecar.config . | indent 4 }}
|
||||||
|
{{- end }}
|
|
@ -0,0 +1,12 @@
|
||||||
|
{{- if .Values.query.config }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ include "jaeger.fullname" . }}-ui-configuration
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: query
|
||||||
|
data:
|
||||||
|
query-ui-config.json: |-
|
||||||
|
{{ tpl .Values.query.config . | indent 4 }}
|
||||||
|
{{- end }}
|
|
@ -8,7 +8,7 @@ metadata:
|
||||||
app.kubernetes.io/component: query
|
app.kubernetes.io/component: query
|
||||||
{{- if .Values.query.annotations }}
|
{{- if .Values.query.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.query.annotations | indent 4 }}
|
{{- toYaml .Values.query.annotations | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
replicas: {{ .Values.query.replicaCount }}
|
replicas: {{ .Values.query.replicaCount }}
|
||||||
|
@ -16,102 +16,101 @@ spec:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
{{- include "jaeger.selectorLabels" . | nindent 6 }}
|
{{- include "jaeger.selectorLabels" . | nindent 6 }}
|
||||||
app.kubernetes.io/component: query
|
app.kubernetes.io/component: query
|
||||||
strategy:
|
|
||||||
type: Recreate
|
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
{{- if .Values.query.podAnnotations }}
|
{{- if or .Values.query.config .Values.query.podAnnotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.query.podAnnotations | indent 8 }}
|
{{- if .Values.query.config }}
|
||||||
|
checksum/ui-config: {{ include (print $.Template.BasePath "/query-configmap.yaml") . | sha256sum }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if and .Values.query.oAuthSidecar.enabled .Values.query.oAuthSidecar.config }}
|
||||||
|
checksum/oauth2-config: {{ sha256sum .Values.query.oAuthSidecar.config }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.query.podAnnotations }}
|
||||||
|
{{- toYaml .Values.query.podAnnotations | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.selectorLabels" . | nindent 8 }}
|
{{- include "jaeger.selectorLabels" . | nindent 8 }}
|
||||||
app.kubernetes.io/component: query
|
app.kubernetes.io/component: query
|
||||||
{{- if .Values.query.podLabels }}
|
{{- if .Values.query.podLabels }}
|
||||||
{{ toYaml .Values.query.podLabels | indent 8 }}
|
{{- toYaml .Values.query.podLabels | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
|
{{- with .Values.query.priorityClassName }}
|
||||||
|
priorityClassName: {{ . }}
|
||||||
|
{{- end }}
|
||||||
securityContext:
|
securityContext:
|
||||||
{{ toYaml .Values.query.podSecurityContext | indent 8 }}
|
{{- toYaml .Values.query.podSecurityContext | nindent 8 }}
|
||||||
serviceAccountName: {{ template "jaeger.query.serviceAccountName" . }}
|
serviceAccountName: {{ template "jaeger.query.serviceAccountName" . }}
|
||||||
|
{{- include "query.imagePullSecrets" . | nindent 6 }}
|
||||||
|
{{- if or .Values.query.initContainers .Values.provisionDataStore.elasticsearch }}
|
||||||
|
initContainers:
|
||||||
|
{{- if .Values.query.initContainers }}
|
||||||
|
{{- toYaml .Values.query.initContainers | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.provisionDataStore.elasticsearch }}
|
||||||
|
- name: elasticsearch-checker
|
||||||
|
image: {{ include "curl.image" . }}
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- "-c"
|
||||||
|
- |
|
||||||
|
url="{{ include "elasticsearch.client.url" . }}"
|
||||||
|
until [ "$(curl -s -o /dev/null -w '%{http_code}' "$url/_cluster/health")" = "200" ]; do
|
||||||
|
echo "waiting for Elasticsearch at $url"
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
containers:
|
containers:
|
||||||
- name: {{ template "jaeger.query.name" . }}
|
- name: {{ template "jaeger.query.name" . }}
|
||||||
securityContext:
|
securityContext:
|
||||||
{{ toYaml .Values.query.securityContext | indent 10 }}
|
{{- toYaml .Values.query.securityContext | nindent 10 }}
|
||||||
image: {{ .Values.query.image }}:{{ .Values.tag }}
|
image: {{ include "query.image" . }}
|
||||||
imagePullPolicy: {{ .Values.query.pullPolicy }}
|
imagePullPolicy: {{ .Values.query.image.pullPolicy }}
|
||||||
|
args:
|
||||||
|
{{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.query.cmdlineParams ) | nindent 10 }}
|
||||||
|
{{- include "storage.cmdArgs" . | nindent 10 }}
|
||||||
env:
|
env:
|
||||||
{{- range $key, $value := .Values.query.cmdlineParams }}
|
{{- if .Values.query.extraEnv }}
|
||||||
- name: {{ $key | replace "." "_" | replace "-" "_" | upper | quote }}
|
{{- toYaml .Values.query.extraEnv | nindent 10 }}
|
||||||
value: {{ $value | quote }}
|
{{- end }}
|
||||||
{{- end }}
|
|
||||||
- name: SPAN_STORAGE_TYPE
|
- name: SPAN_STORAGE_TYPE
|
||||||
value: {{ .Values.storage.type }}
|
value: {{ .Values.storage.type }}
|
||||||
{{- if eq .Values.storage.type "cassandra" }}
|
{{- include "storage.env" . | nindent 10 }}
|
||||||
- name: CASSANDRA_SERVERS
|
|
||||||
value: {{ template "cassandra.host" . }}
|
|
||||||
- name: CASSANDRA_PORT
|
|
||||||
value: {{ .Values.storage.cassandra.port | quote }}
|
|
||||||
{{ if .Values.storage.cassandra.tls.enabled }}
|
|
||||||
- name: CASSANDRA_TLS
|
|
||||||
value: "true"
|
|
||||||
- name: CASSANDRA_TLS_SERVER_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ .Values.storage.cassandra.tls.secretName }}
|
|
||||||
key: commonName
|
|
||||||
- name: CASSANDRA_TLS_KEY
|
|
||||||
value: "/cassandra-tls/client-key.pem"
|
|
||||||
- name: CASSANDRA_TLS_CERT
|
|
||||||
value: "/cassandra-tls/client-cert.pem"
|
|
||||||
- name: CASSANDRA_TLS_CA
|
|
||||||
value: "/cassandra-tls/ca-cert.pem"
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.storage.cassandra.keyspace }}
|
|
||||||
- name: CASSANDRA_KEYSPACE
|
|
||||||
value: {{ .Values.storage.cassandra.keyspace | quote }}
|
|
||||||
{{- end }}
|
|
||||||
- name: CASSANDRA_USERNAME
|
|
||||||
value: {{ .Values.storage.cassandra.user }}
|
|
||||||
- name: CASSANDRA_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ if .Values.storage.cassandra.existingSecret }}{{ .Values.storage.cassandra.existingSecret }}{{- else }}{{ include "jaeger.fullname" . }}-cassandra{{- end }}
|
|
||||||
key: password
|
|
||||||
{{- end }}
|
|
||||||
{{- if eq .Values.storage.type "elasticsearch" }}
|
|
||||||
{{- if .Values.storage.elasticsearch.usePassword }}
|
|
||||||
- name: ES_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ if .Values.storage.elasticsearch.existingSecret }}{{ .Values.storage.elasticsearch.existingSecret }}{{- else }}{{ include "jaeger.fullname" . }}-elasticsearch{{- end }}
|
|
||||||
key: password
|
|
||||||
{{- end }}
|
|
||||||
- name: ES_SERVER_URLS
|
|
||||||
value: {{ template "elasticsearch.client.url" . }}
|
|
||||||
- name: ES_USERNAME
|
|
||||||
value: {{ .Values.storage.elasticsearch.user }}
|
|
||||||
{{- if .Values.storage.elasticsearch.indexPrefix }}
|
|
||||||
- name: ES_INDEX_PREFIX
|
|
||||||
value: {{ .Values.storage.elasticsearch.indexPrefix }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.query.basePath }}
|
{{- if .Values.query.basePath }}
|
||||||
- name: QUERY_BASE_PATH
|
- name: QUERY_BASE_PATH
|
||||||
value: {{ .Values.query.basePath | quote }}
|
value: {{ .Values.query.basePath | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
- name: JAEGER_AGENT_PORT
|
- name: JAEGER_AGENT_PORT
|
||||||
value: "6831"
|
value: "6831"
|
||||||
|
{{- if .Values.query.config}}
|
||||||
|
- name: QUERY_UI_CONFIG
|
||||||
|
value: /etc/conf/query-ui-config.json
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.query.envFrom }}
|
||||||
|
envFrom: {{- toYaml . | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
ports:
|
ports:
|
||||||
- name: query
|
- name: query
|
||||||
containerPort: 16686
|
containerPort: 16686
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
|
- name: grpc
|
||||||
|
containerPort: 16685
|
||||||
|
protocol: TCP
|
||||||
- name: admin
|
- name: admin
|
||||||
containerPort: 16687
|
containerPort: 16687
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
resources:
|
resources:
|
||||||
{{ toYaml .Values.query.resources | indent 10 }}
|
{{- toYaml .Values.query.resources | nindent 10 }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
|
{{- range .Values.query.extraSecretMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
mountPath: {{ .mountPath }}
|
||||||
|
subPath: {{ .subPath }}
|
||||||
|
readOnly: {{ .readOnly }}
|
||||||
|
{{- end }}
|
||||||
{{- range .Values.query.extraConfigmapMounts }}
|
{{- range .Values.query.extraConfigmapMounts }}
|
||||||
- name: {{ .name }}
|
- name: {{ .name }}
|
||||||
mountPath: {{ .mountPath }}
|
mountPath: {{ .mountPath }}
|
||||||
|
@ -132,6 +131,16 @@ spec:
|
||||||
subPath: "client-key.pem"
|
subPath: "client-key.pem"
|
||||||
readOnly: true
|
readOnly: true
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
mountPath: {{ .Values.storage.elasticsearch.tls.mountPath }}
|
||||||
|
subPath: {{ .Values.storage.elasticsearch.tls.subPath }}
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.query.config}}
|
||||||
|
- name: ui-configuration
|
||||||
|
mountPath: /etc/conf/
|
||||||
|
{{- end }}
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /
|
path: /
|
||||||
|
@ -140,25 +149,76 @@ spec:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /
|
path: /
|
||||||
port: admin
|
port: admin
|
||||||
|
{{- if .Values.query.oAuthSidecar.enabled }}
|
||||||
|
- name: {{ template "jaeger.agent.name" . }}-oauth2-sidecar
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.query.securityContext | nindent 10 }}
|
||||||
|
image: {{ include "oAuthSidecar.image" . }}
|
||||||
|
imagePullPolicy: {{ .Values.query.oAuthSidecar.image.pullPolicy }}
|
||||||
|
args:
|
||||||
|
{{- range .Values.query.oAuthSidecar.args }}
|
||||||
|
- {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.query.oAuthSidecar.extraEnv }}
|
||||||
|
env:
|
||||||
|
{{- toYaml .Values.query.oAuthSidecar.extraEnv | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- range .Values.query.oAuthSidecar.extraConfigmapMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
mountPath: {{ .mountPath }}
|
||||||
|
subPath: {{ .subPath }}
|
||||||
|
readOnly: {{ .readOnly }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.query.oAuthSidecar.extraSecretMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
mountPath: {{ .mountPath }}
|
||||||
|
subPath: {{ .subPath }}
|
||||||
|
readOnly: {{ .readOnly }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.query.oAuthSidecar.config}}
|
||||||
|
- name: jaeger-oauth-configuration
|
||||||
|
mountPath: /etc/oauth2-proxy
|
||||||
|
{{- end }}
|
||||||
|
ports:
|
||||||
|
- containerPort: {{ .Values.query.oAuthSidecar.containerPort }}
|
||||||
|
name: oauth-proxy
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.query.oAuthSidecar.resources | nindent 10 }}
|
||||||
|
{{- if .Values.query.oAuthSidecar.livenessProbe }}
|
||||||
|
livenessProbe:
|
||||||
|
{{- toYaml .Values.query.oAuthSidecar.livenessProbe | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.query.oAuthSidecar.readinessProbe }}
|
||||||
|
readinessProbe:
|
||||||
|
{{- toYaml .Values.query.oAuthSidecar.readinessProbe | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
{{- if .Values.query.agentSidecar.enabled }}
|
{{- if .Values.query.agentSidecar.enabled }}
|
||||||
- name: {{ template "jaeger.agent.name" . }}-sidecar
|
- name: {{ template "jaeger.agent.name" . }}-sidecar
|
||||||
securityContext:
|
securityContext:
|
||||||
{{ toYaml .Values.query.securityContext | indent 10 }}
|
{{- toYaml .Values.query.securityContext | nindent 10 }}
|
||||||
image: {{ .Values.agent.image }}:{{ .Values.tag }}
|
image: {{ include "agent.image" . }}
|
||||||
imagePullPolicy: {{ .Values.agent.pullPolicy }}
|
imagePullPolicy: {{ .Values.agent.image.pullPolicy }}
|
||||||
|
args:
|
||||||
|
{{- range $key, $value := .Values.agent.cmdlineParams }}
|
||||||
|
{{- if $value }}
|
||||||
|
- --{{ $key }}={{ $value }}
|
||||||
|
{{- else }}
|
||||||
|
- --{{ $key }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
env:
|
env:
|
||||||
{{- if not (hasKey .Values.agent.cmdlineParams "reporter.grpc.host-port") }}
|
{{- if not (hasKey .Values.agent.cmdlineParams "reporter.grpc.host-port") }}
|
||||||
- name: REPORTER_GRPC_HOST_PORT
|
- name: REPORTER_GRPC_HOST_PORT
|
||||||
value: {{ include "jaeger.collector.name" . }}:{{ .Values.collector.service.grpcPort }}
|
value: {{ include "jaeger.collector.name" . }}:{{ .Values.collector.service.grpc.port }}
|
||||||
{{- end }}
|
|
||||||
{{- range $key, $value := .Values.agent.cmdlineParams }}
|
|
||||||
- name: {{ $key | replace "." "_" | replace "-" "_" | upper | quote }}
|
|
||||||
value: {{ $value | quote }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
ports:
|
ports:
|
||||||
- name: admin
|
- name: admin
|
||||||
containerPort: 14271
|
containerPort: 14271
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.query.agentSidecar.resources | nindent 10 }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
{{- range .Values.agent.extraConfigmapMounts }}
|
{{- range .Values.agent.extraConfigmapMounts }}
|
||||||
- name: {{ .name }}
|
- name: {{ .name }}
|
||||||
|
@ -181,6 +241,9 @@ spec:
|
||||||
path: /
|
path: /
|
||||||
port: admin
|
port: admin
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.query.sidecars }}
|
||||||
|
{{- tpl (toYaml .Values.query.sidecars) . | nindent 6 }}
|
||||||
|
{{- end }}
|
||||||
dnsPolicy: {{ .Values.query.dnsPolicy }}
|
dnsPolicy: {{ .Values.query.dnsPolicy }}
|
||||||
restartPolicy: Always
|
restartPolicy: Always
|
||||||
volumes:
|
volumes:
|
||||||
|
@ -189,6 +252,44 @@ spec:
|
||||||
configMap:
|
configMap:
|
||||||
name: {{ .configMap }}
|
name: {{ .configMap }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- range .Values.query.extraSecretMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.query.config}}
|
||||||
|
- name: ui-configuration
|
||||||
|
configMap:
|
||||||
|
name: {{ include "jaeger.fullname" . }}-ui-configuration
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.cassandra.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.cassandra.tls.secretName }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .Values.storage.cassandra.tls.secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.storage.elasticsearch.tls.enabled }}
|
||||||
|
- name: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .Values.storage.elasticsearch.tls.secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.query.oAuthSidecar.enabled }}
|
||||||
|
{{- range .Values.query.oAuthSidecar.extraConfigmapMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
configMap:
|
||||||
|
name: {{ .configMap }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.query.oAuthSidecar.extraSecretMounts }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ .secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.query.oAuthSidecar.config }}
|
||||||
|
- name: jaeger-oauth-configuration
|
||||||
|
configMap:
|
||||||
|
name: {{ include "jaeger.fullname" . }}-oauth-configuration
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.query.agentSidecar.enabled }}
|
||||||
{{- range .Values.agent.extraSecretMounts }}
|
{{- range .Values.agent.extraSecretMounts }}
|
||||||
- name: {{ .name }}
|
- name: {{ .name }}
|
||||||
secret:
|
secret:
|
||||||
|
@ -199,6 +300,10 @@ spec:
|
||||||
configMap:
|
configMap:
|
||||||
name: {{ .configMap }}
|
name: {{ .configMap }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.query.extraVolumes }}
|
||||||
|
{{- tpl (toYaml .Values.query.extraVolumes) . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- with .Values.query.nodeSelector }}
|
{{- with .Values.query.nodeSelector }}
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
|
@ -207,6 +312,10 @@ spec:
|
||||||
affinity:
|
affinity:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.query.topologySpreadConstraints }}
|
||||||
|
topologySpreadConstraints:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- with .Values.query.tolerations }}
|
{{- with .Values.query.tolerations }}
|
||||||
tolerations:
|
tolerations:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
|
|
|
@ -1,30 +1,41 @@
|
||||||
{{- if .Values.query.ingress.enabled -}}
|
{{- if .Values.query.ingress.enabled -}}
|
||||||
{{- $servicePort := .Values.query.service.port -}}
|
{{- $ingressSupportsIngressClassName := eq (include "common.ingress.supportsIngressClassname" .) "true" }}
|
||||||
{{- $basePath := .Values.query.basePath -}}
|
{{- $servicePort := .Values.query.service.port -}}
|
||||||
apiVersion: extensions/v1beta1
|
{{- $basePath := .Values.query.basePath -}}
|
||||||
|
apiVersion: {{ include "common.capabilities.ingress.apiVersion" $ }}
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ template "jaeger.query.name" . }}
|
name: {{ template "jaeger.query.name" . }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.labels" . | nindent 4 }}
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
{{- if .Values.query.ingress.labels }}
|
||||||
|
{{- toYaml .Values.query.ingress.labels | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
app.kubernetes.io/component: query
|
app.kubernetes.io/component: query
|
||||||
{{- if .Values.query.ingress.annotations }}
|
{{- if .Values.query.ingress.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.query.ingress.annotations | indent 4 }}
|
{{- toYaml .Values.query.ingress.annotations | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
|
{{- if and $ingressSupportsIngressClassName .Values.query.ingress.ingressClassName }}
|
||||||
|
ingressClassName: {{ .Values.query.ingress.ingressClassName }}
|
||||||
|
{{- end }}
|
||||||
rules:
|
rules:
|
||||||
{{- range $host := .Values.query.ingress.hosts }}
|
{{- range $host := .Values.query.ingress.hosts }}
|
||||||
- host: {{ $host }}
|
- host: {{ $host | quote }}
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
- path: {{ $basePath }}
|
- path: {{ $basePath }}
|
||||||
backend:
|
pathType: {{ default "ImplementationSpecific" $.Values.query.ingress.pathType }}
|
||||||
serviceName: {{ template "jaeger.query.name" $ }}
|
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "jaeger.query.name" $) "servicePort" $servicePort "context" $) | nindent 14 }}
|
||||||
servicePort: {{ $servicePort }}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- if .Values.query.ingress.health.exposed }}
|
||||||
|
- path: /health
|
||||||
|
pathType: {{ default "ImplementationSpecific" $.Values.query.ingress.pathType }}
|
||||||
|
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "jaeger.query.name" $) "servicePort" 16687 "context" $) | nindent 14 }}
|
||||||
|
{{- end -}}
|
||||||
{{- if .Values.query.ingress.tls }}
|
{{- if .Values.query.ingress.tls }}
|
||||||
tls:
|
tls:
|
||||||
{{ toYaml .Values.query.ingress.tls | indent 4 }}
|
{{- toYaml .Values.query.ingress.tls | nindent 4 }}
|
||||||
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
{{- if and .Values.networkPolicy.enabled .Values.query.networkPolicy.enabled .Values.query.networkPolicy.egressRules }}
|
||||||
|
{{- $extraVals := dict "Name" (include "jaeger.query.name" .) "Component" "query" "ComponentValues" .Values.query -}}
|
||||||
|
{{- $npVals := merge $extraVals . -}}
|
||||||
|
{{ include "jaeger.egress.networkPolicy" $npVals }}
|
||||||
|
{{- end }}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{{- if and .Values.networkPolicy.enabled .Values.query.networkPolicy.enabled .Values.query.networkPolicy.ingressRules }}
|
||||||
|
{{- $extraVals := dict "Name" (include "jaeger.query.name" .) "Component" "query" "ComponentValues" .Values.query -}}
|
||||||
|
{{- $npVals := merge $extraVals . -}}
|
||||||
|
{{ include "jaeger.ingress.networkPolicy" $npVals }}
|
||||||
|
{{- end }}
|
|
@ -6,4 +6,9 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.labels" . | nindent 4 }}
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
app.kubernetes.io/component: query
|
app.kubernetes.io/component: query
|
||||||
|
{{- with .Values.query.serviceAccount.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
automountServiceAccountToken: {{ .Values.query.serviceAccount.automountServiceAccountToken }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
{{- if and (.Values.query.enabled) (.Values.query.serviceMonitor.enabled)}}
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
name: {{ template "jaeger.query.name" . }}
|
||||||
|
{{- if .Values.query.serviceMonitor.namespace }}
|
||||||
|
namespace: {{ .Values.query.serviceMonitor.namespace }}
|
||||||
|
{{- end }}
|
||||||
|
labels:
|
||||||
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: query
|
||||||
|
{{- if .Values.query.serviceMonitor.additionalLabels }}
|
||||||
|
{{- toYaml .Values.query.serviceMonitor.additionalLabels | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.query.serviceMonitor.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.query.serviceMonitor.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
endpoints:
|
||||||
|
- port: admin
|
||||||
|
path: /metrics
|
||||||
|
{{- if .Values.query.serviceMonitor.interval }}
|
||||||
|
interval: {{ .Values.query.serviceMonitor.interval }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.query.serviceMonitor.scrapeTimeout }}
|
||||||
|
scrapeTimeout: {{ .Values.query.serviceMonitor.scrapeTimeout }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.query.serviceMonitor.relabelings }}
|
||||||
|
relabelings:
|
||||||
|
{{- toYaml .Values.query.serviceMonitor.relabelings | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.query.serviceMonitor.metricRelabelings }}
|
||||||
|
metricRelabelings:
|
||||||
|
{{- toYaml .Values.query.serviceMonitor.metricRelabelings | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
namespaceSelector:
|
||||||
|
matchNames:
|
||||||
|
- {{ .Release.Namespace }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/component: query
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
{{- end }}
|
|
@ -8,14 +8,25 @@ metadata:
|
||||||
app.kubernetes.io/component: query
|
app.kubernetes.io/component: query
|
||||||
{{- if .Values.query.service.annotations }}
|
{{- if .Values.query.service.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.query.service.annotations | indent 4 }}
|
{{- toYaml .Values.query.service.annotations | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
ports:
|
ports:
|
||||||
- name: query
|
- name: query
|
||||||
port: {{ .Values.query.service.port }}
|
port: {{ .Values.query.service.port }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: query
|
targetPort: {{ default (ternary "oauth-proxy" "query" .Values.query.oAuthSidecar.enabled) .Values.query.service.targetPort }}
|
||||||
|
{{- if and (eq .Values.query.service.type "NodePort") (.Values.query.service.nodePort) }}
|
||||||
|
nodePort: {{ .Values.query.service.nodePort }}
|
||||||
|
{{- end }}
|
||||||
|
- name: grpc
|
||||||
|
port: 16685
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: grpc
|
||||||
|
- name: {{ .Values.query.service.admin.name }}
|
||||||
|
port: 16687
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: {{ .Values.query.service.admin.targetPort }}
|
||||||
selector:
|
selector:
|
||||||
{{- include "jaeger.selectorLabels" . | nindent 4 }}
|
{{- include "jaeger.selectorLabels" . | nindent 4 }}
|
||||||
app.kubernetes.io/component: query
|
app.kubernetes.io/component: query
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{{- if .Values.spark.enabled -}}
|
{{- if .Values.spark.enabled -}}
|
||||||
apiVersion: batch/v1beta1
|
apiVersion: {{ include "common.capabilities.cronjob.apiVersion" $ }}
|
||||||
kind: CronJob
|
kind: CronJob
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "jaeger.fullname" . }}-spark
|
name: {{ include "jaeger.fullname" . }}-spark
|
||||||
|
@ -8,67 +8,63 @@ metadata:
|
||||||
app.kubernetes.io/component: spark
|
app.kubernetes.io/component: spark
|
||||||
{{- if .Values.spark.annotations }}
|
{{- if .Values.spark.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.spark.annotations | indent 4 }}
|
{{- toYaml .Values.spark.annotations | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
schedule: {{ .Values.spark.schedule | quote }}
|
schedule: {{ .Values.spark.schedule | quote }}
|
||||||
successfulJobsHistoryLimit: {{ .Values.spark.successfulJobsHistoryLimit }}
|
successfulJobsHistoryLimit: {{ .Values.spark.successfulJobsHistoryLimit }}
|
||||||
failedJobsHistoryLimit: {{ .Values.spark.failedJobsHistoryLimit }}
|
failedJobsHistoryLimit: {{ .Values.spark.failedJobsHistoryLimit }}
|
||||||
|
concurrencyPolicy: {{ .Values.spark.concurrencyPolicy }}
|
||||||
jobTemplate:
|
jobTemplate:
|
||||||
spec:
|
spec:
|
||||||
|
{{- if .Values.spark.activeDeadlineSeconds }}
|
||||||
|
activeDeadlineSeconds: {{ .Values.spark.activeDeadlineSeconds }}
|
||||||
|
{{- end}}
|
||||||
|
{{- if .Values.spark.ttlSecondsAfterFinished }}
|
||||||
|
ttlSecondsAfterFinished: {{ .Values.spark.ttlSecondsAfterFinished }}
|
||||||
|
{{- end }}
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
|
{{- if .Values.spark.podAnnotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml .Values.spark.podAnnotations | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.selectorLabels" . | nindent 12 }}
|
{{- include "jaeger.selectorLabels" . | nindent 12 }}
|
||||||
app.kubernetes.io/component: spark
|
app.kubernetes.io/component: spark
|
||||||
{{- if .Values.spark.podLabels }}
|
{{- if .Values.spark.podLabels }}
|
||||||
{{ toYaml .Values.spark.podLabels | indent 12 }}
|
{{- toYaml .Values.spark.podLabels | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: {{ template "jaeger.spark.serviceAccountName" . }}
|
serviceAccountName: {{ template "jaeger.spark.serviceAccountName" . }}
|
||||||
|
{{- include "spark.imagePullSecrets" . | nindent 10 }}
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.spark.podSecurityContext | nindent 12 }}
|
||||||
containers:
|
containers:
|
||||||
- name: {{ include "jaeger.fullname" . }}-spark
|
- name: {{ include "jaeger.fullname" . }}-spark
|
||||||
image: {{ .Values.spark.image }}:{{ .Values.spark.tag }}
|
image: {{ include "spark.image" . }}
|
||||||
imagePullPolicy: {{ .Values.spark.pullPolicy }}
|
imagePullPolicy: {{ .Values.spark.image.pullPolicy }}
|
||||||
|
args:
|
||||||
|
{{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.spark.cmdlineParams ) | nindent 14 }}
|
||||||
env:
|
env:
|
||||||
{{- range $key, $value := .Values.spark.cmdlineParams }}
|
- name: STORAGE
|
||||||
- name: {{ $key | replace "." "_" | replace "-" "_" | upper | quote }}
|
value: {{ .Values.storage.type }}
|
||||||
value: {{ $value | quote }}
|
{{- include "storage.env" . | nindent 14 }}
|
||||||
|
{{- if .Values.spark.extraEnv }}
|
||||||
|
{{- toYaml .Values.spark.extraEnv | nindent 14 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
- name: STORAGE
|
|
||||||
value: {{ .Values.storage.type }}
|
|
||||||
{{- if eq .Values.storage.type "cassandra" }}
|
{{- if eq .Values.storage.type "cassandra" }}
|
||||||
- name: CASSANDRA_CONTACT_POINTS
|
- name: CASSANDRA_CONTACT_POINTS
|
||||||
value: {{ template "cassandra.contact_points" . }}
|
value: {{ include "cassandra.contact_points" . }}
|
||||||
- name: CASSANDRA_KEYSPACE
|
|
||||||
value: {{ .Values.storage.cassandra.keyspace }}
|
|
||||||
{{- if .Values.storage.cassandra.usePassword }}
|
|
||||||
- name: CASSANDRA_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ if .Values.storage.cassandra.existingSecret }}{{ .Values.storage.cassandra.existingSecret }}{{- else }}{{ include "jaeger.fullname" . }}-cassandra{{- end }}
|
|
||||||
key: password
|
|
||||||
{{- end }}
|
|
||||||
- name: CASSANDRA_USERNAME
|
|
||||||
value: {{ .Values.storage.cassandra.user }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if eq .Values.storage.type "elasticsearch" }}
|
{{- if eq .Values.storage.type "elasticsearch" }}
|
||||||
- name: ES_NODES
|
- name: ES_NODES
|
||||||
value: {{ template "elasticsearch.client.url" . }}
|
value: {{ include "elasticsearch.client.url" . }}
|
||||||
- name: ES_NODES_WAN_ONLY
|
- name: ES_NODES_WAN_ONLY
|
||||||
value: {{ .Values.storage.elasticsearch.nodesWanOnly | quote }}
|
value: {{ .Values.storage.elasticsearch.nodesWanOnly | quote }}
|
||||||
{{- if .Values.storage.elasticsearch.usePassword }}
|
|
||||||
- name: ES_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ if .Values.storage.elasticsearch.existingSecret }}{{ .Values.storage.elasticsearch.existingSecret }}{{- else }}{{ include "jaeger.fullname" . }}-elasticsearch{{- end }}
|
|
||||||
key: password
|
|
||||||
{{- end }}
|
|
||||||
- name: ES_USERNAME
|
|
||||||
value: {{ .Values.storage.elasticsearch.user }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
resources:
|
resources:
|
||||||
{{ toYaml .Values.spark.resources | indent 14 }}
|
{{- toYaml .Values.spark.resources | nindent 14 }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
{{- range .Values.spark.extraConfigmapMounts }}
|
{{- range .Values.spark.extraConfigmapMounts }}
|
||||||
- name: {{ .name }}
|
- name: {{ .name }}
|
||||||
|
@ -82,6 +78,8 @@ spec:
|
||||||
subPath: {{ .subPath }}
|
subPath: {{ .subPath }}
|
||||||
readOnly: {{ .readOnly }}
|
readOnly: {{ .readOnly }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.spark.securityContext | nindent 14 }}
|
||||||
restartPolicy: OnFailure
|
restartPolicy: OnFailure
|
||||||
volumes:
|
volumes:
|
||||||
{{- range .Values.spark.extraConfigmapMounts }}
|
{{- range .Values.spark.extraConfigmapMounts }}
|
||||||
|
|
|
@ -6,4 +6,9 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
{{- include "jaeger.labels" . | nindent 4 }}
|
{{- include "jaeger.labels" . | nindent 4 }}
|
||||||
app.kubernetes.io/component: spark
|
app.kubernetes.io/component: spark
|
||||||
|
{{- with .Values.spark.serviceAccount.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
automountServiceAccountToken: {{ .Values.spark.serviceAccount.automountServiceAccountToken }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
6
ct.yaml
6
ct.yaml
|
@ -3,6 +3,8 @@ remote: origin
|
||||||
chart-dirs:
|
chart-dirs:
|
||||||
- charts
|
- charts
|
||||||
chart-repos:
|
chart-repos:
|
||||||
- incubator=https://kubernetes-charts-incubator.storage.googleapis.com
|
- incubator=https://charts.helm.sh/incubator
|
||||||
- elastic=https://helm.elastic.co
|
- elastic=https://helm.elastic.co
|
||||||
helm-extra-args: --timeout=500
|
- bitnami=https://charts.bitnami.com/bitnami
|
||||||
|
helm-extra-args: --timeout=600s
|
||||||
|
target-branch: main
|
||||||
|
|
Loading…
Reference in New Issue