@amplication/plugin-deployment-helm-chart
Adds a helm chart for the generated service.
Purpose
Adds a helm chart for the generated service which can be used for deployment of the application within a Kubernetes cluster.
Configuration
The root_level
setting determines whether the directory for the helm charts is placed at the root of the repository or in the base directory of the service.
The directory_name
setting determines what the sub-directory for the helm chart in the root level or service base directory is called.
For both the server
and the admin_ui
additional configuration can be provided to further customize the helm charts to be able to deploy them quicker. As these are the options that are specific to each deployment other than additional Kubernetes objects.
Note: If no configuration is provided the .amplicationrc.json file will use be used as the default values for the code generation as the helm chart would otherwise break - making templating/rendering impossible.
{
"root_level": false,
"directory_name": "helm",
"server": {
"chart_version": "0.0.1",
"application_version": "0.0.1",
"repository": "ghcr.io/NAMESPACE/IMAGE_NAME",
"tag": "latest",
"host": "server.example.com",
"port": "3000"
},
"admin_ui": {
"enabled": false,
"chart_version": "0.0.1",
"application_version": "0.0.1",
"repository": "ghcr.io/NAMESPACE/IMAGE_NAME",
"tag": "latest",
"host": "admin.example.com",
"port": "8080"
}
}
Usage
As this is an addition to the code base, where non of the other code is touched, using the plugin won't impact the final build.
Note: everything that is in the environments variable file for the service is moved to the configmap part of the helm chart, it would be adviced to move secret related configuration to the secrets object and preferably not have the secrets stored in the generated code at all (as this is implementation specific the decision was made to add everything to the configmap).
Note: as this plugin uses the environment variables provided to the service it is advised to use this plugin as the last plugin in the plugin order, so that it can take advantage of possible variables generated by a previous plugin.