Refactors the CryptPad installer to improve its configuration handling.
- The `hostname` and `namespace` are now derived from the installer's `name` property by default.
- Implemented name sanitization to remove special characters (`_`, `-`, `.`).
- Added validation to ensure the namespace does not contain invalid characters.
- Updated the factory's `reload` function to persist changes made to the installer object after its initial creation.
This change ensures consistent and predictable behavior, allowing for both default generation and manual override of configuration values.
Co-authored-by: Mahmoud-Emad <mahmmoud.hassanein@gmail.com>
- Update element chat default name to 'elementchat'
- Sanitize element chat name from invalid characters
- Set default namespace based on sanitized name
- Validate namespace for invalid characters
- Update documentation with new default values
This commit refactors the CryptPad Kubernetes installer to be more dynamic and configurable structure.
Key changes include:
- **Dynamic Configuration**: The installer now generates its configuration based on parameters passed from the `.vsh` script, with sensible defaults for any unspecifie
d values.
- **Templated `config.js`**: Introduced a new `config.js` template to allow for greater flexibility and easier maintenance of the CryptPad configuration.
- **Improved Code Structure**: The source code has been updated to be more modular and maintainable.
- **Updated Documentation**: The `README.md` has been updated to include instructions on how to run the installer and customize the installation.
Co-authored-by: Mahmoud-Emad <mahmmoud.hassanein@gmail.com>
- Add Element Chat installer module
- Integrate Conduit and Element Web deployments
- Support TFGW integration for FQDNs and TLS
- Implement installation and destruction logic
- Generate Kubernetes YAML from templates
Co-authored-by: peternashaaat <peternashaaat@gmail.com>
- Use installer.kube_client for Kubernetes operations
- Remove redundant startupmanager calls
- Simplify `delete_resource` command
- Add default values for installer name and hostname
- Refactor `get` function to use new arguments correctly
- Remove commented out example code and unused imports
- Change the factory file<REQUIRED> to load the default instance name
- Update the README file of the installer
Co-authored-by: peternahaaat <peternashaaat@gmail.com>
- Replace kubectl exec calls with Kubernetes client methods
- Improve error handling and logging in Kubernetes client
- Enhance node information retrieval and parsing
- Add comprehensive unit tests for Kubernetes client and Node structs
- Refine YAML validation to allow custom resource definitions
- Update CryptPad installer to use the refactored Kubernetes client
Refactor the installer to use global constants for the maximum number of retries and the check interval when verifying deployments.
This change removes hardcoded values from the FQDN and deployment status checks, improving maintainability and centralizing configuration.