Fixes for Hetzner terraform and Hetzner Cloud (#8702)

* - add ability to specify the network_zone in hetzner terraform
- Export the network id from hetzner terraform the the generated inventory.ini

* - Add with_networks variable to allow different deployments of hcloud controller manager

- Add network id to hcloud controller secret (added via the inventory)

- Don't include extra_args if it's not set
This commit is contained in:
Anthony Bible
2022-04-11 11:26:06 -06:00
committed by GitHub
parent c2fb1a0747
commit 9dced7133c
13 changed files with 36 additions and 12 deletions

View File

@@ -9,8 +9,8 @@
- {name: external-hcloud-cloud-secret, file: external-hcloud-cloud-secret.yml}
- {name: external-hcloud-cloud-service-account, file: external-hcloud-cloud-service-account.yml}
- {name: external-hcloud-cloud-role-bindings, file: external-hcloud-cloud-role-bindings.yml}
- {name: external-hcloud-cloud-controller-manager-ds, file: external-hcloud-cloud-controller-manager-ds.yml}
- {name: external-hcloud-cloud-controller-manager-ds-with-networks, file: external-hcloud-cloud-controller-manager-ds-with-networks.yml}
- {name: "{{ 'external-hcloud-cloud-controller-manager-ds-with-networks' if external_hcloud_cloud.with_networks else 'external-hcloud-cloud-controller-manager-ds' }}", file: "{{ 'external-hcloud-cloud-controller-manager-ds-with-networks.yml' if external_hcloud_cloud.with_networks else 'external-hcloud-cloud-controller-manager-ds.yml' }}"}
register: external_hcloud_manifests
when: inventory_hostname == groups['kube_control_plane'][0]
tags: external-hcloud

View File

@@ -1,6 +1,6 @@
---
apiVersion: apps/v1
kind: DeamonSet
kind: DaemonSet
metadata:
name: hcloud-cloud-controller-manager
namespace: kube-system
@@ -44,10 +44,13 @@ spec:
- "--allow-untagged-cloud"
- "--allocate-node-cidrs=true"
- "--cluster-cidr=10.244.0.0/16"
{% if external_hcloud_cloud.controller_extra_args is defined %}
args:
{% for key, value in external_hcloud_cloud.controller_extra_args.items() %}
- "{{ '--' + key + '=' + value }}"
{% endfor %}
{% endif %}
resources:
requests:
cpu: 100m
@@ -60,10 +63,10 @@ spec:
- name: HCLOUD_TOKEN
valueFrom:
secretKeyRef:
name: hcloud
name: {{ external_hcloud_cloud.token_secret_name }}
key: token
- name: HCLOUD_NETWORK
valueFrom:
secretKeyRef:
name: {{ external_hcloud_cloud.token_secret_name }}
key: {{ external_hcloud_cloud.token_secret_key }}
key: network

View File

@@ -1,6 +1,6 @@
---
apiVersion: apps/v1
kind: DeamonSet
kind: DaemonSet
metadata:
name: hcloud-cloud-controller-manager
namespace: kube-system
@@ -41,10 +41,12 @@ spec:
- "--cloud-provider=hcloud"
- "--leader-elect=false"
- "--allow-untagged-cloud"
{% if external_hcloud_cloud.controller_extra_args is defined %}
args:
{% for key, value in external_hcloud_cloud.controller_extra_args.items() %}
- "{{ '--' + key + '=' + value }}"
{% endfor %}
{% endif %}
resources:
requests:
cpu: 100m
@@ -58,4 +60,4 @@ spec:
valueFrom:
secretKeyRef:
name: {{ external_hcloud_cloud.token_secret_name }}
key: {{ external_hcloud_cloud.token_secret_key }}
key: token

View File

@@ -5,4 +5,7 @@ metadata:
name: "{{ external_hcloud_cloud.token_secret_name }}"
namespace: kube-system
data:
token: "{{ external_hcloud_cloud.hcloud_api_token | base64 }}"
token: "{{ external_hcloud_cloud.hcloud_api_token | b64encode }}"
{% if external_hcloud_cloud.with_networks %}
network: "{{ network_id|b64encode }}"
{% endif %}