tree c5299bf4c7626643936ea8f13620dda0822cb427
parent 4009c04811f97bba9db524ed2104695e22f9a097
author Oscar Espitia <nickelozz@users.noreply.github.com> 1588148836 -0400
committer GitHub <noreply@github.com> 1588148836 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJeqTpkCRBK7hj4Ov3rIwAAdHIIAIqDzJh4eD8SbXavvIt1Z/rp
 i6UX9YRbjY3CNqv9eAzNzT26jX1bfi+7EF1TCWgJgLBIzVfySwcM+OGnlrrFKpNy
 3Py2LlzDK3qT4A0mG5P1kUmL1t4SXFRjV5rBmoiakiC+x284ufNy0XrIYhzDIEpn
 Ot6UlxN163g6zqZEeKeg0suSYSMYbzAnw4V1X49BTduSYIKjRObop95hJdlHipJO
 oR0frFkRBcokd0+E9RaDTjlvUsw71uwEx4F25qaXrgBFtoQH7sQLWoWOVAQwVbtn
 LUedm2e7ZzJ6GvbvH2Ma+tjvyaM93YtPkcthVgmLMgOXLPLf/HSQE0r/B+M/rhs=
 =fNzI
 -----END PGP SIGNATURE-----
 

Decouple credentials from key secrets generation (#7)

Fixes #6 

### Motivation

As suggested here: https://pulsar.apache.org/docs/en/helm-deploy/#prepare-the-helm-release. The ```prepare_helm_release.sh``` script provided with this Helm chart can create a secret credentials resource and
> The username and password are used for logging into Grafana dashboard and Pulsar Manager.

However, I haven't been able to make use of such a feature for a number of reasons:

1. This secret doesn't seem to affect the ```pulsar-manager-deployment.yaml``` definition. Instead, the ```./templates/pulsar-manager-admin-secret.yaml``` seems to be the one providing the credentials for the pulsar manager (UI) (with the added possibility to overwrite via values.yaml at ```pulsar_manager.admin.user/password```).

2. Using the Pulsar chart as a dependency for an umbrella chart (this is currently my use case), will bring extra hassle that will make it very hard to have all resources follow the same naming structure, thus causing some resources to never be deployed successfully e.g.: ```./templates/grafana-deployment.yaml``` will complain that it couldn't find the secret created by the bash script. Attempting to fix this issue via the ```-k``` flag passed to the script will cause the JWT secret tokens to have a name that's unexpected by the broker, etc.

### Modifications

Decouple grafana credentials from pulsar manager via a new secret resource named ```./charts/pulsar/templates/grafana-admin-secret.yaml```.

Add credentials overriding via values.yaml in the same way as pulsar_manager (grafana.admin.user/password) & delete secret resource manipulation from bash scripts (cleaup_helm_release.sh & prepare_helm_release.sh)

### Verifying this change

- [x] Make sure that the change passes the CI checks.
