diff options
author | 2018-01-22 15:25:53 -0800 | |
---|---|---|
committer | 2018-01-22 15:25:53 -0800 | |
commit | da9564a9b0b78bbe341de9b039aab3c378eb027f (patch) | |
tree | 74186eb0c6d429e84b3bb164bfbebfa50e90441e /tools/cloudify | |
parent | 1d82514c0cf25ed599d27ecfd0c4c9502478ef0c (diff) |
Implement component deployment via cloudify
JIRA: VES-2
Change-Id: Ic696f13d2a32e10663f50cd4e26b9a060525ff92
Signed-off-by: Bryan Sullivan <bryan.sullivan@att.com>
Diffstat (limited to 'tools/cloudify')
-rw-r--r-- | tools/cloudify/ves-agent/blueprint.yaml | 9 | ||||
-rw-r--r-- | tools/cloudify/ves-collector/blueprint.yaml | 183 | ||||
-rw-r--r-- | tools/cloudify/ves-grafana/blueprint.yaml | 123 | ||||
-rw-r--r-- | tools/cloudify/ves-influxdb/blueprint.yaml | 122 | ||||
-rw-r--r-- | tools/cloudify/ves-kafka/blueprint.yaml | 142 | ||||
-rw-r--r-- | tools/cloudify/ves-zookeeper/blueprint.yaml | 122 |
6 files changed, 701 insertions, 0 deletions
diff --git a/tools/cloudify/ves-agent/blueprint.yaml b/tools/cloudify/ves-agent/blueprint.yaml index f7ef0a9..dc2f977 100644 --- a/tools/cloudify/ves-agent/blueprint.yaml +++ b/tools/cloudify/ves-agent/blueprint.yaml @@ -52,6 +52,11 @@ inputs: ves_loglevel: default: info + spec_port: + default: 80 + container_port: + default: 80 + kubernetes_configuration_file_content: default: kube.config @@ -114,6 +119,8 @@ node_templates: metadata: name: ves-agent-service spec: + ports: + - port: { get_input: spec_port } selector: app: ves-agent relationships: @@ -164,6 +171,8 @@ node_templates: value: { get_input: ves_mode } - name: ves_loglevel value: { get_input: ves_loglevel } + ports: + - containerPort: { get_input: container_port } relationships: - type: cloudify.kubernetes.relationships.managed_by_master target: kubernetes_master 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 diff --git a/tools/cloudify/ves-grafana/blueprint.yaml b/tools/cloudify/ves-grafana/blueprint.yaml new file mode 100644 index 0000000..00963b3 --- /dev/null +++ b/tools/cloudify/ves-grafana/blueprint.yaml @@ -0,0 +1,123 @@ +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 a grafana service for OPNFV VES +# 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: + + spec_port: + default: 3000 + + container_port: + default: 3000 + + 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_grafana_service: + type: cloudify.kubernetes.resources.Service + properties: + definition: + apiVersion: v1 + metadata: + name: ves-grafana-service + spec: + type: NodePort + ports: + - port: { get_input: spec_port } + selector: + app: ves-grafana + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + - type: cloudify.relationships.depends_on + target: ves_grafana_pod + + ves_grafana_pod: + type: cloudify.kubernetes.resources.Pod + properties: + definition: + apiVersion: v1 + metadata: + name: ves-grafana-pod + labels: + app: ves-grafana + spec: + containers: + - name: ves-grafana + image: grafana/grafana + env: + ports: + - containerPort: { get_input: container_port } + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master diff --git a/tools/cloudify/ves-influxdb/blueprint.yaml b/tools/cloudify/ves-influxdb/blueprint.yaml new file mode 100644 index 0000000..d0a400b --- /dev/null +++ b/tools/cloudify/ves-influxdb/blueprint.yaml @@ -0,0 +1,122 @@ +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 a influxdb service for OPNFV VES +# 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: + + spec_port: + default: 8086 + + container_port: + default: 8086 + + 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_influxdb_service: + type: cloudify.kubernetes.resources.Service + properties: + definition: + apiVersion: v1 + metadata: + name: ves-influxdb-service + spec: + ports: + - port: { get_input: spec_port } + selector: + app: ves-influxdb + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + - type: cloudify.relationships.depends_on + target: ves_influxdb_pod + + ves_influxdb_pod: + type: cloudify.kubernetes.resources.Pod + properties: + definition: + apiVersion: v1 + metadata: + name: ves-influxdb-pod + labels: + app: ves-influxdb + spec: + containers: + - name: ves-influxdb + image: influxdb + env: + ports: + - containerPort: { get_input: container_port } + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master diff --git a/tools/cloudify/ves-kafka/blueprint.yaml b/tools/cloudify/ves-kafka/blueprint.yaml new file mode 100644 index 0000000..45f4378 --- /dev/null +++ b/tools/cloudify/ves-kafka/blueprint.yaml @@ -0,0 +1,142 @@ +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 a Kafka service for OPNFV VES +# 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: + + zookeeper_hostname: + default: localhost + zookeeper_host: + default: 127.0.0.1 + zookeeper_port: + default: 2181 + kafka_hostname: + default: localhost + kafka_port: + default: 9092 + spec_port: + default: 9092 + container_port: + default: 9092 + + 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_kafka_service: + type: cloudify.kubernetes.resources.Service + properties: + definition: + apiVersion: v1 + metadata: + name: ves-kafka-service + spec: + ports: + - port: { get_input: spec_port } + targetPort: { get_input: spec_port } + selector: + app: ves-kafka + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + - type: cloudify.relationships.depends_on + target: ves_kafka_pod + + ves_kafka_pod: + type: cloudify.kubernetes.resources.Pod + properties: + definition: + apiVersion: v1 + metadata: + name: ves-kafka-pod + labels: + app: ves-kafka + spec: + containers: + - name: ves-kafka + image: blsaws/ves-kafka:latest + env: + - name: zookeeper_hostname + value: { get_input: zookeeper_hostname } + - name: zookeeper_host + value: { get_input: zookeeper_host } + - name: zookeeper_port + value: { get_input: zookeeper_port } + - name: kafka_hostname + value: { get_input: kafka_hostname } + - name: kafka_port + value: { get_input: kafka_port } + ports: + - containerPort: { get_input: container_port } + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master diff --git a/tools/cloudify/ves-zookeeper/blueprint.yaml b/tools/cloudify/ves-zookeeper/blueprint.yaml new file mode 100644 index 0000000..8e22ed3 --- /dev/null +++ b/tools/cloudify/ves-zookeeper/blueprint.yaml @@ -0,0 +1,122 @@ +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 a zookeeper service for OPNFV VES +# 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: + + spec_port: + default: 2181 + + container_port: + default: 2181 + + 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_zookeeper_service: + type: cloudify.kubernetes.resources.Service + properties: + definition: + apiVersion: v1 + metadata: + name: ves-zookeeper-service + spec: + ports: + - port: { get_input: spec_port } + selector: + app: ves-zookeeper + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + - type: cloudify.relationships.depends_on + target: ves_zookeeper_pod + + ves_zookeeper_pod: + type: cloudify.kubernetes.resources.Pod + properties: + definition: + apiVersion: v1 + metadata: + name: ves-zookeeper-pod + labels: + app: ves-zookeeper + spec: + containers: + - name: ves-zookeeper + image: zookeeper + env: + ports: + - containerPort: { get_input: container_port } + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master |