Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
5cbb61f
fix: resize OneKE disks via Ruby API
raulluzon Jun 19, 2026
9ef4113
fix: ensure S3 bucket exists before listing objects in s3_download
raulluzon Jun 22, 2026
36be98e
fix(open5gs_vm): bypass strict KEX negotiation to fix SSH connection …
raulluzon Jun 24, 2026
6a7128e
fix(open5gs_vm): update Open5GS version pin from 2.7.6 to 2.8.0
raulluzon Jun 26, 2026
cfcb0c7
docs(open5gs_vm): update version references from 2.7.6 to 2.8.0
raulluzon Jun 26, 2026
2e9d5af
fix(open5gs_vm): update Open5GS version reference from 2.7.6 to 2.8.0…
raulluzon Jun 30, 2026
849f7f8
fix(open5gs_vm): wait for dpkg lock before apt operations on fresh VMs
raulluzon Jul 1, 2026
b358ce1
fix(open5gs_vm): stop unattended-upgrades before apt to avoid lock ti…
raulluzon Jul 1, 2026
1325a35
fix(open5gs_vm): force-kill processes holding dpkg lock before apt
raulluzon Jul 2, 2026
304c373
fix: derive VM SSH key from Jenkins service key instead of OpenNebula…
raulluzon Jul 9, 2026
7f0430b
fix: replace -J ProxyJump with explicit ProxyCommand on all VM compon…
raulluzon Jul 9, 2026
3e1068f
fix: disable unattended-upgrades at VM boot and increase wait_for_con…
raulluzon Jul 10, 2026
0e606ce
fix: extend START_SCRIPT to mask apt timers and enable pipelining for…
raulluzon Jul 10, 2026
f7722ef
fix(open5gs_vm): remove ansible_pipelining to unblock template module…
raulluzon Jul 10, 2026
07b60af
fix(open5gs_vm): disable SSH ControlMaster and pipelining for bastion…
raulluzon Jul 10, 2026
38181a4
fix(open5gs_vm): use local connection for ControlMaster socket cleanu…
raulluzon Jul 11, 2026
c390e78
fix(open5gs_vm): re-enable pipelining for become tasks through ProxyC…
raulluzon Jul 11, 2026
3985cc6
fix(open5gs_vm): restore ControlMaster with ControlPersist=3600 for n…
raulluzon Jul 11, 2026
e98a669
fix(open5gs_vm): revert to ControlMaster=no and add wait after netpla…
raulluzon Jul 12, 2026
3e1ddce
fix(open5gs_vm): add second wait_for_connection before first remote task
raulluzon Jul 12, 2026
0435554
fix(open5gs_vm): kill unattended-upgrades early to prevent sshd restart
raulluzon Jul 12, 2026
bc4ead4
fix(open5gs_vm): mask apt timers and suppress needrestart to prevent …
raulluzon Jul 12, 2026
3826f5f
fix(open5gs_vm): wait for cloud-init to complete before user-creation…
raulluzon Jul 12, 2026
38e5b31
fix(all_vms): add SSH keepalives to prevent TCP idle timeout during A…
raulluzon Jul 16, 2026
e067b38
fix(open5gs_vm): prevent sshd restart during dpkg --configure -a
raulluzon Jul 16, 2026
5c77b68
fix(open5gs_vm): clear pending dpkg state early to prevent deferred s…
raulluzon Jul 16, 2026
b1eae08
fix(open5gs_vm): give more headroom for SSH to stabilize before first…
raulluzon Jul 16, 2026
1a2f30a
fix(open5gs_vm): give more headroom for SSH to recover after dpkg con…
raulluzon Jul 16, 2026
e7edbb2
la-mayora-descriptor
raulluzon Jul 17, 2026
8b0132f
fix(tn_destroy): drop stale Address Range state before retrying destr…
raulluzon Jul 20, 2026
6b64d6b
fix(tn_destroy): broaden stale-AR detection to cover the free_ar INTE…
raulluzon Jul 20, 2026
d44ced1
fix(tn_destroy): fix silent type mismatch when matching stale AR reso…
raulluzon Jul 20, 2026
0604b77
fix(tn_destroy): use bracket notation to avoid dict-method name colli…
raulluzon Jul 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion .dummy_component/code/component_playbook.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,16 @@
ansible.builtin.add_host:
hostname: "new_host"
ansible_host: "{{ ips[access_vnet_id] }}"
ansible_ssh_common_args: "-J jenkins@{{ bastion_ip }}"
ansible_ssh_common_args: >-
-F /dev/null
-o ControlMaster=no
-o ServerAliveInterval=30
-o ServerAliveCountMax=10
-o ProxyCommand="ssh -i /var/lib/jenkins/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o KexAlgorithms=curve25519-sha256 -o BatchMode=yes -o ServerAliveInterval=30 -o ServerAliveCountMax=10 jenkins@{{ bastion_ip }} nc %h %p"
-o IdentityFile=/var/lib/jenkins/.ssh/id_ed25519
-o KexAlgorithms=curve25519-sha256
-o StrictHostKeyChecking=no
-o UserKnownHostsFile=/dev/null
ansible_user: "jenkins"

# While not used by the Jenkins, we included the configuration of a .ssh/config per TN in the Jenkins VM for debugging purposes.
Expand Down
2 changes: 1 addition & 1 deletion .dummy_component/code/one/iac/dummy_component.tf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ resource "opennebula_virtual_machine" "{{ entity_name }}" {
NETCFG_TYPE = "interfaces"
SET_HOSTNAME = "$NAME"
USERNAME = "jenkins"
SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]"
SSH_PUBLIC_KEY = "{{ jenkins_ssh_public_key }}"
}

{# ### Disabled the possibility to modify VM's size due to a problem with Terraform's OpenNebula Provider
Expand Down
4 changes: 4 additions & 0 deletions .global/cac/load_variables.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,7 @@
- name: Load public component-specific variables from input file
ansible.builtin.include_vars:
file: "{{ workspace }}/{{ component_type }}/variables/input_file.yaml"

- name: Set Jenkins SSH public key from local file
ansible.builtin.set_fact:
jenkins_ssh_public_key: "{{ lookup('file', '/var/lib/jenkins/.ssh/id_ed25519.pub') }}"
9 changes: 9 additions & 0 deletions .global/cac/s3_download.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
- name: Ensure S3 bucket exists
amazon.aws.s3_bucket:
name: "{{ site_s3_server.bucket }}"
state: present
endpoint_url: "{{ site_s3_server.endpoint }}"
access_key: "{{ lookup('ansible.builtin.env', 'AWS_ACCESS_KEY_ID') }}"
secret_key: "{{ lookup('ansible.builtin.env', 'AWS_SECRET_ACCESS_KEY') }}"
validate_certs: false

- name: Get list of files from S3 object storage
amazon.aws.s3_object:
endpoint_url: "{{ site_s3_server.endpoint }}"
Expand Down
37 changes: 37 additions & 0 deletions .global/cac/tn_destroy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,43 @@
state: "present"
force_init: true
ignore_errors: true
register: first_apply_result

# The OpenNebula terraform provider can hard-error on refresh/plan when an
# opennebula_virtual_network_address_range's AR was already removed from OpenNebula
# (e.g. destroyed as a side effect of the first, ignored apply above) but the AR
# resource itself is still tracked in state. Drop just those stale AR entries so the
# retry below can proceed instead of failing again with "AR not found".
- name: Dump current terraform state as JSON to detect stale Address Ranges
ansible.builtin.command:
cmd: terraform show -json
chdir: "{{ workspace }}/.terraform/"
register: tf_state_dump
changed_when: false

# Matches both observed OpenNebula provider error phrasings for a stale AR:
# "Virtual network (ID:X): AR (ID:Y) not found"
# "Virtual network (ID:X): AR (ID:Y): OpenNebula error [INTERNAL]: [one.vn.free_ar] Address Range does not exist"
- name: Identify OpenNebula Virtual Network IDs reported as having a missing Address Range
ansible.builtin.set_fact:
stale_ar_vnet_ids: "{{ (first_apply_result.msg | default('')) | regex_findall('Virtual network \\(ID:(\\d+)\\): AR \\(ID:\\d+\\)') }}"

# virtual_network_id may be tracked as an int or a string depending on provider
# version, while stale_ar_vnet_ids (from regex_findall) is always a list of strings;
# cast explicitly per-item in the `when` below so the comparison isn't silently
# type-mismatched (a selectattr('..., 'in', ...) pipeline can't cast inline).
- name: Remove stale Address Range entries from terraform state so the retry can proceed
ansible.builtin.command:
cmd: "terraform state rm {{ item.address }}"
chdir: "{{ workspace }}/.terraform/"
loop: "{{ (tf_state_dump.stdout | from_json)['values']['root_module']['resources'] | default([]) }}"
loop_control:
label: "{{ item.address }}"
when: >-
stale_ar_vnet_ids | length > 0 and
item.type == 'opennebula_virtual_network_address_range' and
(item['values']['virtual_network_id'] | string) in stale_ar_vnet_ids
ignore_errors: true

- name: Run 'terraform apply' a second time. Command should now succeed
community.general.terraform:
Expand Down
13 changes: 11 additions & 2 deletions elcm/code/component_playbook.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,16 @@
ansible.builtin.add_host:
hostname: "elcm"
ansible_host: "{{ ips[access_vnet_id] }}"
ansible_ssh_common_args: "-J jenkins@{{ bastion_ip }}"
ansible_ssh_common_args: >-
-F /dev/null
-o ControlMaster=no
-o ServerAliveInterval=30
-o ServerAliveCountMax=10
-o ProxyCommand="ssh -i /var/lib/jenkins/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o KexAlgorithms=curve25519-sha256 -o BatchMode=yes -o ServerAliveInterval=30 -o ServerAliveCountMax=10 jenkins@{{ bastion_ip }} nc %h %p"
-o IdentityFile=/var/lib/jenkins/.ssh/id_ed25519
-o KexAlgorithms=curve25519-sha256
-o StrictHostKeyChecking=no
-o UserKnownHostsFile=/dev/null
ansible_user: "jenkins"

- name: Add new VM to SSH config file in the Jenkins-master for debugging purposes
Expand All @@ -87,7 +96,7 @@
- name: Wait for system to become reachable
ansible.builtin.wait_for_connection:
connect_timeout: 5
timeout: 200
timeout: 600

- name: Set site ssh key as authorized in jenkins user
ansible.posix.authorized_key:
Expand Down
5 changes: 4 additions & 1 deletion elcm/code/one/iac/elcm.tf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ resource "opennebula_virtual_machine" "{{ entity_name }}" {
NETCFG_TYPE = "interfaces"
SET_HOSTNAME = "$NAME"
USERNAME = "jenkins"
SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]"
SSH_PUBLIC_KEY = "{{ jenkins_ssh_public_key }}"
# Disable unattended-upgrades at first boot to prevent sshd restarts during Ansible provisioning
# Script: systemctl stop/mask unattended-upgrades apt-daily-upgrade apt-daily and their timers and their timers
START_SCRIPT_BASE64 = "IyEvYmluL2Jhc2gKc3lzdGVtY3RsIHN0b3AgdW5hdHRlbmRlZC11cGdyYWRlcyBhcHQtZGFpbHktdXBncmFkZSBhcHQtZGFpbHkgMj4vZGV2L251bGwgfHwgdHJ1ZQpzeXN0ZW1jdGwgbWFzayB1bmF0dGVuZGVkLXVwZ3JhZGVzIGFwdC1kYWlseS11cGdyYWRlIGFwdC1kYWlseSAyPi9kZXYvbnVsbCB8fCB0cnVlCnN5c3RlbWN0bCBzdG9wIGFwdC1kYWlseS50aW1lciBhcHQtZGFpbHktdXBncmFkZS50aW1lciAyPi9kZXYvbnVsbCB8fCB0cnVlCnN5c3RlbWN0bCBtYXNrIGFwdC1kYWlseS50aW1lciBhcHQtZGFpbHktdXBncmFkZS50aW1lciAyPi9kZXYvbnVsbCB8fCB0cnVlCg=="
ONEAPP_ELCM_PORTAL_ENABLE = "YES"
ONEAPP_ELCM_INFLUXDB_ENABLE = "YES"
ONEAPP_ELCM_INFLUXDB_HOST = "{{ influxdb_configuration.host }}"
Expand Down
13 changes: 11 additions & 2 deletions grafana/code/component_playbook.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,16 @@
ansible.builtin.add_host:
hostname: "grafana"
ansible_host: "{{ ips[access_vnet_id] }}"
ansible_ssh_common_args: "-J jenkins@{{ bastion_ip }}"
ansible_ssh_common_args: >-
-F /dev/null
-o ControlMaster=no
-o ServerAliveInterval=30
-o ServerAliveCountMax=10
-o ProxyCommand="ssh -i /var/lib/jenkins/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o KexAlgorithms=curve25519-sha256 -o BatchMode=yes -o ServerAliveInterval=30 -o ServerAliveCountMax=10 jenkins@{{ bastion_ip }} nc %h %p"
-o IdentityFile=/var/lib/jenkins/.ssh/id_ed25519
-o KexAlgorithms=curve25519-sha256
-o StrictHostKeyChecking=no
-o UserKnownHostsFile=/dev/null
ansible_user: "jenkins"

- name: Add new VM to SSH config file in the Jenkins-master for debugging purposes
Expand All @@ -67,7 +76,7 @@
- name: Wait for system to become reachable
ansible.builtin.wait_for_connection:
connect_timeout: 5
timeout: 200
timeout: 600

- name: Set site ssh key as authorized in jenkins user
ansible.posix.authorized_key:
Expand Down
5 changes: 4 additions & 1 deletion grafana/code/one/iac/grafana.tf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ resource "opennebula_virtual_machine" "{{ entity_name }}" {
NETCFG_TYPE = "interfaces"
SET_HOSTNAME = "$NAME"
USERNAME = "jenkins"
SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]"
SSH_PUBLIC_KEY = "{{ jenkins_ssh_public_key }}"
# Disable unattended-upgrades at first boot to prevent sshd restarts during Ansible provisioning
# Script: systemctl stop/mask unattended-upgrades apt-daily-upgrade apt-daily and their timers and their timers
START_SCRIPT_BASE64 = "IyEvYmluL2Jhc2gKc3lzdGVtY3RsIHN0b3AgdW5hdHRlbmRlZC11cGdyYWRlcyBhcHQtZGFpbHktdXBncmFkZSBhcHQtZGFpbHkgMj4vZGV2L251bGwgfHwgdHJ1ZQpzeXN0ZW1jdGwgbWFzayB1bmF0dGVuZGVkLXVwZ3JhZGVzIGFwdC1kYWlseS11cGdyYWRlIGFwdC1kYWlseSAyPi9kZXYvbnVsbCB8fCB0cnVlCnN5c3RlbWN0bCBzdG9wIGFwdC1kYWlseS50aW1lciBhcHQtZGFpbHktdXBncmFkZS50aW1lciAyPi9kZXYvbnVsbCB8fCB0cnVlCnN5c3RlbWN0bCBtYXNrIGFwdC1kYWlseS50aW1lciBhcHQtZGFpbHktdXBncmFkZS50aW1lciAyPi9kZXYvbnVsbCB8fCB0cnVlCg=="
ONEAPP_GRAFANA_VERSION = "{{ one_grafana_version }}"
ONEAPP_GRAFANA_ADMIN_PASSWORD = "{{ one_grafana_password }}"
}
Expand Down
13 changes: 11 additions & 2 deletions influxdb/code/component_playbook.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,16 @@
ansible.builtin.add_host:
hostname: "influxdb"
ansible_host: "{{ ips[access_vnet_id] }}"
ansible_ssh_common_args: "-J jenkins@{{ bastion_ip }}"
ansible_ssh_common_args: >-
-F /dev/null
-o ControlMaster=no
-o ServerAliveInterval=30
-o ServerAliveCountMax=10
-o ProxyCommand="ssh -i /var/lib/jenkins/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o KexAlgorithms=curve25519-sha256 -o BatchMode=yes -o ServerAliveInterval=30 -o ServerAliveCountMax=10 jenkins@{{ bastion_ip }} nc %h %p"
-o IdentityFile=/var/lib/jenkins/.ssh/id_ed25519
-o KexAlgorithms=curve25519-sha256
-o StrictHostKeyChecking=no
-o UserKnownHostsFile=/dev/null
ansible_user: "jenkins"

- name: Add new VM to SSH config file in the Jenkins-master for debugging purposes
Expand All @@ -67,7 +76,7 @@
- name: Wait for system to become reachable
ansible.builtin.wait_for_connection:
connect_timeout: 5
timeout: 200
timeout: 600

- name: Set site ssh key as authorized in jenkins user
ansible.posix.authorized_key:
Expand Down
5 changes: 4 additions & 1 deletion influxdb/code/one/iac/influxdb.tf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ resource "opennebula_virtual_machine" "{{ entity_name }}" {
NETCFG_TYPE = "interfaces"
SET_HOSTNAME = "$NAME"
USERNAME = "jenkins"
SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]"
SSH_PUBLIC_KEY = "{{ jenkins_ssh_public_key }}"
# Disable unattended-upgrades at first boot to prevent sshd restarts during Ansible provisioning
# Script: systemctl stop/mask unattended-upgrades apt-daily-upgrade apt-daily and their timers and their timers
START_SCRIPT_BASE64 = "IyEvYmluL2Jhc2gKc3lzdGVtY3RsIHN0b3AgdW5hdHRlbmRlZC11cGdyYWRlcyBhcHQtZGFpbHktdXBncmFkZSBhcHQtZGFpbHkgMj4vZGV2L251bGwgfHwgdHJ1ZQpzeXN0ZW1jdGwgbWFzayB1bmF0dGVuZGVkLXVwZ3JhZGVzIGFwdC1kYWlseS11cGdyYWRlIGFwdC1kYWlseSAyPi9kZXYvbnVsbCB8fCB0cnVlCnN5c3RlbWN0bCBzdG9wIGFwdC1kYWlseS50aW1lciBhcHQtZGFpbHktdXBncmFkZS50aW1lciAyPi9kZXYvbnVsbCB8fCB0cnVlCnN5c3RlbWN0bCBtYXNrIGFwdC1kYWlseS50aW1lciBhcHQtZGFpbHktdXBncmFkZS50aW1lciAyPi9kZXYvbnVsbCB8fCB0cnVlCg=="
ONEAPP_INFLUXDB_VERSION = "{{ one_influxdb_version }}"
ONEAPP_INFLUXDB_USER = "{{ one_influxdb_user }}"
ONEAPP_INFLUXDB_PASSWORD = "{{ one_influxdb_password }}"
Expand Down
24 changes: 21 additions & 3 deletions int_p4_sw/code/component_playbook.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,16 @@
ansible.builtin.add_host:
hostname: "int_p4_switch_{{ item.key }}"
ansible_host: "{{ item.value[switch_first_vnet_id] }}"
ansible_ssh_common_args: "-J jenkins@{{ bastion_ip }}"
ansible_ssh_common_args: >-
-F /dev/null
-o ControlMaster=no
-o ServerAliveInterval=30
-o ServerAliveCountMax=10
-o ProxyCommand="ssh -i /var/lib/jenkins/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o KexAlgorithms=curve25519-sha256 -o BatchMode=yes -o ServerAliveInterval=30 -o ServerAliveCountMax=10 jenkins@{{ bastion_ip }} nc %h %p"
-o IdentityFile=/var/lib/jenkins/.ssh/id_ed25519
-o KexAlgorithms=curve25519-sha256
-o StrictHostKeyChecking=no
-o UserKnownHostsFile=/dev/null
ansible_user: "jenkins"
loop: "{{ switch_ips | dict2items }}"

Expand All @@ -65,7 +74,16 @@
ansible.builtin.add_host:
hostname: "int_p4_collector"
ansible_host: "{{ collector_ips[collector_first_vnet_id] }}"
ansible_ssh_common_args: "-J jenkins@{{ bastion_ip }}"
ansible_ssh_common_args: >-
-F /dev/null
-o ControlMaster=no
-o ServerAliveInterval=30
-o ServerAliveCountMax=10
-o ProxyCommand="ssh -i /var/lib/jenkins/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o KexAlgorithms=curve25519-sha256 -o BatchMode=yes -o ServerAliveInterval=30 -o ServerAliveCountMax=10 jenkins@{{ bastion_ip }} nc %h %p"
-o IdentityFile=/var/lib/jenkins/.ssh/id_ed25519
-o KexAlgorithms=curve25519-sha256
-o StrictHostKeyChecking=no
-o UserKnownHostsFile=/dev/null
ansible_user: "jenkins"

- name: Add new VM to SSH config file in the Jenkins-master for debugging purposes
Expand All @@ -81,7 +99,7 @@
- name: Wait for system to become reachable
ansible.builtin.wait_for_connection:
connect_timeout: 5
timeout: 200
timeout: 600

- name: Set site ssh key as authorized in jenkins user
ansible.posix.authorized_key:
Expand Down
5 changes: 4 additions & 1 deletion int_p4_sw/code/one/iac/int_collector_p4_sw.tf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ resource "opennebula_virtual_machine" "{{ entity_name }}_collector" {
NETCFG_TYPE = "interfaces"
SET_HOSTNAME = "$NAME"
USERNAME = "jenkins"
SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]"
SSH_PUBLIC_KEY = "{{ jenkins_ssh_public_key }}"
# Disable unattended-upgrades at first boot to prevent sshd restarts during Ansible provisioning
# Script: systemctl stop/mask unattended-upgrades apt-daily-upgrade apt-daily and their timers and their timers
START_SCRIPT_BASE64 = "IyEvYmluL2Jhc2gKc3lzdGVtY3RsIHN0b3AgdW5hdHRlbmRlZC11cGdyYWRlcyBhcHQtZGFpbHktdXBncmFkZSBhcHQtZGFpbHkgMj4vZGV2L251bGwgfHwgdHJ1ZQpzeXN0ZW1jdGwgbWFzayB1bmF0dGVuZGVkLXVwZ3JhZGVzIGFwdC1kYWlseS11cGdyYWRlIGFwdC1kYWlseSAyPi9kZXYvbnVsbCB8fCB0cnVlCnN5c3RlbWN0bCBzdG9wIGFwdC1kYWlseS50aW1lciBhcHQtZGFpbHktdXBncmFkZS50aW1lciAyPi9kZXYvbnVsbCB8fCB0cnVlCnN5c3RlbWN0bCBtYXNrIGFwdC1kYWlseS50aW1lciBhcHQtZGFpbHktdXBncmFkZS50aW1lciAyPi9kZXYvbnVsbCB8fCB0cnVlCg=="
}

{# ### Disabled the possibility to modify VM's size due to a problem with Terraform's OpenNebula Provider
Expand Down
5 changes: 4 additions & 1 deletion int_p4_sw/code/one/iac/int_switch_p4_sw.tf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ resource "opennebula_virtual_machine" "{{ entity_name }}_{{ switch_index }}" {
NETCFG_TYPE = "interfaces"
SET_HOSTNAME = "$NAME"
USERNAME = "jenkins"
SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]"
SSH_PUBLIC_KEY = "{{ jenkins_ssh_public_key }}"
# Disable unattended-upgrades at first boot to prevent sshd restarts during Ansible provisioning
# Script: systemctl stop/mask unattended-upgrades apt-daily-upgrade apt-daily and their timers and their timers
START_SCRIPT_BASE64 = "IyEvYmluL2Jhc2gKc3lzdGVtY3RsIHN0b3AgdW5hdHRlbmRlZC11cGdyYWRlcyBhcHQtZGFpbHktdXBncmFkZSBhcHQtZGFpbHkgMj4vZGV2L251bGwgfHwgdHJ1ZQpzeXN0ZW1jdGwgbWFzayB1bmF0dGVuZGVkLXVwZ3JhZGVzIGFwdC1kYWlseS11cGdyYWRlIGFwdC1kYWlseSAyPi9kZXYvbnVsbCB8fCB0cnVlCnN5c3RlbWN0bCBzdG9wIGFwdC1kYWlseS50aW1lciBhcHQtZGFpbHktdXBncmFkZS50aW1lciAyPi9kZXYvbnVsbCB8fCB0cnVlCnN5c3RlbWN0bCBtYXNrIGFwdC1kYWlseS50aW1lciBhcHQtZGFpbHktdXBncmFkZS50aW1lciAyPi9kZXYvbnVsbCB8fCB0cnVlCg=="
}

{% for network in switch_config.networks %}
Expand Down
13 changes: 11 additions & 2 deletions ixc_endpoint/code/component_playbook.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,16 @@
ansible.builtin.add_host:
hostname: "endpoint"
ansible_host: "{{ ips[access_vnet_id] }}"
ansible_ssh_common_args: "-J jenkins@{{ bastion_ip }}"
ansible_ssh_common_args: >-
-F /dev/null
-o ControlMaster=no
-o ServerAliveInterval=30
-o ServerAliveCountMax=10
-o ProxyCommand="ssh -i /var/lib/jenkins/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o KexAlgorithms=curve25519-sha256 -o BatchMode=yes -o ServerAliveInterval=30 -o ServerAliveCountMax=10 jenkins@{{ bastion_ip }} nc %h %p"
-o IdentityFile=/var/lib/jenkins/.ssh/id_ed25519
-o KexAlgorithms=curve25519-sha256
-o StrictHostKeyChecking=no
-o UserKnownHostsFile=/dev/null
ansible_user: "jenkins"

- name: Add the bastion to Ansible Inventory
Expand All @@ -73,7 +82,7 @@
- name: Wait for system to become reachable
ansible.builtin.wait_for_connection:
connect_timeout: 5
timeout: 200
timeout: 600

- name: Set site ssh key as authorized in jenkins user
ansible.posix.authorized_key:
Expand Down
5 changes: 4 additions & 1 deletion ixc_endpoint/code/one/iac/ixc_endpoint.tf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ resource "opennebula_virtual_machine" "{{ entity_name }}" {
NETCFG_TYPE = "interfaces"
SET_HOSTNAME = "$NAME"
USERNAME = "jenkins"
SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]"
SSH_PUBLIC_KEY = "{{ jenkins_ssh_public_key }}"
# Disable unattended-upgrades at first boot to prevent sshd restarts during Ansible provisioning
# Script: systemctl stop/mask unattended-upgrades apt-daily-upgrade apt-daily and their timers and their timers
START_SCRIPT_BASE64 = "IyEvYmluL2Jhc2gKc3lzdGVtY3RsIHN0b3AgdW5hdHRlbmRlZC11cGdyYWRlcyBhcHQtZGFpbHktdXBncmFkZSBhcHQtZGFpbHkgMj4vZGV2L251bGwgfHwgdHJ1ZQpzeXN0ZW1jdGwgbWFzayB1bmF0dGVuZGVkLXVwZ3JhZGVzIGFwdC1kYWlseS11cGdyYWRlIGFwdC1kYWlseSAyPi9kZXYvbnVsbCB8fCB0cnVlCnN5c3RlbWN0bCBzdG9wIGFwdC1kYWlseS50aW1lciBhcHQtZGFpbHktdXBncmFkZS50aW1lciAyPi9kZXYvbnVsbCB8fCB0cnVlCnN5c3RlbWN0bCBtYXNrIGFwdC1kYWlseS50aW1lciBhcHQtZGFpbHktdXBncmFkZS50aW1lciAyPi9kZXYvbnVsbCB8fCB0cnVlCg=="
ONEAPP_IXCHARIOT_ENDPOINT_RS_ADDRESS = "{{ one_ixc_endpoint_rs }}"
}

Expand Down
13 changes: 11 additions & 2 deletions ks8500_runner/code/component_playbook.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,16 @@
ansible.builtin.add_host:
hostname: "ks8500runner"
ansible_host: "{{ ips[access_vnet_id] }}"
ansible_ssh_common_args: "-J jenkins@{{ bastion_ip }}"
ansible_ssh_common_args: >-
-F /dev/null
-o ControlMaster=no
-o ServerAliveInterval=30
-o ServerAliveCountMax=10
-o ProxyCommand="ssh -i /var/lib/jenkins/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o KexAlgorithms=curve25519-sha256 -o BatchMode=yes -o ServerAliveInterval=30 -o ServerAliveCountMax=10 jenkins@{{ bastion_ip }} nc %h %p"
-o IdentityFile=/var/lib/jenkins/.ssh/id_ed25519
-o KexAlgorithms=curve25519-sha256
-o StrictHostKeyChecking=no
-o UserKnownHostsFile=/dev/null
ansible_user: "jenkins"

- name: Add tn_bastion to Ansible Inventory
Expand Down Expand Up @@ -80,7 +89,7 @@
- name: Wait for system to become reachable
ansible.builtin.wait_for_connection:
connect_timeout: 5
timeout: 200
timeout: 600

- name: Load enviromental variables from different sources
ansible.builtin.include_tasks: "{{ workspace }}/.global/cac/load_variables.yaml"
Expand Down
Loading