feat: kedge_tunnel Ansible role
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
eca07a45d5
commit
3db2f3b0c7
3 changed files with 44 additions and 0 deletions
6
ansible/roles/kedge_tunnel/defaults/main.yml
Normal file
6
ansible/roles/kedge_tunnel/defaults/main.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
kedge_tunnel_site_id: ""
|
||||
kedge_tunnel_entity_id: ""
|
||||
kedge_tunnel_vni: ""
|
||||
kedge_tunnel_wireguard_interface: wg-substrate
|
||||
kedge_tunnel_namespace: kedge-system
|
||||
23
ansible/roles/kedge_tunnel/tasks/main.yml
Normal file
23
ansible/roles/kedge_tunnel/tasks/main.yml
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
# Map WireGuard tunnel to Kedge governed overlay.
|
||||
# Creates a KedgeTunnel CR that binds the WireGuard interface to a VNI.
|
||||
|
||||
- name: Ensure kubectl is available
|
||||
ansible.builtin.command: kubectl version --client
|
||||
changed_when: false
|
||||
|
||||
- name: Deploy KedgeTunnel manifest
|
||||
ansible.builtin.template:
|
||||
src: kedge-tunnel.yml.j2
|
||||
dest: "/tmp/kedge-tunnel-{{ kedge_tunnel_site_id }}.yml"
|
||||
mode: "0644"
|
||||
|
||||
- name: Apply KedgeTunnel CR
|
||||
ansible.builtin.command: >
|
||||
kubectl apply -f /tmp/kedge-tunnel-{{ kedge_tunnel_site_id }}.yml
|
||||
changed_when: true
|
||||
|
||||
- name: Clean up temporary manifest
|
||||
ansible.builtin.file:
|
||||
path: "/tmp/kedge-tunnel-{{ kedge_tunnel_site_id }}.yml"
|
||||
state: absent
|
||||
15
ansible/roles/kedge_tunnel/templates/kedge-tunnel.yml.j2
Normal file
15
ansible/roles/kedge_tunnel/templates/kedge-tunnel.yml.j2
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
apiVersion: kedge.guildhouse.dev/v1alpha1
|
||||
kind: KedgeTunnel
|
||||
metadata:
|
||||
name: "tunnel-{{ kedge_tunnel_site_id }}"
|
||||
namespace: "{{ kedge_tunnel_namespace }}"
|
||||
labels:
|
||||
guildhouse.dev/entity: "{{ kedge_tunnel_entity_id }}"
|
||||
guildhouse.dev/site: "{{ kedge_tunnel_site_id }}"
|
||||
spec:
|
||||
wireguardInterface: "{{ kedge_tunnel_wireguard_interface }}"
|
||||
vni: {{ kedge_tunnel_vni }}
|
||||
mode: overlay
|
||||
governance:
|
||||
entityId: "{{ kedge_tunnel_entity_id }}"
|
||||
siteId: "{{ kedge_tunnel_site_id }}"
|
||||
Loading…
Reference in a new issue