Added Roles for MECM and MEP-Server 91/3491/2
authorabhijit_onap <abhijit.das.gupta@huawei.com>
Tue, 19 May 2020 20:29:43 +0000 (01:59 +0530)
committerabhijit_onap <abhijit.das.gupta@huawei.com>
Tue, 19 May 2020 20:59:36 +0000 (02:29 +0530)
Added the applcm task folder, also having the
applcm deployment yaml files.

Added following things:

applcm roles and updated self review comments.

Signed-off-by: abhijit_onap <abhijit.das.gupta@huawei.com>
Change-Id: I7bee7f497451700e479b8d93a818b4dcc30d007f

13 files changed:
ocd/infra/playbooks/ealt-all.yml
ocd/infra/playbooks/roles/applcm/files/deploy/applcm-broker-deployment.yaml [new file with mode: 0644]
ocd/infra/playbooks/roles/applcm/files/deploy/applcm-broker-service.yaml [new file with mode: 0644]
ocd/infra/playbooks/roles/applcm/files/deploy/config.sh [new file with mode: 0755]
ocd/infra/playbooks/roles/applcm/files/deploy/db-deployment.yaml [new file with mode: 0644]
ocd/infra/playbooks/roles/applcm/files/deploy/db-service.yaml [new file with mode: 0644]
ocd/infra/playbooks/roles/applcm/files/deploy/helm-plugin-deployment.yaml [new file with mode: 0644]
ocd/infra/playbooks/roles/applcm/files/deploy/helm-plugin-service.yaml [new file with mode: 0644]
ocd/infra/playbooks/roles/applcm/files/deploy/init.sh [new file with mode: 0755]
ocd/infra/playbooks/roles/applcm/files/deploy/my-db-persistentvolumeclaim.yaml [new file with mode: 0644]
ocd/infra/playbooks/roles/applcm/tasks/install.yml [new file with mode: 0644]
ocd/infra/playbooks/roles/applcm/tasks/main.yml [new file with mode: 0644]
ocd/infra/playbooks/roles/applcm/tasks/uninstall.yml [new file with mode: 0644]

index 48880a9..1e7964a 100644 (file)
@@ -52,6 +52,9 @@
   roles:
   - helm
   - grafana
+  - kubeconfig
+  - mepconfig
+  - applcm
 
 - hosts: mep
   become: yes
   - mep
 
   roles:
-  - docker
   - k3s
   - helm
   - rabbitmq
-  - cAdvisor
   - prometheus
+  - kubeconfig
+
+- hosts: mepautomate
+  become: yes
+  tags:
+  - mepautomate
+
+  roles:
+  - mepserver
diff --git a/ocd/infra/playbooks/roles/applcm/files/deploy/applcm-broker-deployment.yaml b/ocd/infra/playbooks/roles/applcm/files/deploy/applcm-broker-deployment.yaml
new file mode 100644 (file)
index 0000000..ce4d6b4
--- /dev/null
@@ -0,0 +1,76 @@
+# Copyright 2020 Huawei Technologies Co., Ltd.
+#
+# 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.
+
+# yamllint disable
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: kompose convert
+    kompose.version: 1.21.0 (992df58d8)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: applcm-broker
+  name: applcm-broker
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: applcm-broker
+  strategy: {}
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: kompose convert
+        kompose.version: 1.21.0 (992df58d8)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: applcm-broker
+    spec:
+      containers:
+      - env:
+        - name: ADDRESS
+          value: 0.0.0.0:8081
+        - name: HELM_PLUGIN_PORT
+          value: "50051"
+        - name: KUBERNETES_PLUGIN_PORT
+          value: "50052"
+        - name: LOGFILE_PATH
+          value: /go/release/logfile
+        - name: LOGGER_LEVEL
+          value: info
+        - name: MYSQL_DATABASE
+          value: db
+        - name: MYSQL_PASSWORD
+          value: password
+        - name: MYSQL_ROOT_PASSWORD
+          value: password
+        - name: MYSQL_USER
+          value: root
+        - name: PACKAGE_ARTIFACT_PATH
+          value: /Artifacts/Deployment/
+        - name: PACKAGE_PATH
+          value: /go/release/application/packages/
+        image: ealtedge/applcm-broker:latest
+        imagePullPolicy: ""
+        name: applcm-broker
+        ports:
+        - containerPort: 8081
+        resources: {}
+      restartPolicy: Always
+      serviceAccountName: ""
+      volumes: null
+status: {}
+
+# yamllint enable
diff --git a/ocd/infra/playbooks/roles/applcm/files/deploy/applcm-broker-service.yaml b/ocd/infra/playbooks/roles/applcm/files/deploy/applcm-broker-service.yaml
new file mode 100644 (file)
index 0000000..737611b
--- /dev/null
@@ -0,0 +1,38 @@
+# Copyright 2020 Huawei Technologies Co., Ltd.
+#
+# 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.
+
+# yamllint disable
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: kompose convert
+    kompose.version: 1.21.0 (992df58d8)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: applcm-broker
+  name: applcm-broker
+spec:
+  type: NodePort
+  ports:
+  - name: "28081"
+    port: 8081
+    targetPort: 8081
+    nodePort: 30001
+  selector:
+    io.kompose.service: applcm-broker
+status:
+  loadBalancer: {}
+
+# yamllint enable
diff --git a/ocd/infra/playbooks/roles/applcm/files/deploy/config.sh b/ocd/infra/playbooks/roles/applcm/files/deploy/config.sh
new file mode 100755 (executable)
index 0000000..d5e7b2f
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/bash
+# Copyright 2020 Huawei Technologies Co., Ltd.
+#
+# 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.
+
+# Command to give privileges to mysql root user
+# The Grant is necessary for Applcm-Broker to create applcmdb
+mysql -u root -ppassword << EOF
+SELECT host,user,Grant_priv,Super_priv FROM mysql.user;
+UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
+FLUSH PRIVILEGES;
+GRANT ALL ON *.* TO 'root'@'%';
+EOF
diff --git a/ocd/infra/playbooks/roles/applcm/files/deploy/db-deployment.yaml b/ocd/infra/playbooks/roles/applcm/files/deploy/db-deployment.yaml
new file mode 100644 (file)
index 0000000..3d75520
--- /dev/null
@@ -0,0 +1,70 @@
+# Copyright 2020 Huawei Technologies Co., Ltd.
+#
+# 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.
+
+# yamllint disable
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: kompose convert
+    kompose.version: 1.21.0 (992df58d8)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: db
+  name: db
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: db
+  strategy:
+    type: Recreate
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: kompose convert
+        kompose.version: 1.21.0 (992df58d8)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: db
+    spec:
+      containers:
+      - env:
+        - name: MYSQL_DATABASE
+          value: db
+        - name: MYSQL_PASSWORD
+          value: password
+        - name: MYSQL_ROOT_PASSWORD
+          value: password
+        - name: MYSQL_USER
+          value: root
+        image: mysql/mysql-server
+        imagePullPolicy: ""
+        name: db
+        ports:
+        - containerPort: 3306
+        resources: {}
+        volumeMounts:
+        - mountPath: /var/lib/mysql
+          name: my-db
+      restartPolicy: Always
+      serviceAccountName: ""
+      volumes:
+      - name: my-db
+        hostPath:
+          path: /data
+          type: DirectoryOrCreate
+status: {}
+
+# yamllint enable
diff --git a/ocd/infra/playbooks/roles/applcm/files/deploy/db-service.yaml b/ocd/infra/playbooks/roles/applcm/files/deploy/db-service.yaml
new file mode 100644 (file)
index 0000000..ee1adb2
--- /dev/null
@@ -0,0 +1,36 @@
+# Copyright 2020 Huawei Technologies Co., Ltd.
+#
+# 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.
+
+# yamllint disable
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: kompose convert
+    kompose.version: 1.21.0 (992df58d8)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: db
+  name: dbhost
+spec:
+  ports:
+  - name: "3306"
+    port: 3306
+    targetPort: 3306
+  selector:
+    io.kompose.service: db
+status:
+  loadBalancer: {}
+
+# yamllint enable
diff --git a/ocd/infra/playbooks/roles/applcm/files/deploy/helm-plugin-deployment.yaml b/ocd/infra/playbooks/roles/applcm/files/deploy/helm-plugin-deployment.yaml
new file mode 100644 (file)
index 0000000..c87b5e6
--- /dev/null
@@ -0,0 +1,75 @@
+# Copyright 2020 Huawei Technologies Co., Ltd.
+#
+# 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.
+
+# yamllint disable
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: kompose convert
+    kompose.version: 1.21.0 (992df58d8)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: helm-plugin
+  name: helm-plugin
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: helm-plugin
+  strategy: {}
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: kompose convert
+        kompose.version: 1.21.0 (992df58d8)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: helm-plugin
+    spec:
+      containers:
+      - env:
+        - name: CERTIFICATE_PATH
+        - name: CHART_PATH
+          value: /go/release/charts/
+        - name: HELM_PLUGIN_PORT
+          value: "50051"
+        - name: KEY_PATH
+        - name: KUBECONFIG_DIR_PATH
+          value: /go/release/kubeconfig/
+        - name: LOGFILE_PATH
+          value: /go/release/logfile
+        - name: LOGGER_LEVEL
+          value: info
+        - name: RELEASE_NAMESPACE
+          value: default
+        image: ealtedge/helmplugin:latest
+        imagePullPolicy: ""
+        name: helmplugin
+        ports:
+        - containerPort: 50051
+        resources: {}
+        volumeMounts:
+          - mountPath: /go/release/kubeconfig/
+            name: config-dir
+      restartPolicy: Always
+      serviceAccountName: ""
+      volumes:
+        - name: config-dir
+          hostPath:
+            path: /kubeconfig
+            type: DirectoryOrCreate
+status: {}
+
+# yamllint enable
diff --git a/ocd/infra/playbooks/roles/applcm/files/deploy/helm-plugin-service.yaml b/ocd/infra/playbooks/roles/applcm/files/deploy/helm-plugin-service.yaml
new file mode 100644 (file)
index 0000000..cd9543e
--- /dev/null
@@ -0,0 +1,36 @@
+# Copyright 2020 Huawei Technologies Co., Ltd.
+#
+# 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.
+
+# yamllint disable
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: kompose convert
+    kompose.version: 1.21.0 (992df58d8)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: helm-plugin
+  name: helmplugin
+spec:
+  ports:
+  - name: "50051"
+    port: 50051
+    targetPort: 50051
+  selector:
+    io.kompose.service: helm-plugin
+status:
+  loadBalancer: {}
+
+# yamllint enable
diff --git a/ocd/infra/playbooks/roles/applcm/files/deploy/init.sh b/ocd/infra/playbooks/roles/applcm/files/deploy/init.sh
new file mode 100755 (executable)
index 0000000..bb7eed7
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/bash
+# Copyright 2020 Huawei Technologies Co., Ltd.
+#
+# 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.
+
+echo "applcm-db preconfig step"
diff --git a/ocd/infra/playbooks/roles/applcm/files/deploy/my-db-persistentvolumeclaim.yaml b/ocd/infra/playbooks/roles/applcm/files/deploy/my-db-persistentvolumeclaim.yaml
new file mode 100644 (file)
index 0000000..a0e6cfc
--- /dev/null
@@ -0,0 +1,31 @@
+# Copyright 2020 Huawei Technologies Co., Ltd.
+#
+# 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.
+
+# yamllint disable
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  creationTimestamp: null
+  labels:
+    io.kompose.service: my-db
+  name: my-db
+spec:
+  accessModes:
+  - ReadWriteOnce
+  resources:
+    requests:
+      storage: 100Mi
+status: {}
+
+# yamllint enable
diff --git a/ocd/infra/playbooks/roles/applcm/tasks/install.yml b/ocd/infra/playbooks/roles/applcm/tasks/install.yml
new file mode 100644 (file)
index 0000000..ad1d0da
--- /dev/null
@@ -0,0 +1,79 @@
+# Copyright 2020 Huawei Technologies Co., Ltd.
+#
+# 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.
+
+---
+- name: copy deploy folder to mecm host for installing APPLCM
+  copy:
+    src: deploy
+    dest: /tmp/applcm/
+
+- name: Install applcm - pvc
+  shell:
+    cmd: kubectl apply -f /tmp/applcm/deploy/my-db-persistentvolumeclaim.yaml
+
+- name: Install applcm - db
+  shell:
+    cmd: kubectl apply -f /tmp/applcm/deploy/db-deployment.yaml
+
+- name: Install applcm - db-service
+  shell:
+    cmd: kubectl apply -f /tmp/applcm/deploy/db-service.yaml
+
+
+- name: Install applcm - db-init-config
+  shell:
+# yamllint disable rule:line-length
+    cmd: kubectl exec -it $(kubectl get pod -l io.kompose.service=db | awk 'FNR==2 {print $1}') -- /bin/bash < /tmp/applcm/deploy/init.sh
+  ignore_errors: yes
+  failed_when: false
+  no_log: True
+
+- name: Install applcm - db-init-config
+  shell:
+# yamllint disable rule:line-length
+    cmd: kubectl exec -it $(kubectl get pod -l io.kompose.service=db | awk 'FNR==2 {print $1}') -- /bin/bash < /tmp/applcm/deploy/config.sh
+  ignore_errors: yes
+  failed_when: false
+  no_log: True
+
+
+- name: Install applcm - helmplugin
+  shell:
+    cmd: sleep 10
+
+- name: Install applcm - helmplugin
+  shell:
+    cmd: kubectl apply -f /tmp/applcm/deploy/helm-plugin-deployment.yaml
+
+
+- name: Install applcm - helmplugin
+  shell:
+    cmd: sleep 10
+
+- name: Install applcm - helmplugin
+  shell:
+    cmd: kubectl apply -f /tmp/applcm/deploy/helm-plugin-service.yaml
+
+
+- name: Install applcm - helmplugin
+  shell:
+    cmd: sleep 10
+
+- name: Install applcm - broker
+  shell:
+    cmd: kubectl apply -f /tmp/applcm/deploy/applcm-broker-deployment.yaml
+
+- name: Install applcm - broker
+  shell:
+    cmd: kubectl apply -f /tmp/applcm/deploy/applcm-broker-service.yaml
diff --git a/ocd/infra/playbooks/roles/applcm/tasks/main.yml b/ocd/infra/playbooks/roles/applcm/tasks/main.yml
new file mode 100644 (file)
index 0000000..8051228
--- /dev/null
@@ -0,0 +1,20 @@
+# Copyright 2020 Huawei Technologies Co., Ltd.
+#
+# 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.
+
+---
+- include: "install.yml"
+  when: operation == 'install'
+
+  #- include: "uninstall.yml"
+  #when: operation == 'uninstall'
diff --git a/ocd/infra/playbooks/roles/applcm/tasks/uninstall.yml b/ocd/infra/playbooks/roles/applcm/tasks/uninstall.yml
new file mode 100644 (file)
index 0000000..24f63eb
--- /dev/null
@@ -0,0 +1,22 @@
+# Copyright 2020 Huawei Technologies Co., Ltd.
+#
+# 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.
+
+---
+- name: Uninstalling APPLCM
+  shell:
+    cmd: echo "Reseting the appclm environment"
+
+- name: Deleting the Deployment and Services of APPLCM
+  shell:
+    cmd: kubectl delete -f /tmp/applcm/deploy