Skip to content

worldline/Puppet-ProSA

Repository files navigation

Puppet ProSA

Table of Contents

  1. Description
  2. Setup
  3. Usage
  4. Limitations
  5. Development - Guide for contributing to the module

Description

ProSA (Protocol Service Adaptor) is a framework designed to provide a simple and lightweight protocol service adaptor for service-oriented architectures. This Puppet module managed with PDK streamlines the process of creating configurations to manage ProSA in your infrastructure. It is capable of configuring and managing a range of processors. For more information on deploying ProSA, please refer to cargo-prosa.

Setup

What the ProSA module affects

  • Service and configuration files for ProSA
  • ProSA processor configuration files

Setup Requirements

This module does not install dependencies required for your specific ProSA instance, such as OpenSSL. You will need to install these dependencies separately according to your ProSA setup.

Beginning with prosa

To have Puppet install ProSA with the default parameters, declare the [prosa][https://forge.puppet.com/modules/worldline/prosa/reference#prosa] class:

class { 'prosa': }

When you declare this class with the default options, the module:

  • Installs the ProSA instace binary from the configured bin_repo.
  • Generate configuration files in the conf_dir.
  • Creates and starts a ProSA service.

Usage

ProSA base

To set up ProSA, you need to use the [prosa][https://forge.puppet.com/modules/worldline/prosa/reference#prosa] class.

From this class, you should specify the binary repository to retrieve the ProSA binary. Additionally, observability is configured by default, but you may need to specify parameters based on your particular stack.

class { 'prosa':
  bin_repo        => 'https://user:[email protected]/repository/prosa-1.0.0.bin',
  telemetry_level => 'info',
  observability   => {
    'metrics' => {
      'otlp' => {
        'endpoint' => 'http://opentelemetry-collector:4317',
        'protocol' => 'Grpc'
      },
    },
    'traces' => {
      'otlp' => {
        'endpoint' => 'http://opentelemetry-collector:4317',
        'protocol' => 'Grpc'
      },
      'stdout' => {
        'level' => 'info',
      },
    },
    'logs' => {
      'otlp' => {
        'endpoint' => 'http://opentelemetry-collector:4317',
        'protocol' => 'Grpc'
      },
      'stdout' => {
        'level' => 'info',
      },
    },
  }
}

With this configuration, ProSA will be installed and ready to accept processors. Configuring processors is the next step.

Configuring Processors

Processors are configured using the prosa::proc defined type. You can set them up individually or use prosa::processors for all:

class { 'prosa::processors':
  processors => {
    'stub' => {
      'proc_settings' => {
        'service_names' => ['test'],
      },
    },
    'inj' => {
      'proc_settings' => {
        'service_name' => 'test',
      },
    },
  }
}

Since processors have different configurations, proc_settings is provided as a Hash to accommodate all necessary configuration options. To determine which configurations to specify, refer to the documentation for the corresponding processor.

Reference

For information on classes, types and functions see the REFERENCE.md

Limitations

Limitations are associated with the ProSA binary generated with cargo-prosa. You need to pay attention to the compiled architecture of your binary. Additionally, if you are using external binaries (e.g., OpenSSL), you'll need to install them independently.

Development

For development guidelines, please follow contributing rules.

If you submit a change to this module, be sure to regenerate the reference documentation as follows:

puppet strings generate --format markdown --out REFERENCE.md

Acceptance tests are runs with litmus

Authors

Worldline

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published