Software Base Architecture
The software is a java web application that supports one simple REST API for support Health Check and Statistical information. Upon invocation, the code will be able to spin up a thread that performs the work to respond to SDC Service Distribution notifications. it will support all multicloud plugins by side-car mode.
How to Interactive?
it will interactive with DMAAP, SDC and MultiCloud.
How to implement?
How to deploy?
SDC class implementation
According to the SDC Project's documentation: SDC Distribution client AID, the client needs to register as a SDC client, and acts as a publisher too then publish the distribution status event.
the policy platform will need to implement several classes that derive from IConfiguration, INotificationCallback, IDistributionStatusMessageBasic, IComponentDoneStatusMessage,
IDistributionStatusMessage, IResourceInstance, IVfModuleData etc.
- register for distribution needs implement IConfiguration and INotificationCallback;
- Get Distribution Notification and analysize the artifact and CSAR needs implement IResourceInstance and IVfModuleData; TBD
- publish Download and Deployment status event needs implements IDistributionStatusMessageBasic, IComponentDoneStatusMessage and IDistributionStatusMessage.
for the IConfiguration, it configures all the necessary settings for a client to interact with SDC, below table is based on Beijing release:
function | Value Tobe set in Policy | Comment |
---|---|---|
String getAsdcAddress() | Sdc ip | |
List<String> getMsgBusAddress() | DMAAP address | |
String getUser() | This needs to be defined in sdc and then used in the client to access our secure api’s please open a task for me to create one for you. | |
String getPassword() | Same as above. | |
int getPollingInterval() | 20 | |
int getPollingTimeout() | 30 | |
List<String> getRelevantArtifactTypes() | HEAT HEAT_ENV CLOUD_* | additional two for k8s plugin concerned artifacts |
String getConsumerGroup(); | multicloud? | |
String getEnvironmentName(); | TEST | This is the env name you are running in used for auditing from which env the client is connecting |
String getKeyStorePath(); | Null | |
String getKeyStorePassword(); | Null | |
boolean activateServerTLSAuth() | False | |
boolean isFilterInEmptyResources() | True | |
Boolean isUseHttpsWithDmaap() | False |