Compare commits
288 Commits
postgres-c
...
gh-pages
Author | SHA1 | Date | |
---|---|---|---|
|
610af91b32 | ||
|
d3abb9efb5 | ||
|
473bbf0dba | ||
|
9de1e8bb20 | ||
|
c273645944 | ||
|
35b6e040fb | ||
|
0a73098177 | ||
|
2510671468 | ||
|
528fb29dc1 | ||
|
71a76aef91 | ||
|
a683733861 | ||
|
7193fa0e43 | ||
|
4d0778700c | ||
|
9400aae940 | ||
|
bd37be4bd5 | ||
|
11918960dc | ||
|
e5ad8122cb | ||
|
34c5ae6ff9 | ||
|
efaf49caeb | ||
|
c0b6e849ae | ||
|
38487b296b | ||
|
13b0b3c060 | ||
|
81d804f550 | ||
|
72c30e6dc5 | ||
|
f0c2cd0b19 | ||
|
45670a55c8 | ||
|
5d96c9a1d6 | ||
|
9c0b97c753 | ||
|
5b4f8d0ed7 | ||
|
f07d9ec151 | ||
|
515f4f91be | ||
|
a2dc782e14 | ||
|
fe322f909e | ||
|
fd75a39adb | ||
|
7b29fe16d8 | ||
|
081ac23ce4 | ||
|
552ee9f4ce | ||
|
9b96e15872 | ||
|
6b9abf71cb | ||
|
4b84ec822a | ||
|
c08ddac2cb | ||
|
0194e3fb79 | ||
|
37e3de028e | ||
|
3ac94f8aed | ||
|
30c8789ffa | ||
|
8f4de35f4a | ||
|
4dafc9c9e2 | ||
|
b42ff70fb3 | ||
|
047338cf09 | ||
|
9524ccad75 | ||
|
a82c593200 | ||
|
13da8c9acb | ||
|
b6ceaa4dcd | ||
|
500d1cb201 | ||
|
6d5e37091c | ||
|
d374fb1638 | ||
|
563b46e16b | ||
|
7776863d14 | ||
|
4f02bbc1c7 | ||
|
224437bb9b | ||
|
d5a477f068 | ||
|
9149d3c05c | ||
|
dc072ba102 | ||
|
c3bb7d6137 | ||
|
7e38a8aa04 | ||
|
4486902d0e | ||
|
81006a958e | ||
|
a1b6a39989 | ||
|
4caa7851a4 | ||
|
0930742d3e | ||
|
4f2ed4e5cc | ||
|
43f7bf3766 | ||
|
ad7e930bd9 | ||
|
7a3cfda12f | ||
|
da8171ce2c | ||
|
e4cbf821a7 | ||
|
efed4951f6 | ||
|
32927c3c64 | ||
|
6239551f2c | ||
|
3992d9a7a0 | ||
|
9700f8c662 | ||
|
a12294d785 | ||
|
939bb2a104 | ||
|
98a660ac54 | ||
|
784bd59523 | ||
|
064e67a9fd | ||
|
b9a68c67b1 | ||
|
0b69ea6362 | ||
|
1ba753446f | ||
|
9f1c32e5fc | ||
|
4147016809 | ||
|
24b52d8716 | ||
|
2576527aa0 | ||
|
2aae35d757 | ||
|
548db97f81 | ||
|
094a8b3b90 | ||
|
222a87befc | ||
|
44be1ae304 | ||
|
e8fb911722 | ||
|
7cd16dd92f | ||
|
1f240a8fac | ||
|
4b84bd188e | ||
|
f4a591eaca | ||
|
8a0068c120 | ||
|
fc751e627b | ||
|
37e374fa31 | ||
|
d6062263de | ||
|
631e5c3073 | ||
|
d9e72caf94 | ||
|
4d909a32b4 | ||
|
390b7ccfa1 | ||
|
5e0fc7ffbe | ||
|
7fd290fb89 | ||
|
4b4acdf570 | ||
|
4ee3bb4d49 | ||
|
d04e10a4e5 | ||
|
86b7430210 | ||
|
c4c054f983 | ||
|
933a92bb07 | ||
|
952ab164d4 | ||
|
c588e18077 | ||
|
0e91873833 | ||
|
3843f7d272 | ||
|
b3f43086d7 | ||
|
af8a8127fe | ||
|
c0f6ac7fbc | ||
|
bf62fdd631 | ||
|
b4718bce46 | ||
|
792a5723be | ||
|
6ca9b94db4 | ||
|
a530195ea9 | ||
|
02801b1aa1 | ||
|
810d74b2ae | ||
|
d69a2d28b0 | ||
|
d054e42199 | ||
|
63b5ca7614 | ||
|
4be5cd418d | ||
|
df96e6556e | ||
|
59b2ed8001 | ||
|
cd9fbe56a4 | ||
|
20fcd67ea3 | ||
|
6f6d30a862 | ||
|
f1a65dd177 | ||
|
bdd7060748 | ||
|
07e2ac7acd | ||
|
787765f1e7 | ||
|
9f18f3ba2f | ||
|
e62daee353 | ||
|
85f3f47dca | ||
|
9ff16890c5 | ||
|
c68b04c38e | ||
|
04d98c0d65 | ||
|
62512ca909 | ||
|
9409e36b58 | ||
|
25af8d718d | ||
|
554c480d39 | ||
|
b55dfc3cad | ||
|
afd5c8b4b2 | ||
|
c7cf440b0e | ||
|
a5be172d48 | ||
|
dbc1cdd8d5 | ||
|
3c2d3d6ef4 | ||
|
6890d1d974 | ||
|
df8bfb1b55 | ||
|
a6cb051c9c | ||
|
8154a36b2d | ||
|
297b3f9a70 | ||
|
af003f0990 | ||
|
0a2facc20d | ||
|
f06d4e26a1 | ||
|
a2a25f3e2d | ||
|
e7ee0ee1d6 | ||
|
0553d58a6b | ||
|
5db00bf5b8 | ||
|
57178b4b42 | ||
|
18f2464049 | ||
|
ba610b41c8 | ||
|
3cfedcd13f | ||
|
1d4547aea8 | ||
|
eea3e93b2c | ||
|
72087e86aa | ||
|
ee1f7a1760 | ||
|
97d93a6f55 | ||
|
98cc39ddcc | ||
|
cd41ea7174 | ||
|
c65b033644 | ||
|
e07b07eb64 | ||
|
871e6e0a62 | ||
|
e80814b9b9 | ||
|
e37a5842f5 | ||
|
7be8dfcd6b | ||
|
d69358027d | ||
|
3c36d6ce01 | ||
|
4a583293fc | ||
|
04bce9d600 | ||
|
c8b61dec7e | ||
|
fca1400d3b | ||
|
ec74e2fae0 | ||
|
f0d53c3b4a | ||
|
25b7379a06 | ||
|
6462d8fed1 | ||
|
de2b2541c0 | ||
|
8dde430d41 | ||
|
f27eaafdaa | ||
|
fc12a578fb | ||
|
a05bcb83cb | ||
|
c62e8ab3ef | ||
|
f44a361278 | ||
|
558fdfd00e | ||
|
f38e146609 | ||
|
10129a8e68 | ||
|
814ac3c4f8 | ||
|
23d159db0a | ||
|
51ae6468dc | ||
|
cbff0f59f2 | ||
|
bce9ccfa78 | ||
|
f6a0eedc3f | ||
|
3cca83b6cc | ||
|
3f309e422c | ||
|
455e9d9384 | ||
|
c7fdfd8f5c | ||
|
bd13cce830 | ||
|
bfc0e8b773 | ||
|
c784a90fed | ||
|
6eba5070ff | ||
|
9ef14fba32 | ||
|
3c9a2f82af | ||
|
e1c29c604f | ||
|
c3e8cf22cc | ||
|
bbfb4ee61c | ||
|
c459ef40d3 | ||
|
9f16e49683 | ||
|
5b21ae3351 | ||
|
57458962e8 | ||
|
543addccb4 | ||
|
02f2335783 | ||
|
08d9c65bd9 | ||
|
716d16810f | ||
|
7bb2f3ff91 | ||
|
e8d1097b55 | ||
|
106f40f661 | ||
|
27cf8540f7 | ||
|
5273942d52 | ||
|
76049fa566 | ||
|
69252499cd | ||
|
d913d3da59 | ||
|
396bbfe5f2 | ||
|
4c895a4ed0 | ||
|
e9a392c950 | ||
|
445738af76 | ||
|
9ea0742dfa | ||
|
4e9899edc7 | ||
|
f55b3255e3 | ||
|
f39c7c4a80 | ||
|
480d729a4c | ||
|
250938ffff | ||
|
6c3ad7f7ad | ||
|
e1bc375c55 | ||
|
c75b850bfa | ||
|
ed29678481 | ||
|
a7a249fe91 | ||
|
15375ef4ba | ||
|
d49119097b | ||
|
570a13a8f4 | ||
|
6888ede71a | ||
|
16acf28739 | ||
|
6bda8bee03 | ||
|
0278d8c496 | ||
|
6dfd30b631 | ||
|
e62ffb332d | ||
|
3792ad098f | ||
|
ad46386aaf | ||
|
8976ae00ec | ||
|
3ca7ae0bec | ||
|
cfa13cf66a | ||
|
8bf1ac6e6c | ||
|
aaf2cda058 | ||
|
75c28e6358 | ||
|
a36ea6690f | ||
|
6cb3333d9f | ||
|
5e9f0b0c7c | ||
|
663f974072 | ||
|
4b0c86c2b9 | ||
|
ee7ea230e6 | ||
|
5f147e0d0a | ||
1ab49f7f94 | |||
2992ee5b5b | |||
be85591839 |
@@ -1,2 +0,0 @@
|
|||||||
# This file is processed by Renovate bot so that it creates a PR on new major Renovate versions
|
|
||||||
FROM renovate/renovate:37
|
|
64
.github/renovate.json
vendored
64
.github/renovate.json
vendored
@@ -1,64 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
|
||||||
"extends": [
|
|
||||||
"config:recommended",
|
|
||||||
"mergeConfidence:all-badges",
|
|
||||||
":rebaseStalePrs"
|
|
||||||
],
|
|
||||||
"timezone": "US/Central",
|
|
||||||
"schedule": [
|
|
||||||
"every weekday"
|
|
||||||
],
|
|
||||||
"labels": [],
|
|
||||||
"packageRules": [
|
|
||||||
{
|
|
||||||
"description": "Disables for non major Renovate version",
|
|
||||||
"matchPaths": [
|
|
||||||
".github/renovate-update-notification/Dockerfile"
|
|
||||||
],
|
|
||||||
"matchUpdateTypes": [
|
|
||||||
"minor",
|
|
||||||
"patch",
|
|
||||||
"pin",
|
|
||||||
"digest",
|
|
||||||
"rollback"
|
|
||||||
],
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Generate for major Renovate version",
|
|
||||||
"matchPaths": [
|
|
||||||
".github/renovate-update-notification/Dockerfile"
|
|
||||||
],
|
|
||||||
"matchUpdateTypes": [
|
|
||||||
"major"
|
|
||||||
],
|
|
||||||
"addLabels": [
|
|
||||||
"upgrade"
|
|
||||||
],
|
|
||||||
"automerge": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Label images",
|
|
||||||
"matchDatasources": [
|
|
||||||
"docker"
|
|
||||||
],
|
|
||||||
"addLabels": [
|
|
||||||
"image"
|
|
||||||
],
|
|
||||||
"automerge": false,
|
|
||||||
"minimumReleaseAge": "3 days"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Label charts",
|
|
||||||
"matchDatasources": [
|
|
||||||
"helm"
|
|
||||||
],
|
|
||||||
"addLabels": [
|
|
||||||
"chart"
|
|
||||||
],
|
|
||||||
"automerge": false,
|
|
||||||
"minimumReleaseAge": "3 days"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
37
.github/workflows/lint-test.yaml
vendored
37
.github/workflows/lint-test.yaml
vendored
@@ -1,37 +0,0 @@
|
|||||||
name: lint-and-test-charts
|
|
||||||
|
|
||||||
on: pull_request
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
lint-test:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Set up Helm
|
|
||||||
uses: azure/setup-helm@v4
|
|
||||||
with:
|
|
||||||
version: v3.13.3
|
|
||||||
|
|
||||||
- uses: actions/setup-python@v5
|
|
||||||
with:
|
|
||||||
python-version: "3.10"
|
|
||||||
check-latest: true
|
|
||||||
|
|
||||||
- name: Set up chart-testing
|
|
||||||
uses: helm/chart-testing-action@v2.6.1
|
|
||||||
|
|
||||||
- name: Run chart-testing (list-changed)
|
|
||||||
id: list-changed
|
|
||||||
run: |
|
|
||||||
changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }})
|
|
||||||
if [[ -n "$changed" ]]; then
|
|
||||||
echo "changed=true" >> "$GITHUB_OUTPUT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Run chart-testing (lint)
|
|
||||||
if: steps.list-changed.outputs.changed == 'true'
|
|
||||||
run: ct lint --target-branch ${{ github.event.repository.default_branch }}
|
|
27
.github/workflows/release.yml
vendored
27
.github/workflows/release.yml
vendored
@@ -1,27 +0,0 @@
|
|||||||
name: release-charts
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
release:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Configure Git
|
|
||||||
run: |
|
|
||||||
git config user.name "$GITHUB_ACTOR"
|
|
||||||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
|
||||||
|
|
||||||
- name: Run chart-releaser
|
|
||||||
uses: helm/chart-releaser-action@v1.6.0
|
|
||||||
env:
|
|
||||||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
|
12
.gitignore
vendored
12
.gitignore
vendored
@@ -1,12 +0,0 @@
|
|||||||
# Archived
|
|
||||||
charts/**/archive
|
|
||||||
|
|
||||||
# Compiled Helm chart dependencies
|
|
||||||
charts/**/Chart.lock
|
|
||||||
charts/**/charts/
|
|
||||||
|
|
||||||
# Testing
|
|
||||||
__snapshot__/
|
|
||||||
|
|
||||||
# Docs
|
|
||||||
_site/
|
|
201
LICENSE
201
LICENSE
@@ -1,201 +0,0 @@
|
|||||||
Apache License
|
|
||||||
Version 2.0, January 2004
|
|
||||||
http://www.apache.org/licenses/
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
||||||
|
|
||||||
1. Definitions.
|
|
||||||
|
|
||||||
"License" shall mean the terms and conditions for use, reproduction,
|
|
||||||
and distribution as defined by Sections 1 through 9 of this document.
|
|
||||||
|
|
||||||
"Licensor" shall mean the copyright owner or entity authorized by
|
|
||||||
the copyright owner that is granting the License.
|
|
||||||
|
|
||||||
"Legal Entity" shall mean the union of the acting entity and all
|
|
||||||
other entities that control, are controlled by, or are under common
|
|
||||||
control with that entity. For the purposes of this definition,
|
|
||||||
"control" means (i) the power, direct or indirect, to cause the
|
|
||||||
direction or management of such entity, whether by contract or
|
|
||||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
||||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
||||||
|
|
||||||
"You" (or "Your") shall mean an individual or Legal Entity
|
|
||||||
exercising permissions granted by this License.
|
|
||||||
|
|
||||||
"Source" form shall mean the preferred form for making modifications,
|
|
||||||
including but not limited to software source code, documentation
|
|
||||||
source, and configuration files.
|
|
||||||
|
|
||||||
"Object" form shall mean any form resulting from mechanical
|
|
||||||
transformation or translation of a Source form, including but
|
|
||||||
not limited to compiled object code, generated documentation,
|
|
||||||
and conversions to other media types.
|
|
||||||
|
|
||||||
"Work" shall mean the work of authorship, whether in Source or
|
|
||||||
Object form, made available under the License, as indicated by a
|
|
||||||
copyright notice that is included in or attached to the work
|
|
||||||
(an example is provided in the Appendix below).
|
|
||||||
|
|
||||||
"Derivative Works" shall mean any work, whether in Source or Object
|
|
||||||
form, that is based on (or derived from) the Work and for which the
|
|
||||||
editorial revisions, annotations, elaborations, or other modifications
|
|
||||||
represent, as a whole, an original work of authorship. For the purposes
|
|
||||||
of this License, Derivative Works shall not include works that remain
|
|
||||||
separable from, or merely link (or bind by name) to the interfaces of,
|
|
||||||
the Work and Derivative Works thereof.
|
|
||||||
|
|
||||||
"Contribution" shall mean any work of authorship, including
|
|
||||||
the original version of the Work and any modifications or additions
|
|
||||||
to that Work or Derivative Works thereof, that is intentionally
|
|
||||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
||||||
or by an individual or Legal Entity authorized to submit on behalf of
|
|
||||||
the copyright owner. For the purposes of this definition, "submitted"
|
|
||||||
means any form of electronic, verbal, or written communication sent
|
|
||||||
to the Licensor or its representatives, including but not limited to
|
|
||||||
communication on electronic mailing lists, source code control systems,
|
|
||||||
and issue tracking systems that are managed by, or on behalf of, the
|
|
||||||
Licensor for the purpose of discussing and improving the Work, but
|
|
||||||
excluding communication that is conspicuously marked or otherwise
|
|
||||||
designated in writing by the copyright owner as "Not a Contribution."
|
|
||||||
|
|
||||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
||||||
on behalf of whom a Contribution has been received by Licensor and
|
|
||||||
subsequently incorporated within the Work.
|
|
||||||
|
|
||||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
copyright license to reproduce, prepare Derivative Works of,
|
|
||||||
publicly display, publicly perform, sublicense, and distribute the
|
|
||||||
Work and such Derivative Works in Source or Object form.
|
|
||||||
|
|
||||||
3. Grant of Patent License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
(except as stated in this section) patent license to make, have made,
|
|
||||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
||||||
where such license applies only to those patent claims licensable
|
|
||||||
by such Contributor that are necessarily infringed by their
|
|
||||||
Contribution(s) alone or by combination of their Contribution(s)
|
|
||||||
with the Work to which such Contribution(s) was submitted. If You
|
|
||||||
institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
||||||
or a Contribution incorporated within the Work constitutes direct
|
|
||||||
or contributory patent infringement, then any patent licenses
|
|
||||||
granted to You under this License for that Work shall terminate
|
|
||||||
as of the date such litigation is filed.
|
|
||||||
|
|
||||||
4. Redistribution. You may reproduce and distribute copies of the
|
|
||||||
Work or Derivative Works thereof in any medium, with or without
|
|
||||||
modifications, and in Source or Object form, provided that You
|
|
||||||
meet the following conditions:
|
|
||||||
|
|
||||||
(a) You must give any other recipients of the Work or
|
|
||||||
Derivative Works a copy of this License; and
|
|
||||||
|
|
||||||
(b) You must cause any modified files to carry prominent notices
|
|
||||||
stating that You changed the files; and
|
|
||||||
|
|
||||||
(c) You must retain, in the Source form of any Derivative Works
|
|
||||||
that You distribute, all copyright, patent, trademark, and
|
|
||||||
attribution notices from the Source form of the Work,
|
|
||||||
excluding those notices that do not pertain to any part of
|
|
||||||
the Derivative Works; and
|
|
||||||
|
|
||||||
(d) If the Work includes a "NOTICE" text file as part of its
|
|
||||||
distribution, then any Derivative Works that You distribute must
|
|
||||||
include a readable copy of the attribution notices contained
|
|
||||||
within such NOTICE file, excluding those notices that do not
|
|
||||||
pertain to any part of the Derivative Works, in at least one
|
|
||||||
of the following places: within a NOTICE text file distributed
|
|
||||||
as part of the Derivative Works; within the Source form or
|
|
||||||
documentation, if provided along with the Derivative Works; or,
|
|
||||||
within a display generated by the Derivative Works, if and
|
|
||||||
wherever such third-party notices normally appear. The contents
|
|
||||||
of the NOTICE file are for informational purposes only and
|
|
||||||
do not modify the License. You may add Your own attribution
|
|
||||||
notices within Derivative Works that You distribute, alongside
|
|
||||||
or as an addendum to the NOTICE text from the Work, provided
|
|
||||||
that such additional attribution notices cannot be construed
|
|
||||||
as modifying the License.
|
|
||||||
|
|
||||||
You may add Your own copyright statement to Your modifications and
|
|
||||||
may provide additional or different license terms and conditions
|
|
||||||
for use, reproduction, or distribution of Your modifications, or
|
|
||||||
for any such Derivative Works as a whole, provided Your use,
|
|
||||||
reproduction, and distribution of the Work otherwise complies with
|
|
||||||
the conditions stated in this License.
|
|
||||||
|
|
||||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
||||||
any Contribution intentionally submitted for inclusion in the Work
|
|
||||||
by You to the Licensor shall be under the terms and conditions of
|
|
||||||
this License, without any additional terms or conditions.
|
|
||||||
Notwithstanding the above, nothing herein shall supersede or modify
|
|
||||||
the terms of any separate license agreement you may have executed
|
|
||||||
with Licensor regarding such Contributions.
|
|
||||||
|
|
||||||
6. Trademarks. This License does not grant permission to use the trade
|
|
||||||
names, trademarks, service marks, or product names of the Licensor,
|
|
||||||
except as required for reasonable and customary use in describing the
|
|
||||||
origin of the Work and reproducing the content of the NOTICE file.
|
|
||||||
|
|
||||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
||||||
agreed to in writing, Licensor provides the Work (and each
|
|
||||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
||||||
implied, including, without limitation, any warranties or conditions
|
|
||||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
||||||
appropriateness of using or redistributing the Work and assume any
|
|
||||||
risks associated with Your exercise of permissions under this License.
|
|
||||||
|
|
||||||
8. Limitation of Liability. In no event and under no legal theory,
|
|
||||||
whether in tort (including negligence), contract, or otherwise,
|
|
||||||
unless required by applicable law (such as deliberate and grossly
|
|
||||||
negligent acts) or agreed to in writing, shall any Contributor be
|
|
||||||
liable to You for damages, including any direct, indirect, special,
|
|
||||||
incidental, or consequential damages of any character arising as a
|
|
||||||
result of this License or out of the use or inability to use the
|
|
||||||
Work (including but not limited to damages for loss of goodwill,
|
|
||||||
work stoppage, computer failure or malfunction, or any and all
|
|
||||||
other commercial damages or losses), even if such Contributor
|
|
||||||
has been advised of the possibility of such damages.
|
|
||||||
|
|
||||||
9. Accepting Warranty or Additional Liability. While redistributing
|
|
||||||
the Work or Derivative Works thereof, You may choose to offer,
|
|
||||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
||||||
or other liability obligations and/or rights consistent with this
|
|
||||||
License. However, in accepting such obligations, You may act only
|
|
||||||
on Your own behalf and on Your sole responsibility, not on behalf
|
|
||||||
of any other Contributor, and only if You agree to indemnify,
|
|
||||||
defend, and hold each Contributor harmless for any liability
|
|
||||||
incurred by, or claims asserted against, such Contributor by reason
|
|
||||||
of your accepting any such warranty or additional liability.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
APPENDIX: How to apply the Apache License to your work.
|
|
||||||
|
|
||||||
To apply the Apache License to your work, attach the following
|
|
||||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
||||||
replaced with your own identifying information. (Don't include
|
|
||||||
the brackets!) The text should be enclosed in the appropriate
|
|
||||||
comment syntax for the file format. We also recommend that a
|
|
||||||
file or class name and description of purpose be included on the
|
|
||||||
same "printed page" as the copyright notice for easier
|
|
||||||
identification within third-party archives.
|
|
||||||
|
|
||||||
Copyright [yyyy] [name of copyright owner]
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
1
_config.yml
Normal file
1
_config.yml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
theme: jekyll-theme-cayman
|
@@ -1,18 +0,0 @@
|
|||||||
apiVersion: v2
|
|
||||||
name: cloudflared
|
|
||||||
version: 1.4.0
|
|
||||||
description: Cloudflared Tunnel
|
|
||||||
keywords:
|
|
||||||
- cloudflare
|
|
||||||
- tunnel
|
|
||||||
sources:
|
|
||||||
- https://github.com/cloudflare/cloudflared
|
|
||||||
- https://github.com/bjw-s/helm-charts/tree/main/charts/library/common
|
|
||||||
maintainers:
|
|
||||||
- name: alexlebens
|
|
||||||
dependencies:
|
|
||||||
- name: common
|
|
||||||
repository: https://bjw-s.github.io/helm-charts/
|
|
||||||
version: 3.2.1
|
|
||||||
icon: https://avatars.githubusercontent.com/u/314135?s=48&v=4
|
|
||||||
appVersion: "2024.6.0"
|
|
@@ -1,16 +0,0 @@
|
|||||||
## Introduction
|
|
||||||
|
|
||||||
[Cloudflared](https://github.com/cloudflare/cloudflared)
|
|
||||||
|
|
||||||
Contains the command-line client for Cloudflare Tunnel, a tunneling daemon that proxies traffic from the Cloudflare network to your origins.
|
|
||||||
|
|
||||||
This chart bootstraps a [Cloudflared](https://github.com/cloudflare/cloudflared) tunnel on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
- Kubernetes
|
|
||||||
- Helm
|
|
||||||
|
|
||||||
## Parameters
|
|
||||||
|
|
||||||
See the [values files](values.yaml).
|
|
@@ -1,41 +0,0 @@
|
|||||||
{{- include "bjw-s.common.loader.init" . }}
|
|
||||||
|
|
||||||
{{- define "cloudflared.hardcodedValues" -}}
|
|
||||||
{{ if not .Values.global.nameOverride }}
|
|
||||||
global:
|
|
||||||
nameOverride: {{ .Values.name }}
|
|
||||||
{{ end }}
|
|
||||||
controllers:
|
|
||||||
main:
|
|
||||||
type: deployment
|
|
||||||
strategy: Recreate
|
|
||||||
containers:
|
|
||||||
main:
|
|
||||||
image:
|
|
||||||
repository: {{ .Values.image.repository }}
|
|
||||||
tag: {{ .Values.image.tag }}
|
|
||||||
pullPolicy: {{ .Values.image.pullPolicy }}
|
|
||||||
args:
|
|
||||||
- tunnel
|
|
||||||
- --protocol
|
|
||||||
- http2
|
|
||||||
- --no-autoupdate
|
|
||||||
- run
|
|
||||||
- --token
|
|
||||||
- $(CF_MANAGED_TUNNEL_TOKEN)
|
|
||||||
env:
|
|
||||||
- name: CF_MANAGED_TUNNEL_TOKEN
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ .Values.existingSecretName }}
|
|
||||||
key: {{ .Values.existingSecretKey }}
|
|
||||||
resources:
|
|
||||||
{{- with .Values.resources }}
|
|
||||||
resources:
|
|
||||||
{{- toYaml . | nindent 10 }}
|
|
||||||
{{ end }}
|
|
||||||
{{- end -}}
|
|
||||||
{{- $_ := mergeOverwrite .Values (include "cloudflared.hardcodedValues" . | fromYaml) -}}
|
|
||||||
|
|
||||||
{{/* Render the templates */}}
|
|
||||||
{{ include "bjw-s.common.loader.generate" . }}
|
|
@@ -1,11 +0,0 @@
|
|||||||
name: cloudflared
|
|
||||||
existingSecretName: cloudflared-secret
|
|
||||||
existingSecretKey: cf-tunnel-token
|
|
||||||
image:
|
|
||||||
repository: cloudflare/cloudflared
|
|
||||||
tag: "2024.6.0"
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 128Mi
|
|
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: v2
|
|
||||||
name: mysql-cluster
|
|
||||||
version: 0.2.1
|
|
||||||
description: Chart for a mysql cluster
|
|
||||||
keywords:
|
|
||||||
- database
|
|
||||||
- mysql
|
|
||||||
sources:
|
|
||||||
- https://dev.mysql.com/
|
|
||||||
- https://github.com/mysql/mysql-operator
|
|
||||||
- https://github.com/mysql/mysql-operator/tree/trunk/helm/mysql-innodbcluster
|
|
||||||
maintainers:
|
|
||||||
- name: alexlebens
|
|
||||||
icon: https://avatars.githubusercontent.com/u/2452804?s=48&v=4
|
|
||||||
appVersion: 8.4.0
|
|
@@ -1,17 +0,0 @@
|
|||||||
## Introduction
|
|
||||||
|
|
||||||
[MySQL Operator](https://dev.mysql.com/doc/mysql-operator/en/)
|
|
||||||
|
|
||||||
MySQL Operator for Kubernetes manages MySQL InnoDB Cluster setups inside a Kubernetes Cluster. MySQL Operator for Kubernetes manages the full lifecycle with setup and maintenance including automating upgrades and backups.
|
|
||||||
|
|
||||||
This chart bootstraps a [MySQL InnoDB](https://dev.mysql.com/doc/mysql-operator/en/mysql-operator-innodbcluster.html) cluster on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
- Kubernetes
|
|
||||||
- Helm
|
|
||||||
- MySQL Operator
|
|
||||||
|
|
||||||
## Parameters
|
|
||||||
|
|
||||||
See the [values files](values.yaml).
|
|
@@ -1,72 +0,0 @@
|
|||||||
{{- define "cluster.backup" -}}
|
|
||||||
|
|
||||||
{{- if and .Values.backup.enabled .Values.backup.profiles }}
|
|
||||||
backupProfiles:
|
|
||||||
{{- $isDumpInstance := false }}
|
|
||||||
{{- $isSnapshot := false }}
|
|
||||||
{{- range $_, $profile := .Values.backup.profiles }}
|
|
||||||
- name: {{ $profile.name | quote }}
|
|
||||||
{{- if hasKey $profile "podAnnotations" }}
|
|
||||||
podAnnotations:
|
|
||||||
{{ toYaml $profile.podAnnotations | nindent 6 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if hasKey $profile "podLabels" }}
|
|
||||||
podLabels:
|
|
||||||
{{ toYaml $profile.podLabels | nindent 6 }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- $isDumpInstance = hasKey $profile "dumpInstance" }}
|
|
||||||
{{- $isSnapshot = hasKey $profile "snapshot" }}
|
|
||||||
{{- if or $isDumpInstance $isSnapshot }}
|
|
||||||
|
|
||||||
{{- $backupProfile := ternary $profile.dumpInstance $profile.snapshot $isDumpInstance }}
|
|
||||||
{{- if $isDumpInstance }}
|
|
||||||
dumpInstance:
|
|
||||||
{{- else if $isSnapshot }}
|
|
||||||
snapshot:
|
|
||||||
{{- else }}
|
|
||||||
{{- fail "Unsupported or unspecified backup type, must be either snapshot or dumpInstance" }}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{- if not (hasKey $backupProfile "storage") }}
|
|
||||||
{{- fail "backup profile $profile.name has no storage section" }}
|
|
||||||
{{- else if hasKey $backupProfile.storage "s3" }}
|
|
||||||
storage:
|
|
||||||
s3:
|
|
||||||
{{- if $backupProfile.storage.s3.prefix }}
|
|
||||||
prefix: {{ $backupProfile.storage.s3.prefix }}
|
|
||||||
{{- end }}
|
|
||||||
bucketName: {{ required "bucketName is required" $backupProfile.storage.s3.bucketName }}
|
|
||||||
config: {{ required "config is required" $backupProfile.storage.s3.config }}
|
|
||||||
{{- if $backupProfile.storage.s3.profile }}
|
|
||||||
profile: {{ $backupProfile.storage.s3.profile }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if $backupProfile.storage.s3.endpoint }}
|
|
||||||
endpoint: {{ $backupProfile.storage.s3.endpoint }}
|
|
||||||
{{- end }}
|
|
||||||
{{- else if hasKey $backupProfile.storage "persistentVolumeClaim" }}
|
|
||||||
storage:
|
|
||||||
persistentVolumeClaim: {{ toYaml $backupProfile.storage.persistentVolumeClaim | nindent 12}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- fail "Backup profile $profile.name has empty storage section - neither s3 nor persistentVolumeClaim defined" }}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if .Values.backup.schedules }}
|
|
||||||
backupSchedules:
|
|
||||||
{{- range $_, $schedule := .Values.backup.schedules }}
|
|
||||||
- name: {{ $schedule.name | quote }}
|
|
||||||
enabled: {{ $schedule.enabled }}
|
|
||||||
schedule: {{ quote $schedule.schedule }}
|
|
||||||
{{- if ($schedule).timeZone }}
|
|
||||||
timeZone: {{ quote $schedule.timeZone }}
|
|
||||||
{{- end }}
|
|
||||||
deleteBackupData: {{ $schedule.deleteBackupData }}
|
|
||||||
backupProfileName: {{ $schedule.backupProfileName }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- end }}
|
|
@@ -1,64 +0,0 @@
|
|||||||
{{/*
|
|
||||||
Expand the name of the chart.
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.name" -}}
|
|
||||||
{{- if .Values.global.nameOverride }}
|
|
||||||
{{- .Values.global.nameOverride | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- else }}
|
|
||||||
{{- printf "%s-mysql-%s" .Release.Name ((semver .Values.cluster.image.version).Major | toString) | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Create chart name and version as used by the chart label.
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.chart" -}}
|
|
||||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Check for invalid versions
|
|
||||||
*/}}
|
|
||||||
{{- $minimalVersion := "8.0.27" }}
|
|
||||||
{{- $forbiddenVersions := list "8.0.29" }}
|
|
||||||
{{- $serverVersion := .Values.serverVersion | default .Chart.AppVersion }}
|
|
||||||
{{- if lt $serverVersion $minimalVersion }}
|
|
||||||
{{- $err := printf "It is not possible to use MySQL version %s . Please, use %s or above" $serverVersion $minimalVersion }}
|
|
||||||
{{- fail $err }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if has $serverVersion $forbiddenVersions }}
|
|
||||||
{{- $err := printf "It is not possible to use MySQL version %s . Please, use %s or above except %v" $serverVersion $minimalVersion $forbiddenVersions }}
|
|
||||||
{{- fail $err }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Common labels
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.labels" -}}
|
|
||||||
helm.sh/chart: {{ include "cluster.chart" . }}
|
|
||||||
{{ include "cluster.selectorLabels" . }}
|
|
||||||
{{- if .Chart.AppVersion }}
|
|
||||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
|
||||||
{{- end }}
|
|
||||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Selector labels
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.selectorLabels" -}}
|
|
||||||
app.kubernetes.io/name: {{ include "cluster.name" . }}
|
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
||||||
app.kubernetes.io/part-of: cloudnative-pg
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Create the name of the service account to use.
|
|
||||||
*/}}
|
|
||||||
{{- define "mysql.serviceAccountName" -}}
|
|
||||||
{{- if .Values.serviceAccount.enabled -}}
|
|
||||||
{{ default (include "cluster.name" .) .Values.serviceAccount.name }}
|
|
||||||
{{- else -}}
|
|
||||||
{{ default "default" .Values.serviceAccount.name }}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
@@ -1,47 +0,0 @@
|
|||||||
{{- define "cluster.init" -}}
|
|
||||||
|
|
||||||
{{- if eq .Values.mode "clone" }}
|
|
||||||
{{- with .Values.clone }}
|
|
||||||
initDB:
|
|
||||||
clone:
|
|
||||||
donorUrl: {{ required "clone donorUrl is required" .donorUrl }}
|
|
||||||
rootUser: {{ .rootUser | default "root" }}
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ required "clone credentials is required" .exisitingCredentialsSecret }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if eq .Values.mode "recovery" }}
|
|
||||||
{{- with .Values.recovery }}
|
|
||||||
initDB:
|
|
||||||
dump:
|
|
||||||
{{- if .name }}
|
|
||||||
name: {{ .name | quote }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .path }}
|
|
||||||
path: {{ .path | quote }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .options }}
|
|
||||||
options: {{ toYaml .options | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
storage:
|
|
||||||
{{- if eq .type "s3" }}
|
|
||||||
s3:
|
|
||||||
prefix: {{ required "s3 prefix is required" .s3.prefix }}
|
|
||||||
bucketName: {{ required "s3 bucketName is required" .s3.bucketName }}
|
|
||||||
config: {{ required "s3 config is required" .s3.config }}
|
|
||||||
{{- if .s3.profile }}
|
|
||||||
profile: {{ .s3.profile }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .s3.endpoint }}
|
|
||||||
endpoint: {{ .s3.endpoint }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if eq .type "pvc" }}
|
|
||||||
persistentVolumeClaim:
|
|
||||||
{{ toYaml .persistentVolumeClaim | nindent 10}}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- end }}
|
|
@@ -1,75 +0,0 @@
|
|||||||
apiVersion: mysql.oracle.com/v2
|
|
||||||
kind: InnoDBCluster
|
|
||||||
metadata:
|
|
||||||
name: {{ include "cluster.name" . }}-cluster
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
annotations:
|
|
||||||
{{- with .Values.global.annotations }}
|
|
||||||
{{- toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
labels:
|
|
||||||
{{- include "cluster.labels" . | nindent 4 }}
|
|
||||||
{{- include "cluster.selectorLabels" . | nindent 4 }}
|
|
||||||
{{- with .Values.global.labels }}
|
|
||||||
{{ toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
spec:
|
|
||||||
instances: {{ required "serverInstances is required" .Values.cluster.serverInstances }}
|
|
||||||
baseServerId: {{ required "baseServerId is required" .Values.cluster.baseServerId }}
|
|
||||||
serviceAccountName: {{ include "mysql.serviceAccountName" . }}
|
|
||||||
imagePullPolicy : {{ .Values.cluster.image.pullPolicy }}
|
|
||||||
version: {{ .Values.cluster.image.version }}
|
|
||||||
tlsUseSelfSigned: true
|
|
||||||
secretName: {{ .Values.cluster.exisitingCredentialsSecret }}
|
|
||||||
podSpec:
|
|
||||||
{{- with .Values.cluster.podSpec }}
|
|
||||||
{{ toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
podAnnotations:
|
|
||||||
{{- with .Values.cluster.podAnnotations }}
|
|
||||||
{{ toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
podLabels:
|
|
||||||
{{- with .Values.cluster.podLabels }}
|
|
||||||
{{ toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
router:
|
|
||||||
instances: {{ required "router.instances is required" .Values.cluster.router.instances }}
|
|
||||||
podSpec:
|
|
||||||
{{- with .Values.cluster.router.podSpec }}
|
|
||||||
{{- toYaml . | nindent 6 }}
|
|
||||||
{{- end }}
|
|
||||||
podAnnotations:
|
|
||||||
{{- with .Values.cluster.router.podAnnotations }}
|
|
||||||
{{- toYaml . | nindent 6 }}
|
|
||||||
{{- end }}
|
|
||||||
podLabels:
|
|
||||||
{{- with .Values.cluster.router.podLabels }}
|
|
||||||
{{- toYaml . | nindent 6 }}
|
|
||||||
{{- end }}
|
|
||||||
tlsSecretName: {{ include "cluster.name" . }}-router-tls
|
|
||||||
logs:
|
|
||||||
{{- with .Values.cluster.logs }}
|
|
||||||
{{ toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
mycnf: |
|
|
||||||
{{ .Values.cluster.serverConfig.mycnf | indent 4 }}
|
|
||||||
{{- if .Values.cluster.datadirVolumeClaimTemplate }}
|
|
||||||
{{- with .Values.cluster.datadirVolumeClaimTemplate }}
|
|
||||||
datadirVolumeClaimTemplate:
|
|
||||||
{{- if .storageClassName }}
|
|
||||||
storageClassName: {{ .storageClassName | quote }}
|
|
||||||
{{- end}}
|
|
||||||
{{- if .accessModes }}
|
|
||||||
accessModes: [ "{{ .accessModes }}" ]
|
|
||||||
{{- end }}
|
|
||||||
{{- if .size }}
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "{{ .size }}"
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{ include "cluster.init" . | nindent 2 }}
|
|
||||||
{{ include "cluster.backup" . | nindent 2 }}
|
|
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ServiceAccount
|
|
||||||
metadata:
|
|
||||||
name: {{ include "mysql.serviceAccountName" . }}
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
labels:
|
|
||||||
{{- include "cluster.labels" . | nindent 4 }}
|
|
||||||
{{- include "cluster.selectorLabels" . | nindent 4 }}
|
|
||||||
{{- with .Values.global.labels }}
|
|
||||||
{{- toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.serviceAccount.labels }}
|
|
||||||
{{- toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
annotations:
|
|
||||||
{{- with .Values.global.annotations }}
|
|
||||||
{{- toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.serviceAccount.annotations }}
|
|
||||||
{{- toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
@@ -1,148 +0,0 @@
|
|||||||
global:
|
|
||||||
nameOverride:
|
|
||||||
labels: {}
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
serviceAccount:
|
|
||||||
enabled: true
|
|
||||||
labels: {}
|
|
||||||
annotations: {}
|
|
||||||
name: ""
|
|
||||||
|
|
||||||
###
|
|
||||||
# Cluster mode of operation. Available modes:
|
|
||||||
# * `standalone` - Default mode. Creates new or updates an existing cluster.
|
|
||||||
# * `recovery` - Same as standalone but creates a cluster from a backup
|
|
||||||
# * `clone` - Create database as a replica from another cluster
|
|
||||||
mode: standalone
|
|
||||||
|
|
||||||
##
|
|
||||||
# Cluster spec
|
|
||||||
#
|
|
||||||
# Reference: https://dev.mysql.com/doc/mysql-operator/en/mysql-operator-properties.html#mysql-operator-spec-innodbclusterspecinitdbdumpstorages3
|
|
||||||
#
|
|
||||||
cluster:
|
|
||||||
serverInstances: 1
|
|
||||||
baseServerId: 1000
|
|
||||||
|
|
||||||
# Existing secret that contains the keys "rootUser", "rootHost", and "rootPassword"
|
|
||||||
exisitingCredentialsSecret: ""
|
|
||||||
|
|
||||||
image:
|
|
||||||
version: 8.4.0
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
router:
|
|
||||||
instances: 1
|
|
||||||
podSpec: {}
|
|
||||||
podAnnotations: {}
|
|
||||||
podLabels: {}
|
|
||||||
|
|
||||||
logs:
|
|
||||||
error:
|
|
||||||
enabled: true
|
|
||||||
collect: false
|
|
||||||
general:
|
|
||||||
enabled: false
|
|
||||||
collect: false
|
|
||||||
slowQuery:
|
|
||||||
enabled: false
|
|
||||||
longQueryTime: 2.5
|
|
||||||
|
|
||||||
serverConfig:
|
|
||||||
mycnf: |
|
|
||||||
[mysqld]
|
|
||||||
core_file
|
|
||||||
local_infile=off
|
|
||||||
mysql_native_password=ON
|
|
||||||
|
|
||||||
datadirVolumeClaimTemplate:
|
|
||||||
storageClassName: ""
|
|
||||||
accessModes: ""
|
|
||||||
size: ""
|
|
||||||
|
|
||||||
podSpec:
|
|
||||||
containers:
|
|
||||||
- name: mysql
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 1024Mi
|
|
||||||
cpu: 1000m
|
|
||||||
requests:
|
|
||||||
memory: 512Mi
|
|
||||||
cpu: 100m
|
|
||||||
podAnnotations: {}
|
|
||||||
podLabels: {}
|
|
||||||
|
|
||||||
##
|
|
||||||
# Recovery database from storage
|
|
||||||
#
|
|
||||||
recovery:
|
|
||||||
|
|
||||||
# * `s3` - Restores from s3 object store
|
|
||||||
# * `pvc` - Restores from persistent volume claim
|
|
||||||
type:
|
|
||||||
|
|
||||||
# -- Name of the dump. Not used by the operator, but a descriptive hint for the cluster administrator
|
|
||||||
name: ""
|
|
||||||
# -- Path to the dump in the PVC. Use when specifying persistentVolumeClaim. Omit for ociObjectStorage, S3, or azure.
|
|
||||||
path: ""
|
|
||||||
# -- A dictionary of key-value pairs passed directly to MySQL Shell's loadDump()
|
|
||||||
options: {}
|
|
||||||
|
|
||||||
s3:
|
|
||||||
# -- Path in the bucket where the dump files are stored
|
|
||||||
prefix: ""
|
|
||||||
# -- Name of a Secret with S3 configuration and credentials as contained in ~/.aws/config
|
|
||||||
config: ""
|
|
||||||
# -- Name of the S3 bucket where the dump is stored
|
|
||||||
bucketName: ""
|
|
||||||
# -- Override endpoint URL
|
|
||||||
endpoint: ""
|
|
||||||
|
|
||||||
persistentVolumeClaim: {}
|
|
||||||
|
|
||||||
##
|
|
||||||
# Clone database from another instance
|
|
||||||
#
|
|
||||||
clone:
|
|
||||||
donorUrl: ""
|
|
||||||
rootUser: root
|
|
||||||
exisitingCredentialsSecret: ""
|
|
||||||
|
|
||||||
##
|
|
||||||
# Backup database to pvc or s3
|
|
||||||
#
|
|
||||||
backup:
|
|
||||||
enabled: false
|
|
||||||
profiles:
|
|
||||||
|
|
||||||
## -- Example profile that back ups to local pvc
|
|
||||||
|
|
||||||
# - name: pvc-backup
|
|
||||||
# dumpInstance:
|
|
||||||
# storage:
|
|
||||||
# persistentVolumeClaim:
|
|
||||||
# claimName: backup-volume-claim
|
|
||||||
|
|
||||||
## -- Example profile that back ups to s3 endpoint
|
|
||||||
|
|
||||||
# - name: s3-backup
|
|
||||||
# snapshot:
|
|
||||||
# storage:
|
|
||||||
# s3:
|
|
||||||
# prefix: ""
|
|
||||||
# config: ""
|
|
||||||
# bucketName: ""
|
|
||||||
# endpoint: ""
|
|
||||||
|
|
||||||
schedules:
|
|
||||||
|
|
||||||
## -- Example schedule that backups daily
|
|
||||||
|
|
||||||
# - name: schedule-daily
|
|
||||||
# enabled: true
|
|
||||||
# schedule: "0 0 0 * * *"
|
|
||||||
# timeZone: "US/Central"
|
|
||||||
# deleteBackupData: false
|
|
||||||
# backupProfileName:
|
|
@@ -1,13 +0,0 @@
|
|||||||
apiVersion: v2
|
|
||||||
name: postgres-cluster
|
|
||||||
version: 3.4.0
|
|
||||||
description: Chart for cloudnative-pg cluster
|
|
||||||
keywords:
|
|
||||||
- database
|
|
||||||
- postgres
|
|
||||||
sources:
|
|
||||||
- https://github.com/cloudnative-pg/cloudnative-pg
|
|
||||||
maintainers:
|
|
||||||
- name: alexlebens
|
|
||||||
icon: https://avatars.githubusercontent.com/u/100373852?s=48&v=4
|
|
||||||
appVersion: v1.23.1
|
|
@@ -1,17 +0,0 @@
|
|||||||
## Introduction
|
|
||||||
|
|
||||||
[CloudNative PG](https://github.com/cloudnative-pg/cloudnative-pg)
|
|
||||||
|
|
||||||
CloudNativePG is the Kubernetes operator that covers the full lifecycle of a highly available PostgreSQL database cluster with a primary/standby architecture, using native streaming replication.
|
|
||||||
|
|
||||||
This chart bootstraps a [CNPG](https://github.com/cloudnative-pg/cloudnative-pg) cluster on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
- Kubernetes
|
|
||||||
- Helm
|
|
||||||
- CloudNative PG Operator
|
|
||||||
|
|
||||||
## Parameters
|
|
||||||
|
|
||||||
See the [values files](values.yaml).
|
|
@@ -1,30 +0,0 @@
|
|||||||
{{- define "cluster.backup" -}}
|
|
||||||
{{- if .Values.backup.enabled }}
|
|
||||||
backup:
|
|
||||||
retentionPolicy: {{ .Values.backup.retentionPolicy }}
|
|
||||||
barmanObjectStore:
|
|
||||||
destinationPath: {{ .Values.backup.destinationPath }}
|
|
||||||
endpointURL: {{ .Values.backup.endpointURL }}
|
|
||||||
{{- if .Values.backup.endpointCA }}
|
|
||||||
endpointCA:
|
|
||||||
name: {{ .Values.backup.endpointCA }}
|
|
||||||
key: ca-bundle.crt
|
|
||||||
{{- end }}
|
|
||||||
serverName: "{{ include "cluster.name" . }}-backup-{{ .Values.backup.backupIndex }}"
|
|
||||||
s3Credentials:
|
|
||||||
accessKeyId:
|
|
||||||
name: {{ include "cluster.backupCredentials" . }}
|
|
||||||
key: ACCESS_KEY_ID
|
|
||||||
secretAccessKey:
|
|
||||||
name: {{ include "cluster.backupCredentials" . }}
|
|
||||||
key: ACCESS_SECRET_KEY
|
|
||||||
wal:
|
|
||||||
compression: {{ .Values.backup.wal.compression }}
|
|
||||||
encryption: {{ .Values.backup.wal.encryption }}
|
|
||||||
maxParallel: {{ .Values.backup.wal.maxParallel }}
|
|
||||||
data:
|
|
||||||
compression: {{ .Values.backup.data.compression }}
|
|
||||||
encryption: {{ .Values.backup.data.encryption }}
|
|
||||||
jobs: {{ .Values.backup.data.jobs }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
@@ -1,91 +0,0 @@
|
|||||||
{{- define "cluster.bootstrap" -}}
|
|
||||||
bootstrap:
|
|
||||||
{{- if eq .Values.mode "standalone" }}
|
|
||||||
initdb:
|
|
||||||
{{- with .Values.cluster.initdb }}
|
|
||||||
{{- with (omit . "postInitApplicationSQL") }}
|
|
||||||
{{- . | toYaml | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
postInitApplicationSQL:
|
|
||||||
{{- if eq .Values.type "postgis" }}
|
|
||||||
- CREATE EXTENSION IF NOT EXISTS postgis;
|
|
||||||
- CREATE EXTENSION IF NOT EXISTS postgis_topology;
|
|
||||||
- CREATE EXTENSION IF NOT EXISTS fuzzystrmatch;
|
|
||||||
- CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder;
|
|
||||||
{{- else if eq .Values.type "timescaledb" }}
|
|
||||||
- CREATE EXTENSION IF NOT EXISTS timescaledb;
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.cluster.initdb }}
|
|
||||||
{{- range .postInitApplicationSQL }}
|
|
||||||
{{- printf "- %s" . | nindent 6 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- else if eq .Values.mode "replica" }}
|
|
||||||
initdb:
|
|
||||||
import:
|
|
||||||
type: {{ .Values.replica.importType }}
|
|
||||||
databases:
|
|
||||||
{{- if and (gt (len .Values.replica.importDatabases) 1) (eq .Values.replica.importType "microservice") }}
|
|
||||||
{{ fail "Too many databases in import type of microservice!" }}
|
|
||||||
{{- else}}
|
|
||||||
{{- with .Values.replica.importDatabases }}
|
|
||||||
{{- . | toYaml | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if eq .Values.replica.importType "monolith" }}
|
|
||||||
roles:
|
|
||||||
{{- with .Values.replica.importRoles }}
|
|
||||||
{{- . | toYaml | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if and (.Values.replica.postImportApplicationSQL) (eq .Values.replica.importType "microservice") }}
|
|
||||||
postImportApplicationSQL:
|
|
||||||
{{- with .Values.replica.postImportApplicationSQL }}
|
|
||||||
{{- . | toYaml | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
source:
|
|
||||||
externalCluster: "{{ include "cluster.name" . }}-cluster"
|
|
||||||
externalClusters:
|
|
||||||
- name: "{{ include "cluster.name" . }}-cluster"
|
|
||||||
{{- with .Values.replica.externalCluster }}
|
|
||||||
{{- . | toYaml | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- else if eq .Values.mode "recovery" }}
|
|
||||||
recovery:
|
|
||||||
{{- with .Values.recovery.pitrTarget.time }}
|
|
||||||
recoveryTarget:
|
|
||||||
targetTime: {{ . }}
|
|
||||||
{{- end }}
|
|
||||||
source: {{ include "cluster.recoveryServerName" . }}
|
|
||||||
externalClusters:
|
|
||||||
- name: {{ include "cluster.recoveryServerName" . }}
|
|
||||||
barmanObjectStore:
|
|
||||||
serverName: {{ include "cluster.recoveryServerName" . }}
|
|
||||||
destinationPath: {{ .Values.recovery.destinationPath }}
|
|
||||||
endpointURL: {{ .Values.recovery.endpointURL }}
|
|
||||||
{{- with .Values.recovery.endpointCA }}
|
|
||||||
endpointCA:
|
|
||||||
name: {{ . }}
|
|
||||||
key: ca-bundle.crt
|
|
||||||
{{- end }}
|
|
||||||
s3Credentials:
|
|
||||||
accessKeyId:
|
|
||||||
name: {{ include "cluster.recoveryCredentials" . }}
|
|
||||||
key: ACCESS_KEY_ID
|
|
||||||
secretAccessKey:
|
|
||||||
name: {{ include "cluster.recoveryCredentials" . }}
|
|
||||||
key: ACCESS_SECRET_KEY
|
|
||||||
wal:
|
|
||||||
compression: {{ .Values.recovery.wal.compression }}
|
|
||||||
encryption: {{ .Values.recovery.wal.encryption }}
|
|
||||||
maxParallel: {{ .Values.recovery.wal.maxParallel }}
|
|
||||||
data:
|
|
||||||
compression: {{ .Values.recovery.data.compression }}
|
|
||||||
encryption: {{ .Values.recovery.data.encryption }}
|
|
||||||
jobs: {{ .Values.recovery.data.jobs }}
|
|
||||||
{{- else }}
|
|
||||||
{{ fail "Invalid cluster mode!" }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
@@ -1,91 +0,0 @@
|
|||||||
{{/*
|
|
||||||
Expand the name of the chart.
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.name" -}}
|
|
||||||
{{- if .Values.nameOverride }}
|
|
||||||
{{- .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- else }}
|
|
||||||
{{- printf "%s-postgresql-%s" .Release.Name ((semver .Values.cluster.image.tag).Major | toString) | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Create chart name and version as used by the chart label.
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.chart" -}}
|
|
||||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Common labels
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.labels" -}}
|
|
||||||
helm.sh/chart: {{ include "cluster.chart" . }}
|
|
||||||
{{ include "cluster.selectorLabels" . }}
|
|
||||||
{{- if .Chart.AppVersion }}
|
|
||||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
|
||||||
{{- end }}
|
|
||||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Selector labels
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.selectorLabels" -}}
|
|
||||||
app.kubernetes.io/name: {{ include "cluster.name" . }}
|
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
||||||
app.kubernetes.io/part-of: cloudnative-pg
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Generate name for object store credentials
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.recoveryCredentials" -}}
|
|
||||||
{{- if .Values.recovery.endpointCredentials -}}
|
|
||||||
{{- .Values.recovery.endpointCredentials -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- printf "%s-backup-secret" (include "cluster.name" .) | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- define "cluster.backupCredentials" -}}
|
|
||||||
{{- if .Values.backup.endpointCredentials -}}
|
|
||||||
{{- .Values.backup.endpointCredentials -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- printf "%s-backup-secret" (include "cluster.name" .) | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Generate backup server name
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.backupName" -}}
|
|
||||||
{{- if .Values.backup.backupName -}}
|
|
||||||
{{- .Values.backup.backupName -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{ include "cluster.name" . }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Generate recovery server name
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.recoveryServerName" -}}
|
|
||||||
{{- if .Values.recovery.recoveryServerName -}}
|
|
||||||
{{- .Values.recovery.recoveryServerName -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- printf "%s-backup-%s" (include "cluster.name" .) (toString .Values.recovery.recoveryIndex) | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Generate recovery instance name
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.recoveryInstanceName" -}}
|
|
||||||
{{- if .Values.recovery.recoveryInstanceName -}}
|
|
||||||
{{- .Values.recovery.recoveryInstanceName -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{ include "cluster.name" . }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
@@ -1,52 +0,0 @@
|
|||||||
apiVersion: postgresql.cnpg.io/v1
|
|
||||||
kind: Cluster
|
|
||||||
metadata:
|
|
||||||
name: {{ include "cluster.name" . }}-cluster
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
{{- with .Values.cluster.annotations }}
|
|
||||||
annotations:
|
|
||||||
{{- toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
labels:
|
|
||||||
{{- include "cluster.labels" . | nindent 4 }}
|
|
||||||
{{- with .Values.cluster.additionalLabels }}
|
|
||||||
{{ toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
spec:
|
|
||||||
instances: {{ .Values.cluster.instances }}
|
|
||||||
imageName: "{{ .Values.cluster.image.repository }}:{{ .Values.cluster.image.tag }}"
|
|
||||||
imagePullPolicy: {{ .Values.cluster.image.pullPolicy }}
|
|
||||||
postgresUID: {{ .Values.cluster.postgresUID }}
|
|
||||||
postgresGID: {{ .Values.cluster.postgresGID }}
|
|
||||||
walStorage:
|
|
||||||
size: {{ .Values.cluster.walStorage.size }}
|
|
||||||
storageClass: {{ .Values.cluster.walStorage.storageClass }}
|
|
||||||
storage:
|
|
||||||
size: {{ .Values.cluster.storage.size }}
|
|
||||||
storageClass: {{ .Values.cluster.storage.storageClass }}
|
|
||||||
{{- with .Values.cluster.resources }}
|
|
||||||
resources:
|
|
||||||
{{- toYaml . | nindent 4 }}
|
|
||||||
{{ end }}
|
|
||||||
{{- with .Values.cluster.affinity }}
|
|
||||||
affinity:
|
|
||||||
{{- toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
priorityClassName: {{ .Values.cluster.priorityClassName }}
|
|
||||||
primaryUpdateMethod: {{ .Values.cluster.primaryUpdateMethod }}
|
|
||||||
primaryUpdateStrategy: {{ .Values.cluster.primaryUpdateStrategy }}
|
|
||||||
logLevel: {{ .Values.cluster.logLevel }}
|
|
||||||
postgresql:
|
|
||||||
shared_preload_libraries:
|
|
||||||
{{- if eq .Values.type "timescaledb" }}
|
|
||||||
- timescaledb
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.cluster.postgresql.parameters }}
|
|
||||||
parameters:
|
|
||||||
{{- toYaml . | nindent 6 }}
|
|
||||||
{{ end }}
|
|
||||||
monitoring:
|
|
||||||
enablePodMonitor: {{ and .Values.cluster.monitoring.enabled .Values.cluster.monitoring.podMonitor.enabled }}
|
|
||||||
|
|
||||||
{{ include "cluster.bootstrap" . | nindent 2 }}
|
|
||||||
{{ include "cluster.backup" . | nindent 2 }}
|
|
@@ -1,30 +0,0 @@
|
|||||||
{{- if and .Values.cluster.monitoring.enabled .Values.cluster.monitoring.prometheusRule.enabled -}}
|
|
||||||
apiVersion: monitoring.coreos.com/v1
|
|
||||||
kind: PrometheusRule
|
|
||||||
metadata:
|
|
||||||
name: {{ include "cluster.name" . }}-alert-rules
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
labels:
|
|
||||||
{{- include "cluster.labels" . | nindent 4 }}
|
|
||||||
{{- with .Values.cluster.additionalLabels }}
|
|
||||||
{{ toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
spec:
|
|
||||||
groups:
|
|
||||||
- name: cloudnative-pg/{{ include "cluster.name" . }}
|
|
||||||
rules:
|
|
||||||
{{- $dict := dict "excludeRules" .Values.cluster.monitoring.prometheusRule.excludeRules -}}
|
|
||||||
{{- $_ := set $dict "value" "{{ $value }}" -}}
|
|
||||||
{{- $_ := set $dict "namespace" .Release.Namespace -}}
|
|
||||||
{{- $_ := set $dict "cluster" (printf "%s-cluster" (include "cluster.name" .) ) -}}
|
|
||||||
{{- $_ := set $dict "labels" (dict "job" "{{ $labels.job }}" "node" "{{ $labels.node }}" "pod" "{{ $labels.pod }}") -}}
|
|
||||||
{{- $_ := set $dict "podSelector" (printf "%s-cluster-([1-9][0-9]*)$" (include "cluster.name" .) ) -}}
|
|
||||||
{{- $_ := set $dict "Values" .Values -}}
|
|
||||||
{{- $_ := set $dict "Template" .Template -}}
|
|
||||||
{{- range $path, $_ := .Files.Glob "prometheus_rules/**.yaml" }}
|
|
||||||
{{- $tpl := tpl ($.Files.Get $path) $dict | nindent 10 | trim -}}
|
|
||||||
{{- with $tpl }}
|
|
||||||
- {{ $tpl }}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{ end }}
|
|
@@ -1,18 +0,0 @@
|
|||||||
{{ if .Values.backup.enabled }}
|
|
||||||
apiVersion: postgresql.cnpg.io/v1
|
|
||||||
kind: ScheduledBackup
|
|
||||||
metadata:
|
|
||||||
name: {{ include "cluster.name" . }}-scheduled-backup
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
labels:
|
|
||||||
{{- include "cluster.labels" . | nindent 4 }}
|
|
||||||
{{- with .Values.cluster.additionalLabels }}
|
|
||||||
{{ toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
spec:
|
|
||||||
immediate: true
|
|
||||||
schedule: {{ .Values.backup.schedule }}
|
|
||||||
backupOwnerReference: self
|
|
||||||
cluster:
|
|
||||||
name: {{ include "cluster.name" . }}-cluster
|
|
||||||
{{ end }}
|
|
@@ -1,197 +0,0 @@
|
|||||||
# -- Override the name of the cluster
|
|
||||||
nameOverride: ""
|
|
||||||
|
|
||||||
###
|
|
||||||
# -- Type of the CNPG database. Available types:
|
|
||||||
# * `postgresql`
|
|
||||||
# * `postgis`
|
|
||||||
# * `timescaledb`
|
|
||||||
type: postgresql
|
|
||||||
|
|
||||||
###
|
|
||||||
# Cluster mode of operation. Available modes:
|
|
||||||
# * `standalone` - Default mode. Creates new or updates an existing CNPG cluster.
|
|
||||||
# * `recovery` - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup
|
|
||||||
# * `replica` - Create database as a replica from another CNPG cluster
|
|
||||||
mode: standalone
|
|
||||||
|
|
||||||
cluster:
|
|
||||||
instances: 3
|
|
||||||
|
|
||||||
image:
|
|
||||||
repository: ghcr.io/cloudnative-pg/postgresql
|
|
||||||
tag: "16.3"
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
# The UID and GID of the postgres user inside the image
|
|
||||||
postgresUID: 26
|
|
||||||
postgresGID: 26
|
|
||||||
|
|
||||||
walStorage:
|
|
||||||
size: 2Gi
|
|
||||||
storageClass: ""
|
|
||||||
storage:
|
|
||||||
size: 10Gi
|
|
||||||
storageClass: ""
|
|
||||||
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
memory: 256Mi
|
|
||||||
cpu: 10m
|
|
||||||
limits:
|
|
||||||
memory: 1Gi
|
|
||||||
cpu: 800m
|
|
||||||
hugepages-2Mi: 256Mi
|
|
||||||
|
|
||||||
# See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-AffinityConfiguration
|
|
||||||
affinity:
|
|
||||||
enablePodAntiAffinity: true
|
|
||||||
topologyKey: kubernetes.io/hostname
|
|
||||||
|
|
||||||
additionalLabels: {}
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
priorityClassName: ""
|
|
||||||
|
|
||||||
# Method to follow to upgrade the primary server during a rolling update procedure, after all replicas have been
|
|
||||||
# successfully updated. It can be switchover (default) or in-place (restart).
|
|
||||||
primaryUpdateMethod: switchover
|
|
||||||
|
|
||||||
# Strategy to follow to upgrade the primary server during a rolling update procedure, after all replicas have been
|
|
||||||
# successfully updated: it can be automated (unsupervised - default) or manual (supervised)
|
|
||||||
primaryUpdateStrategy: unsupervised
|
|
||||||
|
|
||||||
logLevel: "info"
|
|
||||||
|
|
||||||
monitoring:
|
|
||||||
enabled: false
|
|
||||||
podMonitor:
|
|
||||||
enabled: true
|
|
||||||
prometheusRule:
|
|
||||||
enabled: true
|
|
||||||
excludeRules: []
|
|
||||||
|
|
||||||
# See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-PostgresConfiguration
|
|
||||||
postgresql:
|
|
||||||
parameters:
|
|
||||||
shared_buffers: 128MB
|
|
||||||
max_slot_wal_keep_size: 2000MB
|
|
||||||
hot_standby_feedback: "on"
|
|
||||||
|
|
||||||
# BootstrapInitDB is the configuration of the bootstrap process when initdb is used.
|
|
||||||
# See: https://cloudnative-pg.io/documentation/current/bootstrap/
|
|
||||||
# See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-bootstrapinitdb
|
|
||||||
initdb:
|
|
||||||
{}
|
|
||||||
# database: app
|
|
||||||
# owner: app
|
|
||||||
# secret: "" # Name of the secret containing the initial credentials for the owner of the user database. If empty a new secret will be created from scratch
|
|
||||||
# postInitApplicationSQL:
|
|
||||||
# - CREATE TABLE IF NOT EXISTS example;
|
|
||||||
|
|
||||||
recovery:
|
|
||||||
# Point in time recovery target in RFC3339 format
|
|
||||||
pitrTarget:
|
|
||||||
time: ""
|
|
||||||
|
|
||||||
# S3 https endpoint and the s3:// path
|
|
||||||
endpointURL: ""
|
|
||||||
destinationPath: ""
|
|
||||||
|
|
||||||
# Specifies secret that contains a CA bundle to validate a privately signed certificate, should contain the key ca-bundle.crt
|
|
||||||
endpointCA: ""
|
|
||||||
|
|
||||||
# Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY
|
|
||||||
endpointCredentials: ""
|
|
||||||
|
|
||||||
# Generate external cluster name, uses: {{ .Release.Name }}postgresql-<major version>-cluster-backup-index-{{ .Values.recovery.recoveryIndex }}
|
|
||||||
recoveryIndex: 1
|
|
||||||
|
|
||||||
# Name of the recovery cluster in the object store, defaults to "cluster.name"
|
|
||||||
recoveryServerName: ""
|
|
||||||
|
|
||||||
# Name of the recovery cluster in the object store, defaults to ".Release.Name"
|
|
||||||
recoveryInstanceName: ""
|
|
||||||
|
|
||||||
wal:
|
|
||||||
# WAL compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
|
|
||||||
compression: snappy
|
|
||||||
# Whether to instruct the storage provider to encrypt WAL files. One of `` (use the storage container default), `AES256` or `aws:kms`.
|
|
||||||
encryption: ""
|
|
||||||
# Number of WAL files to be archived or restored in parallel.
|
|
||||||
maxParallel: 2
|
|
||||||
data:
|
|
||||||
# Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
|
|
||||||
compression: snappy
|
|
||||||
# Whether to instruct the storage provider to encrypt data files. One of `` (use the storage container default), `AES256` or `aws:kms`.
|
|
||||||
encryption: ""
|
|
||||||
# Number of data files to be archived or restored in parallel.
|
|
||||||
jobs: 2
|
|
||||||
|
|
||||||
replica:
|
|
||||||
# See https://cloudnative-pg.io/documentation/current/database_import/
|
|
||||||
# * `microservice` - Single database import as expected from cnpg clusters
|
|
||||||
# * `monolith` - Import multiple databases and roles
|
|
||||||
importType: microservice
|
|
||||||
|
|
||||||
# If type microservice only one database is allowed, default is app as standard in cnpg clusters
|
|
||||||
importDatabases:
|
|
||||||
- app
|
|
||||||
|
|
||||||
# If type microservice no roles are imported and ignored
|
|
||||||
importRoles: []
|
|
||||||
|
|
||||||
# If import type is monolith postImportApplicationSQL is not supported and ignored
|
|
||||||
postImportApplicationSQL: []
|
|
||||||
|
|
||||||
# External cluster connection, password specifies a secret name and the key containing the password value
|
|
||||||
externalCluster:
|
|
||||||
connectionParameters:
|
|
||||||
host: postgresql
|
|
||||||
user: app
|
|
||||||
dbname: app
|
|
||||||
password:
|
|
||||||
name: postgresql
|
|
||||||
key: password
|
|
||||||
|
|
||||||
backup:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
# S3 endpoint starting with "https://"
|
|
||||||
endpointURL: ""
|
|
||||||
|
|
||||||
# S3 path starting with "s3://"
|
|
||||||
destinationPath: ""
|
|
||||||
|
|
||||||
# Specifies secret that contains a CA bundle to validate a privately signed certificate, should contain the key ca-bundle.crt
|
|
||||||
endpointCA: ""
|
|
||||||
|
|
||||||
# Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY
|
|
||||||
endpointCredentials: ""
|
|
||||||
|
|
||||||
# Generate external cluster name, creates: postgresql-{{ .Release.Name }}-cluster-backup-index-{{ .Values.backups.backupIndex }}"
|
|
||||||
backupIndex: 1
|
|
||||||
|
|
||||||
# Name of the backup cluster in the object store, defaults to "cluster.name"
|
|
||||||
backupName: ""
|
|
||||||
|
|
||||||
wal:
|
|
||||||
# WAL compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
|
|
||||||
compression: snappy
|
|
||||||
# Whether to instruct the storage provider to encrypt WAL files. One of `` (use the storage container default), `AES256` or `aws:kms`.
|
|
||||||
encryption: ""
|
|
||||||
# Number of WAL files to be archived or restored in parallel.
|
|
||||||
maxParallel: 2
|
|
||||||
data:
|
|
||||||
# Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
|
|
||||||
compression: snappy
|
|
||||||
# Whether to instruct the storage provider to encrypt data files. One of `` (use the storage container default), `AES256` or `aws:kms`.
|
|
||||||
encryption: ""
|
|
||||||
# Number of data files to be archived or restored in parallel.
|
|
||||||
jobs: 2
|
|
||||||
|
|
||||||
# Retention policy for backups
|
|
||||||
retentionPolicy: "30d"
|
|
||||||
|
|
||||||
# Scheduled backup in cron format
|
|
||||||
schedule: "0 0 0 * * *"
|
|
6017
index.yaml
Normal file
6017
index.yaml
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user