diff options
Diffstat (limited to 'docker/docker-node-type.yaml')
-rw-r--r-- | docker/docker-node-type.yaml | 386 |
1 files changed, 0 insertions, 386 deletions
diff --git a/docker/docker-node-type.yaml b/docker/docker-node-type.yaml deleted file mode 100644 index fba4ccb..0000000 --- a/docker/docker-node-type.yaml +++ /dev/null @@ -1,386 +0,0 @@ -# ================================================================================ -# Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============LICENSE_END========================================================= -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -tosca_definitions_version: cloudify_dsl_1_3 - -imports: - - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml - -plugins: - docker: - executor: 'central_deployment_agent' - package_name: dockerplugin - package_version: 3.3.0 - - -data_types: - # NOTE: These data types were copied from the k8s node type in order to have - # consistent node properties between docker and k8s. Perhaps we should make - # these data_types common somehow? - dcae.types.MSBRegistration: - description: > - Information for registering an HTTP service into MSB. It's optional to do so, - but if MSB registration is desired at least the port property must be provided. - If 'port' property is not provided, the plugin will not do the registration. - (The properties all have to be declared as not required, otherwise the - 'msb_registration' property on the node would also be required.) - properties: - port: - description: The container port at which the service is exposed - type: string - required: false - version: - description: The version identifier for the service - type: string - required: false - url_path: - description: The URL path (e.g., "/api", not the full URL) to the service endpoint - type: string - required: false - uses_ssl: - description: Set to true if service endpoint uses SSL (TLS) - type: boolean - required: false - - dcae.types.LoggingInfo: - description: > - Information for setting up centralized logging via ELK using a "sidecar" container. - If 'log_directory' is not provided, the plugin will not set up ELK logging. - (The properties all have to be declared as not required, otherwise the - 'log_info' property on the node would also be required.) - properties: - log_directory: - description: > - The path in the container where the component writes its logs. - If the component is following the EELF requirements, this would be - the directory where the four EELF files are being written. - (Other logs can be placed in the directory--if their names in '.log', - they'll also be sent into ELK.) - type: string - required: false - alternate_fb_path: - description: > - Hope not to use this. By default, the plugin will mount the log volume - at /var/log/onap/<component_type> in the sidecar container's file system. - 'alternate_fb_path' allows overriding the default. Will affect how the log - data can be found in the ELK system. - type: string - required: false - - -node_types: - # The DockerContainerForComponents node type is to be used for DCAE service components that - # are to be run in a Docker container. This node type goes beyond that of a ordinary Docker - # plugin where it has DCAE platform specific functionality: - # - # * Generation of the service component name - # * Managing of service component configuration information - # - # The Docker run command arguments are intentionally not visible. This node type is - # not intended to be a generic all-purpose Docker container thing. This should be thought - # to be an interface to how Docker containers are to be run in the rework context. - dcae.nodes.DockerContainerForComponents: - derived_from: cloudify.nodes.Root - properties: - service_component_type: - type: string - description: Service component type of the application being run in the container - - service_id: - type: string - description: > - Unique id for this DCAE service instance this component belongs to. This value - will be applied as a tag in the registration of this component with Consul. - default: Null - - location_id: - type: string - description: > - Location id of where to run the container. - DEPRECATED - No longer used. Infer the location from the docker host service - and/or node. - default: Null - - service_component_name_override: - type: string - description: > - Manually override and set the name for this Docker container node. If this - is set, then the name will not be auto-generated. Platform services are the - specific use cases for using this parameter because they have static - names for example the CDAP broker. - default: Null - - application_config: - default: {} - description: > - Application configuration for this Docker component. The data strcture is - expected to be a complex map (native YAML) and to be constructed and filled - by the creator of the blueprint. - - docker_config: - default: {} - description: > - This is what is the auxilary portion of the component spec that contains things - like healthcheck definitions for the Docker component. Health checks are - optional. - - image: - type: string - description: Full uri of the Docker image - - # The following properties are copied from k8s node type to be consistent. - # However, these properties are not currently being used within the docker - # plugin. - log_info: - type: dcae.types.LoggingInfo - description: > - Information for setting up centralized logging via ELK. - required: false - - replicas: - type: integer - description: > - The number of instances of the component that should be launched initially - default: 1 - - always_pull_image: - type: boolean - description: > - Set to true if the orchestrator should always pull a new copy of the image - before deploying. By default the orchestrator pulls only if the image is - not already present on the Docker host where the container is being launched. - default: false - - interfaces: - cloudify.interfaces.lifecycle: - create: - # Generate service component name and populate config into Consul - implementation: docker.dockerplugin.create_for_components - start: - # Create Docker container and start - implementation: docker.dockerplugin.create_and_start_container_for_components - stop: - # Stop and remove Docker container - implementation: docker.dockerplugin.stop_and_remove_container - delete: - # Delete configuration from Consul - implementation: docker.dockerplugin.cleanup_discovery - dcae.interfaces.policy: - # This is to be invoked by the policy handler upon policy updates - policy_update: - implementation: docker.dockerplugin.policy_update - - - # This node type is intended for DCAE service components that use DMaaP and must use the - # DMaaP plugin. - dcae.nodes.DockerContainerForComponentsUsingDmaap: - derived_from: dcae.nodes.DockerContainerForComponents - properties: - streams_publishes: - description: > - List of DMaaP streams used for publishing. - - Message router items look like: - - name: topic00 - location: mtc5 - client_role: XXXX - type: message_router - - Data router items look like: - - name: feed00 - location: mtc5 - type: data_router - - This information is forwarded to the dmaap plugin to provision - default: [] - streams_subscribes: - description: > - List of DMaaP streams used for subscribing. - - Message router items look like: - - name: topic00 - location: mtc5 - client_role: XXXX - type: message_router - - Data router items look like: - - name: feed00 - location: mtc5 - type: data_router - username: king - password: 123456 - route: some-path - scheme: https - - Note that username and password is optional. If not provided or null then the - plugin will generate them. - - default: [] - interfaces: - cloudify.interfaces.lifecycle: - create: - # Generate service component name and populate config into Consul - implementation: docker.dockerplugin.create_for_components_with_streams - start: - # Create Docker container and start - implementation: docker.dockerplugin.create_and_start_container_for_components_with_streams - - - # DockerContainerForPlatforms is intended for DCAE platform services. Unlike the components, - # platform services have well-known names and well-known ports. - dcae.nodes.DockerContainerForPlatforms: - derived_from: cloudify.nodes.Root - properties: - name: - description: > - Container name used to register with Consul - - application_config: - default: {} - description: > - Application configuration for this Docker component. The data strcture is - expected to be a complex map (native YAML) and to be constructed and filled - by the creator of the blueprint. - - docker_config: - default: {} - description: > - This is what is the auxilary portion of the component spec that contains things - like healthcheck definitions for the Docker component. Health checks are - optional. - - image: - type: string - description: Full uri of the Docker image - - host_port: - type: integer - description: > - Network port that the platform service is expecting to expose on the host - default: 0 - - container_port: - type: integer - description: > - Network port that the platform service exposes in the container - default: 0 - - # The following properties are copied from k8s node type to be consistent. - # However, these properties are not currently being used within the docker - # plugin. - msb_registration: - type: dcae.types.MSBRegistration - description: > - Information for registering with MSB - required: false - - log_info: - type: dcae.types.LoggingInfo - description: > - Information for setting up centralized logging via ELK. - required: false - - replicas: - type: integer - description: > - The number of instances of the component that should be launched initially - default: 1 - - always_pull_image: - type: boolean - description: > - Set to true if the orchestrator should always pull a new copy of the image - before deploying. By default the orchestrator pulls only if the image is - not already present on the Docker host where the container is being launched. - default: false - - interfaces: - cloudify.interfaces.lifecycle: - create: - # Populate config into Consul - implementation: docker.dockerplugin.create_for_platforms - start: - # Create Docker container and start - implementation: docker.dockerplugin.create_and_start_container_for_platforms - stop: - # Stop and remove Docker container - implementation: docker.dockerplugin.stop_and_remove_container - delete: - # Delete configuration from Consul - implementation: docker.dockerplugin.cleanup_discovery - - - # DockerContainer is intended to be more of an all-purpose Docker container node - # for non-componentized applications. - dcae.nodes.DockerContainer: - derived_from: cloudify.nodes.Root - properties: - name: - type: string - description: Name of the Docker container to be given - image: - type: string - description: Full uri of the Docker image - interfaces: - cloudify.interfaces.lifecycle: - start: - # Create Docker container and start - implementation: docker.dockerplugin.create_and_start_container - stop: - # Stop and remove Docker container - implementation: docker.dockerplugin.stop_and_remove_container - - - # TODO: Revisit using Docker swarm - # The DockerSwarm node type provides the connection information of an available Docker swarm - # cluster to be used to run Docker containers given search contraints like location. - # This node type is not responsible for instantiating and managing the Docker swarm clusters. - - # The DockerHost node is responsible for selecting a pre-existing Docker host to run - # Docker containers on. It is not responsible for instantiating new Docker hosts or expanding - # more resources. - dcae.nodes.SelectedDockerHost: - derived_from: cloudify.nodes.Root - properties: - location_id: - type: string - description: Location id of the Docker host to use - - name_search: - type: string - description: String to use when matching for names - default: component-dockerhost - - # REVIEW: This field should really be optional but because there's no functionality - # that provides the dynamic solution sought after yet, it has been promoted to be - # required. - docker_host_override: - type: string - description: Docker hostname here is used as a manual override - default: Null - - interfaces: - cloudify.interfaces.lifecycle: - create: - # Provide the Docker host to use for containers - implementation: docker.dockerplugin.select_docker_host - delete: - implementation: docker.dockerplugin.unselect_docker_host |