Loading README.md +49 −28 Original line number Diff line number Diff line # Operator Platform Automation This repository contains the automation for deploying the Operator Platform. ## Documentation Full documentation is available in the `docs/` directory and can be viewed in https://op-automation-b0b7e6.pages.i2cat.net ### Running Documentation Locally 1. Create and activate the documentation virtual environment: ```bash python3 -m venv docs/.venv source docs/.venv/bin/activate ``` 2. Install dependencies: ```bash pip install -r docs/requirements.txt ``` 3. Serve the documentation: ```bash mkdocs serve ``` 4. Open http://127.0.0.1:8000 in your browser. ansible==13.0.0 ansible-compat==25.12.0 ansible-core==2.20.0 ansible-lint==25.12.1 attrs==25.4.0 black==25.12.0 bracex==2.6 cachetools==6.2.2 certifi==2025.11.12 cffi==2.0.0 charset-normalizer==3.4.4 click==8.3.1 cryptography==46.0.3 distro==1.9.0 docker==7.1.0 durationpy==0.10 filelock==3.20.1 google-auth==2.43.0 idna==3.11 Jinja2==3.1.6 jsonschema==4.25.1 jsonschema-specifications==2025.9.1 kubernetes==34.1.0 MarkupSafe==3.0.3 mypy_extensions==1.1.0 oauthlib==3.3.1 packaging==25.0 pathspec==0.12.1 platformdirs==4.5.1 pyasn1==0.6.1 pyasn1_modules==0.4.2 pycparser==2.23 python-dateutil==2.9.0.post0 pytokens==0.3.0 PyYAML==6.0.3 referencing==0.37.0 requests==2.32.5 requests-oauthlib==2.0.0 resolvelib==1.2.1 rpds-py==0.30.0 rsa==4.9.1 ruamel.yaml==0.18.16 ruamel.yaml.clib==0.2.15 six==1.17.0 subprocess-tee==0.4.2 urllib3==2.3.0 wcmatch==10.1 websocket-client==1.9.0 yamllint==1.37.1 ansible/automation/1-kind-cluster/kind-config.yaml +7 −2 Original line number Diff line number Diff line Loading @@ -39,8 +39,13 @@ nodes: listenAddress: "0.0.0.0" protocol: TCP # Federation Manager - containerPort: 30081 hostPort: 30081 - containerPort: 30989 hostPort: 30989 listenAddress: "0.0.0.0" protocol: TCP # Homer Dashboard - containerPort: 30088 hostPort: 30088 listenAddress: "0.0.0.0" protocol: TCP - role: worker Loading ansible/group_vars/all.yml +7 −1 Original line number Diff line number Diff line Loading @@ -27,8 +27,9 @@ harbor_http_nodeport: 30002 harbor_https_nodeport: 30003 i2edge_nodeport: 30769 artefact_manager_nodeport: 30080 federation_manager_nodeport: 30081 federation_manager_nodeport: 30989 keycloak_nodeport: 30082 homer_nodeport: 30088 mongodb_nodeport: 30017 # Port mappings - using parameterized NodePorts to avoid duplication Loading Loading @@ -88,6 +89,11 @@ port_mappings: host_port: "{{ mongodb_nodeport }}" listen_address: "{{ api_server_address }}" protocol: TCP - name: "Homer Dashboard" container_port: "{{ homer_nodeport }}" host_port: "{{ homer_nodeport }}" listen_address: "{{ api_server_address }}" protocol: TCP # Cluster nodes configuration control_plane_nodes: 1 Loading ansible/playbooks/05-deploy-homer.yml 0 → 100644 +21 −0 Original line number Diff line number Diff line --- # Playbook: Deploy Homer Dashboard # Description: Deploys Homer Dashboard to the Kind cluster # Usage: ansible-playbook playbooks/05-deploy-homer.yml - name: Deploy Homer Dashboard to Kind Cluster hosts: kind_cluster gather_facts: true pre_tasks: - name: Load group variables ansible.builtin.include_vars: file: "{{ playbook_dir }}/../group_vars/all.yml" - name: Update kubeconfig path for remote deployment ansible.builtin.set_fact: kubeconfig_output_dir: "/home/{{ ansible_user }}/kind-cluster-config" when: deployment_mode is defined and deployment_mode == 'remote' roles: - homer ansible/requirements.txt +49 −2 Original line number Diff line number Diff line kubernetes>=28.0.0 PyYAML>=6.0 ansible==13.0.0 ansible-compat==25.12.0 ansible-core==2.20.0 ansible-lint==25.12.1 attrs==25.4.0 black==25.12.0 bracex==2.6 cachetools==6.2.2 certifi==2025.11.12 cffi==2.0.0 charset-normalizer==3.4.4 click==8.3.1 cryptography==46.0.3 distro==1.9.0 docker==7.1.0 durationpy==0.10 filelock==3.20.1 google-auth==2.43.0 idna==3.11 Jinja2==3.1.6 jsonschema==4.25.1 jsonschema-specifications==2025.9.1 kubernetes==34.1.0 MarkupSafe==3.0.3 mypy_extensions==1.1.0 oauthlib==3.3.1 packaging==25.0 pathspec==0.12.1 platformdirs==4.5.1 pyasn1==0.6.1 pyasn1_modules==0.4.2 pycparser==2.23 python-dateutil==2.9.0.post0 pytokens==0.3.0 PyYAML==6.0.3 referencing==0.37.0 requests==2.32.5 requests-oauthlib==2.0.0 resolvelib==1.2.1 rpds-py==0.30.0 rsa==4.9.1 ruamel.yaml==0.18.16 ruamel.yaml.clib==0.2.15 six==1.17.0 subprocess-tee==0.4.2 urllib3==2.3.0 wcmatch==10.1 websocket-client==1.9.0 yamllint==1.37.1 Loading
README.md +49 −28 Original line number Diff line number Diff line # Operator Platform Automation This repository contains the automation for deploying the Operator Platform. ## Documentation Full documentation is available in the `docs/` directory and can be viewed in https://op-automation-b0b7e6.pages.i2cat.net ### Running Documentation Locally 1. Create and activate the documentation virtual environment: ```bash python3 -m venv docs/.venv source docs/.venv/bin/activate ``` 2. Install dependencies: ```bash pip install -r docs/requirements.txt ``` 3. Serve the documentation: ```bash mkdocs serve ``` 4. Open http://127.0.0.1:8000 in your browser. ansible==13.0.0 ansible-compat==25.12.0 ansible-core==2.20.0 ansible-lint==25.12.1 attrs==25.4.0 black==25.12.0 bracex==2.6 cachetools==6.2.2 certifi==2025.11.12 cffi==2.0.0 charset-normalizer==3.4.4 click==8.3.1 cryptography==46.0.3 distro==1.9.0 docker==7.1.0 durationpy==0.10 filelock==3.20.1 google-auth==2.43.0 idna==3.11 Jinja2==3.1.6 jsonschema==4.25.1 jsonschema-specifications==2025.9.1 kubernetes==34.1.0 MarkupSafe==3.0.3 mypy_extensions==1.1.0 oauthlib==3.3.1 packaging==25.0 pathspec==0.12.1 platformdirs==4.5.1 pyasn1==0.6.1 pyasn1_modules==0.4.2 pycparser==2.23 python-dateutil==2.9.0.post0 pytokens==0.3.0 PyYAML==6.0.3 referencing==0.37.0 requests==2.32.5 requests-oauthlib==2.0.0 resolvelib==1.2.1 rpds-py==0.30.0 rsa==4.9.1 ruamel.yaml==0.18.16 ruamel.yaml.clib==0.2.15 six==1.17.0 subprocess-tee==0.4.2 urllib3==2.3.0 wcmatch==10.1 websocket-client==1.9.0 yamllint==1.37.1
ansible/automation/1-kind-cluster/kind-config.yaml +7 −2 Original line number Diff line number Diff line Loading @@ -39,8 +39,13 @@ nodes: listenAddress: "0.0.0.0" protocol: TCP # Federation Manager - containerPort: 30081 hostPort: 30081 - containerPort: 30989 hostPort: 30989 listenAddress: "0.0.0.0" protocol: TCP # Homer Dashboard - containerPort: 30088 hostPort: 30088 listenAddress: "0.0.0.0" protocol: TCP - role: worker Loading
ansible/group_vars/all.yml +7 −1 Original line number Diff line number Diff line Loading @@ -27,8 +27,9 @@ harbor_http_nodeport: 30002 harbor_https_nodeport: 30003 i2edge_nodeport: 30769 artefact_manager_nodeport: 30080 federation_manager_nodeport: 30081 federation_manager_nodeport: 30989 keycloak_nodeport: 30082 homer_nodeport: 30088 mongodb_nodeport: 30017 # Port mappings - using parameterized NodePorts to avoid duplication Loading Loading @@ -88,6 +89,11 @@ port_mappings: host_port: "{{ mongodb_nodeport }}" listen_address: "{{ api_server_address }}" protocol: TCP - name: "Homer Dashboard" container_port: "{{ homer_nodeport }}" host_port: "{{ homer_nodeport }}" listen_address: "{{ api_server_address }}" protocol: TCP # Cluster nodes configuration control_plane_nodes: 1 Loading
ansible/playbooks/05-deploy-homer.yml 0 → 100644 +21 −0 Original line number Diff line number Diff line --- # Playbook: Deploy Homer Dashboard # Description: Deploys Homer Dashboard to the Kind cluster # Usage: ansible-playbook playbooks/05-deploy-homer.yml - name: Deploy Homer Dashboard to Kind Cluster hosts: kind_cluster gather_facts: true pre_tasks: - name: Load group variables ansible.builtin.include_vars: file: "{{ playbook_dir }}/../group_vars/all.yml" - name: Update kubeconfig path for remote deployment ansible.builtin.set_fact: kubeconfig_output_dir: "/home/{{ ansible_user }}/kind-cluster-config" when: deployment_mode is defined and deployment_mode == 'remote' roles: - homer
ansible/requirements.txt +49 −2 Original line number Diff line number Diff line kubernetes>=28.0.0 PyYAML>=6.0 ansible==13.0.0 ansible-compat==25.12.0 ansible-core==2.20.0 ansible-lint==25.12.1 attrs==25.4.0 black==25.12.0 bracex==2.6 cachetools==6.2.2 certifi==2025.11.12 cffi==2.0.0 charset-normalizer==3.4.4 click==8.3.1 cryptography==46.0.3 distro==1.9.0 docker==7.1.0 durationpy==0.10 filelock==3.20.1 google-auth==2.43.0 idna==3.11 Jinja2==3.1.6 jsonschema==4.25.1 jsonschema-specifications==2025.9.1 kubernetes==34.1.0 MarkupSafe==3.0.3 mypy_extensions==1.1.0 oauthlib==3.3.1 packaging==25.0 pathspec==0.12.1 platformdirs==4.5.1 pyasn1==0.6.1 pyasn1_modules==0.4.2 pycparser==2.23 python-dateutil==2.9.0.post0 pytokens==0.3.0 PyYAML==6.0.3 referencing==0.37.0 requests==2.32.5 requests-oauthlib==2.0.0 resolvelib==1.2.1 rpds-py==0.30.0 rsa==4.9.1 ruamel.yaml==0.18.16 ruamel.yaml.clib==0.2.15 six==1.17.0 subprocess-tee==0.4.2 urllib3==2.3.0 wcmatch==10.1 websocket-client==1.9.0 yamllint==1.37.1