blob: 9be38957251c2e00cce379df4436c4f3c2a13c70 [file] [log] [blame]
ramverma3b71c972019-07-10 11:25:37 +00001.. This work is licensed under a Creative Commons Attribution 4.0 International License.
2.. http://creativecommons.org/licenses/by/4.0
3
4
ramverma7fd4a6e2019-07-11 14:38:25 +00005Introduction to Policy Distribution
ramverma3b71c972019-07-10 11:25:37 +00006***********************************
7
8 .. container:: paragraph
9
10 The main job of policy distribution component is to receive
11 incoming notifications, download artifacts, decode policies
12 from downloaded artifacts & forward the decoded policies to
Ram Krishna Vermaefa0bc72020-04-22 18:07:26 -040013 all configured policy forwarders.
ramverma3b71c972019-07-10 11:25:37 +000014
15|
16
17 .. container:: paragraph
18
19 The current implementation of distribution component comes
20 with built-in SDC reception handler for receiving incoming
21 distribution notifications from SDC using SDC client library.
22 Upon receiving the notification, the corresponding CSAR artifacts
23 are downloaded using SDC client library.The downloaded CSAR is
24 then given to the configured policy decoder for decoding and
25 generating policies. The generated policies are then forwarded
Ram Krishna Vermaefa0bc72020-04-22 18:07:26 -040026 to all configured policy forwarders. Related distribution status
ramverma3b71c972019-07-10 11:25:37 +000027 is sent to SDC at each step (download/deploy/done) during the
28 entire flow.
29
30|
31
32 .. container:: paragraph
33
34 The distribution component also comes with built-in REST based
35 endpoints for fetching health check status & statistical data
36 of running distribution system.
37
38|
39
40 .. container:: paragraph
41
42 The distribution component is designed using plugin based architecture.
43 All the handlers, decoders & forwarders are basically plugins to
44 the running distribution engine. The plugins are configured in the
45 configuration JSON file provided during startup of distribution engine.
46 Adding a new plugin is simply implementing the related interfaces,
47 adding them to the configuration JSON file & making the classes available
48 in the classpath while starting distribution engine. There is no need
49 to edit anything in the distribution core engine.
50 Refer to distribution user manual for more details about the system and
51 the configuration.