From eefc2b19ea2d17f26950c22340b8a17b6aa9dedb Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Sun, 6 Nov 2022 19:26:20 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- enterprise/metallb/5.0.3/CHANGELOG.md | 99 +++++ enterprise/metallb/5.0.3/Chart.lock | 6 + enterprise/metallb/5.0.3/Chart.yaml | 30 ++ enterprise/metallb/5.0.3/README.md | 107 +++++ enterprise/metallb/5.0.3/app-readme.md | 8 + .../metallb/5.0.3}/charts/common-10.8.0.tgz | Bin .../metallb/5.0.3/ci/basic-values.yaml | 0 enterprise/metallb/5.0.3/ci/pool-values.yaml | 6 + enterprise/metallb/5.0.3/ix_values.yaml | 68 +++ enterprise/metallb/5.0.3/questions.yaml | 389 ++++++++++++++++++ .../5.0.3/templates/_bgpadvertisement.tpl | 33 ++ .../metallb/5.0.3/templates/_community.tpl | 16 + .../5.0.3/templates/_ipaddresspool.tpl | 17 + .../5.0.3/templates/_l2advertisement.tpl | 22 + enterprise/metallb/5.0.3/templates/_peers.tpl | 51 +++ enterprise/metallb/5.0.3/templates/_wait.tpl | 68 +++ .../metallb/5.0.3/templates/common.yaml | 17 + enterprise/metallb/5.0.3/values.yaml | 0 .../{8.1.9 => 8.1.11}/CHANGELOG.md | 18 +- .../{8.1.9 => 8.1.11}/Chart.lock | 2 +- .../{8.1.9 => 8.1.11}/Chart.yaml | 30 +- .../joplin-server/{8.1.9 => 8.1.11}/README.md | 2 +- .../{8.1.9 => 8.1.11}/app-readme.md | 2 +- .../8.1.11/charts/common-10.8.0.tgz | Bin 0 -> 49476 bytes .../charts/postgresql-8.0.118.tgz | Bin .../{8.1.9 => 8.1.11}/ix_values.yaml | 0 .../{8.1.9 => 8.1.11}/questions.yaml | 20 +- .../{8.1.9 => 8.1.11}/templates/common.yaml | 0 stable/joplin-server/8.1.11/values.yaml | 0 29 files changed, 975 insertions(+), 36 deletions(-) create mode 100644 enterprise/metallb/5.0.3/CHANGELOG.md create mode 100644 enterprise/metallb/5.0.3/Chart.lock create mode 100644 enterprise/metallb/5.0.3/Chart.yaml create mode 100644 enterprise/metallb/5.0.3/README.md create mode 100644 enterprise/metallb/5.0.3/app-readme.md rename {stable/joplin-server/8.1.9 => enterprise/metallb/5.0.3}/charts/common-10.8.0.tgz (100%) rename stable/joplin-server/8.1.9/values.yaml => enterprise/metallb/5.0.3/ci/basic-values.yaml (100%) create mode 100644 enterprise/metallb/5.0.3/ci/pool-values.yaml create mode 100644 enterprise/metallb/5.0.3/ix_values.yaml create mode 100644 enterprise/metallb/5.0.3/questions.yaml create mode 100644 enterprise/metallb/5.0.3/templates/_bgpadvertisement.tpl create mode 100644 enterprise/metallb/5.0.3/templates/_community.tpl create mode 100644 enterprise/metallb/5.0.3/templates/_ipaddresspool.tpl create mode 100644 enterprise/metallb/5.0.3/templates/_l2advertisement.tpl create mode 100644 enterprise/metallb/5.0.3/templates/_peers.tpl create mode 100644 enterprise/metallb/5.0.3/templates/_wait.tpl create mode 100644 enterprise/metallb/5.0.3/templates/common.yaml create mode 100644 enterprise/metallb/5.0.3/values.yaml rename stable/joplin-server/{8.1.9 => 8.1.11}/CHANGELOG.md (95%) rename stable/joplin-server/{8.1.9 => 8.1.11}/Chart.lock (85%) rename stable/joplin-server/{8.1.9 => 8.1.11}/Chart.yaml (90%) rename stable/joplin-server/{8.1.9 => 8.1.11}/README.md (98%) rename stable/joplin-server/{8.1.9 => 8.1.11}/app-readme.md (89%) create mode 100644 stable/joplin-server/8.1.11/charts/common-10.8.0.tgz rename stable/joplin-server/{8.1.9 => 8.1.11}/charts/postgresql-8.0.118.tgz (100%) rename stable/joplin-server/{8.1.9 => 8.1.11}/ix_values.yaml (100%) rename stable/joplin-server/{8.1.9 => 8.1.11}/questions.yaml (99%) rename stable/joplin-server/{8.1.9 => 8.1.11}/templates/common.yaml (100%) create mode 100644 stable/joplin-server/8.1.11/values.yaml diff --git a/enterprise/metallb/5.0.3/CHANGELOG.md b/enterprise/metallb/5.0.3/CHANGELOG.md new file mode 100644 index 00000000000..22d2206fcbc --- /dev/null +++ b/enterprise/metallb/5.0.3/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog + + + +## [metallb-5.0.3](https://github.com/truecharts/charts/compare/metallb-4.0.21...metallb-5.0.3) (2022-11-06) + +### Chore + +- Auto-update chart README [skip ci] + + ### Feat + +- rework metallb to use manifest-included metallb ([#4320](https://github.com/truecharts/charts/issues/4320)) + + ### Fix + +- Ensure metallb is running before creating resources ([#4321](https://github.com/truecharts/charts/issues/4321)) + + + + +## [metallb-4.0.21](https://github.com/truecharts/charts/compare/metallb-4.0.20...metallb-4.0.21) (2022-11-06) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4317](https://github.com/truecharts/charts/issues/4317)) + + + + +## [metallb-4.0.20](https://github.com/truecharts/charts/compare/metallb-4.0.19...metallb-4.0.20) (2022-11-05) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4308](https://github.com/truecharts/charts/issues/4308)) + + + + +## [metallb-4.0.19](https://github.com/truecharts/charts/compare/metallb-4.0.18...metallb-4.0.19) (2022-11-02) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4261](https://github.com/truecharts/charts/issues/4261)) + + + + +## [metallb-4.0.18](https://github.com/truecharts/charts/compare/metallb-4.0.17...metallb-4.0.18) (2022-10-25) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4182](https://github.com/truecharts/charts/issues/4182)) + + + + +## [metallb-4.0.17](https://github.com/truecharts/charts/compare/metallb-4.0.16...metallb-4.0.17) (2022-10-19) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4122](https://github.com/truecharts/charts/issues/4122)) + + ### Fix + +- enable crd updating ([#4068](https://github.com/truecharts/charts/issues/4068)) + + + + +## [metallb-4.0.16](https://github.com/truecharts/charts/compare/metallb-4.0.15...metallb-4.0.16) (2022-10-12) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4071](https://github.com/truecharts/charts/issues/4071)) + + + + +## [metallb-4.0.15](https://github.com/truecharts/charts/compare/metallb-4.0.14...metallb-4.0.15) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [metallb-4.0.15](https://github.com/truecharts/charts/compare/metallb-4.0.14...metallb-4.0.15) (2022-10-07) + +### Chore diff --git a/enterprise/metallb/5.0.3/Chart.lock b/enterprise/metallb/5.0.3/Chart.lock new file mode 100644 index 00000000000..62b8f809962 --- /dev/null +++ b/enterprise/metallb/5.0.3/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.8.0 +digest: sha256:d785b2570d9d8e34bc823031f8475942fc79600ba0164ec2185e7d6d7c4db697 +generated: "2022-11-06T19:24:10.149037098Z" diff --git a/enterprise/metallb/5.0.3/Chart.yaml b/enterprise/metallb/5.0.3/Chart.yaml new file mode 100644 index 00000000000..21afdd0844e --- /dev/null +++ b/enterprise/metallb/5.0.3/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: "upstream" +deprecated: false +description: A network load-balancer implementation for Kubernetes using standard routing protocols +home: https://truecharts.org/docs/charts/enterprise/metallb +icon: https://truecharts.org/img/hotlink-ok/chart-icons/metallb.png +keywords: + - metallb + - loadbalancer +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.8.0 +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: metallb +sources: + - https://github.com/truecharts/charts/tree/master/charts/enterprise/metallb + - https://github.com/metallb/metallb + - https://metallb.universe.tf +type: application +version: 5.0.3 +annotations: + truecharts.org/catagories: | + - core + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/enterprise/metallb/5.0.3/README.md b/enterprise/metallb/5.0.3/README.md new file mode 100644 index 00000000000..7af64b9ac28 --- /dev/null +++ b/enterprise/metallb/5.0.3/README.md @@ -0,0 +1,107 @@ +# metallb + +A network load-balancer implementation for Kubernetes using standard routing protocols + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [metallb](https://truecharts.org/docs/charts/enterprise/metallb) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://library-charts.truecharts.org | common | 10.8.0 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `metallb` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install metallb TrueCharts/metallb +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `metallb` deployment + +```console +helm uninstall metallb +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/truecharts/library-charts/tree/main/charts/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install metallb \ + --set env.TZ="America/New York" \ + TrueCharts/metallb +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install metallb TrueCharts/metallb -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +--- + +All Rights Reserved - The TrueCharts Project diff --git a/enterprise/metallb/5.0.3/app-readme.md b/enterprise/metallb/5.0.3/app-readme.md new file mode 100644 index 00000000000..279327ccde6 --- /dev/null +++ b/enterprise/metallb/5.0.3/app-readme.md @@ -0,0 +1,8 @@ +A network load-balancer implementation for Kubernetes using standard routing protocols + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/enterprise/metallb](https://truecharts.org/docs/charts/enterprise/metallb) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/stable/joplin-server/8.1.9/charts/common-10.8.0.tgz b/enterprise/metallb/5.0.3/charts/common-10.8.0.tgz similarity index 100% rename from stable/joplin-server/8.1.9/charts/common-10.8.0.tgz rename to enterprise/metallb/5.0.3/charts/common-10.8.0.tgz diff --git a/stable/joplin-server/8.1.9/values.yaml b/enterprise/metallb/5.0.3/ci/basic-values.yaml similarity index 100% rename from stable/joplin-server/8.1.9/values.yaml rename to enterprise/metallb/5.0.3/ci/basic-values.yaml diff --git a/enterprise/metallb/5.0.3/ci/pool-values.yaml b/enterprise/metallb/5.0.3/ci/pool-values.yaml new file mode 100644 index 00000000000..e69714e3142 --- /dev/null +++ b/enterprise/metallb/5.0.3/ci/pool-values.yaml @@ -0,0 +1,6 @@ +ipAddressPools: + - name: example + autoAssign: true + avoidBuggyIPs: true + addresses: + - 192.168.1.1-192.168.1.100 diff --git a/enterprise/metallb/5.0.3/ix_values.yaml b/enterprise/metallb/5.0.3/ix_values.yaml new file mode 100644 index 00000000000..a307267d5d9 --- /dev/null +++ b/enterprise/metallb/5.0.3/ix_values.yaml @@ -0,0 +1,68 @@ +image: + repository: placeholder + tag: upstream + pullPolicy: IfNotPresent + +controller: + enabled: false + +service: + main: + enabled: false + ports: + main: + enabled: false + port: 9999 + +updateCRD: false + +portal: + enabled: false + +probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false + +ipAddressPools: [] +# - name: example +# autoAssign: true +# avoidBuggyIPs: true +# addresses: +# - 192.168.1.1-192.168.1.100 +L2Advertisements: [] +# - name: l2adv +# addressPools: +# - pool1 +# nodeSelectors: +# - nodeA +BGPAdvertisements: [] +# - name: bgpadv +# addressPools: +# - pool1 +# aggregationLength: 24 +# localpref: 100 +# communities: +# - 1234:1 +# peers: +# - peer1 +Communities: [] +# - name: community1 +# value: 1234:1 +Peers: [] +# - name: peer1 +# myASN: 1234 +# password: pass +# routerID: 1234 +# bfdProfile: profile +# ebgpMultiHop: false +# holdTime: 10 +# keepaliveTime: 10 +# peerAddress: 172.30.0.2 +# peerPort: 179 +# sourceAddress: 172.30.0.3 +# nodeSelectors: +# - nodeA diff --git a/enterprise/metallb/5.0.3/questions.yaml b/enterprise/metallb/5.0.3/questions.yaml new file mode 100644 index 00000000000..31dadeac205 --- /dev/null +++ b/enterprise/metallb/5.0.3/questions.yaml @@ -0,0 +1,389 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +questions: + - variable: global + label: Global Settings + group: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: Controller + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: Show Advanced Controller Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: Please specify type of workload to deploy + label: (Advanced) Controller Type + schema: + type: string + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + - variable: ipAddressPools + group: App Configuration + label: IP Address Pools Object + schema: + type: list + default: [] + items: + - variable: ipAddressPoolsEntry + label: IP Address Pool Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: Name of the IP address pool + schema: + type: string + required: true + default: "" + - variable: autoAssign + label: Auto Assign + description: AutoAssign flag used to prevent MetallB from automatic + allocation for a pool. + schema: + type: boolean + default: true + - variable: avoidBuggyIPs + label: Avoid Buggy IPs + description: AvoidBuggyIPs prevents addresses ending with .0 and .255 + to be used by a pool. + schema: + type: boolean + default: false + - variable: addresses + label: Addresses Pools + description: A list of IP address ranges over which MetalLB has authority. + You can list multiple ranges in a single pool, they will all share + the same settings. Each range can be either a CIDR prefix, or an + explicit start-end range of IPs. + schema: + type: list + default: [] + items: + - variable: addressPoolEntry + label: Address Pool Entry + schema: + type: string + default: "" + required: true + - variable: L2Advertisements + group: App Configuration + label: L2 Advertisements + description: L2Advertisement allows to advertise the LoadBalancer IPs provided + by the selected pools via L2. + schema: + type: list + default: [] + items: + - variable: L2AdvertisementEntry + label: L2 Advertisement Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: Name of the L2 Advertisement + schema: + type: string + required: true + default: "" + - variable: addressPools + label: Address Pools + description: The list of IPAddressPools to advertise via this advertisement, + selected by name. + schema: + type: list + default: [] + items: + - variable: addressPoolEntry + label: Address Pool Entry + schema: + type: string + default: "" + required: true + - variable: nodeSelectors + label: Node Selectors + description: NodeSelectors allows to limit the nodes to announce as + next hops for the LoadBalancer IP. When empty, all the nodes having are + announced as next hops. + schema: + type: list + default: [] + items: + - variable: nodeSelectorEntry + label: Node Selector Entry + schema: + type: string + default: "" + required: true + - variable: Communities + group: App Configuration + label: Communities + description: Community is a collection of aliases for communities. Users can + define named aliases to be used in the BGPPeer CRD. + schema: + type: list + default: [] + items: + - variable: CommunityEntry + label: Community Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: The name of the alias for the community. + schema: + type: string + required: true + default: "" + - variable: value + label: Value + description: The BGP community value corresponding to the given name. + schema: + type: string + required: true + default: "" + - variable: Peers + group: App Configuration + label: Peers + description: BGPPeer is the Schema for the peers API. + schema: + type: list + default: [] + items: + - variable: PeerEntry + label: Peer Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: The name of the peer. + schema: + type: string + required: true + default: "" + - variable: bfdProfile + label: BFD Profile + description: The name of the BFD Profile to be used for the BFD session + associated to the BGP session. If not set, the BFD session won't + be set up. + schema: + type: string + default: "" + - variable: ebgpMultiHop + label: EBGP MultiHop + description: TTo set if the BGPPeer is multi-hops away. Needed for + FRR mode only. + schema: + type: boolean + default: false + - variable: holdTime + label: Hold Time + description: Requested BGP hold time, per RFC4271. + schema: + type: int + - variable: keepaliveTime + label: Keep Alive Time + description: Requested BGP keep alive time, per RFC4271. + schema: + type: int + - variable: myASN + label: My ASN + description: AS number to use for the local end of the session. + schema: + type: int + - variable: password + label: Password + description: Authentication password for routers enforcing TCP MD5 + authenticated sessions + schema: + type: string + private: true + default: "" + - variable: peerASN + label: Peer ASN + description: AS number to expect from the remote end of the session. + schema: + type: string + valid_chars: '^[0-9]*$' + default: "" + - variable: peerAddress + label: Peer Address + description: Address to dial when establishing the session. + schema: + type: string + default: "" + - variable: peerPort + label: Peer Port + description: Port to dial when establishing the session. + schema: + type: string + valid_chars: '^[0-9]*$' + default: "" + - variable: routerID + label: Router ID + description: BGP router ID to advertise to the peer + schema: + type: string + default: "" + - variable: sourceAddress + label: Source Address + description: Source address to use when establishing the session. + schema: + type: string + default: "" + - variable: nodeSelectors + label: Node Selectors + description: Only connect to this peer on nodes that match one of + these selectors. + schema: + type: list + default: [] + items: + - variable: nodeSelectorEntry + label: Node Selector Entry + schema: + type: string + default: "" + required: true + - variable: BGPAdvertisements + group: App Configuration + label: BGP Advertisements + description: BGPAdvertisement allows to advertise the IPs coming from the + selected IPAddressPools via BGP. + schema: + type: list + default: [] + items: + - variable: BGPAdvertisementEntry + label: BGP Advertisement Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: Name of the BGP Advertisement + schema: + type: string + required: true + default: "" + - variable: addressPools + label: Address Pools + description: The list of IPAddressPools to advertise via this advertisement, + selected by name. + schema: + type: list + default: [] + items: + - variable: addressPoolEntry + label: Address Pool Entry + schema: + type: string + default: "" + required: true + - variable: aggregationLength + label: Aggregation Length + description: The aggregation-length advertisement option lets you + "roll up" the /32s into a larger prefix. Defaults to 32. Works for + IPv4 addresses. + schema: + type: string + valid_chars: '^[0-9]*$' + default: "" + - variable: localpref + label: Local Pref + description: The BGP LOCAL_PREF attribute which is used by BGP best + path algorithm, Path with higher localpref is preferred over one + with lower localpref. + schema: + type: string + valid_chars: '^[0-9]*$' + default: "" + - variable: communities + label: Communities + description: The BGP communities to be associated with the announcement. + Each item can be a community of the form 1234:1234 or the name of + an alias defined in the Community CRD. + schema: + type: list + default: [] + items: + - variable: communityEntry + label: Community Entry + schema: + type: string + default: "" + required: true + - variable: peers + label: Peers + description: Peers limits the BGPpeer to advertise the ips of the + selected pools to. When empty, the loadbalancer IP is announced + to all the BGPPeers configured. + schema: + type: list + default: [] + items: + - variable: peerEntry + label: Peer Entry + schema: + type: string + default: "" + required: true diff --git a/enterprise/metallb/5.0.3/templates/_bgpadvertisement.tpl b/enterprise/metallb/5.0.3/templates/_bgpadvertisement.tpl new file mode 100644 index 00000000000..8800867bea3 --- /dev/null +++ b/enterprise/metallb/5.0.3/templates/_bgpadvertisement.tpl @@ -0,0 +1,33 @@ +{{- define "metallb.bgpadv" -}} +{{- range .Values.BGPAdvertisements }} +--- +apiVersion: metallb.io/v1beta1 +kind: BGPAdvertisement +metadata: + name: {{ $.Release.Name }}-{{ .name }} + namespace: metallb-system +spec: + ipAddressPools: + {{- range .addressPools }} + - {{ . }} + {{- end }} + {{- with .aggregationLength }} + aggregationLength: {{ . | int }} + {{- end }} + {{- with .localpref }} + localpref: {{ . | int }} + {{- end }} + {{- if .communities }} + communities: + {{- range .communities }} + - {{ . }} + {{- end }} + {{- end }} + {{- if .peers }} + peers: + {{- range .peers }} + - {{ . }} + {{- end }} + {{- end }} +{{- end }} +{{- end -}} diff --git a/enterprise/metallb/5.0.3/templates/_community.tpl b/enterprise/metallb/5.0.3/templates/_community.tpl new file mode 100644 index 00000000000..3684a2e8d06 --- /dev/null +++ b/enterprise/metallb/5.0.3/templates/_community.tpl @@ -0,0 +1,16 @@ +{{- define "metallb.comm" -}} +{{- if .Values.Communities }} +--- +apiVersion: metallb.io/v1beta1 +kind: Community +metadata: + name: {{ $.Release.Name }}-communities + namespace: metallb-system +spec: + communities: + {{- range .Values.Communities }} + - name: {{ .name }} + value: {{ .value }} + {{- end }} +{{- end }} +{{- end -}} diff --git a/enterprise/metallb/5.0.3/templates/_ipaddresspool.tpl b/enterprise/metallb/5.0.3/templates/_ipaddresspool.tpl new file mode 100644 index 00000000000..2393d082b12 --- /dev/null +++ b/enterprise/metallb/5.0.3/templates/_ipaddresspool.tpl @@ -0,0 +1,17 @@ +{{- define "metallb.pool" -}} +{{- range .Values.ipAddressPools }} +--- +apiVersion: metallb.io/v1beta1 +kind: IPAddressPool +metadata: + name: {{ $.Release.Name }}-{{ .name }} + namespace: metallb-system +spec: + addresses: + {{- range .addresses }} + - {{ . }} + {{- end }} + autoAssign: {{ .autoAssign | default true }} + avoidBuggyIPs: {{ .avoidBuggyIPs | default false }} +{{- end }} +{{- end -}} diff --git a/enterprise/metallb/5.0.3/templates/_l2advertisement.tpl b/enterprise/metallb/5.0.3/templates/_l2advertisement.tpl new file mode 100644 index 00000000000..a63374623a8 --- /dev/null +++ b/enterprise/metallb/5.0.3/templates/_l2advertisement.tpl @@ -0,0 +1,22 @@ +{{- define "metallb.l2adv" -}} +{{- range .Values.L2Advertisements }} +--- +apiVersion: metallb.io/v1beta1 +kind: L2Advertisement +metadata: + name: {{ $.Release.Name }}-{{ .name }} + namespace: metallb-system +spec: + ipAddressPools: + {{- range .addressPools }} + - {{ . }} + {{- end }} + {{- if .nodeSelectors }} + {{- range .nodeSelectors }} + nodeSelectors: + - matchLabels: + kubernetes.io/hostname: {{ . }} + {{- end }} + {{- end }} +{{- end }} +{{- end -}} diff --git a/enterprise/metallb/5.0.3/templates/_peers.tpl b/enterprise/metallb/5.0.3/templates/_peers.tpl new file mode 100644 index 00000000000..58d7d108103 --- /dev/null +++ b/enterprise/metallb/5.0.3/templates/_peers.tpl @@ -0,0 +1,51 @@ +{{- define "metallb.peers" -}} +{{- range .Values.Peers }} +--- +apiVersion: metallb.io/v1beta2 +kind: BGPPeer +metadata: + name: {{ $.Release.Name }}-{{ .name }} + namespace: metallb-system +spec: + {{- with .password }} + password: {{ . }} + {{- end }} + {{- with .routerID }} + routerID: {{ . }} + {{- end }} + {{- with .bfdProfile }} + bfdProfile: {{ . }} + {{- end }} + {{- with .ebgpMultiHop }} + ebgpMultiHop: {{ . }} + {{- end }} + {{- with .holdTime }} + holdTime: {{ . }} + {{- end }} + {{- with .keepaliveTime }} + keepaliveTime: {{ . }} + {{- end }} + {{- with .myASN }} + myASN: {{ . }} + {{- end }} + {{- with .peerASN }} + peerASN: {{ . | int }} + {{- end }} + {{- with .peerAddress }} + peerAddress: {{ . }} + {{- end }} + {{- with .peerPort }} + peerPort: {{ . | int }} + {{- end }} + {{- with .sourceAddress }} + sourceAddress: {{ . }} + {{- end }} + {{- if .nodeSelectors }} + nodeSelectors: + {{- range .nodeSelectors }} + - matchLabels: + kubernetes.io/hostname: {{ . }} + {{- end }} + {{- end }} +{{- end }} +{{- end -}} diff --git a/enterprise/metallb/5.0.3/templates/_wait.tpl b/enterprise/metallb/5.0.3/templates/_wait.tpl new file mode 100644 index 00000000000..587f2532329 --- /dev/null +++ b/enterprise/metallb/5.0.3/templates/_wait.tpl @@ -0,0 +1,68 @@ +{{- define "metallb.wait" -}} +{{- $fullName := include "tc.common.names.fullname" . -}} +--- +apiVersion: batch/v1 +kind: Job +metadata: + namespace: {{ .Release.Namespace }} + name: {{ $fullName }}-wait + annotations: + "helm.sh/hook": pre-install, pre-upgrade + "helm.sh/hook-weight": "-1" + "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation +spec: + template: + spec: + serviceAccountName: {{ $fullName }}-wait + containers: + - name: {{ $fullName }}-wait + image: {{ .Values.ubuntuImage.repository }}:{{ .Values.ubuntuImage.tag }} + command: + - "/bin/sh" + - "-c" + - | + /bin/bash <<'EOF' + kubectl wait --namespace metallb-system --for=condition=ready pod --selector=app=metallb --timeout=90s + EOF + restartPolicy: OnFailure +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ $fullName }}-wait + annotations: + "helm.sh/hook": pre-install, pre-upgrade + "helm.sh/hook-weight": "-2" + "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation +rules: + - apiGroups: ["*"] + resources: ["pods"] + verbs: ["get", "list", "watch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ $fullName }}-wait + annotations: + "helm.sh/hook": pre-install, pre-upgrade + "helm.sh/hook-weight": "-2" + "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ $fullName }}-wait +subjects: + - kind: ServiceAccount + name: {{ $fullName }}-wait + namespace: {{ .Release.Namespace }} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ $fullName }}-wait + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": pre-install, pre-upgrade + "helm.sh/hook-weight": "-2" + "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation +{{- end -}} diff --git a/enterprise/metallb/5.0.3/templates/common.yaml b/enterprise/metallb/5.0.3/templates/common.yaml new file mode 100644 index 00000000000..d545fb257f6 --- /dev/null +++ b/enterprise/metallb/5.0.3/templates/common.yaml @@ -0,0 +1,17 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.common.loader.init" . }} + +{{/* Render the templates */}} +{{ include "tc.common.loader.apply" . }} + +{{- include "metallb.l2adv" . }} + +{{- include "metallb.peers" . }} + +{{- include "metallb.bgpadv" . }} + +{{- include "metallb.comm" . }} + +{{- include "metallb.pool" . }} + +{{- include "metallb.wait" . }} diff --git a/enterprise/metallb/5.0.3/values.yaml b/enterprise/metallb/5.0.3/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/joplin-server/8.1.9/CHANGELOG.md b/stable/joplin-server/8.1.11/CHANGELOG.md similarity index 95% rename from stable/joplin-server/8.1.9/CHANGELOG.md rename to stable/joplin-server/8.1.11/CHANGELOG.md index e717f1cee78..7003ad053cc 100644 --- a/stable/joplin-server/8.1.9/CHANGELOG.md +++ b/stable/joplin-server/8.1.11/CHANGELOG.md @@ -2,6 +2,15 @@ +## [joplin-server-8.1.11](https://github.com/truecharts/charts/compare/joplin-server-8.1.9...joplin-server-8.1.11) (2022-11-06) + +### Chore + +- Auto-update chart README [skip ci] + + + + ## [joplin-server-8.1.9](https://github.com/truecharts/charts/compare/joplin-server-8.1.8...joplin-server-8.1.9) (2022-11-06) ### Chore @@ -88,12 +97,3 @@ - Auto-update chart README [skip ci] - fix show-if's ([#4037](https://github.com/truecharts/charts/issues/4037)) - - - - -## [joplin-server-8.1.0](https://github.com/truecharts/charts/compare/joplin-server-8.0.42...joplin-server-8.1.0) (2022-10-08) - -### Chore - -- Auto-update chart README [skip ci] diff --git a/stable/joplin-server/8.1.9/Chart.lock b/stable/joplin-server/8.1.11/Chart.lock similarity index 85% rename from stable/joplin-server/8.1.9/Chart.lock rename to stable/joplin-server/8.1.11/Chart.lock index d7501ce799c..e8e85327bfd 100644 --- a/stable/joplin-server/8.1.9/Chart.lock +++ b/stable/joplin-server/8.1.11/Chart.lock @@ -6,4 +6,4 @@ dependencies: repository: https://charts.truecharts.org/ version: 8.0.118 digest: sha256:af9af2a5972e60b044ca0eb90c89933782d7b67d14da0967700c778860acb7fc -generated: "2022-11-06T11:51:32.401362873Z" +generated: "2022-11-06T19:24:20.822756395Z" diff --git a/stable/joplin-server/8.1.9/Chart.yaml b/stable/joplin-server/8.1.11/Chart.yaml similarity index 90% rename from stable/joplin-server/8.1.9/Chart.yaml rename to stable/joplin-server/8.1.11/Chart.yaml index 896cfdfc1da..96c8b4a486c 100644 --- a/stable/joplin-server/8.1.9/Chart.yaml +++ b/stable/joplin-server/8.1.11/Chart.yaml @@ -1,19 +1,5 @@ apiVersion: v2 appVersion: "2.9.5" -description: This server allows you to sync any Joplin client -name: joplin-server -version: 8.1.9 -kubeVersion: ">=1.16.0-0" -keywords: - - joplin - - notes -home: https://truecharts.org/docs/charts/stable/joplin-server -icon: https://truecharts.org/img/hotlink-ok/chart-icons/joplin-server.png -sources: - - https://github.com/truecharts/charts/tree/master/charts/stable/joplin-server - - https://github.com/laurent22/joplin/tree/dev/packages/server - - https://github.com/laurent22/joplin - - https://hub.docker.com/r/joplin/server dependencies: - name: common repository: https://library-charts.truecharts.org @@ -22,10 +8,26 @@ dependencies: name: postgresql repository: https://charts.truecharts.org/ version: 8.0.118 +deprecated: false +description: Allows you to sync any Joplin client. +home: https://truecharts.org/docs/charts/stable/joplin-server +icon: https://truecharts.org/img/hotlink-ok/chart-icons/joplin-server.png +keywords: + - joplin + - notes +kubeVersion: ">=1.16.0-0" maintainers: - email: info@truecharts.org name: TrueCharts url: https://truecharts.org +name: joplin-server +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/joplin-server + - https://github.com/laurent22/joplin/tree/dev/packages/server + - https://github.com/laurent22/joplin + - https://hub.docker.com/r/joplin/server +type: application +version: 8.1.11 annotations: truecharts.org/catagories: | - media diff --git a/stable/joplin-server/8.1.9/README.md b/stable/joplin-server/8.1.11/README.md similarity index 98% rename from stable/joplin-server/8.1.9/README.md rename to stable/joplin-server/8.1.11/README.md index 62954942757..975997fb7e9 100644 --- a/stable/joplin-server/8.1.9/README.md +++ b/stable/joplin-server/8.1.11/README.md @@ -1,6 +1,6 @@ # joplin-server -This server allows you to sync any Joplin client +Allows you to sync any Joplin client. TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. diff --git a/stable/joplin-server/8.1.9/app-readme.md b/stable/joplin-server/8.1.11/app-readme.md similarity index 89% rename from stable/joplin-server/8.1.9/app-readme.md rename to stable/joplin-server/8.1.11/app-readme.md index e3d63294110..8e5a49fe12e 100644 --- a/stable/joplin-server/8.1.9/app-readme.md +++ b/stable/joplin-server/8.1.11/app-readme.md @@ -1,4 +1,4 @@ -This server allows you to sync any Joplin client +Allows you to sync any Joplin client. This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/joplin-server](https://truecharts.org/docs/charts/stable/joplin-server) diff --git a/stable/joplin-server/8.1.11/charts/common-10.8.0.tgz b/stable/joplin-server/8.1.11/charts/common-10.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..33a3aaa2770e2d28065a7af78d3c14a2f9274cc4 GIT binary patch literal 49476 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 literal 0 HcmV?d00001 diff --git a/stable/joplin-server/8.1.9/charts/postgresql-8.0.118.tgz b/stable/joplin-server/8.1.11/charts/postgresql-8.0.118.tgz similarity index 100% rename from stable/joplin-server/8.1.9/charts/postgresql-8.0.118.tgz rename to stable/joplin-server/8.1.11/charts/postgresql-8.0.118.tgz diff --git a/stable/joplin-server/8.1.9/ix_values.yaml b/stable/joplin-server/8.1.11/ix_values.yaml similarity index 100% rename from stable/joplin-server/8.1.9/ix_values.yaml rename to stable/joplin-server/8.1.11/ix_values.yaml diff --git a/stable/joplin-server/8.1.9/questions.yaml b/stable/joplin-server/8.1.11/questions.yaml similarity index 99% rename from stable/joplin-server/8.1.9/questions.yaml rename to stable/joplin-server/8.1.11/questions.yaml index 356083b3a0c..c8faea888f1 100644 --- a/stable/joplin-server/8.1.9/questions.yaml +++ b/stable/joplin-server/8.1.11/questions.yaml @@ -172,14 +172,14 @@ questions: type: dict attrs: - variable: APP_BASE_URL - label: APP_BASE_URL - description: Sets the APP_BASE_URL env var + label: App Base Url + description: Sets the APP BASE URL, eg http://ip:port | https://app.mydomain.tld:443 schema: type: string required: true default: "" - variable: MAILER_ENABLED - label: MAILER_ENABLED + label: Mailer Enabled description: Set 1 to enabled and 0 to disable schema: type: int @@ -188,35 +188,35 @@ questions: default: 0 - variable: MAILER_HOST label: Mailer Host - description: Sets the MAILER_HOST env var, eg smtp.example.com + description: Set the mail host, eg smtp.example.com schema: show_if: [["MAILER_ENABLED", "=", 1]] type: string default: "" - variable: MAILER_PORT label: Mailer Port - description: Sets the MAILER_PORT env var, eg SMTP PORT 465 + description: Sets the mail port, eg SMTP PORT 465 schema: show_if: [["MAILER_ENABLED", "=", 1]] type: int default: 465 - variable: MAILER_SECURE label: Mailer Secure - description: Sets the MAILER_SECURE env var, HTTPS for the smtp + description: Enable SSL for SMTP schema: show_if: [["MAILER_ENABLED", "=", 1]] type: boolean default: true - variable: MAILER_AUTH_USER label: Mailer Auth User - description: Sets the MAILER_AUTH_USER env var, username for Email server + description: Sets the username for the email server schema: show_if: [["MAILER_ENABLED", "=", 1]] type: string default: "" - variable: MAILER_AUTH_PASSWORD label: Mailer Auth Password - description: Sets the MAILER_AUTH_PASSWORD env var, password for Email server + description: Sets the password for the email server schema: show_if: [["MAILER_ENABLED", "=", 1]] type: string @@ -224,14 +224,14 @@ questions: default: "" - variable: MAILER_NOREPLY_NAME label: Mailer No Reply Name - description: Sets the MAILER_NOREPLY_NAME env var, No Reply email name + description: Sets the No Reply email name schema: show_if: [["MAILER_ENABLED", "=", 1]] type: string default: "" - variable: MAILER_NOREPLY_EMAIL label: Mailer No Reply Email - description: Sets the MAILER_NOREPLY_EMAIL env var, No Reply default email + description: Sets the No Reply default email schema: show_if: [["MAILER_ENABLED", "=", 1]] type: string diff --git a/stable/joplin-server/8.1.9/templates/common.yaml b/stable/joplin-server/8.1.11/templates/common.yaml similarity index 100% rename from stable/joplin-server/8.1.9/templates/common.yaml rename to stable/joplin-server/8.1.11/templates/common.yaml diff --git a/stable/joplin-server/8.1.11/values.yaml b/stable/joplin-server/8.1.11/values.yaml new file mode 100644 index 00000000000..e69de29bb2d