Skip to content
This repository has been archived by the owner on Jun 25, 2024. It is now read-only.

Commit

Permalink
Test samples from inline docs
Browse files Browse the repository at this point in the history
Signed-off-by: Fabricio Aguiar <[email protected]>
  • Loading branch information
fao89 committed Mar 21, 2024
1 parent b49390b commit 715ac4c
Show file tree
Hide file tree
Showing 9 changed files with 480 additions and 24 deletions.
4 changes: 4 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
repos:
- repo: local
hooks:
- id: doc-sample
name: doc-sample
language: system
entry: docs/docs_to_sample.sh
- id: gotidy
name: gotidy
language: system
Expand Down
4 changes: 2 additions & 2 deletions docs/assemblies/creating-the-data-plane.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ include::proc_creating-a-custom-service.adoc[leveloffset=+2]
include::proc_configuring-a-node-set-for-a-Compute-feature-or-workload.adoc[leveloffset=+2]
include::proc_building-a-custom-ansible-runner-image.adoc[leveloffset=+2]

include::ref_example-OpenStackDataPlaneNodeSet-CR-for-preprovisioned-nodes.adoc[leveloffset=+1]
include::ref_example-OpenStackDataPlaneNodeSet-CR-for-bare-metal-nodes.adoc[leveloffset=+1]
include::samples/ref_example-OpenStackDataPlaneNodeSet-CR-for-preprovisioned-nodes.adoc[leveloffset=+1]
include::samples/ref_example-OpenStackDataPlaneNodeSet-CR-for-bare-metal-nodes.adoc[leveloffset=+1]

include::ref_data-plane-conditions-and-states.adoc[leveloffset=+1]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ kind: OpenStackDataPlaneNodeSet
metadata:
name: openstack-edpm-ipam
spec:
env: <1>
env: #<1>
- name: ANSIBLE_FORCE_COLOR
value: "True"
services: <2>
services: #<2>
- configure-network
- validate-network
- install-os
Expand All @@ -23,19 +23,19 @@ spec:
- libvirt
- nova
- telemetry
baremetalSetTemplate: <3>
baremetalSetTemplate: #<3>
bmhLabelSelector:
app: openstack
ctlplaneInterface: enp1s0
cloudUserName: cloud-admin
nodes:
edpm-compute-0: <4>
edpm-compute-0: #<4>
hostName: edpm-compute-0
networkAttachments: <5>
networkAttachments: #<5>
- ctlplane
nodeTemplate: <6>
ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret <7>
networks: <8>
nodeTemplate: #<6>
ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret #<7>
networks: #<8>
- name: CtlPlane
subnetName: subnet1
defaultRoute: true
Expand All @@ -47,16 +47,15 @@ spec:
subnetName: subnet1
managementNetwork: ctlplane
ansible:
ansibleUser: cloud-admin <9>
ansibleUser: cloud-admin #<9>
ansiblePort: 22
ansibleVars: <10>
ansibleVars: #<10>
service_net_map:
nova_api_network: internal_api
nova_libvirt_network: internal_api
edpm_chrony_ntp_servers:
- pool.ntp.org
edpm_network_config_hide_sensitive_logs: false
edpm_network_config_template: | <11>
edpm_network_config_template: | #<11>
---
{% set mtu_list = [ctlplane_mtu] %}
{% for network in role_networks %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ kind: OpenStackDataPlaneNodeSet
metadata:
name: openstack-edpm-ipam
spec:
env: <1>
env: #<1>
- name: ANSIBLE_FORCE_COLOR
value: "True"
preProvisioned: true <2>
services: <3>
preProvisioned: true #<2>
services: #<3>
- configure-network
- validate-network
- install-os
Expand All @@ -25,7 +25,7 @@ spec:
- nova
- telemetry
nodes:
edpm-compute-0: <4>
edpm-compute-0: #<4>
hostName: edpm-compute-0
ansible:
ansibleHost: 192.168.122.100
Expand Down Expand Up @@ -55,21 +55,21 @@ spec:
subnetName: subnet1
- name: Tenant
subnetName: subnet1
networkAttachments: <5>
networkAttachments: #<5>
- ctlplane
nodeTemplate: <6>
ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret <7>
nodeTemplate: #<6>
ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret #<7>
managementNetwork: ctlplane
ansible:
ansibleUser: cloud-admin <8>
ansibleUser: cloud-admin #<8>
ansiblePort: 22
ansibleVars: <9>
ansibleVars: #<9>
service_net_map:
nova_api_network: internal_api
nova_libvirt_network: internal_api
edpm_chrony_ntp_servers:
- pool.ntp.org
edpm_network_config_template: | <10>
edpm_network_config_template: | #<10>
---
{% set mtu_list = [ctlplane_mtu] %}
{% for network in role_networks %}
Expand Down
9 changes: 9 additions & 0 deletions docs/docs_to_sample.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -ex

COUNT=0
for sample in */assemblies/samples/* ; do
FILENAME=$(basename $sample)
sed '0,/----/d' $sample | sed -e '/----/,$d' > tests/kuttl/tests/docs-test/0${COUNT}-${FILENAME/adoc/yaml}
COUNT=$((COUNT + 1))
done
109 changes: 109 additions & 0 deletions tests/kuttl/tests/docs-test/00-assert.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
apiVersion: dataplane.openstack.org/v1beta1
kind: OpenStackDataPlaneNodeSet
metadata:
name: openstack-edpm-ipam
spec:
env:
- name: ANSIBLE_FORCE_COLOR
value: "True"
nodes:
edpm-compute-0:
ansible:
ansibleHost: 192.168.122.100
ansibleUser: cloud-admin
ansibleVars:
ctlplane_ip: 192.168.122.100
fqdn_internalapi: edpm-compute-0.example.com
internalapi_ip: 172.17.0.100
storage_ip: 172.18.0.100
tenant_ip: 172.19.0.100
hostName: edpm-compute-0
nodeTemplate:
ansible:
ansiblePort: 22
ansibleUser: cloud-admin
ansibleVars:
ctlplane_dns_nameservers:
- 192.168.122.1
ctlplane_gateway_ip: 192.168.122.1
ctlplane_host_routes:
- ip_netmask: 0.0.0.0/0
next_hop: 192.168.122.1
ctlplane_mtu: 1500
ctlplane_cidr: 24
dns_search_domains: []
timesync_ntp_servers:
- hostname: clock.redhat.com
edpm_network_config_hide_sensitive_logs: false
edpm_nodes_validation_validate_controllers_icmp: false
edpm_nodes_validation_validate_gateway_icmp: false
edpm_selinux_mode: enforcing
edpm_sshd_allowed_ranges:
- 192.168.122.0/24
edpm_sshd_configure_firewall: true
enable_debug: false
external_cidr: "24"
external_host_routes: []
external_mtu: 1500
external_vlan_id: 44
gather_facts: false
internalapi_cidr: "24"
internalapi_host_routes: []
internalapi_mtu: 1500
internalapi_vlan_id: 20
networks_lower:
External: external
InternalApi: internalapi
Storage: storage
Tenant: tenant
neutron_physical_bridge_name: br-ex
neutron_public_interface_name: eth0
role_networks:
- InternalApi
- Storage
- Tenant
service_net_map:
nova_api_network: internalapi
nova_libvirt_network: internalapi
storage_cidr: "24"
storage_host_routes: []
storage_mtu: 1500
storage_vlan_id: 21
tenant_cidr: "24"
tenant_host_routes: []
tenant_mtu: 1500
tenant_vlan_id: 22
ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret
managementNetwork: ctlplane
preProvisioned: true
services:
- download-cache
- bootstrap
- configure-network
- validate-network
- install-os
- configure-os
- run-os
- install-certs
- ovn
- neutron-metadata
- libvirt
- nova
status:
conditions:
- message: Deployment not started
reason: Requested
status: "False"
type: Ready
- message: Deployment not started
reason: Requested
status: "False"
type: DeploymentReady
- message: Input data complete
reason: Ready
status: "True"
type: InputReady
- message: Setup complete
reason: Ready
status: "True"
type: SetupReady
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
apiVersion: dataplane.openstack.org/v1beta1
kind: OpenStackDataPlaneNodeSet
metadata:
name: openstack-edpm-ipam
spec:
env: #<1>
- name: ANSIBLE_FORCE_COLOR
value: "True"
services: #<2>
- configure-network
- validate-network
- install-os
- configure-os
- run-os
- ovn
- libvirt
- nova
- telemetry
baremetalSetTemplate: #<3>
bmhLabelSelector:
app: openstack
ctlplaneInterface: enp1s0
cloudUserName: cloud-admin
nodes:
edpm-compute-0: #<4>
hostName: edpm-compute-0
networkAttachments: #<5>
- ctlplane
nodeTemplate: #<6>
ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret #<7>
networks: #<8>
- name: CtlPlane
subnetName: subnet1
defaultRoute: true
- name: InternalApi
subnetName: subnet1
- name: Storage
subnetName: subnet1
- name: Tenant
subnetName: subnet1
managementNetwork: ctlplane
ansible:
ansibleUser: cloud-admin #<9>
ansiblePort: 22
ansibleVars: #<10>
service_net_map:
nova_api_network: internal_api
nova_libvirt_network: internal_api
edpm_chrony_ntp_servers:
- pool.ntp.org
edpm_network_config_template: | #<11>
---
{% set mtu_list = [ctlplane_mtu] %}
{% for network in role_networks %}
{{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }}
{%- endfor %}
{% set min_viable_mtu = mtu_list | max %}
network_config:
- type: ovs_bridge
name: {{ neutron_physical_bridge_name }}
mtu: {{ min_viable_mtu }}
use_dhcp: false
dns_servers: {{ ctlplane_dns_nameservers }}
domain: {{ dns_search_domains }}
addresses:
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_subnet_cidr }}
routes: {{ ctlplane_host_routes }}
members:
- type: interface
name: nic1
mtu: {{ min_viable_mtu }}
# force the MAC address of the bridge to this interface
primary: true
{% for network in role_networks %}
- type: vlan
mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }}
addresses:
- ip_netmask:
{{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }}
routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }}
{% endfor %}
edpm_network_config_hide_sensitive_logs: false
# These vars are for the network config templates themselves and are
# considered EDPM network defaults.
neutron_physical_bridge_name: br-ex
neutron_public_interface_name: eth0
role_networks:
- InternalApi
- Storage
- Tenant
networks_lower:
External: external
InternalApi: internal_api
Storage: storage
Tenant: tenant
# edpm_nodes_validation
edpm_nodes_validation_validate_controllers_icmp: false
edpm_nodes_validation_validate_gateway_icmp: false
gather_facts: false
enable_debug: false
# edpm firewall, change the allowed CIDR if needed
edpm_sshd_configure_firewall: true
edpm_sshd_allowed_ranges: ['192.168.122.0/24']
# SELinux module
edpm_selinux_mode: enforcing
Loading

0 comments on commit 715ac4c

Please sign in to comment.