...
For k8s plugin, a SubPlugin for k8s will be developered which will invoke the provided APIs to do definition and Upload.
How to deploy?
it will acts as a independence container, running as a side-car with each Multicloud plugin.
it store all artifacts locally and
for k8s plugin, it will invoke the APIs during design time
for other plugins, they can access these artifacts by shared folder method and in charge of do some parse work as an example:
Code Block | ||||
---|---|---|---|---|
| ||||
apiVersion: v1
kind: Pod
metadata:
name: two-containers
spec:
restartPolicy: Never
volumes:
- name: shared-data
hostPath:
path: /data
containers:
- name: sdcClientMc-container
image: sdcClientMc
volumeMounts:
- name: shared-data
mountPath: /data/artifacts/
- name: openstackPlugin-container
image: openstackPlugin
volumeMounts:
- name: shared-data
mountPath: /pod-data |
How to implement?
the sequence flow of sdc client:
...
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.
...
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 |
...
further work?
may need use the database to store all necessary artifacts then there would be only one additional container
which provide artifact service to all plugins. it would provide a REST API interface.