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.
- Service and configuration files for ProSA
- ProSA processor configuration files
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.
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.
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.
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.
For information on classes, types and functions see the REFERENCE.md
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.
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