Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MVP - Create OVA and AMI Configuration Modules #157

Open
Enaraque opened this issue Jan 13, 2025 · 0 comments
Open

MVP - Create OVA and AMI Configuration Modules #157

Enaraque opened this issue Jan 13, 2025 · 0 comments
Labels
level/task Task issue type/enhancement Enhancement issue

Comments

@Enaraque
Copy link
Member

Enaraque commented Jan 13, 2025

Description

The main structure for creating the OVA and AMI will be divided into different Python modules, with each module responsible for a specific part of the generation process.

Modules

Provisioner

First, a module will be required to handle the provisioning of the various Wazuh components and dependencies. This module will be referred to as the provisioner.

Configurer

Once Wazuh's components and dependencies have been provisioned, it is necessary to configure each component so they can communicate correctly with one another. This will be the responsibility of the configurer module.

To achieve this, the configurer will be divided into three submodules, each focusing on different configurations:

  • core_configurer: This will be the primary module responsible for the initial configuration of each component. It will configure each component to ensure a functional product (similar to the installation assistant).
  • ova_configurer: This submodule will focus on all configurations required for the OVA. After the essential configurations for a functional product are completed, this module will prepare the product for deployment as an OVA.
  • ami_configurer: This submodule will focus on all configurations required for the AMI. After the essential configurations for a functional product are completed, this module will prepare the product for deployment as an AWS AMI.

Tests

Unit Tests

As new functionalities are developed in each module mentioned earlier, a series of tests should be written to ensure that what is being developed works correctly. These unit tests will focus on validating individual functions, methods, and components of the codebase.

These tests will be written using pytest, the most widely used library in Python for creating tests.

Deployment Tests

In addition to unit tests, it is also necessary to create a set of deployment tests. These tests should verify that, once the entire configuration process is complete and the machine is ready, everything functions as expected.

The deployment tests must ensure the following:

  • Verify that log files contain no errors.
  • Confirm proper access to the Wazuh dashboard.
  • Validate that certificates are correctly created.
  • Check for correct connectivity between components.
  • Ensure all necessary services are up and running.

Proposed project structure

├── provisioner/
│   ├── __init__.py
│   ├── provisioner.py
├── configurer/
│   ├── __init__.py
│   ├── core_configurer/
│   │   ├── __init__.py
│   │   ├── core_configurer.py
│   ├── ova_configurer/
│   │   ├── __init__.py
│   │   ├── ova_configurer.py
│   ├── ami_configurer/
│       ├── __init__.py
│       ├── ami_configurer.py
├── tests/
    ├── unit/
    |   ├── configurer/
    |   │   ├── core/
    |   │   │   ├── __init__.py
    |   │   │   ├── test_core_configurer.py
    |   │   ├── ova/
    |   │   │   ├── __init__.py
    |   │   │   ├── test_ova_configurer.py
    |   │   ├── ami/
    |   │   │   ├── __init__.py
    |   │   │   ├── test_ami_configurer.py
    │   ├── provisioner/
    │       ├── __init__.py
    │       ├── test_provisioner.py
    ├── deployment/
        ├── configurer/
        │   ├── core/
        │   │   ├── __init__.py
        │   │   ├── test_core_deployment.py
        │   ├── ova/
        │   │   ├── __init__.py
        │   │   ├── test_ova_deployment.py
        │   ├── ami/
        │       ├── __init__.py
        │       ├── test_ami_deployment.py
        ├── provisioner/
            ├── __init__.py
            ├── test_provision_deployment.py

DRI

@teddytpc1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
level/task Task issue type/enhancement Enhancement issue
Projects
Status: Backlog
Development

No branches or pull requests

1 participant