diff --git a/.gitreview b/.gitreview
index eb30337..3c07abe 100644
--- a/.gitreview
+++ b/.gitreview
@@ -1,6 +1,6 @@
 # SPDX-FileCopyrightText: 2020 Open Networking Foundation <info@opennetworking.org>
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 [gerrit]
 host=gerrit.opencord.org
diff --git a/4g-core-values-1.5.yaml b/4g-core-values-1.5.yaml
index a8d6d8d..0d0113e 100644
--- a/4g-core-values-1.5.yaml
+++ b/4g-core-values-1.5.yaml
@@ -1,6 +1,6 @@
 # Copyright 2019-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 # cassandra values
 cassandra:
diff --git a/4g-core-values.yaml b/4g-core-values.yaml
index b1394b4..1f21c1b 100644
--- a/4g-core-values.yaml
+++ b/4g-core-values.yaml
@@ -1,6 +1,6 @@
 # Copyright 2019-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 # cassandra values
 cassandra:
diff --git a/5g-core-values-1.5.yaml b/5g-core-values-1.5.yaml
index 4b93b99..9c9dadf 100644
--- a/5g-core-values-1.5.yaml
+++ b/5g-core-values-1.5.yaml
@@ -1,6 +1,6 @@
 # Copyright 2019-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 mongodb:
   usePassword: false
   persistence:
diff --git a/5g-core-values.yaml b/5g-core-values.yaml
index 0695c6e..69117a2 100644
--- a/5g-core-values.yaml
+++ b/5g-core-values.yaml
@@ -1,6 +1,6 @@
 # Copyright 2019-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 mongodb:
   usePassword: false
   persistence:
diff --git a/5g-test-apps-values.yaml b/5g-test-apps-values.yaml
index 430ed0c..bd27628 100644
--- a/5g-test-apps-values.yaml
+++ b/5g-test-apps-values.yaml
@@ -1,6 +1,6 @@
 # Copyright 2019-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 config:
   dbtestapp:
diff --git a/LICENSES/Apache-2.0.txt b/LICENSES/Apache-2.0.txt
new file mode 100644
index 0000000..f433b1a
--- /dev/null
+++ b/LICENSES/Apache-2.0.txt
@@ -0,0 +1,177 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
diff --git a/LICENSES/LicenseRef-ONF-Member-Only-1.0.txt b/LICENSES/LicenseRef-ONF-Member-Only-1.0.txt
deleted file mode 100644
index bb813a1..0000000
--- a/LICENSES/LicenseRef-ONF-Member-Only-1.0.txt
+++ /dev/null
@@ -1,294 +0,0 @@
-ONF Member-Only Software License
-Version 1.0
-June 2020
-
-This ONF Member-Only Software License (this "License") is entered into by and
-between Open Networking Foundation ("ONF") and you and/or the entity on whose
-behalf you are accessing the Works (as defined in Section 1 below) ("you").
-This License forms a legally binding contract between you and ONF in relation
-to your access to and use of the Works. You may not access or use the Works if
-you do not accept this License.
-
-By accessing or using the Works, you hereby agree to the terms of this License.
-You may not use the Works and may not accept this License if you are a person
-barred from receiving the Works under the laws of the United States or other
-countries, including the country from which you access or use the Works. If you
-are agreeing to be bound by this License on behalf of your employer or other
-entity, you represent and warrant that you have full legal authority to bind
-your employer or such entity to this License. If you do not have the requisite
-authority, you may not accept this License or access or use the Works on behalf
-of your employer or any other entity.  You and ONF acknowledge and agree as
-follows:
-
-1. DEFINITIONS.
-
-"Source" form shall mean the preferred form for making modifications, including
-but not limited to software source code, documentation source, and
-configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or
-translation of a Source form, including but not limited to compiled object
-code, generated documentation, and conversions to other media types.
-
-"Works" shall mean the works of authorship, whether in Source or Object form,
-made available under this License, as indicated by a copyright notice/header
-file that is included in or attached to the Works.
-
-2. BACKGROUND.
-
-The purpose of this License is to provide ONF member companies in good standing
-("Members") with early access to software projects currently in development by
-ONF prior to their public release, to allow Members to review and test the
-Works internally for the purpose of making further contributions to the
-applicable project.  Members who are Partner-level Members at the time they
-first access the Works are additionally permitted under this License to use the
-Works internally for the purpose of building and developing products and
-services for commercial purposes as defined in Section 4.  However, this
-License does not permit any Member, regardless of Member level, to redistribute
-all or any portion of the Works, except as part of a contribution back to the
-applicable project, in accordance with Section 8 below, or in binary form as
-provided for Partner-level Members in Section 4 below.  You understand and
-agree that ONF has the sole right to sublicense and distribute a public version
-of the final code base for the applicable project to third parties under the
-2.0 version of the Apache License, or other permissive license terms selected
-by ONF in its sole discretion.
-
-The Purpose of this License is to incubate the development of new software
-projects by providing a framework for ONF Members to access and contribute to
-the projects while minimizing the potential for forking or misuse of the
-projects.  Nothing in this Background paragraph, however, shall require ONF to
-take any particular course of action regarding any Works covered by this
-License.
-
-3. LIMITED LICENSE TO ALL MEMBERS IN GOOD STANDING.
-
-Subject to your complete and ongoing compliance with all the terms and
-conditions set forth in this License, including without limitation all license
-limitations and restrictions set forth herein, ONF grants you the following
-limited, non-exclusive, non-transferable, non-sublicensable, revocable license
-to use, and (where applicable) authorize your employees and contractors
-performing work on your behalf (but only if such contractors are themselves
-Members of ONF and accept the terms of this License) to use the Works
-internally solely in connection with (a) reviewing, testing, modifying and
-creating derivatives of the Works for the sole purpose of making contributions
-by you to the code repository for the applicable project maintained by ONF; and
-(b) building, developing and testing your own applications or components that
-may interoperate with or incorporate the Works ("Applications") for the
-purposes of internal evaluation only.
-
-4. ADDITIONAL LICENSE TO PARTNER-LEVEL MEMBERS IN GOOD STANDING.
-
-Each project subject to this License shall be declared by ONF to be in one of
-two phases:  a) Incubation Phase, or b) Partner Commercialization Phase.  Each
-project shall start in the Incubation Phase, and ONF, at its sole discretion,
-shall determine when each project moves into the Partner Commercialization
-Phase.   Each project shall be documented to be in one of these two phases in
-the Project's README documentation and can be confirmed by contacting ONF.
-
-Once any project moves into the Partner Commercialization Phase, if you are a
-Partner-level ONF Member in good standing at the time you first access the
-Works and for the entire period during which you access and use the Works, in
-addition to the rights granted in Section 3, and subject to your complete and
-ongoing compliance with all the terms and conditions set forth in this License,
-including without limitation all license limitations and restrictions set forth
-herein, ONF grants you the limited, non-exclusive, non-transferable,
-non-sublicensable, revocable license to use, and (where applicable) authorize
-your employees and contractors performing work on your behalf (but only if such
-contractors are themselves Members of ONF and accept the terms of this License)
-to use, test, modify and create derivatives of the Works internally for the
-purpose of building, developing, testing, marketing, offering for sale and
-selling commercial products and services to third parties.  Wherever possible,
-you will take reasonable precautions to ensure Works remain accessible only to
-ONF Members, and any commercial product or service requiring redistribution of
-the Works, of modifications of the Works or of derivatives of the Works must be
-made solely in binary machine code form where possible to further this aim.
-
-Partners-level Members gaining additional insights as a result of accessing and
-using the Works for commercial products and services are expected to provide
-feedback to and to make contributions to the project for the benefit of both
-the project and the general membership.
-
-You may verify your company's Partner-level membership status on the ONF
-website at: https://www.opennetworking.org/member-listing/.
-
-4.1 GRACE PERIOD FOR NON-PARTNER-LEVEL MEMBERS
-
-If you are not a Partner-level Member and you wish to benefit from the rights
-granted to ONF Partners in Section 4, you have a 90-day grace period from the
-day you first access the Works to upgrade to a Partner-Level ONF Membership.
-Should you upgrade within this grace period, you will be recognized as if you
-had been a Partner on the day you first accessed the Works for the purpose of
-interpreting your rights under Section 4.
-
-5. RESTRICTIONS.
-
-By accessing or using the Works, you represent, warrant, and covenant that you
-and/or the entity on whose behalf you are accessing the Works is a Member in
-good standing of ONF.
-
-You acknowledge that, except for the limited rights expressly set forth above,
-the foregoing licenses do not include any right to, and you agree not to (i)
-redistribute, sell, lease, license, modify or otherwise create any derivative
-works of any portion of the Works, or (ii) distribute, deploy, or otherwise
-utilize the Works or Applications for any public, production, commercial, or
-other similar purpose other than internal use for evaluation and development of
-contributions to the code repository for the applicable project maintained by
-ONF and non-public, experimental Applications.
-
-Except as expressly provided herein, you may not (w) reproduce, distribute,
-publicly display, or publicly perform any part of the Works, (x) decompile,
-reverse engineer, or otherwise access or attempt to access source code not made
-available to you in source code form, (y) make or attempt to make any
-modification to, or otherwise create any derivative works of, the Works; or (z)
-remove, obscure, interfere with or circumvent any feature of the Works,
-including without limitation any copyright or other intellectual property
-notices, security, or access control mechanism. You agree that you will not use
-the Works to do anything illegal, including facilitating, promoting, or
-otherwise encouraging any illegal activities.
-
-You represent and warrant that the Works will not be shipped, transferred or
-exported into any country or used in any manner prohibited by the United States
-Export Administration Act or any other export laws, restrictions or regulations
-(collectively the "Export Laws"). In addition, if the Works are identified as
-an export controlled item under the Export Laws, you represent and warrant that
-you are not a citizen, or otherwise located within, an embargoed nation
-(including without limitation Crimea, Cuba, Iran, North Korea, Sudan, or Syria)
-and that you are not otherwise prohibited under the Export Laws from receiving
-the Works.
-
-ANY USE IN VIOLATION OF THE FOREGOING LIMITATIONS AND RESTRICTIONS IS STRICTLY
-PROHIBITED, AND UNLICENSED.
-
-6. RESERVATION OF RIGHTS.
-
-The Works are owned by ONF and/or its licensors, and are licensed, not sold, to
-you. The Works are protected by copyright, trade dress, patent, and trademark
-laws of the United States and other jurisdictions, international conventions,
-and all other relevant intellectual property and proprietary rights, and
-applicable laws (collectively, the "Intellectual Property Rights"). You agree
-that ONF or its subsidiaries or affiliated companies and/or its licensors own
-all legal right, title and interest in and to the Works, including any and all
-Intellectual Property Rights. ONF reserves all rights not expressly granted in
-this License. You do not acquire any right, title or interest to the Works,
-whether by implication, estoppel, or otherwise, except for the limited rights
-set forth in this License.
-
-You agree that the form and nature of the Works that ONF provides may change
-without prior notice to you and that future versions of the Works may be
-incompatible with applications developed using previous versions of the Works.
-You agree that ONF may stop (permanently or temporarily) providing the Works
-(or any features within the Works) to you or to users generally at ONF's sole
-discretion, without prior notice to you. Nothing in this License gives you a
-right to use any of ONF's trade names, trademarks, service marks, logos, domain
-names, or other distinctive brand features.
-
-7. PURPOSE AND USE.
-
-You agree that you will not engage in any activity with the Works, including
-the development or distribution of an Application that interferes with,
-disrupts, damages, or accesses in an unauthorized manner the servers, networks,
-or other properties or services of any third party. You agree that you are
-solely responsible for (and that ONF has no responsibility to you or to any
-third party for) any data, content, or resources that you create, transmit or
-display. You agree that you are solely responsible for (and that ONF has no
-responsibility to you or to any third party for) any breach of your obligations
-under this License, any applicable third party contract or terms of service, or
-any applicable law or regulation, and for the consequences (including any loss
-or damage which ONF or any third party may suffer) of any such breach.
-
-8. FEEDBACK; CONTRIBUTIONS.
-
-If you provide ONF with any comments, bug reports, feedback, enhancements, or
-modifications proposed or suggested by you for the Works ("Feedback"), such
-Feedback will be submitted as a Contribution to the applicable project
-maintained by ONF under the terms and conditions of a Contributor License
-Agreement between you and ONF, is provided on a non-confidential basis
-(notwithstanding any notice to the contrary you may include in any accompanying
-communication), and ONF shall have the right to use such Feedback at its
-discretion, including, but not limited to the incorporation of such Feedback
-into the Works and any final code base that may be derived from the Works.
-
-9. TERMINATION OF THIS LICENSE.
-
-This License will continue to apply until terminated by either you or ONF as
-set out below. If you want to terminate this License, you may do so by ceasing
-your use of the Works. If you cease being a Member in good standing of ONF,
-this License will terminate automatically and without further notice to you.
-ONF may at any time terminate this License: (a) if you have breached any
-provision of this License; or (b) at ONF's convenience.  When this License
-comes to an end, except as otherwise set forth in this paragraph 9, all of the
-legal rights, obligations and liabilities that you and ONF have benefited from,
-been subject to (or which have accrued over time while this License has been in
-force) or which are expressed to continue indefinitely, shall be unaffected by
-this cessation, and paragraphs 1, 2 and 5 through 14 shall continue to apply to
-such rights, obligations and liabilities indefinitely.  In addition, unless
-this License is terminated by ONF as a result of your breach of any provision
-of this License, Partner-level Members entitled to the benefits of Section 4 of
-this License shall also retain all rights granted by Section 4 so as long as
-you remain a Partner-level Member in good standing.
-
-10. DISCLAIMER OF WARRANTIES.
-
-YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE WORKS IS AT YOUR SOLE
-RISK AND THAT THE WORKS ARE PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT
-WARRANTY OF ANY KIND FROM ONF. YOUR USE OF THE WORKS IS AT YOUR OWN DISCRETION
-AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM
-OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. ONF FURTHER
-EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ONF
-EXPRESSLY DISCLAIMS ANY WARRANTIES OF ANY KIND WITH RESPECT TO THE ACCURACY OR
-FUNCTIONALITY OF THE WORKS, AND WITH RESPECT TO THE ACCURACY, VALIDITY, OR
-COMPLETENESS OF ANY INFORMATION OR FEATURES AVAILABLE THROUGH THE WORKS, OR THE
-QUALITY OR CONSISTENCY OF THE WORKS OR RESULTS OBTAINED THROUGH THEIR USE.
-
-11. LIMITATION OF LIABILITY.
-
-YOU EXPRESSLY UNDERSTAND AND AGREE THAT ONF, ITS SUBSIDIARIES AND AFFILIATES,
-AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES
-THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT ONF OR
-ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE
-POSSIBILITY OF ANY SUCH LOSSES. IN NO EVENT WILL ONF'S AGGREGATE LIABILITY FOR
-DAMAGES ARISING OUT OF THIS LICENSE OR YOUR USE OF THE WORKS EXCEED THE GREATER
-OF AMOUNTS PAID BY YOU FOR THE WORKS, IF ANY.
-
-12. INDEMNIFICATION.
-
-To the maximum extent permitted by law, you agree to defend, indemnify and hold
-harmless ONF, its affiliates and their respective directors, officers,
-employees and agents from and against any and all claims, actions, suits or
-proceedings, as well as any and all losses, liabilities, damages, costs and
-expenses (including reasonable attorneys' fees) arising out of or accruing from
-(a) your use of the Works, (b) any Application or (for Partner-level Members)
-commercial product or service you develop using the Works that infringes any
-copyright, trademark, trade secret, trade dress, patent or other intellectual
-property right of any person, and (c) any non-compliance by you with this
-License or any applicable law or regulation.
-
-13. CHANGES TO THIS LICENSE.
-
-ONF may make changes to this License as it distributes new versions of the
-Works. When these changes are made, ONF will make a new version of this License
-available on the ONF website.
-
-14. MISCELLANEOUS TERMS.
-
-This License constitutes the entire legal agreement between you and ONF with
-regard to your access and use of the Works, and governs your access and use of
-the Works and completely supersedes any prior agreements between you and ONF in
-relation to the Works, except for any Contributor License Agreement you may
-have executed with ONF. You agree that if ONF does not exercise or enforce any
-legal right or remedy which is contained in this License (or which ONF has the
-benefit of under any applicable law), this will not be taken to be a formal
-waiver of ONF's rights and that those rights or remedies will still be
-available to ONF. If any court of law, having the jurisdiction to decide on
-this matter, rules that any provision of this License is invalid, then that
-provision will be removed from this License without affecting the rest of this
-License. The remaining provisions of this License will continue to be valid and
-enforceable so long as this License, as so modified, does not substantially
-impair the respective expectations or reciprocal obligations of the parties.
-The rights granted in this License may not be assigned or transferred by you
-without the prior written approval of ONF. You shall not be permitted to
-delegate your responsibilities or obligations under this License without the
-prior written approval of ONF.
diff --git a/Makefile b/Makefile
index 2fc7bef..84f11fa 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 # Copyright 2018-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 SHELL		:= /bin/bash
 BUILD		?= /tmp/build
diff --git a/configs/authentication b/configs/authentication
index 1061631..ac9ae56 100644
--- a/configs/authentication
+++ b/configs/authentication
@@ -1,6 +1,6 @@
 # Copyright 2021-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 # Configure auth for private Helm repos.  Override with your credentials.
 REPO_USERNAME := onfstaff
diff --git a/configs/latest b/configs/latest
index a5b5a11..805b58c 100644
--- a/configs/latest
+++ b/configs/latest
@@ -1,6 +1,6 @@
 # Copyright 2021-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 OMEC_CONTROL_PLANE_CHART := aether/omec-control-plane
 OMEC_USER_PLANE_CHART    := aether/omec-user-plane
diff --git a/configs/local b/configs/local
index 0ffdc58..53c08dc 100644
--- a/configs/local
+++ b/configs/local
@@ -1,6 +1,6 @@
 # Copyright 2021-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 # Support testing charts in the sdcore-helm-charts repo
 OMEC_CONTROL_PLANE_CHART := $(WORKSPACE)/cord/sdcore-helm-charts/omec-control-plane
diff --git a/configs/local-sdcore b/configs/local-sdcore
index bb35edb..8ed1cfc 100644
--- a/configs/local-sdcore
+++ b/configs/local-sdcore
@@ -1,6 +1,6 @@
 # Copyright 2021-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 # Support testing charts in the sdcore-helm-charts repo
 OMEC_CONTROL_PLANE_CHART := $(WORKSPACE)/cord/sdcore-helm-charts/omec-control-plane
diff --git a/configs/local-up b/configs/local-up
index c455ef8..ad721f6 100644
--- a/configs/local-up
+++ b/configs/local-up
@@ -1,6 +1,6 @@
 # Copyright 2021-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 OMEC_CONTROL_PLANE_CHART := aether/omec-control-plane
 OMEC_USER_PLANE_CHART    := $(WORKSPACE)/cord/aether-helm-charts/omec/omec-user-plane
diff --git a/configs/release-1.5 b/configs/release-1.5
index ea5f548..cdf945e 100644
--- a/configs/release-1.5
+++ b/configs/release-1.5
@@ -1,6 +1,6 @@
 # Copyright 2021-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 OMEC_CONTROL_PLANE_CHART := aether/omec-control-plane --version 0.8.4
 OMEC_USER_PLANE_CHART    := aether/omec-user-plane --version 0.4.8
diff --git a/configs/release-1.6 b/configs/release-1.6
index 763eb14..025669d 100644
--- a/configs/release-1.6
+++ b/configs/release-1.6
@@ -1,6 +1,6 @@
 # Copyright 2021-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 OMEC_CONTROL_PLANE_CHART := aether/omec-control-plane --version 0.9.18
 OMEC_USER_PLANE_CHART    := aether/omec-user-plane --version 0.5.4
diff --git a/oaisim-values.yaml b/oaisim-values.yaml
index acc3a34..ecf15b3 100644
--- a/oaisim-values.yaml
+++ b/oaisim-values.yaml
@@ -1,6 +1,6 @@
 # Copyright 2019-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 config:
   enb:
diff --git a/ransim-values.yaml b/ransim-values.yaml
index c3e3cfa..ff28bd2 100644
--- a/ransim-values.yaml
+++ b/ransim-values.yaml
@@ -1,6 +1,6 @@
 # Copyright 2019-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 resources:
   enabled: false
diff --git a/resources/router.yaml b/resources/router.yaml
index 5d016f5..8520ad8 100644
--- a/resources/router.yaml
+++ b/resources/router.yaml
@@ -1,6 +1,6 @@
 # Copyright 2019-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 ---
 apiVersion: "k8s.cni.cncf.io/v1"
diff --git a/resources/simpleovs b/resources/simpleovs
index 22797cd..007c582 100755
--- a/resources/simpleovs
+++ b/resources/simpleovs
@@ -2,7 +2,7 @@
 #
 # Copyright 2019-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 set -o errexit
 set -o pipefail
diff --git a/roc-4g-models-v3.json.license b/roc-4g-models-v3.json.license
index 0508f22..b1480fd 100644
--- a/roc-4g-models-v3.json.license
+++ b/roc-4g-models-v3.json.license
@@ -1,3 +1,3 @@
 SPDX-FileCopyrightText: 2021 Open Networking Foundation
 
-SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
\ No newline at end of file
+SPDX-License-Identifier: Apache-2.0
\ No newline at end of file
diff --git a/roc-4g-models-v4.json.license b/roc-4g-models-v4.json.license
index 0508f22..b1480fd 100644
--- a/roc-4g-models-v4.json.license
+++ b/roc-4g-models-v4.json.license
@@ -1,3 +1,3 @@
 SPDX-FileCopyrightText: 2021 Open Networking Foundation
 
-SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
\ No newline at end of file
+SPDX-License-Identifier: Apache-2.0
\ No newline at end of file
diff --git a/roc-5g-models-v3.json.license b/roc-5g-models-v3.json.license
index 0508f22..b1480fd 100644
--- a/roc-5g-models-v3.json.license
+++ b/roc-5g-models-v3.json.license
@@ -1,3 +1,3 @@
 SPDX-FileCopyrightText: 2021 Open Networking Foundation
 
-SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
\ No newline at end of file
+SPDX-License-Identifier: Apache-2.0
\ No newline at end of file
diff --git a/roc-5g-models-v4.json.license b/roc-5g-models-v4.json.license
index 0508f22..b1480fd 100644
--- a/roc-5g-models-v4.json.license
+++ b/roc-5g-models-v4.json.license
@@ -1,3 +1,3 @@
 SPDX-FileCopyrightText: 2021 Open Networking Foundation
 
-SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
\ No newline at end of file
+SPDX-License-Identifier: Apache-2.0
\ No newline at end of file
diff --git a/roc-values-v3.yaml b/roc-values-v3.yaml
index 6f9976b..d233b87 100644
--- a/roc-values-v3.yaml
+++ b/roc-values-v3.yaml
@@ -1,6 +1,6 @@
 # Copyright 2019-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 global:
   storage:
diff --git a/roc-values-v4.yaml b/roc-values-v4.yaml
index 49307fb..5db7b1a 100644
--- a/roc-values-v4.yaml
+++ b/roc-values-v4.yaml
@@ -1,6 +1,6 @@
 # Copyright 2019-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 global:
   storage:
diff --git a/scripts/cloudlab-disksetup.sh b/scripts/cloudlab-disksetup.sh
index 40ec43d..10eb570 100755
--- a/scripts/cloudlab-disksetup.sh
+++ b/scripts/cloudlab-disksetup.sh
@@ -2,7 +2,7 @@
 
 # Copyright 2017-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 ###############################################
 # Disk setup and symlinks for a CloudLab node #
diff --git a/scripts/portcheck.sh b/scripts/portcheck.sh
index b4402d0..5b4b1b2 100755
--- a/scripts/portcheck.sh
+++ b/scripts/portcheck.sh
@@ -2,7 +2,7 @@
 
 # Copyright 2017-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 #Below are the list of ports which are required to be free, for the SEBA services to use. If any new services get added into SEBA, Update the required node ports below and also add it to the arrray portlist.
 
diff --git a/scripts/shcheck.sh b/scripts/shcheck.sh
index 9c659eb..9b5f5d9 100755
--- a/scripts/shcheck.sh
+++ b/scripts/shcheck.sh
@@ -2,7 +2,7 @@
 
 # Copyright 2017-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 # shcheck.sh - check shell scripts with shellcheck
 
diff --git a/upf-values.yaml b/upf-values.yaml
index 7aa89f0..dda0217 100644
--- a/upf-values.yaml
+++ b/upf-values.yaml
@@ -1,6 +1,6 @@
 # Copyright 2019-present Open Networking Foundation
 #
-# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+# SPDX-License-Identifier: Apache-2.0
 
 resources:
   enabled: false
