Commit b43beb91 authored by Sergio Gimenez's avatar Sergio Gimenez
Browse files

Merge branch 'add-fm' into 'master'

Add fm

See merge request areas/software-networks/operator-platform/op-automation!1
parents 799b6df2 1df38a46
Loading
Loading
Loading
Loading

.ansible/.lock

0 → 100644
+0 −0

Empty file added.

+3 −1
Original line number Diff line number Diff line
{
    "ansible.python.interpreterPath": "/bin/python"
    "ansible.python.interpreterPath": "./venv/bin/python",
    "ansible.ansibleLint.path": "./venv/bin/ansible-lint",
    "python-envs.pythonProjects": []
}
 No newline at end of file
+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
+30 −0
Original line number Diff line number Diff line
@@ -13,26 +13,56 @@ nodes:
          - "127.0.0.1"
          - "10.69.222.3"
    extraPortMappings:
      # API Server
      - containerPort: 6443
        hostPort: 6443
        listenAddress: "0.0.0.0"
        protocol: TCP
      # Prometheus
      - containerPort: 30090
        hostPort: 30090
        listenAddress: "0.0.0.0"
        protocol: TCP
      # Grafana
      - containerPort: 30091
        hostPort: 30091
        listenAddress: "0.0.0.0"
        protocol: TCP
      # Alertmanager
      - containerPort: 30092
        hostPort: 30092
        listenAddress: "0.0.0.0"
        protocol: TCP
      # i2edge
      - containerPort: 30769
        hostPort: 30769
        listenAddress: "0.0.0.0"
        protocol: TCP
      # Federation Manager
      - containerPort: 30989
        hostPort: 30989
        listenAddress: "0.0.0.0"
        protocol: TCP
      # Homer Dashboard
      - containerPort: 30088
        hostPort: 30088
        listenAddress: "0.0.0.0"
        protocol: TCP
      # Remote Federation Manager
      - containerPort: 30990
        hostPort: 30990
        listenAddress: "0.0.0.0"
        protocol: TCP
      # Remote Keycloak
      - containerPort: 30083
        hostPort: 30083
        listenAddress: "0.0.0.0"
        protocol: TCP
      # Remote MongoDB
      - containerPort: 30018
        hostPort: 30018
        listenAddress: "0.0.0.0"
        protocol: TCP
  - role: worker
  - role: worker
containerdConfigPatches:
+58 −8
Original line number Diff line number Diff line
@@ -27,41 +27,91 @@ harbor_http_nodeport: 30002
harbor_https_nodeport: 30003
i2edge_nodeport: 30769
artefact_manager_nodeport: 30080
federation_manager_nodeport: 30989
keycloak_nodeport: 30082
homer_nodeport: 30088
mongodb_nodeport: 30017
remote_federation_manager_nodeport: 30990
remote_keycloak_nodeport: 30083
remote_mongodb_nodeport: 30018

# Port mappings - using parameterized NodePorts to avoid duplication
port_mappings:
  - container_port: "{{ api_server_port }}"
  - name: "API Server"
    container_port: "{{ api_server_port }}"
    host_port: "{{ api_server_port }}"
    listen_address: "{{ api_server_address }}"
    protocol: TCP
  - container_port: "{{ prometheus_nodeport }}"
  - name: "Prometheus"
    container_port: "{{ prometheus_nodeport }}"
    host_port: "{{ prometheus_nodeport }}"
    listen_address: "{{ api_server_address }}"
    protocol: TCP
  - container_port: "{{ grafana_nodeport }}"
  - name: "Grafana"
    container_port: "{{ grafana_nodeport }}"
    host_port: "{{ grafana_nodeport }}"
    listen_address: "{{ api_server_address }}"
    protocol: TCP
  - container_port: "{{ alertmanager_nodeport }}"
  - name: "Alertmanager"
    container_port: "{{ alertmanager_nodeport }}"
    host_port: "{{ alertmanager_nodeport }}"
    listen_address: "{{ api_server_address }}"
    protocol: TCP
  - container_port: "{{ harbor_http_nodeport }}"
  - name: "Harbor HTTP"
    container_port: "{{ harbor_http_nodeport }}"
    host_port: "{{ harbor_http_nodeport }}"
    listen_address: "{{ api_server_address }}"
    protocol: TCP
  - container_port: "{{ harbor_https_nodeport }}"
  - name: "Harbor HTTPS"
    container_port: "{{ harbor_https_nodeport }}"
    host_port: "{{ harbor_https_nodeport }}"
    listen_address: "{{ api_server_address }}"
    protocol: TCP
  - container_port: "{{ i2edge_nodeport }}"
  - name: "i2edge"
    container_port: "{{ i2edge_nodeport }}"
    host_port: "{{ i2edge_nodeport }}"
    listen_address: "{{ api_server_address }}"
    protocol: TCP
  - container_port: "{{ artefact_manager_nodeport }}"
  - name: "Artefact Manager"
    container_port: "{{ artefact_manager_nodeport }}"
    host_port: "{{ artefact_manager_nodeport }}"
    listen_address: "{{ api_server_address }}"
    protocol: TCP
  - name: "Federation Manager"
    container_port: "{{ federation_manager_nodeport }}"
    host_port: "{{ federation_manager_nodeport }}"
    listen_address: "{{ api_server_address }}"
    protocol: TCP
  - name: "Keycloak"
    container_port: "{{ keycloak_nodeport }}"
    host_port: "{{ keycloak_nodeport }}"
    listen_address: "{{ api_server_address }}"
    protocol: TCP
  - name: "MongoDB"
    container_port: "{{ mongodb_nodeport }}"
    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
  - name: "Remote Federation Manager"
    container_port: "{{ remote_federation_manager_nodeport }}"
    host_port: "{{ remote_federation_manager_nodeport }}"
    listen_address: "{{ api_server_address }}"
    protocol: TCP
  - name: "Remote Keycloak"
    container_port: "{{ remote_keycloak_nodeport }}"
    host_port: "{{ remote_keycloak_nodeport }}"
    listen_address: "{{ api_server_address }}"
    protocol: TCP
  - name: "Remote MongoDB"
    container_port: "{{ remote_mongodb_nodeport }}"
    host_port: "{{ remote_mongodb_nodeport }}"
    listen_address: "{{ api_server_address }}"
    protocol: TCP

# Cluster nodes configuration
control_plane_nodes: 1
Loading