Loading ansible/inventory/hosts.yml +15 −7 Original line number Diff line number Diff line Loading @@ -49,18 +49,26 @@ all: op2_nodes: hosts: openop_2: kind_cluster: k8s_cluster: children: openop_dev: op1_nodes: op2_nodes: # Backwards compatibility alias kind_cluster: children: k8s_cluster: vars: # Kind cluster configuration kind_cluster_name: operator-platform kind_version: v0.29.0 kind_config_template: kind-config.yaml.j2 # Kubernetes distribution (kind, kubespray, kubeadm, existing) k8s_distribution: kind # Kubeconfig settings # Generic cluster configuration (distro-agnostic) cluster_name: operator-platform kubeconfig_output_dir: "{{ inventory_dir }}/../../automation/1-kind-cluster" kubeconfig_filename: operator-platform-external-kubeconfig.yaml # Kind-specific configuration (only used when k8s_distribution=kind) kind_cluster_name: "{{ cluster_name }}" # Backwards compatibility kind_version: v0.29.0 kind_config_template: kind-config.yaml.j2 ansible/playbooks/scenarios/all_in_one/deploy.yml +22 −9 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ # All-in-One Deployment (Dual Federation Managers) # ========================================== - name: Deploy All-in-One OOP (Dual Federation Managers) hosts: kind_cluster hosts: k8s_cluster gather_facts: true vars: Loading @@ -36,6 +36,7 @@ Scenario: Federation testing on single cluster Federation Managers: 2 (local + remote simulation) Target Host: {{ inventory_hostname }} K8s Distribution: {{ k8s_distribution | default('kind') }} This scenario deploys: - Primary FM (federation-manager namespace) Loading @@ -45,19 +46,31 @@ - name: Set kubeconfig paths for remote deployment ansible.builtin.set_fact: kubeconfig_output_dir: "/home/{{ ansible_user }}/kind-cluster-config" kind_config_dir: "/home/{{ ansible_user }}/kind-cluster-config" kubeconfig_dir: "/home/{{ ansible_user }}/kind-cluster-config" when: deployment_mode is defined and deployment_mode == 'remote' - name: Set kubeconfig paths for local deployment ansible.builtin.set_fact: kind_config_dir: "{{ kubeconfig_output_dir }}" kubeconfig_dir: "{{ kubeconfig_output_dir }}" when: deployment_mode is not defined or deployment_mode != 'remote' roles: # Infrastructure # Infrastructure - Kubernetes Cluster Provisioning (conditional) - role: kind-cluster tags: [infrastructure, kind-cluster] when: k8s_distribution | default('kind') == 'kind' tags: [infrastructure, k8s, kind-cluster] # TODO: Add kubespray role when ready # - role: kubespray-cluster # when: k8s_distribution == 'kubespray' # tags: [infrastructure, k8s, kubespray-cluster] # TODO: Add kubeadm role when ready # - role: kubeadm-cluster # when: k8s_distribution == 'kubeadm' # tags: [infrastructure, k8s, kubeadm-cluster] # Note: When k8s_distribution == 'existing', skip cluster provisioning - role: helm tags: [infrastructure, helm] Loading Loading @@ -109,7 +122,7 @@ ========================================== Components Deployed: ✓ Kind Cluster ({{ kind_cluster_name }}) ✓ K8s Cluster ({{ cluster_name }}) - {{ k8s_distribution | default('kind') }} ✓ Prometheus Monitoring ✓ Node Feature Discovery ✓ Zot Registry Loading @@ -122,7 +135,7 @@ ✓ Lite2Edge Platform (shared) Access Points: Kubeconfig: {{ kind_config_dir }}/{{ kubeconfig_filename }} Kubeconfig: {{ kubeconfig_dir | default(kubeconfig_output_dir) }}/{{ kubeconfig_filename }} Prometheus: http://{{ host_ip | default('localhost') }}:30090 Grafana: http://{{ host_ip | default('localhost') }}:30091 Homer: http://{{ host_ip | default('localhost') }}:{{ homer_nodeport }} Loading ansible/roles/federation-manager-remote/defaults/main.yml +2 −2 Original line number Diff line number Diff line Loading @@ -11,8 +11,8 @@ remote_federation_manager_state: present remote_federation_manager_namespace: "federation-manager-remote" # Kubeconfig # Supports both kind_config_dir (from playbooks) and kubeconfig_output_dir (from scenarios) remote_federation_manager_kubeconfig: "{{ kind_config_dir | default(kubeconfig_output_dir) }}/{{ kubeconfig_filename }}" # Supports both kubeconfig_dir (generic) and legacy variables for backwards compatibility remote_federation_manager_kubeconfig: "{{ kubeconfig_dir | default(kind_config_dir) | default(kubeconfig_output_dir) }}/{{ kubeconfig_filename }}" # ========================================== # Remote Federation Manager Image Loading ansible/roles/federation-manager/defaults/main.yml +2 −2 Original line number Diff line number Diff line Loading @@ -10,8 +10,8 @@ federation_manager_state: present federation_manager_namespace: "federation-manager" # Kubeconfig # Supports both kind_config_dir (from playbooks) and kubeconfig_output_dir (from scenarios) federation_manager_kubeconfig: "{{ kind_config_dir | default(kubeconfig_output_dir) }}/{{ kubeconfig_filename }}" # Supports both kubeconfig_dir (generic) and legacy variables for backwards compatibility federation_manager_kubeconfig: "{{ kubeconfig_dir | default(kind_config_dir) | default(kubeconfig_output_dir) }}/{{ kubeconfig_filename }}" # ========================================== # Federation Manager Image Loading ansible/roles/kind-cluster/tasks/cluster.yml +2 −0 Original line number Diff line number Diff line Loading @@ -81,11 +81,13 @@ - name: Set config directory for remote deployment ansible.builtin.set_fact: kind_config_dir: "/home/{{ ansible_user }}/kind-cluster-config" kubeconfig_dir: "/home/{{ ansible_user }}/kind-cluster-config" # Generic variable when: deployment_mode is defined and deployment_mode == 'remote' - name: Set config directory for local deployment ansible.builtin.set_fact: kind_config_dir: "{{ kubeconfig_output_dir }}" kubeconfig_dir: "{{ kubeconfig_output_dir }}" # Generic variable when: deployment_mode is not defined or deployment_mode != 'remote' - name: Ensure Kind config directory exists Loading Loading
ansible/inventory/hosts.yml +15 −7 Original line number Diff line number Diff line Loading @@ -49,18 +49,26 @@ all: op2_nodes: hosts: openop_2: kind_cluster: k8s_cluster: children: openop_dev: op1_nodes: op2_nodes: # Backwards compatibility alias kind_cluster: children: k8s_cluster: vars: # Kind cluster configuration kind_cluster_name: operator-platform kind_version: v0.29.0 kind_config_template: kind-config.yaml.j2 # Kubernetes distribution (kind, kubespray, kubeadm, existing) k8s_distribution: kind # Kubeconfig settings # Generic cluster configuration (distro-agnostic) cluster_name: operator-platform kubeconfig_output_dir: "{{ inventory_dir }}/../../automation/1-kind-cluster" kubeconfig_filename: operator-platform-external-kubeconfig.yaml # Kind-specific configuration (only used when k8s_distribution=kind) kind_cluster_name: "{{ cluster_name }}" # Backwards compatibility kind_version: v0.29.0 kind_config_template: kind-config.yaml.j2
ansible/playbooks/scenarios/all_in_one/deploy.yml +22 −9 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ # All-in-One Deployment (Dual Federation Managers) # ========================================== - name: Deploy All-in-One OOP (Dual Federation Managers) hosts: kind_cluster hosts: k8s_cluster gather_facts: true vars: Loading @@ -36,6 +36,7 @@ Scenario: Federation testing on single cluster Federation Managers: 2 (local + remote simulation) Target Host: {{ inventory_hostname }} K8s Distribution: {{ k8s_distribution | default('kind') }} This scenario deploys: - Primary FM (federation-manager namespace) Loading @@ -45,19 +46,31 @@ - name: Set kubeconfig paths for remote deployment ansible.builtin.set_fact: kubeconfig_output_dir: "/home/{{ ansible_user }}/kind-cluster-config" kind_config_dir: "/home/{{ ansible_user }}/kind-cluster-config" kubeconfig_dir: "/home/{{ ansible_user }}/kind-cluster-config" when: deployment_mode is defined and deployment_mode == 'remote' - name: Set kubeconfig paths for local deployment ansible.builtin.set_fact: kind_config_dir: "{{ kubeconfig_output_dir }}" kubeconfig_dir: "{{ kubeconfig_output_dir }}" when: deployment_mode is not defined or deployment_mode != 'remote' roles: # Infrastructure # Infrastructure - Kubernetes Cluster Provisioning (conditional) - role: kind-cluster tags: [infrastructure, kind-cluster] when: k8s_distribution | default('kind') == 'kind' tags: [infrastructure, k8s, kind-cluster] # TODO: Add kubespray role when ready # - role: kubespray-cluster # when: k8s_distribution == 'kubespray' # tags: [infrastructure, k8s, kubespray-cluster] # TODO: Add kubeadm role when ready # - role: kubeadm-cluster # when: k8s_distribution == 'kubeadm' # tags: [infrastructure, k8s, kubeadm-cluster] # Note: When k8s_distribution == 'existing', skip cluster provisioning - role: helm tags: [infrastructure, helm] Loading Loading @@ -109,7 +122,7 @@ ========================================== Components Deployed: ✓ Kind Cluster ({{ kind_cluster_name }}) ✓ K8s Cluster ({{ cluster_name }}) - {{ k8s_distribution | default('kind') }} ✓ Prometheus Monitoring ✓ Node Feature Discovery ✓ Zot Registry Loading @@ -122,7 +135,7 @@ ✓ Lite2Edge Platform (shared) Access Points: Kubeconfig: {{ kind_config_dir }}/{{ kubeconfig_filename }} Kubeconfig: {{ kubeconfig_dir | default(kubeconfig_output_dir) }}/{{ kubeconfig_filename }} Prometheus: http://{{ host_ip | default('localhost') }}:30090 Grafana: http://{{ host_ip | default('localhost') }}:30091 Homer: http://{{ host_ip | default('localhost') }}:{{ homer_nodeport }} Loading
ansible/roles/federation-manager-remote/defaults/main.yml +2 −2 Original line number Diff line number Diff line Loading @@ -11,8 +11,8 @@ remote_federation_manager_state: present remote_federation_manager_namespace: "federation-manager-remote" # Kubeconfig # Supports both kind_config_dir (from playbooks) and kubeconfig_output_dir (from scenarios) remote_federation_manager_kubeconfig: "{{ kind_config_dir | default(kubeconfig_output_dir) }}/{{ kubeconfig_filename }}" # Supports both kubeconfig_dir (generic) and legacy variables for backwards compatibility remote_federation_manager_kubeconfig: "{{ kubeconfig_dir | default(kind_config_dir) | default(kubeconfig_output_dir) }}/{{ kubeconfig_filename }}" # ========================================== # Remote Federation Manager Image Loading
ansible/roles/federation-manager/defaults/main.yml +2 −2 Original line number Diff line number Diff line Loading @@ -10,8 +10,8 @@ federation_manager_state: present federation_manager_namespace: "federation-manager" # Kubeconfig # Supports both kind_config_dir (from playbooks) and kubeconfig_output_dir (from scenarios) federation_manager_kubeconfig: "{{ kind_config_dir | default(kubeconfig_output_dir) }}/{{ kubeconfig_filename }}" # Supports both kubeconfig_dir (generic) and legacy variables for backwards compatibility federation_manager_kubeconfig: "{{ kubeconfig_dir | default(kind_config_dir) | default(kubeconfig_output_dir) }}/{{ kubeconfig_filename }}" # ========================================== # Federation Manager Image Loading
ansible/roles/kind-cluster/tasks/cluster.yml +2 −0 Original line number Diff line number Diff line Loading @@ -81,11 +81,13 @@ - name: Set config directory for remote deployment ansible.builtin.set_fact: kind_config_dir: "/home/{{ ansible_user }}/kind-cluster-config" kubeconfig_dir: "/home/{{ ansible_user }}/kind-cluster-config" # Generic variable when: deployment_mode is defined and deployment_mode == 'remote' - name: Set config directory for local deployment ansible.builtin.set_fact: kind_config_dir: "{{ kubeconfig_output_dir }}" kubeconfig_dir: "{{ kubeconfig_output_dir }}" # Generic variable when: deployment_mode is not defined or deployment_mode != 'remote' - name: Ensure Kind config directory exists Loading