25 Commits

Author SHA1 Message Date
Lari Hotari
f98ee7d69c
Replace ">" with "|" to avoid Go Yaml issue go-yaml/yaml#789 (#582) 2025-03-04 02:21:39 -08:00
Lari Hotari
f928380124
Fix pulsar-cluster-initialize / pulsar-init rendering with kustomize (#572)
* Fix pulsar-cluster-initialize / pulsar-init rendering with kustomize

- reapply #166 changes that were reverted by #544 changes

* Add validation for kustomize output in CI
2025-02-19 00:46:24 -08:00
Yuwei Sung
c6ce11a9b7
Add support for using Oxia as the metadata store for Pulsar and BookKeeper (#544)
Co-authored-by: Lari Hotari <lhotari@apache.org>
2024-11-21 16:52:20 -08:00
Lari Hotari
70f36ffe43
Add timeouts for cluster metadata initialization and for init containers (#218)
- Add timeouts for waiting for zk and bk to become available.
- If the waiting gets stuck for some reason, the Pulsar deployment never
  becomes starts the broker services.
  - timeouts will help failures recover eventually
2024-06-20 10:07:48 -07:00
Lari Hotari
023f902a02
Allow specifying default pull policy and functions pull policy (#507) 2024-06-12 04:16:48 -07:00
Lari Hotari
eb0a878d9c
Make job.ttl.enabled consistent and effective only when k8s >= 1.23 (#481) 2024-03-26 06:23:15 -07:00
doug-ba
3dee8dfe3b
making .ReleaseIsInstall optional for init jobs (#480)
* making .ReleasIsInstall optional for init jobs

* initialize simplifying an if condition based on feedback
2024-03-25 22:26:32 -07:00
Martin
4daf6d88a2
grouped init containers (#441) 2024-01-26 03:09:57 -08:00
lenglet-k
c094322904
feat: add imagePullSecrets in Job (#404)
* feat: add imagePullSecrets on Job

* feat: update values.yaml
2024-01-15 12:28:05 -08:00
Martin
04b8ccebb1
Resource specs for Init Containers (#428)
* add missing section in values.yaml for pulsar_metadata resources

* add resources to all init containers and an additional section to specify them in values.yaml

* increase memory defaults for init containers

* remove empty lines

* Add newline to end of file
2024-01-15 07:53:56 -08:00
Daniel Kovacs
a725188438
feat: added support for tolerations for the init jobs (#399)
Co-authored-by: Daniel Kovacs <daniel.kovacs@directed.global>
2023-12-21 07:48:02 -08:00
Michał Koziorowski
fba51bd87e
Lowered BOOKIE_MEM and PULSAR_MEM in init containers (#386)
* Lowered BOOKIE_MEM and PULSAR_MEM in init containers. Default BOOKIE_MEM and PULSAR_MEM settings from conf/pulsar_env.sh and conf/bkenv.sh (-Xms2g -Xmx2g -XX:MaxDirectMemorySize=4g) are too high for low-memory systems.
2023-12-11 00:50:08 -08:00
Samuel Verstraete
8f033bd1a5
allow specifying the nodeSelector for the init jobs (#225)
* allow specifying the nodeSelector for the init jobs

* Use pulsar_metadata.nodeSelector

Co-authored-by: samuel <samuel.verstraete@aprimo.com>

### Motivation

When deploying pulsar to an AKS cluster with windows nodepools i was unable to specify that the Jobs of the initalize release had to run on linux nodes. With the change i can now specify a node selector for the init jobs.

### Modifications

add nodeSelector on pulsar_init and bookie_init

### Verifying this change

- [ ] Make sure that the change passes the CI checks.
2022-10-19 23:41:39 -05:00
Lari Hotari
25f355e6e2
Use appVersion as default tag for Pulsar images (#200)
Co-authored-by: Michael Marshall <mmarshall@apache.org>

### Motivation

There was a suggestion [in a dev mailing list discussion](https://lists.apache.org/thread/bgkvcyt1qq6h67p2k8xwp89xlncbqn3d) that the Helm chart's appVersion should be used as the default image tag.

### Additional context

There are some limitations in Helm. It is not possible to set "appVersion" from the command line. There's in an open feature request https://github.com/helm/helm/issues/8194 to add such a feature to Helm.

### Modifications

- change default values.yaml and set the tags for the images that use the Pulsar image to an empty value
- add "defaultPulsarImageTag" to values.yaml
- add a helper template "pulsar.imageFullName" that contains the logic to fall back to .Values.defaultPulsarImageTag and if it's not set, falling back to .Chart.AppVersion
- use the helper template in all other templates that require the logic
2022-10-17 15:42:58 -05:00
Aliaksandr Shulyak
8b42a61f2e
Add nodeSelector to cluster initialize pod (#284)
* Add nodeSelector to cluster initialize pod

* Add option to values file

* Update charts/pulsar/templates/pulsar-cluster-initialize.yaml

Co-authored-by: Michael Marshall <mikemarsh17@gmail.com>

* Fix typo in values

Co-authored-by: Michael Marshall <mikemarsh17@gmail.com>

### Motivation

Add an option to choose where to run pulsar-cluster-initialize pod. Sometimes there is a necessity to run only on certain nodes.

### Modifications

Added nodeSelector option to the pulsar-cluster-initialize job.
2022-10-14 13:44:47 -05:00
Chirag Modi
192b3ca2ef
Remove completed init jobs using ttl (#235)
* feat: added ttlSecondsAfterFinished configuration to delete completed jobs

* added comments for clarification
2022-02-23 08:24:37 -08:00
Frank Kelly
a919f309c6
Add ability to run extra commands in the initialization jobs e.g. to quit istio sidecars (#181) 2022-01-05 16:24:19 +02:00
shaoyue
41dd2f5034
Fix #175 cluster initialize blocked when fail (#176) 2022-01-05 16:10:09 +02:00
Valeriano Manassero
25e997a425
Automate initialize (#138)
- no need to do "--set initialize=true" anymore
2022-01-05 16:08:11 +02:00
matejhasul
706c8c292b
Workaround kustomize bug in pulsar cluster init (#166)
Replace folding block with multiline string to workaround https://github.com/kubernetes-sigs/kustomize/issues/4201

There are also other places where this bug is hit, but extra generated newline is not significant.

Co-authored-by: Lari Hotari <lhotari@users.noreply.github.com>
2022-01-04 11:08:52 -06:00
Jean Helou
6c9856a1af
Use .Release.Namespace by default to handle namespaces (#80)
It remains possible to override the current release namespace by setting
the `namespace` value though this may lead to having the helm metadata
and the pulsar components in different namespaces

Fixes #66

### Motivation

Trying to deploy the chart in a namespace using the usual helm pattern fails for example
```
kubectl create ns pulsartest
helm upgrade --install pulsar -n pulsartest apache/pulsar
Error: namespaces "pulsar" not found
```
fixing that while keeping the helm metadata and the deployed objects in the same namespace requires declaring the namespace twice 
```
kubectl create ns pulsartest
helm upgrade --install pulsar -n pulsartest apache/pulsar --set namespace=pulsartest
Error: namespaces "pulsar" not found
```
This is needlessly confusing for newcomers who follow the helm documentation and is contrary to helm best practices.

### Modifications

I changed the chart to use the context namespace `.Release.Namespace` by default while preserving the ability to override that by explicitly providing a namespace on the commande line, with the this modification both  examples behave as expected
 
### Verifying this change

- [x] Make sure that the change passes the CI checks.
2020-12-03 19:32:05 -08:00
Elad Dolev
5049d3564a
add support for multiple clusters (#60)
Co-authored-by: Elad Dolev <elad@firebolt.io>

### Motivation

Give the ability to deploy multi-cluster instance on K8s clusters with non-default `clusterDomain`, and connect to external configuration-store

### Modifications

- give the ability to change cluster's name
- give the ability to change `clusterDomain`
- fix external configuration store functionality
- use broker ports variables
- use label templates, and add `component` label in several places

### Verifying this change

- [x] Make sure that the change passes the CI checks.
2020-09-08 10:06:30 +08:00
Thomas O'Neill
b44b523c8a
Allow initialization to be set (#53)
Fixes #47 

### Motivation
Only create the initialize job on install. 

### Modifications

- Added an initialize value that can be set to true on install, matching the documentation in the README.md
2020-08-13 10:20:01 -07:00
wuYin
135868c66c
Add optional user provided zookeeper as metadata store for other components (#38)
## Motivation
### Case
I have a physical zk cluster and want configure bookkeeper & broker & proxy to use it.
So I set components.zookeeper as false, and only found pulsar.zookeeper.connect to set my physical zk address.
But deploy stage was stucked in bookkeeper wait-zookeeper-ready container.

### Issue
The wait-zookeeper-ready initContainer in bookkeeper-cluster-initialize Job used spliced zk Service hosts to detect zk ready or not, other component init Job initContainer do the same thing. Actually, zk service are unreachable because I disabled zk component.

## Modifications
- Add optional pulsar_metadata.userProvidedZookeepers config for this case, and make component's init Job use user zk to detect liveness, instead of spliced Service hosts.

- Delete redundant image reference in bookkeeper init Job.
2020-07-15 13:19:06 +08:00
Sijie Guo
0338d17b89
Publish chart index to gh-pages branch (#3)
*Motivation*

Release helm chart when new tags are created
2020-04-21 02:44:58 -07:00