This repository is shared ecosystem for developing packages for OpenTelemetry Weaver.
Weaver packages come in two primary forms:
templates: Code generation, Documentation generation, etc.policies: Verification and validation rules that can be applied to a repository.
Weaver template packages consist of a weaver.yaml, a set of jinja templates, a README.md and tests directory filled with tests for the templates.
Templates are divided into two categories:
templates/docs: This directory contains packages which generate documentation from semantic convention registries.templates/codegen: This directory contains packages which generate code (e.g. Java, Go, TypeScript) from semantic convention registries.
To run the tests for a given template package, you can run the buildscripts/test_weaver_templates.sh file either within the template package directory, or at the root of this repository.
weaver.yaml: Configuration for how to interact with template schema and which files to generate.*.j2: Jinja templates or macro files which generate files.README.md: A file describing the package.testsdirectory contains any number of test directories.- "name" directory - The name of the directory is the name of the test.
registry- This is the directory where you put a weaver registry. This will be used with the--registryflag inweaver registry generate.expected- This directory contains the expected files you want to be generated for this test.
- "name" directory - The name of the directory is the name of the test.
Weaver policy packages consist of a set of rego policy files, a README.md and a tests directory filled with tests for the policy.
Policies are divided into two categories:
policies/check: This directory contains policy packages designed to be used withweaver registry check.policies/live-check: This directory contains policy packages designed to be used withweaver registry live-check.
To run the tests for a given policy package, you can run the buildscripts/test_weaver_policies.sh file either within the policy package directory, or at the root of this repository.
*.rego- These are the policy files that constitute your package.README.md- A file describing your package.testsdirectory contains any number of test directories.- "name" directory - The name of the directory is the name of the test.
base- This is the directory where you put a "baseline" weaver registry. This will be used with the--baseline-registryflag inweaver registry check.current- This is the directory where you put a weaver registry. This will be used with the--registryflag inweaver registry check.expected-diagnostic-output.json- This file represents thePolicyFindings you expect your package will output for the given registries of this test.
- "name" directory - The name of the directory is the name of the test.
TODO - figure this out
For github groups see the codeowners file.
- Jeremy Blythe Evertz
- Josh Suereth Google LLC
- Laurent Quérel F5 Networks
- Liudmila Molkova, Grafana Labs
For more information about the maintainer role, see the community repository.
For more information about the approver role, see the community repository.