celeborn/docs/developers/helm-charts.md
Yi Chen c20536e5c5
[CELEBORN-1425][HELM] Add helm chart unit tests to ensure manifests are rendered as expected
### What changes were proposed in this pull request?

Add helm chart unit tests.

### Why are the changes needed?

Unit tests can make resource manifests are rendered as expected with various configurations.

### Does this PR introduce _any_ user-facing change?

No.

### How was this patch tested?

Detailed information about how to run helm chart unit tests can be found here [helm-unittest/helm-unittest](https://github.com/helm-unittest/helm-unittest). First, you need to install helm unit test plugin:

```shell
helm plugin install https://github.com/helm-unittest/helm-unittest.git
```

Then, run helm chart unitt tests as follows:

```shell
$ helm unittest charts/celeborn  --file "tests/**/*_test.yaml" --strict --debug
load_plugins.go:110: [info] file (/Users/chenyi/Library/helm/plugins/helm-acr/completion.yaml) not provided by plugin. No plugin auto-completion possible

### Chart [ celeborn ] charts/celeborn

 PASS  Test Celeborn configmap  charts/celeborn/tests/configmap_test.yaml
 PASS  Test Celeborn master pod monitor charts/celeborn/tests/master/podmonitor_test.yaml
 PASS  Test Celeborn master priority class      charts/celeborn/tests/master/priorityclass_test.yaml
 PASS  Test Celeborn master service     charts/celeborn/tests/master/service_test.yaml
 PASS  Test Celeborn master statefulset charts/celeborn/tests/master/statefulset_test.yaml
 PASS  Test Celeborn worker pod monitor charts/celeborn/tests/worker/podmonitor_test.yaml
 PASS  Test Celeborn worker priority class      charts/celeborn/tests/worker/priorityclass_test.yaml
 PASS  Test Celeborn worker service     charts/celeborn/tests/worker/service_test.yaml
 PASS  Test Celeborn worker statefulset charts/celeborn/tests/worker/statefulset_test.yaml

Charts:      1 passed, 1 total
Test Suites: 9 passed, 9 total
Tests:       48 passed, 48 total
Snapshot:    0 passed, 0 total
Time:        183.011375ms

```

Closes #2511 from ChenYi015/helm-unittest.

Authored-by: Yi Chen <github@chenyicn.net>
Signed-off-by: Cheng Pan <chengpan@apache.org>
2024-05-15 19:17:30 +08:00

2.5 KiB

license
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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 https://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.

Helm Charts

Run Helm Unit Tests

To run unit tests against Helm charts, first you need to install the helm unittest plugin as follows:

helm plugin install https://github.com/helm-unittest/helm-unittest.git --version=0.5.1

For detailed information about how to write helm chart unit tests, please refer helm-unittest/helm-unittest. When you want to modify the chart templates or values, remember to update the related unit tests as well, otherwise the github CI may fail.

Unit tests are placed under charts/celeborn/tests directory, and can be running using the following command:

$ helm unittest charts/celeborn  --file "tests/**/*_test.yaml" --strict --debug

### Chart [ celeborn ] charts/celeborn

 PASS  Test Celeborn configmap  charts/celeborn/tests/configmap_test.yaml
 PASS  Test Celeborn master pod monitor charts/celeborn/tests/master/podmonitor_test.yaml
 PASS  Test Celeborn master priority class      charts/celeborn/tests/master/priorityclass_test.yaml
 PASS  Test Celeborn master service     charts/celeborn/tests/master/service_test.yaml
 PASS  Test Celeborn master statefulset charts/celeborn/tests/master/statefulset_test.yaml
 PASS  Test Celeborn worker pod monitor charts/celeborn/tests/worker/podmonitor_test.yaml
 PASS  Test Celeborn worker priority class      charts/celeborn/tests/worker/priorityclass_test.yaml
 PASS  Test Celeborn worker service     charts/celeborn/tests/worker/service_test.yaml
 PASS  Test Celeborn worker statefulset charts/celeborn/tests/worker/statefulset_test.yaml

Charts:      1 passed, 1 total
Test Suites: 9 passed, 9 total
Tests:       46 passed, 46 total
Snapshot:    0 passed, 0 total
Time:        177.518ms