tosca_definitions_version: cloudify_dsl_1_3 # # Copyright 2018 AT&T Intellectual Property, Inc # # 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. # # What this is: Cloudify blueprint for running the OPNFV VES Collector under # kubernetes. imports: - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml - https://raw.githubusercontent.com/cloudify-incubator/cloudify-kubernetes-plugin/1.2.1/plugin.yaml inputs: ves_host: default: 127.0.0.1 ves_port: default: 3001 ves_path: default: ves_topic: default: ves_https: default: false ves_user: default: ves_pass: default: ves_interval: default: 20 ves_version: default: 5.1 ves_loglevel: default: info ves_influxdb_host: default: 127.0.0.1 ves_influxdb_port: default: 8086 ves_grafana_host: default: 127.0.0.1 ves_grafana_port: default: 3000 ves_grafana_auth: default: admin:admin spec_port: default: 3001 container_port: default: 3001 kubernetes_configuration_file_content: default: kube.config kubernetes_master_ip: type: string default: { get_secret: kubernetes_master_ip } kubernetes_master_port: type: string default: { get_secret: kubernetes_master_port } kubernetes_certificate_authority_data: default: { get_secret: kubernetes_certificate_authority_data } kubernetes-admin_client_certificate_data: default: { get_secret: kubernetes-admin_client_certificate_data } kubernetes-admin_client_key_data: default: { get_secret: kubernetes-admin_client_key_data } kubernetes_master_configuration: default: apiVersion: v1 kind: Config preferences: {} current-context: kubernetes-admin@kubernetes clusters: - name: kubernetes cluster: certificate-authority-data: { get_input: kubernetes_certificate_authority_data } server: { concat: [ 'https://', { get_input: kubernetes_master_ip}, ':', { get_input: kubernetes_master_port } ] } contexts: - name: kubernetes-admin@kubernetes context: cluster: kubernetes user: kubernetes-admin users: - name: kubernetes-admin user: client-certificate-data: { get_input: kubernetes-admin_client_certificate_data } client-key-data: { get_input: kubernetes-admin_client_key_data } kubernetes_configuration_file_content: description: > File content of kubernetes master YAML configuration default: { get_input: kubernetes_master_configuration } node_templates: kubernetes_master: type: cloudify.kubernetes.nodes.Master properties: configuration: file_content: { get_input: kubernetes_configuration_file_content } ves_collector_service: type: cloudify.kubernetes.resources.Service properties: definition: apiVersion: v1 metadata: name: ves-collector-service spec: ports: - port: { get_input: spec_port } selector: app: ves-collector relationships: - type: cloudify.kubernetes.relationships.managed_by_master target: kubernetes_master - type: cloudify.relationships.depends_on target: ves_collector_pod ves_collector_pod: type: cloudify.kubernetes.resources.Pod properties: definition: apiVersion: v1 metadata: name: ves-collector-pod labels: app: ves-collector spec: nodeSelector: role: worker containers: - name: ves-collector image: blsaws/ves-collector:latest env: - name: ves_host value: { get_input: ves_host } - name: ves_port value: { get_input: ves_port } - name: ves_path value: { get_input: ves_path } - name: ves_topic value: { get_input: ves_topic } - name: ves_https value: { get_input: ves_https } - name: ves_user value: { get_input: ves_user } - name: ves_pass value: { get_input: ves_pass } - name: ves_interval value: { get_input: ves_interval } - name: ves_version value: { get_input: ves_version } - name: ves_loglevel value: { get_input: ves_loglevel } - name: ves_influxdb_host value: { get_input: ves_influxdb_host } - name: ves_influxdb_port value: { get_input: ves_influxdb_port } - name: ves_grafana_host value: { get_input: ves_grafana_host } - name: ves_grafana_port value: { get_input: ves_grafana_port } - name: ves_grafana_auth value: { get_input: ves_grafana_auth } ports: - containerPort: { get_input: container_port } relationships: - type: cloudify.kubernetes.relationships.managed_by_master target: kubernetes_master