From b936fb434f1a56409cbeab4c8d57eb81dc5934c5 Mon Sep 17 00:00:00 2001 From: "Hansen, Tony (th1395)" Date: Thu, 29 Mar 2018 14:28:59 +0000 Subject: blueprint changes for OOM and k8s-based postgres add k8s-pgaas-initdb, k8s-pgaas-database and k8s-pgaas-getdbinfo update typesfile version in other files Change-Id: I0af66ea23299f60ebb85e31941d76254a5d53538 Signed-off-by: Hansen, Tony (th1395) Issue-ID: DCAEGEN2-425 Signed-off-by: Hansen, Tony (th1395) --- blueprints/holmes-engine.yaml-template | 2 +- blueprints/holmes-rules.yaml-template | 2 +- blueprints/k8s-holmes-engine.yaml-template | 2 +- blueprints/k8s-holmes-rules.yaml-template | 2 +- blueprints/k8s-pgaas-database.yaml | 57 +++++++++++++++++ blueprints/k8s-pgaas-getdbinfo.yaml | 99 ++++++++++++++++++++++++++++++ blueprints/k8s-pgaas-initdb.yaml | 73 ++++++++++++++++++++++ blueprints/pgaas-cluster.yaml-template | 4 +- blueprints/pgaas-database.yaml-template | 4 +- blueprints/pgaas-disk.yaml-template | 4 +- blueprints/pgaas-getdbinfo.yaml-template | 2 +- blueprints/pgaas-onevm.yaml-template | 4 +- blueprints/pgaas.yaml-template | 4 +- 13 files changed, 244 insertions(+), 15 deletions(-) create mode 100644 blueprints/k8s-pgaas-database.yaml create mode 100644 blueprints/k8s-pgaas-getdbinfo.yaml create mode 100644 blueprints/k8s-pgaas-initdb.yaml diff --git a/blueprints/holmes-engine.yaml-template b/blueprints/holmes-engine.yaml-template index b2dc0bf..e8a71e1 100644 --- a/blueprints/holmes-engine.yaml-template +++ b/blueprints/holmes-engine.yaml-template @@ -3,7 +3,7 @@ imports: - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/type_files/dockerplugin/2/dockerplugin_types.yaml" - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/type_files/dcaepolicyplugin/1/dcaepolicyplugin_types.yaml" - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/type_files/relationshipplugin/1/relationshipplugin_types.yaml" -- "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/pgaas_types.yaml" +- "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/1.1.0/pgaas_types.yaml" inputs: dcae_CL_publish_url: type: string diff --git a/blueprints/holmes-rules.yaml-template b/blueprints/holmes-rules.yaml-template index 49c9a91..ae1fad6 100644 --- a/blueprints/holmes-rules.yaml-template +++ b/blueprints/holmes-rules.yaml-template @@ -3,7 +3,7 @@ imports: - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/type_files/dockerplugin/2/dockerplugin_types.yaml" - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/type_files/dcaepolicyplugin/1/dcaepolicyplugin_types.yaml" - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/type_files/relationshipplugin/1/relationshipplugin_types.yaml" -- "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/pgaas_types.yaml" +- "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/1.1.0/pgaas_types.yaml" inputs: docker_host_override: type: string diff --git a/blueprints/k8s-holmes-engine.yaml-template b/blueprints/k8s-holmes-engine.yaml-template index 0ec3f0f..40ac07e 100644 --- a/blueprints/k8s-holmes-engine.yaml-template +++ b/blueprints/k8s-holmes-engine.yaml-template @@ -22,7 +22,7 @@ tosca_definitions_version: cloudify_dsl_1_3 imports: - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/k8splugin/1.0.0/k8splugin_types.yaml" - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/dcaepolicyplugin/2.1.0/dcaepolicyplugin_types.yaml" -- "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/pgaas_types.yaml" +- "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/1.1.0/pgaas_types.yaml" inputs: dcae_CL_publish_url: type: string diff --git a/blueprints/k8s-holmes-rules.yaml-template b/blueprints/k8s-holmes-rules.yaml-template index 09203d3..48c87bb 100644 --- a/blueprints/k8s-holmes-rules.yaml-template +++ b/blueprints/k8s-holmes-rules.yaml-template @@ -22,7 +22,7 @@ tosca_definitions_version: cloudify_dsl_1_3 imports: - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/k8splugin/1.0.0/k8splugin_types.yaml" - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/dcaepolicyplugin/2.1.0/dcaepolicyplugin_types.yaml" -- "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/pgaas_types.yaml" +- "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/1.1.0/pgaas_types.yaml" inputs: msb_hostname: type: string diff --git a/blueprints/k8s-pgaas-database.yaml b/blueprints/k8s-pgaas-database.yaml new file mode 100644 index 0000000..309c962 --- /dev/null +++ b/blueprints/k8s-pgaas-database.yaml @@ -0,0 +1,57 @@ +# -*- indent-tabs-mode: nil -*- # vi: set expandtab: +# +# ============LICENSE_START==================================================== +# org.onap.dcae +# ============================================================================= +# Copyright (c) 2017 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====================================================== + +tosca_definitions_version: cloudify_dsl_1_3 + +description: |- + This blueprint is used to install and to uninstall a persistent database into the central postgres as a platform service. + This blueprint depends upon the deployment of the pgaas_plugin and the PGaaS service. + This blueprint is part of a suite of three blueprints: + k8s-pgaas-initdb takes control of the postgres server instance. + k8s-pgaas-database creates a database, roles and credentials associated with the database. + k8s-pgaas-getdbinfo shows how an application can access a database (including its roles and credentials) that was already created with k8s-pgaas-database. + +imports: + - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml + - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/1.1.0/pgaas_types.yaml" + +inputs: + blueprint_version: + type: string + default: '2018-03-29T14:28:59+0000' + + # pgaas-specific info + k8s_pgaas_instance_fqdn: + type: string + + database_description: + type: string + default: 'This is a sample database' + + database_name: + type: string + default: sample + +node_templates: + pgaasdbtest: + type: dcae.nodes.pgaas.database + properties: + writerfqdn: { get_input: k8s_pgaas_instance_fqdn } + name: { get_input: database_name } diff --git a/blueprints/k8s-pgaas-getdbinfo.yaml b/blueprints/k8s-pgaas-getdbinfo.yaml new file mode 100644 index 0000000..6869f2c --- /dev/null +++ b/blueprints/k8s-pgaas-getdbinfo.yaml @@ -0,0 +1,99 @@ +# -*- indent-tabs-mode: nil -*- # vi: set expandtab: +# +# ============LICENSE_START==================================================== +# org.onap.dcae +# ============================================================================= +# Copyright (c) 2017 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====================================================== + +tosca_definitions_version: cloudify_dsl_1_3 + +description: |- + This blueprint is an example of how an application can access the needed information about + a persistent database created as part of a PGaaS cluster. + + For a given database "dbname" on a given PGaaS cluster "PGCLUSTERNAME", + there are three roles created: + admin role: has complete administrative control over that database + user role: has complete read and write access on that database + viewer role: only has read access on that database + The various attributes will return the appropriate information + that can be used with that role: host fqdn, role name and password. + + This blueprint is part of a suite of three blueprints: + k8s-pgaas-initdb takes control of the postgres server instance. + k8s-pgaas-database creates a database, roles and credentials associated with the database. + k8s-pgaas-getdbinfo shows how an application can access a database (including its roles and credentials) that was already created with k8s-pgaas-database. + +imports: + - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml + - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/1.1.0/pgaas_types.yaml" + +inputs: + k8s_pgaas_instance_fqdn: + type: string + database_name: + type: string + +node_templates: + pgclustername_dbname: + type: dcae.nodes.pgaas.database + properties: + writerfqdn: { get_input: k8s_pgaas_instance_fqdn } + name: { get_input: database_name } + use_existing: true + +outputs: + # admin role has control over table/index/view creation/dropping + pgclustername_dbname_admin_host: + description: Hostname for PGCLUSTERNAME dbname database + value: { get_attribute: [ pgclustername_dbname, admin, host ] } + pgclustername_dbname_admin_port: + description: Portname for PGCLUSTERNAME dbname database + value: { get_attribute: [ pgclustername_dbname, admin, port ] } + pgclustername_dbname_admin_user: + description: Admin Username for PGCLUSTERNAME dbname database + value: { get_attribute: [ pgclustername_dbname, admin, user ] } + pgclustername_dbname_admin_password: + description: Admin Password for PGCLUSTERNAME dbname database + value: { get_attribute: [ pgclustername_dbname, admin, password ] } + + # user role can read and write the tables + pgclustername_dbname_user_host: + description: Hostname for PGCLUSTERNAME dbname database + value: { get_attribute: [ pgclustername_dbname, user, host ] } + pgclustername_dbname_user_port: + description: Portname for PGCLUSTERNAME dbname database + value: { get_attribute: [ pgclustername_dbname, user, port ] } + pgclustername_dbname_user_user: + description: User Username for PGCLUSTERNAME dbname database + value: { get_attribute: [ pgclustername_dbname, user, user ] } + pgclustername_dbname_user_password: + description: User Password for PGCLUSTERNAME dbname database + value: { get_attribute: [ pgclustername_dbname, user, password ] } + + # viewer role can only read from the tables + pgclustername_dbname_viewer_host: + description: Hostname for PGCLUSTERNAME dbname database + value: { get_attribute: [ pgclustername_dbname, viewer, host ] } + pgclustername_dbname_viewer_port: + description: Portname for PGCLUSTERNAME dbname database + value: { get_attribute: [ pgclustername_dbname, viewer, port ] } + pgclustername_dbname_viewer_user: + description: Viewer Username for PGCLUSTERNAME dbname database + value: { get_attribute: [ pgclustername_dbname, viewer, user ] } + pgclustername_dbname_viewer_password: + description: Viewer Password for PGCLUSTERNAME dbname database + value: { get_attribute: [ pgclustername_dbname, viewer, password ] } diff --git a/blueprints/k8s-pgaas-initdb.yaml b/blueprints/k8s-pgaas-initdb.yaml new file mode 100644 index 0000000..c02743a --- /dev/null +++ b/blueprints/k8s-pgaas-initdb.yaml @@ -0,0 +1,73 @@ +# -*- indent-tabs-mode: nil -*- # vi: set expandtab: +# +# ============LICENSE_START==================================================== +# org.onap.dcae +# ============================================================================= +# Copyright (c) 2017 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====================================================== + +tosca_definitions_version: cloudify_dsl_1_3 + +description: |- + This blueprint is used to take control of a postgres server instance for use by cloudify-managed applications. + This blueprint depends upon the deployment of the pgaas_plugin and an existing postgres server instance. + This blueprint is part of a suite of three blueprints: + k8s-pgaas-initdb takes control of the postgres server instance. + k8s-pgaas-database creates a database, roles and credentials associated with the database. + k8s-pgaas-getdbinfo shows how an application can access a database (including its roles and credentials) that was already created with k8s-pgaas-database. + +imports: + - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml + + - "https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R2/relationshipplugin/1.0.0/relationshipplugin_types.yaml" + - "https://nexus.onap.org/service/local/repositories/raw/content/org.onap.ccsdk.platform.plugins/type_files/sshkeyshare/sshkey_types.yaml" + - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/1.1.0/pgaas_types.yaml" + +inputs: + blueprint_version: + type: string + default: '2018-03-29T14:28:59+0000' + + pgaas_cluster_name: + type: string + default: pghelm + + k8s_pgaas_instance_fqdn: + type: string + + k8s_initial_password: + type: string + default: '' + +node_templates: + + # tie to pgaas_plugin database + pgaas_cluster: + type: dcae.nodes.pgaas.cluster + properties: + writerfqdn: { get_input: k8s_pgaas_instance_fqdn } + readerfqdn: { get_input: k8s_pgaas_instance_fqdn } + initialpassword: { get_input: k8s_initial_password } + relationships: + - type: dcae.relationships.pgaas_cluster_uses_sshkeypair + target: sharedsshkey_pgrs + + sharedsshkey_pgrs: + type: ccsdk.nodes.ssh.keypair + + +outputs: + blueprint_version: + value: { get_input: blueprint_version } diff --git a/blueprints/pgaas-cluster.yaml-template b/blueprints/pgaas-cluster.yaml-template index a08df40..50626ea 100644 --- a/blueprints/pgaas-cluster.yaml-template +++ b/blueprints/pgaas-cluster.yaml-template @@ -39,12 +39,12 @@ imports: - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/dnsdesig/dns_types.yaml" - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/type_files/relationshipplugin/1/relationshipplugin_types.yaml" - - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/pgaas_types.yaml" + - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/1.1.0/pgaas_types.yaml" inputs: blueprint_version: type: string - default: 'VERSION-STAMP-GOES-HERE' + default: '2018-03-29T14:28:59+0000' # pgaas-specific info pgaas_cluster_name: diff --git a/blueprints/pgaas-database.yaml-template b/blueprints/pgaas-database.yaml-template index d3e58e3..a89d638 100644 --- a/blueprints/pgaas-database.yaml-template +++ b/blueprints/pgaas-database.yaml-template @@ -35,12 +35,12 @@ description: |- imports: - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml - - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/pgaas_types.yaml" + - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/1.1.0/pgaas_types.yaml" inputs: blueprint_version: type: string - default: 'VERSION-STAMP-GOES-HERE' + default: '2018-03-29T14:28:59+0000' # pgaas-specific info pgaas_cluster_name: diff --git a/blueprints/pgaas-disk.yaml-template b/blueprints/pgaas-disk.yaml-template index fc97893..83691eb 100644 --- a/blueprints/pgaas-disk.yaml-template +++ b/blueprints/pgaas-disk.yaml-template @@ -41,12 +41,12 @@ imports: - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/dnsdesig/dns_types.yaml" - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/sshkeyshare/sshkey_types.yaml" - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/type_files/relationshipplugin/1/relationshipplugin_types.yaml" - - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/pgaas_types.yaml" + - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/1.1.0/pgaas_types.yaml" inputs: blueprint_version: type: string - default: 'VERSION-STAMP-GOES-HERE' + default: '2018-03-29T14:28:59+0000' # pgaas-specific info pgaas_cluster_name: diff --git a/blueprints/pgaas-getdbinfo.yaml-template b/blueprints/pgaas-getdbinfo.yaml-template index e37c604..8672f04 100644 --- a/blueprints/pgaas-getdbinfo.yaml-template +++ b/blueprints/pgaas-getdbinfo.yaml-template @@ -35,7 +35,7 @@ description: |- imports: - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml - - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/pgaas_types.yaml" + - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/1.1.0/pgaas_types.yaml" inputs: location_domain: diff --git a/blueprints/pgaas-onevm.yaml-template b/blueprints/pgaas-onevm.yaml-template index 213a35f..f8fcb69 100644 --- a/blueprints/pgaas-onevm.yaml-template +++ b/blueprints/pgaas-onevm.yaml-template @@ -32,12 +32,12 @@ imports: - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/dnsdesig/dns_types.yaml" - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/sshkeyshare/sshkey_types.yaml" - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/type_files/relationshipplugin/1/relationshipplugin_types.yaml" - - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/pgaas_types.yaml" + - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/1.1.0/pgaas_types.yaml" inputs: blueprint_version: type: string - default: 'VERSION-STAMP-GOES-HERE' + default: '2018-03-29T14:28:59+0000' # pgaas-specific info pgaas_cluster_name: diff --git a/blueprints/pgaas.yaml-template b/blueprints/pgaas.yaml-template index 845ba72..f66c8c2 100644 --- a/blueprints/pgaas.yaml-template +++ b/blueprints/pgaas.yaml-template @@ -32,12 +32,12 @@ imports: - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/dnsdesig/dns_types.yaml" - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/sshkeyshare/sshkey_types.yaml" - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/type_files/relationshipplugin/1/relationshipplugin_types.yaml" - - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/pgaas_types.yaml" + - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/pgaas/1.1.0/pgaas_types.yaml" inputs: blueprint_version: type: string - default: 'VERSION-STAMP-GOES-HERE' + default: '2018-03-29T14:28:59+0000' # pgaas-specific info pgaas_cluster_name: -- cgit 1.2.3-korg