The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
+## [3.3.0]
+* DCAEGEN2-2252 - Add support to request certificates from CMPv2 server in DCAE cloudify blueprints
+ - handle incorrect blueprint
+* DCAEGEN2-2380 - K8splugin should not create cert-service-client init container by default
+
## [3.2.0]
* DCAEGEN2-2309 - Adapt with K8S 1.17 version of APIs
RESOURCE_KW = "resource_config"
LOCATION_ID = "location_id"
+# External cert parameters
+EXT_CERT_DIR = "external_cert_directory"
+EXT_CA_NAME = "ca_name"
+EXT_CERT_PARAMS = "external_certificate_parameters"
+EXT_COMMON_NAME = "common_name"
+EXT_CERT_ERROR_MESSAGE = "Provided blueprint is incorrect. It specifies external_cert without all the required parameters. " \
+ "Required parameters are: {0}, {1}, {2}.{3}".format(EXT_CERT_DIR, EXT_CA_NAME, EXT_CERT_PARAMS, EXT_COMMON_NAME)
+
# Utility methods
# Lifecycle interface calls for dcae.nodes.DockerContainer
return True
+def _fail_if_external_cert_incorrect(external_cert):
+ if not (external_cert.get(EXT_CERT_DIR)
+ and external_cert.get(EXT_CA_NAME)
+ and external_cert.get(EXT_CERT_PARAMS)
+ and external_cert.get(EXT_CERT_PARAMS).get(EXT_COMMON_NAME)):
+ ctx.logger.error(EXT_CERT_ERROR_MESSAGE)
+ raise NonRecoverableError(EXT_CERT_ERROR_MESSAGE)
+
def _create_and_start_container(container_name, image, **kwargs):
'''
This will create a k8s Deployment and, if needed, a k8s Service or two.
- k8s_location: name of the Kubernetes location (cluster) where the component is to be deployed
'''
tls_info = kwargs.get("tls_info") or {}
+ external_cert = kwargs.get("external_cert")
+ if external_cert and external_cert.get("use_external_tls"):
+ _fail_if_external_cert_incorrect(external_cert)
cert_dir = tls_info.get("cert_directory") or COMPONENT_CERT_DIR
env = { "CONSUL_HOST": CONSUL_INTERNAL_NAME,
"CONFIG_BINDING_SERVICE": "config-binding-service",
<groupId>org.onap.dcaegen2.platform.plugins</groupId>
<artifactId>k8s</artifactId>
<name>k8s-plugin</name>
- <version>3.2.0-SNAPSHOT</version>
+ <version>3.3.0-SNAPSHOT</version>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
setup(
name='k8splugin',
description='Cloudify plugin for containerized components deployed using Kubernetes',
- version="3.2.0",
+ version="3.3.0",
author='J. F. Lucas, Michael Hwang, Tommy Carpenter, Joanna Jeremicz, Sylwia Jakubek',
packages=['k8splugin','k8sclient','configure'],
zip_safe=False,