tree e1a55458e4d8dba9716f6e4580d8d3f9f5dd8a1d
parent 26bc26028b5a4f03bc2589b90333c5ac8ed47132
author Paul Gier <paul.gier@datastax.com> 1657766330 -0500
committer GitHub <noreply@github.com> 1657766330 -0500
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJiz4G6CRBK7hj4Ov3rIwAAcNMIADdmPZjStHBtAGz1tS8IaRSG
 b4O1WZefSrBuiO/NBUSiq5wV0VT2lFEAIcEXZMBgW+6YH6X/ghehW90d+gobEbg9
 Cqkm0mpKkmtJyP2fj9mSVAoVcafrLk7macefFGtG8qqW+azGFEBHR5QIJktXfKme
 BMcYPRnBrxMS9xLOP7HmlYXLR+o6Hj6g8kX+m+PAI9OiRVgXzwwUgnCaJ16QSBzj
 HvYLSHa9ChhQ4iapQLAXsrhrzsjTLevX39lCYXG8qrl1haicZVbmUgT9j8suXAb+
 GZmVExgR9XSLKEnViW6/JRr+R4SwNUuxo466awIcq7Jr+3XUqXq/kYz9eKxLNuk=
 =leB1
 -----END PGP SIGNATURE-----
 

scripts: provide an error if the namespace was not created (#276)

Signed-off-by: Paul Gier <paul.gier@datastax.com>

This is just a minor improvement to the error handling of one of the bash scripts

### Motivation

Currently if you run `./scripts/pulsar/prepare_helm_release.sh` and the pulsar namespace does not currently exist, you get several error messages that make it not that clear what still needs to be done next.

```
generate the token keys for the pulsar cluster
The private key and public key are generated to /var/folders/cn/r5tb0zln1bgbfzz_7x72tgzm0000gn/T/tmp.ITrq1a4C and /var/folders/cn/r5tb0zln1bgbfzz_7x72tgzm0000gn/T/tmp.qi0dl2WO successfully.
error: failed to create secret namespaces "pulsar" not found
generate the tokens for the super-users: proxy-admin,broker-admin,admin
generate the token for proxy-admin
pulsar-dev-token-asymmetric-key
kubectl get -n pulsar secrets pulsar-dev-token-asymmetric-key -o jsonpath={.data.PRIVATEKEY} | base64 --decode > /var/folders/cn/r5tb0zln1bgbfzz_7x72tgzm0000gn/T/tmp.CikEhIxe
Error from server (NotFound): namespaces "pulsar" not found
generate the token for broker-admin
pulsar-dev-token-asymmetric-key
kubectl get -n pulsar secrets pulsar-dev-token-asymmetric-key -o jsonpath={.data.PRIVATEKEY} | base64 --decode > /var/folders/cn/r5tb0zln1bgbfzz_7x72tgzm0000gn/T/tmp.G1PU9MMj
Error from server (NotFound): namespaces "pulsar" not found
generate the token for admin
pulsar-dev-token-asymmetric-key
kubectl get -n pulsar secrets pulsar-dev-token-asymmetric-key -o jsonpath={.data.PRIVATEKEY} | base64 --decode > /var/folders/cn/r5tb0zln1bgbfzz_7x72tgzm0000gn/T/tmp.HddlCq8e
Error from server (NotFound): namespaces "pulsar" not found
-------------------------------------

The jwt token secret keys are generated under:
    - 'pulsar-dev-token-asymmetric-key'

The jwt tokens for superusers are generated and stored as below:
    - 'proxy-admin':secret('pulsar-dev-token-proxy-admin')
    - 'broker-admin':secret('pulsar-dev-token-broker-admin')
    - 'admin':secret('pulsar-dev-token-admin')
```

### Modifications

I added a check for the existence of the namespace which fails immediately instead of continuing, and added an error message that describes what the problem is and how to resolve it.

```
error: failed to get namespace 'pulsar'
please check that this namespace exists, or use the '-c' option to create it
```

### Verifying this change

- [X] Make sure that the change passes the CI checks.
