diff --git a/aether-apps/ott-services/cdn-local/Chart.yaml b/aether-apps/ott-services/cdn-local/Chart.yaml
index 98dfe52..8fd8360 100644
--- a/aether-apps/ott-services/cdn-local/Chart.yaml
+++ b/aether-apps/ott-services/cdn-local/Chart.yaml
@@ -1,17 +1,9 @@
 ---
+
 # Copyright 2019-present Open Networking Foundation
 #
-# 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.
+# SPDX-License-Identifier: Apache-2.0
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only
 
 apiVersion: v1
 description: A Helm chart for M-CORD CDN Services in Local Edge
diff --git a/aether-apps/ott-services/cdn-local/templates/_helpers.tpl b/aether-apps/ott-services/cdn-local/templates/_helpers.tpl
index fc1894f..143793a 100644
--- a/aether-apps/ott-services/cdn-local/templates/_helpers.tpl
+++ b/aether-apps/ott-services/cdn-local/templates/_helpers.tpl
@@ -1,17 +1,8 @@
 {{- /*
-Copyright 2019-present Open Networking Foundation
+# Copyright 2019-present Open Networking Foundation
 
-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.
+# SPDX-License-Identifier: Apache-2.0
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only
 */ -}}
 
 {{/*
diff --git a/aether-apps/ott-services/cdn-local/templates/bin/_run-nginx.sh.tpl b/aether-apps/ott-services/cdn-local/templates/bin/_run-nginx.sh.tpl
index ffe7916..9282225 100644
--- a/aether-apps/ott-services/cdn-local/templates/bin/_run-nginx.sh.tpl
+++ b/aether-apps/ott-services/cdn-local/templates/bin/_run-nginx.sh.tpl
@@ -1,18 +1,9 @@
 #!/bin/bash
-#
+
 # Copyright 2019-present Open Networking Foundation
 #
-# 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.
+# SPDX-License-Identifier: Apache-2.0
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only
 
 # Assume that SGI network gateway knows routes to UE pool
 {{- if .Values.config.sriov.enabled }}
diff --git a/aether-apps/ott-services/cdn-local/templates/configmap-nginx.yaml b/aether-apps/ott-services/cdn-local/templates/configmap-nginx.yaml
index 75db4d6..a8002d0 100644
--- a/aether-apps/ott-services/cdn-local/templates/configmap-nginx.yaml
+++ b/aether-apps/ott-services/cdn-local/templates/configmap-nginx.yaml
@@ -1,17 +1,8 @@
 {{/*
-Copyright 2019-present Open Networking Foundation
+# Copyright 2019-present Open Networking Foundation
 
-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.
+# SPDX-License-Identifier: Apache-2.0
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only
 */}}
 
 ---
diff --git a/aether-apps/ott-services/cdn-local/templates/networks.yaml b/aether-apps/ott-services/cdn-local/templates/networks.yaml
index be315f8..2c9c8e7 100644
--- a/aether-apps/ott-services/cdn-local/templates/networks.yaml
+++ b/aether-apps/ott-services/cdn-local/templates/networks.yaml
@@ -1,17 +1,8 @@
 {{/*
-Copyright 2019-present Open Networking Foundation
+# Copyright 2019-present Open Networking Foundation
 
-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.
+# SPDX-License-Identifier: Apache-2.0
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only
 */}}
 
 {{ if .Values.config.sriov.enabled }}
diff --git a/aether-apps/ott-services/cdn-local/templates/service-nginx.yaml b/aether-apps/ott-services/cdn-local/templates/service-nginx.yaml
index 08969e9..3555fdd 100644
--- a/aether-apps/ott-services/cdn-local/templates/service-nginx.yaml
+++ b/aether-apps/ott-services/cdn-local/templates/service-nginx.yaml
@@ -1,17 +1,8 @@
 {{/*
-Copyright 2019-present Open Networking Foundation
+# Copyright 2019-present Open Networking Foundation
 
-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.
+# SPDX-License-Identifier: Apache-2.0
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only
 */}}
 
 ---
diff --git a/aether-apps/ott-services/cdn-local/templates/statefulset-cdn-local.yaml b/aether-apps/ott-services/cdn-local/templates/statefulset-cdn-local.yaml
index 3937078..97adf34 100644
--- a/aether-apps/ott-services/cdn-local/templates/statefulset-cdn-local.yaml
+++ b/aether-apps/ott-services/cdn-local/templates/statefulset-cdn-local.yaml
@@ -1,17 +1,8 @@
 {{/*
-Copyright 2019-present Open Networking Foundation
+# Copyright 2019-present Open Networking Foundation
 
-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.
+# SPDX-License-Identifier: Apache-2.0
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only
 */}}
 
 {{ tuple "cdn-local" . | include "cdn-local.service_account" }}
diff --git a/aether-apps/ott-services/cdn-local/values.yaml b/aether-apps/ott-services/cdn-local/values.yaml
index 558600b..0114aa3 100644
--- a/aether-apps/ott-services/cdn-local/values.yaml
+++ b/aether-apps/ott-services/cdn-local/values.yaml
@@ -1,17 +1,9 @@
 ---
+
 # Copyright 2019-present Open Networking Foundation
 #
-# 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.
+# SPDX-License-Identifier: Apache-2.0
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only
 
 images:
   tags:
