Skip to main content

Salt Extension for Aerleon

Salt Extension for generating network ACLs and firewall filters with Aerleon.

Overview

Aerleon is the maintained successor to Google's Capirca: it renders platform-specific access-control lists from a single set of platform-independent term and policy definitions.

This extension provides the aerleon execution module. It is a direct port of the capirca execution module that used to ship with Salt core (removed in Salt 3008): the function names and arguments are unchanged, only the underlying library moved from capirca to aerleon. Capirca has been effectively unmaintained since early 2023 (its last PyPI release was 2.0.9 in February 2023), and its capirca.* namespace was renamed to aerleon.* with no compatibility shim, so this port swaps the import and platform-generator lookup accordingly.

The module generates configuration text only; it does not talk to devices. To push generated ACLs onto network gear, use the netacl execution and state modules in saltext-napalm, which call this module's aerleon.* functions.

Requirements

  • Salt 3008 or newer. The built-in capirca module was part of Salt core on 3006/3007, so on those releases the extension is neither needed nor installable (pip enforces salt>=3008).
  • Aerleon 1.17.0 or newer (installed automatically).

Example

Generate a Cisco term:

salt '*' aerleon.get_term_config cisco example-filter example-term \
    source_address=10.0.0.0/8 protocol=tcp action=accept

Provided functions: get_term_config, get_filter_config, get_policy_config, get_filter_pillar and get_term_pillar.

Security

If you discover a security vulnerability, please refer to Salt's security guide.

User Documentation

For setup and usage instructions, please refer to the User Documentation.

Contributing

The saltext-aerleon project welcomes contributions from anyone!

The Salt Extensions guide provides comprehensive instructions on all aspects of Salt extension development, including writing tests, running tests, writing documentation and rendering the docs.

Quickstart

To get started contributing, first clone this repository (or your fork):

# Clone the repo
git clone --origin upstream https://gitlab.com/ggiesen/saltext-aerleon.git

# Change to the repo dir
cd saltext-aerleon

Automatic

If you have installed direnv, copying the included .envrc.example to .envrc and allowing it to run ensures a proper development environment is present and the virtual environment is active.

Without direnv, you can still run the automation explicitly:

make dev  # or python3 tools/initialize.py
source .venv/bin/activate

Manual

Please follow the first steps, skipping the repository initialization and first commit.

Ways to contribute

Contributions come in many forms, and they're all valuable! Here are some ways you can help without writing code:

  • Documentation: Especially examples showing how to use this project to solve specific problems.
  • Triaging issues: Help manage issues.

Any of these things are super valuable to our community, and we sincerely appreciate every contribution!

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

saltext_aerleon-0.1.0.tar.gz (60.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

saltext_aerleon-0.1.0-py2.py3-none-any.whl (17.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file saltext_aerleon-0.1.0.tar.gz.

File metadata

  • Download URL: saltext_aerleon-0.1.0.tar.gz
  • Upload date:
  • Size: 60.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for saltext_aerleon-0.1.0.tar.gz
Algorithm Hash digest
SHA256 eb37c0465b2317741f431d7a3d36008de341378db6f6c03e0abf088c88d4a3d9
MD5 bfa8dec884aba3738dea0339b7b60c8e
BLAKE2b-256 950fef0556646048e82a9f77b683de3d1d8625882b51e83d84170a8ff85cc3f9

See more details on using hashes here.

File details

Details for the file saltext_aerleon-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for saltext_aerleon-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 423cea8a11be8a3692df56744ddb51dc960fe984da2f5fd6542e12b0f8382a43
MD5 2405c36b125ad6764c4d8a34b179fde0
BLAKE2b-256 a4015cd7a9e354ce689208d60558a0fbd36357ff62f6df8e89fcd68b68b0963a

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page