diff --git a/operations/dcae/dcae-cli.py b/operations/dcae/dcae-cli.py
index 49db4f1..aee288e 100755
--- a/operations/dcae/dcae-cli.py
+++ b/operations/dcae/dcae-cli.py
@@ -1,10 +1,15 @@
 #!/usr/bin/env python
+# Copyright (C) 2021 by Samsung Electronics Co., Ltd.
 #
-# Copyright (C) 2020 by Samsung Electronics Co., Ltd.
-#
-# This software is the confidential and proprietary information of Samsung Electronics co., Ltd.
-# ("Confidential Information"). You shall not disclose such Confidential Information and shall use
-# it only in accordance with the terms of the license agreement you entered into with Samsung.
+# 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
 
 """Cli application for ONAP DCAE Dashboard for managing DCAE Microservices.
 
diff --git a/operations/dcae/dcae.sh b/operations/dcae/dcae.sh
index 31bb334..a7807ea 100755
--- a/operations/dcae/dcae.sh
+++ b/operations/dcae/dcae.sh
@@ -1,9 +1,15 @@
 #!/bin/bash
-# Copyright (C) 2019 by Samsung Electronics Co., Ltd.
+# Copyright (C) 2021 by Samsung Electronics Co., Ltd.
 #
-# This software is the confidential and proprietary information of Samsung Electronics co., Ltd.
-# ("Confidential Information"). You shall not disclose such Confidential Information and shall use
-# it only in accordance with the terms of the license agreement you entered into with Samsung.
+# 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
 
 #
 # Onboard R-APP blueprint and deploy R-APP as DCAE Microservice.
diff --git a/operations/dcae/inputs_database_password.sh b/operations/dcae/inputs_database_password.sh
index 9e4f883..e20866b 100644
--- a/operations/dcae/inputs_database_password.sh
+++ b/operations/dcae/inputs_database_password.sh
@@ -1,8 +1,14 @@
 #!/bin/bash
-# Copyright (C) 2019 by Samsung Electronics Co., Ltd.
+# Copyright (C) 2021 by Samsung Electronics Co., Ltd.
 #
-# This software is the confidential and proprietary information of Samsung Electronics co., Ltd.
-# ("Confidential Information"). You shall not disclose such Confidential Information and shall use
-# it only in accordance with the terms of the license agreement you entered into with Samsung.
+# 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
 
 export DATABASE_PASSWORD=${DATABASE_PASSWORD:-$(kubectl get secret `kubectl get secrets | grep mariadb-galera-db-root-password | awk '{print $1}'` -o jsonpath="{.data.password}" | base64 --decode)}
diff --git a/operations/dcae/rapps.sh b/operations/dcae/rapps.sh
index 8d51f5b..fe58f6f 100755
--- a/operations/dcae/rapps.sh
+++ b/operations/dcae/rapps.sh
@@ -1,9 +1,15 @@
 #!/bin/bash
-# Copyright (C) 2019 by Samsung Electronics Co., Ltd.
+# Copyright (C) 2021 by Samsung Electronics Co., Ltd.
 #
-# This software is the confidential and proprietary information of Samsung Electronics co., Ltd.
-# ("Confidential Information"). You shall not disclose such Confidential Information and shall use
-# it only in accordance with the terms of the license agreement you entered into with Samsung.
+# 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
 
 set -e
 
diff --git a/operations/scripts/enrich.sh b/operations/scripts/enrich.sh
index 0e3921f..e02efa1 100755
--- a/operations/scripts/enrich.sh
+++ b/operations/scripts/enrich.sh
@@ -1,4 +1,15 @@
 #!/bin/bash
+# Copyright (C) 2021 by Samsung Electronics 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
 
 usage() {
     echo "Usage:"
diff --git a/operations/scripts/k8s_get_node_ip.sh b/operations/scripts/k8s_get_node_ip.sh
index 4f423e8..36e416c 100755
--- a/operations/scripts/k8s_get_node_ip.sh
+++ b/operations/scripts/k8s_get_node_ip.sh
@@ -1,11 +1,14 @@
 #!/bin/bash
-# Copyright (C) 2018 by Samsung Electronics Co., Ltd.
+# Copyright (C) 2021 by Samsung Electronics Co., Ltd.
 #
-# This software is the confidential and proprietary information of Samsung Electronics co., Ltd.
-# ("Confidential Information"). You shall not disclose such Confidential Information and shall use
-# it only in accordance with the terms of the license agreement you entered into with Samsung.
+# 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 Kubernetes cluster first node's internal IP address
-#
 kubectl get nodes -o jsonpath='{ $.items[*].status.addresses[?(@.type=="InternalIP")].address }' | cut -d ' ' -f 1
diff --git a/operations/scripts/onboard-cba.sh b/operations/scripts/onboard-cba.sh
index 9c80d58..bdd8de7 100755
--- a/operations/scripts/onboard-cba.sh
+++ b/operations/scripts/onboard-cba.sh
@@ -1,9 +1,15 @@
 #!/bin/bash
-# Copyright (C) 2019 by Samsung Electronics Co., Ltd.
+# Copyright (C) 2021 by Samsung Electronics Co., Ltd.
 #
-# This software is the confidential and proprietary information of Samsung Electronics co., Ltd.
-# ("Confidential Information"). You shall not disclose such Confidential Information and shall use
-# it only in accordance with the terms of the license agreement you entered into with Samsung.
+# 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
 
 #
 # Onboards CDS model into CDS runtime. CDS model package file is called CBA (CDS Model Package).
