summaryrefslogtreecommitdiffstats
path: root/tools/cloudify/ves-collector/blueprint.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'tools/cloudify/ves-collector/blueprint.yaml')
-rw-r--r--tools/cloudify/ves-collector/blueprint.yaml183
1 files changed, 183 insertions, 0 deletions
diff --git a/tools/cloudify/ves-collector/blueprint.yaml b/tools/cloudify/ves-collector/blueprint.yaml
new file mode 100644
index 0000000..7c4a051
--- /dev/null
+++ b/tools/cloudify/ves-collector/blueprint.yaml
@@ -0,0 +1,183 @@
+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