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

[FEATURE]Package integration as part of the CI Process #75

Open
YANG-DB opened this issue Aug 22, 2023 · 0 comments
Open

[FEATURE]Package integration as part of the CI Process #75

YANG-DB opened this issue Aug 22, 2023 · 0 comments
Labels
enhancement New feature or request integration integration related content

Comments

@YANG-DB
Copy link
Member

YANG-DB commented Aug 22, 2023

Is your feature request related to a problem?

As part of the CI / Build process we would like to package the integrations into a versioned bundle of Integration-catalogs what can be loaded by the integration framework as a single unit (group).

What solution would you like?
The package integrations-catalog process will do the following :

packing workflow

For each integration catalog within the integrations folder:
integration folder
- take the catalog description file
- the integration-catalog name and metadata appears in this catalog file
- For each integration resource within the catalog file:
- Take the integration config file which contains the integration metadata and details.

For Each integration:
- take the type field from the integration config file:

  "type": "logs",

Go to that file's schema section and copy the required mapping file name (log index template file in this case) and version:

  "components": [
    {
      "name": "communication",
      "version": "1.0.0"
    },
    {
      "name": "http",
      "version": "1.0.0"
    },
    {
      "name": "logs",
      "version": "1.0.0"
    }
  ],

And get their corresponding index_template mapping (log-1.0.0.mapping) file from the catalog schema mapping folder for that domain (Observability)

If other components appear in the component list (in our example http & communication also take them from the (Observability ) schema folder according to their version (1.0.0)

Add these components into the composed_of section in the type index_template mapping container (in our case log-1.0.0.mapping)

In the following way:

  "composed_of": [ "http-1.0.0.template", "communication-1.0.0.template"]
],

In addition this index_template can optionally also contain the alias instruction that was mentioned in the integration config:

  "type-alias": "logs-nginx",

This would produce the next part in the index_template output file:

    ...
      "aliases": {
      "logs-apache": {}
    },

This (index_template) schema file will reside in a schema folder within the integration folder in addition to the component template that appeared in the components section. They will be copied as-is from the (Observability ) catalog folder directly.

schema folder outcome

This concludes the preparation of the integration folder for being packaged in the integration-catalog archive.


Do you have any additional context?

@YANG-DB YANG-DB added enhancement New feature or request untriaged integration integration related content labels Aug 22, 2023
@YANG-DB YANG-DB removed the untriaged label Sep 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request integration integration related content
Projects
Status: No status
Status: No status
Development

No branches or pull requests

1 participant