Commit Graph

88 Commits

Author SHA1 Message Date
Marcel Richter
5e1ae04b3c feat(network): add support for control plane alias IP
Introduced conditional logic for enabling an alias IP for the control plane, improving network configuration flexibility. This change includes the addition of a new variable `enable_alias_ip` and updates to network and server configurations to conditionally assign the alias IP.

Signed-off-by: Marcel Richter <mail@mrclrchtr.de>
2024-04-03 23:44:30 +02:00
Marcel Richter
a7b77b892b feat(talos): add support for kube-apiserver extra args
Added a new variable `kube_api_extra_args` to pass additional arguments to the kube-apiserver.

Signed-off-by: Marcel Richter <mail@mrclrchtr.de>
v1.11.0
2024-04-03 21:31:31 +02:00
Marcel Richter
7286ead817 feat(network): add network CIDR variables for enhanced configuration
Introduced variables for network, node, pod, and service IPv4 CIDRs in `variables.tf` to allow dynamic network configuration.

Signed-off-by: Marcel Richter <mail@mrclrchtr.de>
v1.10.0
2024-03-31 16:49:04 +02:00
Marcel Richter
49a652e1cc docs(readme): update usage instructions and known issues
Updated the README to include a warning about active development and compatibility issues, along with instructions for setting `cluster_api_host`. Improved the Terraform usage example with the latest version and additional parameters. Also, added a section on known issues regarding IPv6 and `enable_kube_span`.

Refactored the `cluster_api_host` variable description in `variables.tf` to include DNS setup instructions.

Signed-off-by: Marcel Richter <mail@mrclrchtr.de>
v1.9.1
2024-03-28 10:42:01 +01:00
Marcel Richter
1419226f9e fix(talos): remove unnecessary parameter and add necessary
Signed-off-by: Marcel Richter <mail@mrclrchtr.de>
v1.9.0
2024-03-27 22:44:22 +01:00
Marcel Richter
dfe48dd9ec feat(terraform-cilium): enable prometheus integration for cilium
Enabled Prometheus metrics in Cilium configuration to prepare for kube-prometheus-stack integration. Updated README to reflect these changes.

Signed-off-by: Marcel Richter <mail@mrclrchtr.de>
2024-03-27 22:44:22 +01:00
Marcel Richter
fe2cfa3e46 feat(talos): add scheduler bind-address to control plane config
Added `bind-address` config for Kubernetes scheduler in the Talos control plane patch file to be able to monitor with prometheus.

Signed-off-by: Marcel Richter <mail@mrclrchtr.de>
2024-03-26 17:51:59 +01:00
Marcel Richter
e1beb5bcbd docs(talos): add README for image customization
Created `_packer/schematic.yaml` for defining image customization and `_packer/README.md` to guide on adding extensions to Talos images using the image factory.

Signed-off-by: Marcel Richter <mail@mrclrchtr.de>
v1.8.2
2024-03-26 16:06:17 +01:00
Marcel Richter
b3656ee899 fix(talos): correct boolean value in kubelet args
Changed "rotate-server-certificates" from string to boolean in talos_patch_control_plane.tf. This ensures proper parsing by Terraform.

Signed-off-by: Marcel Richter <mail@mrclrchtr.de>
v1.8.1
2024-03-26 11:46:38 +01:00
Marcel Richter
bbe4716667 feat(network): add KubeSpan feature toggle
Introduced `enable_kube_span` variable to toggle KubeSpan. Updated worker and control plane configurations to respect this setting.
v1.8.0
2024-03-26 00:24:38 +01:00
Marcel Richter
d072b22381 feat(talos): support custom cluster API host
Introduced a new variable `cluster_api_host` to allow custom cluster API host configuration. Updated references to use the new variable or default to `local_api_host` if not set.
2024-03-26 00:24:38 +01:00
Marcel Richter
4ff77e3e99 feat(talos): replace settle time with http healthcheck
Replaced time-based settling with HTTP healthcheck for cluster readiness.
Removed unused time provider.
2024-03-26 00:24:38 +01:00
Marcel Richter
cbfa8b3f03 feat(network): "add" private vip functionality
Prep for Talos PR 8493 integration with commented-out config for enhanced networking.

Refs: https://github.com/siderolabs/talos/pull/8493
2024-03-26 00:24:38 +01:00
Marcel Richter
ef802f10af refactor(talos): streamline kubeconfig generation logic
Simplified the process of generating kubeconfig by consolidating variables and improving readability.
2024-03-26 00:24:38 +01:00
Marcel Richter
5c0d7b0b93 fix(network): adjust IPv6 allocation logic for nodes
Ensured at least one IPv6 address is allocated if enabled, regardless of node count.
2024-03-26 00:24:38 +01:00
Marcel Richter
aecbaeafec fix(terraform): ensure minimum count of resources for debuggability
Adjusted resource and data configurations to ensure at least one instance is created, even when count is set to 0. This change includes updates to control plane and worker machine configurations, primary IP assignments, and private IPv4 lists.

This adjustment is crucial for maintaining debuggability and consistent infrastructure provisioning.
2024-03-26 00:24:38 +01:00
Marcel Richter
89c219be5d chore(deps): update Talos version to v1.6.7 2024-03-26 00:24:38 +01:00
Marcel Richter
82243069e6 refactor(talos): streamline cluster_endpoint assignment 2024-03-26 00:24:38 +01:00
Marcel Richter
f87b918c91 chore(talos): remove TODO comment
Removed outdated TODO comment about making domain and api_domain configurable.
2024-03-26 00:24:38 +01:00
Marcel Richter
4dfe88d984 refactor(talos): streamline cluster_endpoint assignment 2024-03-26 00:24:38 +01:00
Marcel Richter
c66c0f0f20 fix(network): add conditional floating IP assignment logic
Introduced a conditional check to enable or disable the assignment of a floating IP to control planes based on the `create_floating_ip` local variable.
v1.7.1
2024-03-25 10:18:07 +01:00
Marcel Richter
6244af6904 feat(server): add auto-generated SSH key support
Introduced automatic SSH key generation for instances when no public key is provided.
v1.7.0
2024-03-22 20:55:46 +01:00
Marcel Richter
e9718b919c feat(kubernetes): make cluster domain configurable
Made the cluster domain configurable by introducing a new variable `cluster_domain` and updating references in Terraform configuration files. This change allows for dynamic domain naming, enhancing flexibility for different deployment scenarios.
2024-03-22 01:40:10 +01:00
Marcel Richter
15600ca507 ci(release): update release configuration
Added docs type with patch release in .releaserc.yml.
v1.6.3
2024-03-22 00:16:42 +01:00
Marcel Richter
b917749d5a docs(readme): update instructions for exporting configs
Added detailed steps for exporting kubeconfig and talosconfig using Terraform outputs.
2024-03-22 00:15:09 +01:00
Marcel Richter
e621f9fa59 fix(network): fix "The "count" value depends on resource attributes that cannot be determined until apply"
Refs: https://github.com/hashicorp/terraform/issues/26755
v1.6.2
2024-03-21 22:59:42 +01:00
Marcel Richter
64b6fee012 fix(network): use coalesce to fix "The "count" value depends on resource attributes that cannot be determined until apply" v1.6.1 2024-03-21 21:51:49 +01:00
Marcel Richter
628bef369b feat(network): support existing floating IPs for control plane
Introduced the ability to use an existing floating IP for the control plane by adding a `floating_ip_id` variable.
v1.6.0
2024-03-21 21:10:31 +01:00
Marcel Richter
cf505c3adc feat(terraform): use DaemonSet modus for talos-cloud-controller-manager v1.5.0 2024-03-21 20:36:00 +01:00
Marcel Richter
5cb03c9c90 docs(README): enhance cluster software documentation
Reformatted section about additional installed software, adding Cilium and Talos Cloud Controller Manager details for clearer understanding.

Refined overall structure for better readability.
2024-03-21 20:34:48 +01:00
Marcel Richter
14bc339d83 docs(README): update cluster goals and add module info 📚 2024-03-21 20:06:57 +01:00
Marcel Richter
756d997a2a docs(README): update icon source URL 🔄
The icon's source URL in the README.md was updated to an absolute URL to ensure it is accessible regardless of where the README is viewed, e.g. Terraform Registry.
2024-03-21 20:04:56 +01:00
Marcel Richter
9bff306729 docs(README): update cluster goals and add module info 📚 2024-03-21 19:57:28 +01:00
Marcel Richter
4b7fb7f2a9 feat(network): add support for optional IPv6 configuration
IPv4/IPv6 dual-stack is actually not supported, it keeps being an IPv4 single stack. PRs welcome!

Added the `enable_ipv6` variable to conditionally enable IPv6 addresses for servers. This update allows users to specify whether their infrastructure should support IPv6, making the setup more flexible for different network requirements. Additionally, updated resources and configurations to respect the `enable_ipv6` flag, including adjustments to server and network configurations to properly handle IPv6 addresses and subnets when enabled. This change enhances network configuration options, enabling users to opt for IPv6 support based on their specific needs or restrictions.

The update includes:
- A new variable `enable_ipv6` to toggle IPv6 support.
- Conditional logic in Terraform configurations to apply IPv6 settings.
- Adjustments to server provisioning scripts to enable or disable IPv6 based on the new variable.

This enhancement simplifies network configuration management in environments where IPv6 support is either required or needs to be explicitly disabled, providing greater flexibility in how infrastructure is deployed.
v1.4.0
2024-03-20 17:03:14 +01:00
Marcel Richter
5a69725b98 feat(network): add floating IP support 2024-03-20 16:20:04 +01:00
Marcel Richter
cd631b7ca2 feat(terraform): streamline kubeconfig and provider setup 2024-03-20 16:07:46 +01:00
Marcel Richter
a04ebfe45c refactor(server): remove not required primary IP dependencies in server config 2024-03-20 16:01:08 +01:00
Marcel Richter
b9d9d856da chore: Remove unused comment 2024-03-20 15:59:07 +01:00
Marcel Richter
e8bd29dcf9 chore: update and clarify documentation in conventionalcommit.json 2024-03-20 15:57:51 +01:00
Marcel Richter
89dc2a0fbe docs(contributing): add contributing guidelines
Introduced a CONTRIBUTING.md file to the repository, outlining the
conventional commit types, scopes, and footer types. This addition will
help contributors to understand and adhere to the project's commit
convention, ensuring a cleaner and more manageable git history.

This documentation serves as a reference for contributors to submit
well-structured commits, facilitating easier code review and
collaboration. It also aims to enhance the overall quality of the
project's codebase by encouraging precise and descriptive commit
messages.
2024-03-20 15:57:51 +01:00
Marcel Richter
e284d88fdd chore(project): ignore debug.tf in .gitignore
This commit ignores the debug.tf file in the project's .gitignore,
preventing it from being tracked by Git. This is beneficial as debug.tf
files often contain sensitive information or are used for local testing
purposes only, which should not be included in version control.
2024-03-20 15:57:51 +01:00
Marcel Richter
de4e082f73 fix: footer type in config 🛠️ 2024-03-20 15:57:51 +01:00
Marcel Richter
dd14674005 feat: add time delay for cilium setup in manifests
This commit introduces a time delay for the cilium setup in both the `manifest_hcloud_ccm.tf` and `manifest_cilium.tf` files. This delay helps ensure the cilium network is properly settled down before proceeding with the rest of the setup.
v1.3.0
2024-03-19 05:06:11 +01:00
Marcel Richter
d9fddde3bd feat: Add output of kubeconfig to be able to chain follow up tasks/setups with it 2024-03-19 05:06:10 +01:00
Marcel Richter
07e882e2de fix: remove not correct ignorance of user_data (machine_configuration) changes 2024-03-19 05:06:10 +01:00
Marcel Richter
b61f4bfbb8 feat: update terraform configuration for improved flexibility 2024-03-19 05:06:10 +01:00
Marcel Richter
f1f4d05e43 chore: exclude .demo in .pre-commit-config.yaml 2024-03-19 05:06:10 +01:00
Marcel Richter
23a90d1108 feat: add support for enabling Floating IP (VIP) for control plane nodes
This commit introduces the ability to assign a floating IP to the control plane nodes. This is controlled by the new `enable_floating_ip` variable. The floating IP is created and managed through the `hcloud_floating_ip` resource. The IP is assigned to the `eth0` interface if available.
2024-03-19 05:06:10 +01:00
Marcel Richter
15dcd3e3d4 refactor: replace yaml.tpl files with yamlencode code 2024-03-18 23:55:43 +01:00
Marcel Richter
02ad917739 refactor: move one dir up 2024-03-18 23:51:34 +01:00