Author: yufei
Date: Wed Jun 25 17:55:39 2025
New Revision: 77739

Log:
Add 1.0.0-incubating r1

Added:
    dev/incubator/polaris/apache-polaris-1.0.0-incubating/
    
dev/incubator/polaris/apache-polaris-1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz
   (with props)
    
dev/incubator/polaris/apache-polaris-1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz.asc
    
dev/incubator/polaris/apache-polaris-1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz.sha512
    
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz
   (with props)
    
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz.asc
    
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz.sha512
    
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.zip
   (with props)
    
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.zip.asc
    
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.zip.sha512
    dev/incubator/polaris/helm-chart/1.0.0-incubating/
    dev/incubator/polaris/helm-chart/1.0.0-incubating/Chart.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/DISCLAIMER
    dev/incubator/polaris/helm-chart/1.0.0-incubating/LICENSE
    dev/incubator/polaris/helm-chart/1.0.0-incubating/NOTICE
    dev/incubator/polaris/helm-chart/1.0.0-incubating/README.md
    dev/incubator/polaris/helm-chart/1.0.0-incubating/README.md.gotmpl
    dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/
    
dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/extra-service-values.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/features-values.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/
    
dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/persistence.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/postgres.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/storage.yaml
    
dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/token-broker.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/persistence-values.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/simple-values.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/templates/
    dev/incubator/polaris/helm-chart/1.0.0-incubating/templates/_helpers.tpl
    dev/incubator/polaris/helm-chart/1.0.0-incubating/templates/configmap.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/templates/deployment.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/templates/hpa.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/templates/ingress.yaml
    
dev/incubator/polaris/helm-chart/1.0.0-incubating/templates/service-extra.yaml
    
dev/incubator/polaris/helm-chart/1.0.0-incubating/templates/service-mgmt.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/templates/service.yaml
    
dev/incubator/polaris/helm-chart/1.0.0-incubating/templates/serviceaccount.yaml
    
dev/incubator/polaris/helm-chart/1.0.0-incubating/templates/servicemonitor.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/templates/storage.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/templates/tests/
    
dev/incubator/polaris/helm-chart/1.0.0-incubating/templates/tests/test-connection.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/tests/
    dev/incubator/polaris/helm-chart/1.0.0-incubating/tests/configmap_test.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/tests/deployment_test.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/tests/hpa_test.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/tests/ingress_test.yaml
    
dev/incubator/polaris/helm-chart/1.0.0-incubating/tests/logging_storage_test.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/tests/quantity_test.yaml
    
dev/incubator/polaris/helm-chart/1.0.0-incubating/tests/service_extra_test.yaml
    
dev/incubator/polaris/helm-chart/1.0.0-incubating/tests/service_mgmt_test.yaml
    
dev/incubator/polaris/helm-chart/1.0.0-incubating/tests/service_monitor_test.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/tests/service_test.yaml
    
dev/incubator/polaris/helm-chart/1.0.0-incubating/tests/serviceaccount_test.yaml
    dev/incubator/polaris/helm-chart/1.0.0-incubating/values.yaml

Added: 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz
==============================================================================
Binary file - no diff available.

Propchange: 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz.asc
==============================================================================
--- 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz.asc
 (added)
+++ 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz.asc
 Wed Jun 25 17:55:39 2025
@@ -0,0 +1,8 @@
+-----BEGIN PGP SIGNATURE-----
+Version: BCPG v@RELEASE_NAME@
+
+iHUEABYKAB0WIQTcYAx2mtD+gwCUcCNHHQMWEU5bZAUCaFwzaQAKCRBHHQMWEU5b
+ZHooAP9JlDY2BeEU2l9AvN9mtUg2MbG/3QshVNaZSFciaCgCkgD/ZyLwK3EmOM1R
+NH/MZ9iUMZJKy06NLxaP3RfuGxkHJQk=
+=jCdA
+-----END PGP SIGNATURE-----

Added: 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz.sha512
==============================================================================
--- 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz.sha512
 (added)
+++ 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz.sha512
 Wed Jun 25 17:55:39 2025
@@ -0,0 +1 @@
+32cf0236e44c77dd0d2a94d3e5e2e060fcb9c647c0bdf9f906a56eb9a778887ea73836a4d72612368b4396bd61c1326210795b7e231e7bd509439452a076bd16
  apache-polaris-1.0.0-incubating.tar.gz
\ No newline at end of file

Added: 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz
==============================================================================
Binary file - no diff available.

Propchange: 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz.asc
==============================================================================
--- 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz.asc
 (added)
+++ 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz.asc
 Wed Jun 25 17:55:39 2025
@@ -0,0 +1,8 @@
+-----BEGIN PGP SIGNATURE-----
+Version: BCPG v@RELEASE_NAME@
+
+iHUEABYKAB0WIQTcYAx2mtD+gwCUcCNHHQMWEU5bZAUCaFwzigAKCRBHHQMWEU5b
+ZF9fAQD+Xdf07ONJEYOyMvr5QHvXvM1uVwN2Xrgl/BpIVWE31QD+NcpVsjdLQIHu
+cQd0quegjwCpSu1f+rRna8y9R2fpaAc=
+=uZnV
+-----END PGP SIGNATURE-----

Added: 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz.sha512
==============================================================================
--- 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz.sha512
 (added)
+++ 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz.sha512
 Wed Jun 25 17:55:39 2025
@@ -0,0 +1 @@
+e6ed9b5bb09cb549a50a40f9da9ff85ef223057841ce9b9ee67cdf4daac9b30dbc1630e368c7b1215446c046ba0dc7a81b0152972f9e76500b8bd9e168853d83
  polaris-bin-1.0.0-incubating.tgz
\ No newline at end of file

Added: 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.zip
==============================================================================
Binary file - no diff available.

Propchange: 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.zip
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.zip.asc
==============================================================================
--- 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.zip.asc
 (added)
+++ 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.zip.asc
 Wed Jun 25 17:55:39 2025
@@ -0,0 +1,8 @@
+-----BEGIN PGP SIGNATURE-----
+Version: BCPG v@RELEASE_NAME@
+
+iHUEABYKAB0WIQTcYAx2mtD+gwCUcCNHHQMWEU5bZAUCaFwzjgAKCRBHHQMWEU5b
+ZDhSAQCezhzJzW6fpeNmQwF8D7J7NAEk+v+1ijoDa/e6BJ9u8AEAkwfrTar/y5Ec
+lwDZfZ5QOZY1S0fwsVzvZ9e9XIN2Wwc=
+=FLEQ
+-----END PGP SIGNATURE-----

Added: 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.zip.sha512
==============================================================================
--- 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.zip.sha512
 (added)
+++ 
dev/incubator/polaris/apache-polaris-1.0.0-incubating/polaris-bin-1.0.0-incubating.zip.sha512
 Wed Jun 25 17:55:39 2025
@@ -0,0 +1 @@
+5fb3ebbd7314ea44e18e241a97323e3eab9050fac36d631512e1866a51db621d0bc37f92c58dad33132362b7bf37c5e4f4cb6edbc6f146218364b97394dcb635
  polaris-bin-1.0.0-incubating.zip
\ No newline at end of file

Added: dev/incubator/polaris/helm-chart/1.0.0-incubating/Chart.yaml
==============================================================================
--- dev/incubator/polaris/helm-chart/1.0.0-incubating/Chart.yaml (added)
+++ dev/incubator/polaris/helm-chart/1.0.0-incubating/Chart.yaml Wed Jun 25 
17:55:39 2025
@@ -0,0 +1,38 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+#
+
+apiVersion: v2
+name: polaris
+description: A Helm chart for Apache Polaris (incubating)
+type: application
+version: 0.1.0
+appVersion: 1.0.0-incubating-SNAPSHOT
+home: https://polaris.apache.org/
+icon: 
https://raw.githubusercontent.com/apache/polaris/main/site/static/img/logos/polaris-brandmark.png
+sources:
+  - https://github.com/apache/polaris
+keywords:
+  - polaris
+  - iceberg
+maintainers:
+  - name: MonkeyCanCode
+  - name: adutra
+  - name: collado-mike
+  - name: gerrit-k
+  - name: snazy

Added: dev/incubator/polaris/helm-chart/1.0.0-incubating/DISCLAIMER
==============================================================================
--- dev/incubator/polaris/helm-chart/1.0.0-incubating/DISCLAIMER (added)
+++ dev/incubator/polaris/helm-chart/1.0.0-incubating/DISCLAIMER Wed Jun 25 
17:55:39 2025
@@ -0,0 +1,10 @@
+Apache Polaris (incubating) is an effort undergoing incubation at The Apache
+Software Foundation (ASF), sponsored by the Apache Incubator PMC.
+
+Incubation is required of all newly accepted projects until a further review
+indicates that the infrastructure, communications, and decision making process
+have stabilized in a manner consistent with other successful ASF projects.
+
+While incubation status is not necessarily a reflection of the completeness
+or stability of the code, it does indicate that the project has yet to be
+fully endorsed by the ASF.
\ No newline at end of file

Added: dev/incubator/polaris/helm-chart/1.0.0-incubating/LICENSE
==============================================================================
--- dev/incubator/polaris/helm-chart/1.0.0-incubating/LICENSE (added)
+++ dev/incubator/polaris/helm-chart/1.0.0-incubating/LICENSE Wed Jun 25 
17:55:39 2025
@@ -0,0 +1,217 @@
+                                 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
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   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.
+
+--------------------------------------------------------------------------------
+
+This product includes code from Project Nessie.
+
+* helm/polaris/tests/logging_storage_test.yaml
+* helm/polaris/tests/quantity_test.yaml
+* helm/polaris/tests/service_monitor_test.yaml
+* helm/polaris/templates/_helpers.tpl
+* helm/polaris/templates/serviceaccount.yaml
+* helm/polaris/templates/servicemonitor.yaml
+* helm/polaris/templates/storage.yaml
+
+Copyright: Copyright 2015-2025 Dremio Corporation
+Home page: https://projectnessie.org/
+License: https://www.apache.org/licenses/LICENSE-2.0
\ No newline at end of file

Added: dev/incubator/polaris/helm-chart/1.0.0-incubating/NOTICE
==============================================================================
--- dev/incubator/polaris/helm-chart/1.0.0-incubating/NOTICE (added)
+++ dev/incubator/polaris/helm-chart/1.0.0-incubating/NOTICE Wed Jun 25 
17:55:39 2025
@@ -0,0 +1,13 @@
+Apache Polaris (incubating)
+Copyright 2025 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+--------------------------------------------------------------------------------
+
+This project includes code from Project Nessie, developed at Dremio,
+with the following copyright notice:
+
+| Nessie
+| Copyright 2015-2025 Dremio Corporation
\ No newline at end of file

Added: dev/incubator/polaris/helm-chart/1.0.0-incubating/README.md
==============================================================================
--- dev/incubator/polaris/helm-chart/1.0.0-incubating/README.md (added)
+++ dev/incubator/polaris/helm-chart/1.0.0-incubating/README.md Wed Jun 25 
17:55:39 2025
@@ -0,0 +1,409 @@
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you 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.
+-->
+
+<!---
+  This README.md file was generated with:
+  https://github.com/norwoodj/helm-docs
+  Do not modify the README.md file directly, please modify README.md.gotmpl 
instead.
+  To re-generate the README.md file, install helm-docs then run from the repo 
root:
+  helm-docs --chart-search-root=helm
+-->
+
+# Polaris Helm chart
+
+![Version: 
0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square)
 ![Type: 
application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
 ![AppVersion: 
1.0.0-incubating-SNAPSHOT](https://img.shields.io/badge/AppVersion-1.0.0--incubating--SNAPSHOT-informational?style=flat-square)
+
+A Helm chart for Apache Polaris (incubating).
+
+**Homepage:** <https://polaris.apache.org/>
+
+## Maintainers
+* [MonkeyCanCode](https://github.com/MonkeyCanCode)
+* [adutra](https://github.com/adutra)
+* [collado-mike](https://github.com/collado-mike)
+* [gerrit-k](https://github.com/gerrit-k)
+* [snazy](https://github.com/snazy)
+
+## Source Code
+
+* <https://github.com/apache/polaris>
+
+## Installation
+
+### Prerequisites
+
+When using the (deprecated) EclipseLink-backed metastore, a custom 
`persistence.xml` is required,
+and a Kubernetes Secret must be created for it. Below is a sample command:
+
+```bash
+kubectl create secret generic polaris-secret -n polaris 
--from-file=persistence.xml
+```
+
+### Running locally with a Kind cluster
+
+The below instructions assume Kind and Helm are installed.
+
+Simply run the `run.sh` script from the Polaris repo root:
+
+```bash
+./run.sh
+```
+
+If using the EclipseLink-backed metastore, make sure to specify the 
`--eclipse-link-deps` option.
+
+This script will create a Kind cluster, deploy a local Docker registry, build 
the Polaris Docker
+images with support for Postgres and load them into the Kind cluster. (It will 
also create an
+example Deployment and Service with in-memory storage.)
+
+### Running locally with a Minikube cluster
+
+The below instructions assume a Minikube cluster is already running and Helm 
is installed.
+
+If necessary, build and load the Docker images with support for Postgres into 
Minikube:
+
+```bash
+eval $(minikube -p minikube docker-env)
+
+./gradlew \
+    :polaris-server:assemble \
+    :polaris-server:quarkusAppPartsBuild --rerun \
+    :polaris-admin:assemble \
+    :polaris-admin:quarkusAppPartsBuild --rerun \
+    -Dquarkus.container-image.build=true
+```
+
+### Installing the chart locally
+
+The below instructions assume a local Kubernetes cluster is running and Helm 
is installed.
+
+#### Common setup
+
+Create the target namespace:
+
+```bash
+kubectl create namespace polaris
+```
+
+Create all the required resources in the `polaris` namespace. This usually 
includes a Postgres
+database and a Kubernetes Secret for the `persistence.xml` file. The Polaris 
chart does not create
+these resources automatically, as they are not required for all Polaris 
deployments. The chart will
+fail if these resources are not created beforehand.
+
+Below are two sample deployment models for installing the chart: one with a 
non-persistent backend and another with a persistent backend.
+
+> [!WARNING]
+> The examples below use values files located in the `helm/polaris/ci` 
directory.
+> **These files are intended for testing purposes primarily, and may not be 
suitable for production use**.
+> For production deployments, create your own values files based on the 
provided examples.
+
+#### Non-persistent backend
+
+Install the chart with a non-persistent backend. From Polaris repo root:
+
+```bash
+helm upgrade --install --namespace polaris \
+  --debug --values helm/polaris/ci/simple-values.yaml \
+   polaris helm/polaris
+```
+
+Note: if you are running the tests on a Kind cluster started with the `run.sh` 
command explained
+above, then you need to run `helm upgrade` as follows:
+
+```bash
+helm upgrade --install --namespace polaris \
+  --debug --values helm/polaris/ci/simple-values.yaml \
+  --set=image.repository=localhost:5001/apache/polaris \
+  polaris helm/polaris
+```
+
+#### Persistent backend
+
+> [!WARNING]
+> The Postgres deployment set up in the fixtures directory is intended for 
testing purposes only and is not suitable for production use. For production 
deployments, use a managed Postgres service or a properly configured and 
secured Postgres instance.
+
+Install the chart with a persistent backend. From Polaris repo root:
+
+```bash
+helm upgrade --install --namespace polaris \
+  --debug --values helm/polaris/ci/persistence-values.yaml \
+  polaris helm/polaris
+
+kubectl wait --namespace polaris --for=condition=ready pod 
--selector=app.kubernetes.io/name=polaris --timeout=120s
+```
+
+After deploying the chart with a persistent backend, the `persistence.xml` 
file, originally loaded into the Kubernetes pod via a secret, can be accessed 
locally if needed. This file contains the persistence configuration required 
for the next steps. Use the following command to retrieve it:
+
+```bash
+kubectl exec -it -n polaris $(kubectl get pod -n polaris -l 
app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') -- cat 
/deployments/config/persistence.xml > persistence.xml
+```
+
+The `persistence.xml` file references the Postgres hostname as postgres. 
Update it to localhost to enable local connections:
+
+```bash
+sed -i .bak 's/postgres:/localhost:/g' persistence.xml
+```
+
+To access Polaris and Postgres locally, set up port forwarding for both 
services:
+```bash
+kubectl port-forward -n polaris $(kubectl get pod -n polaris -l 
app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') 
8181:8181
+
+kubectl port-forward -n polaris $(kubectl get pod -n polaris -l 
app.kubernetes.io/name=postgres -o jsonpath='{.items[0].metadata.name}') 
5432:5432
+```
+
+Run the catalog bootstrap using the Polaris admin tool. This step initializes 
the catalog with the required configuration:
+
+```bash
+java -Dpolaris.persistence.eclipselink.configuration-file=./persistence.xml \
+  -Dpolaris.persistence.eclipselink.persistence-unit=polaris \
+  -jar runtime/admin/build/polaris-admin-*-runner.jar \
+  bootstrap -c POLARIS,root,pass -r POLARIS
+```
+
+### Uninstalling
+
+```bash
+helm uninstall --namespace polaris polaris
+
+kubectl delete --namespace polaris -f helm/polaris/ci/fixtures/
+
+kubectl delete namespace polaris
+```
+
+## Development & Testing
+
+This section is intended for developers who want to run the Polaris Helm chart 
tests.
+
+### Prerequisites
+
+The following tools are required to run the tests:
+
+* [Helm Unit Test](https://github.com/helm-unittest/helm-unittest)
+* [Chart Testing](https://github.com/helm/chart-testing)
+
+Quick installation instructions for these tools:
+
+```bash
+helm plugin install https://github.com/helm-unittest/helm-unittest.git
+brew install chart-testing
+```
+
+The integration tests also require some fixtures to be deployed. The 
`ci/fixtures` directory
+contains the required resources. To deploy them, run the following command:
+
+```bash
+kubectl apply --namespace polaris -f helm/polaris/ci/fixtures/
+kubectl wait --namespace polaris --for=condition=ready pod 
--selector=app.kubernetes.io/name=postgres --timeout=120s
+```
+
+The `helm/polaris/ci` contains a number of values files that will be used to 
install the chart with
+different configurations.
+
+### Running the unit tests
+
+Helm unit tests do not require a Kubernetes cluster. To run the unit tests, 
execute Helm Unit from
+the Polaris repo root:
+
+```bash
+helm unittest helm/polaris
+```
+
+You can also lint the chart using the Chart Testing tool, with the following 
command:
+
+```bash
+ct lint --charts helm/polaris
+```
+
+### Running the integration tests
+
+Integration tests require a Kubernetes cluster. See installation instructions 
above for setting up
+a local cluster.
+
+Integration tests are run with the Chart Testing tool:
+
+```bash
+ct install --namespace polaris --debug --charts ./helm/polaris
+```
+
+Note: if you are running the tests on a Kind cluster started with the `run.sh` 
command explained
+above, then you need to run `ct install` as follows:
+
+```bash
+ct install --namespace polaris --debug --charts ./helm/polaris \
+  --helm-extra-set-args "--set=image.repository=localhost:5001/apache/polaris"
+```
+
+## Values
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| advancedConfig | object | `{}` | Advanced configuration. You can pass here 
any valid Polaris or Quarkus configuration property. Any property that is 
defined here takes precedence over all the other configuration values generated 
by this chart. Properties can be passed "flattened" or as nested YAML objects 
(see examples below). Note: values should be strings; avoid using numbers, 
booleans, or other types. |
+| affinity | object | `{}` | Affinity and anti-affinity for polaris pods. See 
https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity.
 |
+| authentication | object | 
`{"authenticator":{"type":"default"},"tokenBroker":{"maxTokenGeneration":"PT1H","secret":{"name":null,"privateKey":"private.pem","publicKey":"public.pem","secretKey":"secret"},"type":"rsa-key-pair"},"tokenService":{"type":"default"}}`
 | Polaris authentication configuration. |
+| authentication.authenticator | object | `{"type":"default"}` | The type of 
authentication to use. Two built-in types are supported: default and test; test 
is not recommended for production. |
+| authentication.tokenBroker | object | 
`{"maxTokenGeneration":"PT1H","secret":{"name":null,"privateKey":"private.pem","publicKey":"public.pem","secretKey":"secret"},"type":"rsa-key-pair"}`
 | The type of token broker to use. Two built-in types are supported: 
rsa-key-pair and symmetric-key. |
+| authentication.tokenBroker.secret | object | 
`{"name":null,"privateKey":"private.pem","publicKey":"public.pem","secretKey":"secret"}`
 | The secret name to pull the public and private keys, or the symmetric key 
secret from. |
+| authentication.tokenBroker.secret.name | string | `nil` | The name of the 
secret to pull the keys from. If not provided, a key pair will be generated. 
This is not recommended for production. |
+| authentication.tokenBroker.secret.privateKey | string | `"private.pem"` | 
The private key file to use for RSA key pair token broker. Only required when 
using rsa-key-pair. |
+| authentication.tokenBroker.secret.publicKey | string | `"public.pem"` | The 
public key file to use for RSA key pair token broker. Only required when using 
rsa-key-pair. |
+| authentication.tokenBroker.secret.secretKey | string | `"secret"` | The 
symmetric key file to use for symmetric key token broker. Only required when 
using symmetric-key. |
+| authentication.tokenService | object | `{"type":"default"}` | The type of 
token service to use. Two built-in types are supported: default and test; test 
is not recommended for production. |
+| autoscaling.enabled | bool | `false` | Specifies whether automatic 
horizontal scaling should be enabled. Do not enable this when using in-memory 
version store type. |
+| autoscaling.maxReplicas | int | `3` | The maximum number of replicas to 
maintain. |
+| autoscaling.minReplicas | int | `1` | The minimum number of replicas to 
maintain. |
+| autoscaling.targetCPUUtilizationPercentage | int | `80` | Optional; set to 
zero or empty to disable. |
+| autoscaling.targetMemoryUtilizationPercentage | string | `nil` | Optional; 
set to zero or empty to disable. |
+| configMapLabels | object | `{}` | Additional Labels to apply to polaris 
configmap. |
+| containerSecurityContext | object | 
`{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"runAsNonRoot":true,"runAsUser":10000,"seccompProfile":{"type":"RuntimeDefault"}}`
 | Security context for the polaris container. See 
https://kubernetes.io/docs/tasks/configure-pod-container/security-context/. |
+| containerSecurityContext.runAsUser | int | `10000` | UID 10000 is compatible 
with Polaris OSS default images; change this if you are using a different 
image. |
+| cors | object | 
`{"accessControlAllowCredentials":null,"accessControlMaxAge":null,"allowedHeaders":[],"allowedMethods":[],"allowedOrigins":[],"exposedHeaders":[]}`
 | Polaris CORS configuration. |
+| cors.accessControlAllowCredentials | string | `nil` | The 
`Access-Control-Allow-Credentials` response header. The value of this header 
will default to `true` if `allowedOrigins` property is set and there is a match 
with the precise `Origin` header. |
+| cors.accessControlMaxAge | string | `nil` | The `Access-Control-Max-Age` 
response header value indicating how long the results of a pre-flight request 
can be cached. Must be a valid duration. |
+| cors.allowedHeaders | list | `[]` | HTTP headers allowed for CORS, ex: 
X-Custom, Content-Disposition. If this is not set or empty, all requested 
headers are considered allowed. |
+| cors.allowedMethods | list | `[]` | HTTP methods allowed for CORS, ex: GET, 
PUT, POST. If this is not set or empty, all requested methods are considered 
allowed. |
+| cors.allowedOrigins | list | `[]` | Origins allowed for CORS, e.g. 
http://polaris.apache.org, http://localhost:8181. In case an entry of the list 
is surrounded by forward slashes, it is interpreted as a regular expression. |
+| cors.exposedHeaders | list | `[]` | HTTP headers exposed to the client, ex: 
X-Custom, Content-Disposition. The default is an empty list. |
+| extraEnv | list | `[]` | Advanced configuration via Environment Variables. 
Extra environment variables to add to the Polaris server container. You can 
pass here any valid EnvVar object: 
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#envvar-v1-core
 This can be useful to get configuration values from Kubernetes secrets or 
config maps. |
+| extraInitContainers | list | `[]` | Add additional init containers to the 
polaris pod(s) See 
https://kubernetes.io/docs/concepts/workloads/pods/init-containers/. |
+| extraServices | list | `[]` | Additional service definitions. All service 
definitions always select all Polaris pods. Use this if you need to expose 
specific ports with different configurations, e.g. expose polaris-http with an 
alternate LoadBalancer service instead of ClusterIP. |
+| extraVolumeMounts | list | `[]` | Extra volume mounts to add to the polaris 
container. See https://kubernetes.io/docs/concepts/storage/volumes/. |
+| extraVolumes | list | `[]` | Extra volumes to add to the polaris pod. See 
https://kubernetes.io/docs/concepts/storage/volumes/. |
+| features | object | `{"realmOverrides":{}}` | Polaris features 
configuration. |
+| features.realmOverrides | object | `{}` | Features to enable or disable per 
realm. This field is a map of maps. The realm name is the key, and the value is 
a map of feature names to values. If a feature is not present in the map, the 
default value from the 'defaults' field is used. |
+| fileIo | object | `{"type":"default"}` | Polaris FileIO configuration. |
+| fileIo.type | string | `"default"` | The type of file IO to use. Two 
built-in types are supported: default and wasb. The wasb one translates WASB 
paths to ABFS ones. |
+| image.configDir | string | `"/deployments/config"` | The path to the 
directory where the application.properties file, and other configuration files, 
if any, should be mounted. Note: if you are using EclipseLink, then this value 
must be at least two folders down to the root folder, e.g. 
`/deployments/config` is OK, whereas `/deployments` is not. |
+| image.pullPolicy | string | `"IfNotPresent"` | The image pull policy. |
+| image.repository | string | `"apache/polaris"` | The image repository to 
pull from. |
+| image.tag | string | `"latest"` | The image tag. |
+| imagePullSecrets | list | `[]` | References to secrets in the same namespace 
to use for pulling any of the images used by this chart. Each entry is a 
LocalObjectReference to an existing secret in the namespace. The secret must 
contain a .dockerconfigjson key with a base64-encoded Docker configuration 
file. See 
https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
 for more information. |
+| ingress.annotations | object | `{}` | Annotations to add to the ingress. |
+| ingress.className | string | `""` | Specifies the ingressClassName; leave 
empty if you don't want to customize it |
+| ingress.enabled | bool | `false` | Specifies whether an ingress should be 
created. |
+| ingress.hosts | list | `[{"host":"chart-example.local","paths":[]}]` | A 
list of host paths used to configure the ingress. |
+| ingress.tls | list | `[]` | A list of TLS certificates; each entry has a 
list of hosts in the certificate, along with the secret name used to terminate 
TLS traffic on port 443. |
+| livenessProbe | object | 
`{"failureThreshold":3,"initialDelaySeconds":5,"periodSeconds":10,"successThreshold":1,"terminationGracePeriodSeconds":30,"timeoutSeconds":10}`
 | Configures the liveness probe for polaris pods. |
+| livenessProbe.failureThreshold | int | `3` | Minimum consecutive failures 
for the probe to be considered failed after having succeeded. Minimum value is 
1. |
+| livenessProbe.initialDelaySeconds | int | `5` | Number of seconds after the 
container has started before liveness probes are initiated. Minimum value is 0. 
|
+| livenessProbe.periodSeconds | int | `10` | How often (in seconds) to perform 
the probe. Minimum value is 1. |
+| livenessProbe.successThreshold | int | `1` | Minimum consecutive successes 
for the probe to be considered successful after having failed. Minimum value is 
1. |
+| livenessProbe.terminationGracePeriodSeconds | int | `30` | Optional duration 
in seconds the pod needs to terminate gracefully upon probe failure. Minimum 
value is 1. |
+| livenessProbe.timeoutSeconds | int | `10` | Number of seconds after which 
the probe times out. Minimum value is 1. |
+| logging | object | 
`{"categories":{"org.apache.iceberg.rest":"INFO","org.apache.polaris":"INFO"},"console":{"enabled":true,"format":"%d{yyyy-MM-dd
 HH:mm:ss,SSS} %-5p [%c{3.}] [%X{requestId},%X{realmId}] 
[%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) 
%s%e%n","json":false,"threshold":"ALL"},"file":{"enabled":false,"fileName":"polaris.log","format":"%d{yyyy-MM-dd
 HH:mm:ss,SSS} %-5p [%c{3.}] [%X{requestId},%X{realmId}] 
[%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) 
%s%e%n","json":false,"logsDir":"/deployments/logs","rotation":{"fileSuffix":null,"maxBackupIndex":5,"maxFileSize":"100Mi"},"storage":{"className":"standard","selectorLabels":{},"size":"512Gi"},"threshold":"ALL"},"level":"INFO","mdc":{},"requestIdHeaderName":"Polaris-Request-Id"}`
 | Logging configuration. |
+| logging.categories | object | 
`{"org.apache.iceberg.rest":"INFO","org.apache.polaris":"INFO"}` | 
Configuration for specific log categories. |
+| logging.console | object | `{"enabled":true,"format":"%d{yyyy-MM-dd 
HH:mm:ss,SSS} %-5p [%c{3.}] [%X{requestId},%X{realmId}] 
[%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) 
%s%e%n","json":false,"threshold":"ALL"}` | Configuration for the console 
appender. |
+| logging.console.enabled | bool | `true` | Whether to enable the console 
appender. |
+| logging.console.format | string | `"%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p 
[%c{3.}] [%X{requestId},%X{realmId}] 
[%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) %s%e%n"` | The log 
format to use. Ignored if JSON format is enabled. See 
https://quarkus.io/guides/logging#logging-format for details. |
+| logging.console.json | bool | `false` | Whether to log in JSON format. |
+| logging.console.threshold | string | `"ALL"` | The log level of the console 
appender. |
+| logging.file | object | 
`{"enabled":false,"fileName":"polaris.log","format":"%d{yyyy-MM-dd 
HH:mm:ss,SSS} %-5p [%c{3.}] [%X{requestId},%X{realmId}] 
[%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) 
%s%e%n","json":false,"logsDir":"/deployments/logs","rotation":{"fileSuffix":null,"maxBackupIndex":5,"maxFileSize":"100Mi"},"storage":{"className":"standard","selectorLabels":{},"size":"512Gi"},"threshold":"ALL"}`
 | Configuration for the file appender. |
+| logging.file.enabled | bool | `false` | Whether to enable the file appender. 
|
+| logging.file.fileName | string | `"polaris.log"` | The log file name. |
+| logging.file.format | string | `"%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] 
[%X{requestId},%X{realmId}] [%X{traceId},%X{parentId},%X{spanId},%X{sampled}] 
(%t) %s%e%n"` | The log format to use. Ignored if JSON format is enabled. See 
https://quarkus.io/guides/logging#logging-format for details. |
+| logging.file.json | bool | `false` | Whether to log in JSON format. |
+| logging.file.logsDir | string | `"/deployments/logs"` | The local directory 
where log files are stored. The persistent volume claim will be mounted here. |
+| logging.file.rotation | object | 
`{"fileSuffix":null,"maxBackupIndex":5,"maxFileSize":"100Mi"}` | Log rotation 
configuration. |
+| logging.file.rotation.fileSuffix | string | `nil` | An optional suffix to 
append to the rotated log files. If present, the rotated log files will be 
grouped in time buckets, and each bucket will contain at most maxBackupIndex 
files. The suffix must be in a date-time format that is understood by 
DateTimeFormatter. If the suffix ends with .gz or .zip, the rotated files will 
also be compressed using the corresponding algorithm. |
+| logging.file.rotation.maxBackupIndex | int | `5` | The maximum number of 
backup files to keep. |
+| logging.file.rotation.maxFileSize | string | `"100Mi"` | The maximum size of 
the log file before it is rotated. Should be expressed as a Kubernetes 
quantity. |
+| logging.file.storage | object | 
`{"className":"standard","selectorLabels":{},"size":"512Gi"}` | The log storage 
configuration. A persistent volume claim will be created using these settings. |
+| logging.file.storage.className | string | `"standard"` | The storage class 
name of the persistent volume claim to create. |
+| logging.file.storage.selectorLabels | object | `{}` | Labels to add to the 
persistent volume claim spec selector; a persistent volume with matching labels 
must exist. Leave empty if using dynamic provisioning. |
+| logging.file.storage.size | string | `"512Gi"` | The size of the persistent 
volume claim to create. |
+| logging.file.threshold | string | `"ALL"` | The log level of the file 
appender. |
+| logging.level | string | `"INFO"` | The log level of the root category, 
which is used as the default log level for all categories. |
+| logging.mdc | object | `{}` | Configuration for MDC (Mapped Diagnostic 
Context). Values specified here will be added to the log context of all 
incoming requests and can be used in log patterns. |
+| logging.requestIdHeaderName | string | `"Polaris-Request-Id"` | The header 
name to use for the request ID. |
+| managementService | object | 
`{"annotations":{},"clusterIP":"None","externalTrafficPolicy":null,"internalTrafficPolicy":null,"ports":[{"name":"polaris-mgmt","nodePort":null,"port":8182,"protocol":null,"targetPort":null}],"sessionAffinity":null,"trafficDistribution":null,"type":"ClusterIP"}`
 | Management service settings. These settings are used to configure liveness 
and readiness probes, and to configure the dedicated headless service that will 
expose health checks and metrics, e.g. for metrics scraping and service 
monitoring. |
+| managementService.annotations | object | `{}` | Annotations to add to the 
service. |
+| managementService.clusterIP | string | `"None"` | By default, the management 
service is headless, i.e. it does not have a cluster IP. This is generally the 
right option for exposing health checks and metrics, e.g. for metrics scraping 
and service monitoring. |
+| managementService.ports | list | 
`[{"name":"polaris-mgmt","nodePort":null,"port":8182,"protocol":null,"targetPort":null}]`
 | The ports the management service will listen on. At least one port is 
required; the first port implicitly becomes the HTTP port that the application 
will use for serving management requests. By default, it's 8182. Note: port 
names must be unique and no more than 15 characters long. |
+| managementService.ports[0] | object | 
`{"name":"polaris-mgmt","nodePort":null,"port":8182,"protocol":null,"targetPort":null}`
 | The name of the management port. Required. |
+| managementService.ports[0].nodePort | string | `nil` | The port on each node 
on which this service is exposed when type is NodePort or LoadBalancer. Usually 
assigned by the system. If not specified, a port will be allocated if this 
Service requires one. If this field is specified when creating a Service which 
does not need it, creation will fail. |
+| managementService.ports[0].port | int | `8182` | The port the management 
service listens on. By default, the management interface is exposed on HTTP 
port 8182. |
+| managementService.ports[0].protocol | string | `nil` | The IP protocol for 
this port. Supports "TCP", "UDP", and "SCTP". Default is TCP. |
+| managementService.ports[0].targetPort | string | `nil` | Number or name of 
the port to access on the pods targeted by the service. If this is a string, it 
will be looked up as a named port in the target Pod's container ports. If this 
is not specified, the value of the 'port' field is used. |
+| managementService.type | string | `"ClusterIP"` | The type of service to 
create. Valid values are: ExternalName, ClusterIP, NodePort, and LoadBalancer. 
The default value is ClusterIP. |
+| metrics.enabled | bool | `true` | Specifies whether metrics for the polaris 
server should be enabled. |
+| metrics.tags | object | `{}` | Additional tags (dimensional labels) to add 
to the metrics. |
+| nodeSelector | object | `{}` | Node labels which must match for the polaris 
pod to be scheduled on that node. See 
https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector.
 |
+| persistence | object | 
`{"eclipseLink":{"persistenceUnit":"polaris","secret":{"key":"persistence.xml","name":null}},"type":"eclipse-link"}`
 | Polaris persistence configuration. |
+| persistence.eclipseLink | object | 
`{"persistenceUnit":"polaris","secret":{"key":"persistence.xml","name":null}}` 
| The configuration for the eclipse-link persistence manager. |
+| persistence.eclipseLink.persistenceUnit | string | `"polaris"` | The 
persistence unit name to use. |
+| persistence.eclipseLink.secret | object | 
`{"key":"persistence.xml","name":null}` | The secret name to pull 
persistence.xml from. |
+| persistence.eclipseLink.secret.key | string | `"persistence.xml"` | The key 
in the secret to pull persistence.xml from. |
+| persistence.eclipseLink.secret.name | string | `nil` | The name of the 
secret to pull persistence.xml from. If not provided, the default built-in 
persistence.xml will be used. This is probably not what you want. |
+| persistence.type | string | `"eclipse-link"` | The type of persistence to 
use. Two built-in types are supported: in-memory and eclipse-link. |
+| podAnnotations | object | `{}` | Annotations to apply to polaris pods. |
+| podLabels | object | `{}` | Additional Labels to apply to polaris pods. |
+| podSecurityContext | object | 
`{"fsGroup":10001,"seccompProfile":{"type":"RuntimeDefault"}}` | Security 
context for the polaris pod. See 
https://kubernetes.io/docs/tasks/configure-pod-container/security-context/. |
+| podSecurityContext.fsGroup | int | `10001` | GID 10001 is compatible with 
Polaris OSS default images; change this if you are using a different image. |
+| rateLimiter | object | 
`{"tokenBucket":{"requestsPerSecond":9999,"type":"default","window":"PT10S"},"type":"no-op"}`
 | Polaris rate limiter configuration. |
+| rateLimiter.tokenBucket | object | 
`{"requestsPerSecond":9999,"type":"default","window":"PT10S"}` | The 
configuration for the default rate limiter, which uses the token bucket 
algorithm with one bucket per realm. |
+| rateLimiter.tokenBucket.requestsPerSecond | int | `9999` | The maximum 
number of requests per second allowed for each realm. |
+| rateLimiter.tokenBucket.type | string | `"default"` | The type of the token 
bucket rate limiter. Only the default type is supported out of the box. |
+| rateLimiter.tokenBucket.window | string | `"PT10S"` | The time window. |
+| rateLimiter.type | string | `"no-op"` | The type of rate limiter filter to 
use. Two built-in types are supported: default and no-op. |
+| readinessProbe | object | 
`{"failureThreshold":3,"initialDelaySeconds":5,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":10}`
 | Configures the readiness probe for polaris pods. |
+| readinessProbe.failureThreshold | int | `3` | Minimum consecutive failures 
for the probe to be considered failed after having succeeded. Minimum value is 
1. |
+| readinessProbe.initialDelaySeconds | int | `5` | Number of seconds after the 
container has started before readiness probes are initiated. Minimum value is 
0. |
+| readinessProbe.periodSeconds | int | `10` | How often (in seconds) to 
perform the probe. Minimum value is 1. |
+| readinessProbe.successThreshold | int | `1` | Minimum consecutive successes 
for the probe to be considered successful after having failed. Minimum value is 
1. |
+| readinessProbe.timeoutSeconds | int | `10` | Number of seconds after which 
the probe times out. Minimum value is 1. |
+| realmContext | object | `{"realms":["POLARIS"],"type":"default"}` | Realm 
context resolver configuration. |
+| realmContext.realms | list | `["POLARIS"]` | List of valid realms, for use 
with the default realm context resolver. The first realm in the list is the 
default realm. Realms not in this list will be rejected. |
+| realmContext.type | string | `"default"` | The type of realm context 
resolver to use. Two built-in types are supported: default and test; test is 
not recommended for production as it does not perform any realm validation. |
+| replicaCount | int | `1` | The number of replicas to deploy (horizontal 
scaling). Beware that replicas are stateless; don't set this number > 1 when 
using in-memory meta store manager. |
+| resources | object | `{}` | Configures the resources requests and limits for 
polaris pods. We usually recommend not to specify default resources and to 
leave this as a conscious choice for the user. This also increases chances 
charts run on environments with little resources, such as Minikube. If you do 
want to specify resources, uncomment the following lines, adjust them as 
necessary, and remove the curly braces after 'resources:'. |
+| revisionHistoryLimit | string | `nil` | The number of old ReplicaSets to 
retain to allow rollback (if not set, the default Kubernetes value is set to 
10). |
+| service | object | 
`{"annotations":{},"clusterIP":null,"externalTrafficPolicy":null,"internalTrafficPolicy":null,"ports":[{"name":"polaris-http","nodePort":null,"port":8181,"protocol":null,"targetPort":null}],"sessionAffinity":null,"trafficDistribution":null,"type":"ClusterIP"}`
 | Polaris main service settings. |
+| service.annotations | object | `{}` | Annotations to add to the service. |
+| service.clusterIP | string | `nil` | You can specify your own cluster IP 
address If you define a Service that has the .spec.clusterIP set to "None" then 
Kubernetes does not assign an IP address. Instead, DNS records for the service 
will return the IP addresses of each pod targeted by the server. This is called 
a headless service. See 
https://kubernetes.io/docs/concepts/services-networking/service/#headless-services
 |
+| service.externalTrafficPolicy | string | `nil` | Controls how traffic from 
external sources is routed. Valid values are Cluster and Local. The default 
value is Cluster. Set the field to Cluster to route traffic to all ready 
endpoints. Set the field to Local to only route to ready node-local endpoints. 
If the traffic policy is Local and there are no node-local endpoints, traffic 
is dropped by kube-proxy. |
+| service.internalTrafficPolicy | string | `nil` | Controls how traffic from 
internal sources is routed. Valid values are Cluster and Local. The default 
value is Cluster. Set the field to Cluster to route traffic to all ready 
endpoints. Set the field to Local to only route to ready node-local endpoints. 
If the traffic policy is Local and there are no node-local endpoints, traffic 
is dropped by kube-proxy. |
+| service.ports | list | 
`[{"name":"polaris-http","nodePort":null,"port":8181,"protocol":null,"targetPort":null}]`
 | The ports the service will listen on. At least one port is required; the 
first port implicitly becomes the HTTP port that the application will use for 
serving API requests. By default, it's 8181. Note: port names must be unique 
and no more than 15 characters long. |
+| service.ports[0] | object | 
`{"name":"polaris-http","nodePort":null,"port":8181,"protocol":null,"targetPort":null}`
 | The name of the port. Required. |
+| service.ports[0].nodePort | string | `nil` | The port on each node on which 
this service is exposed when type is NodePort or LoadBalancer. Usually assigned 
by the system. If not specified, a port will be allocated if this Service 
requires one. If this field is specified when creating a Service which does not 
need it, creation will fail. |
+| service.ports[0].port | int | `8181` | The port the service listens on. By 
default, the HTTP port is 8181. |
+| service.ports[0].protocol | string | `nil` | The IP protocol for this port. 
Supports "TCP", "UDP", and "SCTP". Default is TCP. |
+| service.ports[0].targetPort | string | `nil` | Number or name of the port to 
access on the pods targeted by the service. If this is a string, it will be 
looked up as a named port in the target Pod's container ports. If this is not 
specified, the value of the 'port' field is used. |
+| service.sessionAffinity | string | `nil` | The session affinity for the 
service. Valid values are: None, ClientIP. The default value is None. ClientIP 
enables sticky sessions based on the client's IP address. This is generally 
beneficial to Polaris deployments, but some testing may be required in order to 
make sure that the load is distributed evenly among the pods. Also, this 
setting affects only internal clients, not external ones. If Ingress is 
enabled, it is recommended to set sessionAffinity to None. |
+| service.trafficDistribution | string | `nil` | The traffic distribution 
field provides another way to influence traffic routing within a Kubernetes 
Service. While traffic policies focus on strict semantic guarantees, traffic 
distribution allows you to express preferences such as routing to topologically 
closer endpoints. The only valid value is: PreferClose. The default value is 
implementation-specific. |
+| service.type | string | `"ClusterIP"` | The type of service to create. Valid 
values are: ExternalName, ClusterIP, NodePort, and LoadBalancer. The default 
value is ClusterIP. |
+| serviceAccount.annotations | object | `{}` | Annotations to add to the 
service account. |
+| serviceAccount.create | bool | `true` | Specifies whether a service account 
should be created. |
+| serviceAccount.name | string | `""` | The name of the service account to 
use. If not set and create is true, a name is generated using the fullname 
template. |
+| serviceMonitor.enabled | bool | `true` | Specifies whether a ServiceMonitor 
for Prometheus operator should be created. |
+| serviceMonitor.interval | string | `""` | The scrape interval; leave empty 
to let Prometheus decide. Must be a valid duration, e.g. 1d, 1h30m, 5m, 10s. |
+| serviceMonitor.labels | object | `{}` | Labels for the created 
ServiceMonitor so that Prometheus operator can properly pick it up. |
+| serviceMonitor.metricRelabelings | list | `[]` | Relabeling rules to apply 
to metrics. Ref 
https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config.
 |
+| storage | object | 
`{"secret":{"awsAccessKeyId":null,"awsSecretAccessKey":null,"gcpToken":null,"gcpTokenLifespan":null,"name":null}}`
 | Storage credentials for the server. If the following properties are unset, 
default credentials will be used, in which case the pod must have the necessary 
permissions to access the storage. |
+| storage.secret | object | 
`{"awsAccessKeyId":null,"awsSecretAccessKey":null,"gcpToken":null,"gcpTokenLifespan":null,"name":null}`
 | The secret to pull storage credentials from. |
+| storage.secret.awsAccessKeyId | string | `nil` | The key in the secret to 
pull the AWS access key ID from. Only required when using AWS. |
+| storage.secret.awsSecretAccessKey | string | `nil` | The key in the secret 
to pull the AWS secret access key from. Only required when using AWS. |
+| storage.secret.gcpToken | string | `nil` | The key in the secret to pull the 
GCP token from. Only required when using GCP. |
+| storage.secret.gcpTokenLifespan | string | `nil` | The key in the secret to 
pull the GCP token expiration time from. Only required when using GCP. Must be 
a valid ISO 8601 duration. The default is PT1H (1 hour). |
+| storage.secret.name | string | `nil` | The name of the secret to pull 
storage credentials from. |
+| tasks | object | `{"maxConcurrentTasks":null,"maxQueuedTasks":null}` | 
Polaris asynchronous task executor configuration. |
+| tasks.maxConcurrentTasks | string | `nil` | The maximum number of concurrent 
tasks that can be executed at the same time. The default is the number of 
available cores. |
+| tasks.maxQueuedTasks | string | `nil` | The maximum number of tasks that can 
be queued up for execution. The default is Integer.MAX_VALUE. |
+| tolerations | list | `[]` | A list of tolerations to apply to polaris pods. 
See 
https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/. |
+| tracing.attributes | object | `{}` | Resource attributes to identify the 
polaris service among other tracing sources. See 
https://opentelemetry.io/docs/reference/specification/resource/semantic_conventions/#service.
 If left empty, traces will be attached to a service named "Apache Polaris"; to 
change this, provide a service.name attribute here. |
+| tracing.enabled | bool | `false` | Specifies whether tracing for the polaris 
server should be enabled. |
+| tracing.endpoint | string | `"http://otlp-collector:4317"` | The collector 
endpoint URL to connect to (required). The endpoint URL must have either the 
http:// or the https:// scheme. The collector must talk the OpenTelemetry 
protocol (OTLP) and the port must be its gRPC port (by default 4317). See 
https://quarkus.io/guides/opentelemetry for more information. |
+| tracing.sample | string | `"1.0d"` | Which requests should be sampled. Valid 
values are: "all", "none", or a ratio between 0.0 and "1.0d" (inclusive). E.g. 
"0.5d" means that 50% of the requests will be sampled. Note: avoid entering 
numbers here, always prefer a string representation of the ratio. |

Added: dev/incubator/polaris/helm-chart/1.0.0-incubating/README.md.gotmpl
==============================================================================
--- dev/incubator/polaris/helm-chart/1.0.0-incubating/README.md.gotmpl (added)
+++ dev/incubator/polaris/helm-chart/1.0.0-incubating/README.md.gotmpl Wed Jun 
25 17:55:39 2025
@@ -0,0 +1,252 @@
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you 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.
+-->
+
+<!---
+  This README.md file was generated with:
+  https://github.com/norwoodj/helm-docs
+  Do not modify the README.md file directly, please modify README.md.gotmpl 
instead.
+  To re-generate the README.md file, install helm-docs then run from the repo 
root:
+  helm-docs --chart-search-root=helm
+-->
+
+# Polaris Helm chart
+
+{{ template "chart.deprecationWarning" . }}
+
+{{ template "chart.badgesSection" . }}
+
+{{ template "chart.description" . }}.
+
+{{ template "chart.homepageLine" . }}
+
+{{ template "chart.maintainersHeader" . }}
+
+{{- range .Maintainers }}
+* [{{ .Name }}]({{ if .Url }}{{ .Url }}{{ else }}https://github.com/{{ .Name 
}}{{ end }})
+{{- end }}
+
+{{ template "chart.sourcesSection" . }}
+
+{{ template "chart.requirementsSection" . }}
+
+## Installation
+
+### Prerequisites
+
+When using the (deprecated) EclipseLink-backed metastore, a custom 
`persistence.xml` is required,
+and a Kubernetes Secret must be created for it. Below is a sample command:
+
+```bash
+kubectl create secret generic polaris-secret -n polaris 
--from-file=persistence.xml
+```
+
+### Running locally with a Kind cluster
+
+The below instructions assume Kind and Helm are installed.
+
+Simply run the `run.sh` script from the Polaris repo root:
+
+```bash
+./run.sh
+```
+
+If using the EclipseLink-backed metastore, make sure to specify the 
`--eclipse-link-deps` option.
+
+This script will create a Kind cluster, deploy a local Docker registry, build 
the Polaris Docker
+images with support for Postgres and load them into the Kind cluster. (It will 
also create an
+example Deployment and Service with in-memory storage.)
+
+### Running locally with a Minikube cluster
+
+The below instructions assume a Minikube cluster is already running and Helm 
is installed.
+
+If necessary, build and load the Docker images with support for Postgres into 
Minikube:
+
+```bash
+eval $(minikube -p minikube docker-env)
+
+./gradlew \
+    :polaris-server:assemble \
+    :polaris-server:quarkusAppPartsBuild --rerun \
+    :polaris-admin:assemble \
+    :polaris-admin:quarkusAppPartsBuild --rerun \
+    -Dquarkus.container-image.build=true
+```
+
+### Installing the chart locally
+
+The below instructions assume a local Kubernetes cluster is running and Helm 
is installed.
+
+#### Common setup
+
+Create the target namespace:
+
+```bash
+kubectl create namespace polaris
+```
+
+Create all the required resources in the `polaris` namespace. This usually 
includes a Postgres
+database and a Kubernetes Secret for the `persistence.xml` file. The Polaris 
chart does not create
+these resources automatically, as they are not required for all Polaris 
deployments. The chart will
+fail if these resources are not created beforehand.
+
+Below are two sample deployment models for installing the chart: one with a 
non-persistent backend and another with a persistent backend.
+
+> [!WARNING]
+> The examples below use values files located in the `helm/polaris/ci` 
directory.
+> **These files are intended for testing purposes primarily, and may not be 
suitable for production use**.
+> For production deployments, create your own values files based on the 
provided examples.
+
+#### Non-persistent backend
+
+Install the chart with a non-persistent backend. From Polaris repo root:
+
+```bash
+helm upgrade --install --namespace polaris \
+  --debug --values helm/polaris/ci/simple-values.yaml \
+   polaris helm/polaris
+```
+
+Note: if you are running the tests on a Kind cluster started with the `run.sh` 
command explained
+above, then you need to run `helm upgrade` as follows:
+
+```bash
+helm upgrade --install --namespace polaris \
+  --debug --values helm/polaris/ci/simple-values.yaml \
+  --set=image.repository=localhost:5001/apache/polaris \
+  polaris helm/polaris
+```
+
+#### Persistent backend
+
+> [!WARNING]
+> The Postgres deployment set up in the fixtures directory is intended for 
testing purposes only and is not suitable for production use. For production 
deployments, use a managed Postgres service or a properly configured and 
secured Postgres instance.
+
+Install the chart with a persistent backend. From Polaris repo root:
+
+```bash
+helm upgrade --install --namespace polaris \
+  --debug --values helm/polaris/ci/persistence-values.yaml \
+  polaris helm/polaris
+
+kubectl wait --namespace polaris --for=condition=ready pod 
--selector=app.kubernetes.io/name=polaris --timeout=120s
+```
+
+After deploying the chart with a persistent backend, the `persistence.xml` 
file, originally loaded into the Kubernetes pod via a secret, can be accessed 
locally if needed. This file contains the persistence configuration required 
for the next steps. Use the following command to retrieve it:
+
+```bash
+kubectl exec -it -n polaris $(kubectl get pod -n polaris -l 
app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') -- cat 
/deployments/config/persistence.xml > persistence.xml
+```
+
+The `persistence.xml` file references the Postgres hostname as postgres. 
Update it to localhost to enable local connections:
+
+```bash
+sed -i .bak 's/postgres:/localhost:/g' persistence.xml
+```
+
+To access Polaris and Postgres locally, set up port forwarding for both 
services:
+```bash
+kubectl port-forward -n polaris $(kubectl get pod -n polaris -l 
app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') 
8181:8181
+
+kubectl port-forward -n polaris $(kubectl get pod -n polaris -l 
app.kubernetes.io/name=postgres -o jsonpath='{.items[0].metadata.name}') 
5432:5432
+```
+
+Run the catalog bootstrap using the Polaris admin tool. This step initializes 
the catalog with the required configuration:
+
+```bash
+java -Dpolaris.persistence.eclipselink.configuration-file=./persistence.xml \
+  -Dpolaris.persistence.eclipselink.persistence-unit=polaris \
+  -jar runtime/admin/build/polaris-admin-*-runner.jar \
+  bootstrap -c POLARIS,root,pass -r POLARIS
+```
+
+### Uninstalling
+
+```bash
+helm uninstall --namespace polaris polaris
+
+kubectl delete --namespace polaris -f helm/polaris/ci/fixtures/
+
+kubectl delete namespace polaris
+```
+
+## Development & Testing
+
+This section is intended for developers who want to run the Polaris Helm chart 
tests.
+
+### Prerequisites
+
+The following tools are required to run the tests:
+
+* [Helm Unit Test](https://github.com/helm-unittest/helm-unittest)
+* [Chart Testing](https://github.com/helm/chart-testing)
+
+Quick installation instructions for these tools:
+
+```bash
+helm plugin install https://github.com/helm-unittest/helm-unittest.git
+brew install chart-testing
+```
+
+The integration tests also require some fixtures to be deployed. The 
`ci/fixtures` directory
+contains the required resources. To deploy them, run the following command:
+
+```bash
+kubectl apply --namespace polaris -f helm/polaris/ci/fixtures/
+kubectl wait --namespace polaris --for=condition=ready pod 
--selector=app.kubernetes.io/name=postgres --timeout=120s
+```
+
+The `helm/polaris/ci` contains a number of values files that will be used to 
install the chart with
+different configurations.
+
+### Running the unit tests
+
+Helm unit tests do not require a Kubernetes cluster. To run the unit tests, 
execute Helm Unit from
+the Polaris repo root:
+
+```bash
+helm unittest helm/polaris
+```
+
+You can also lint the chart using the Chart Testing tool, with the following 
command:
+
+```bash
+ct lint --charts helm/polaris
+```
+
+### Running the integration tests
+
+Integration tests require a Kubernetes cluster. See installation instructions 
above for setting up
+a local cluster.
+
+Integration tests are run with the Chart Testing tool:
+
+```bash
+ct install --namespace polaris --debug --charts ./helm/polaris
+```
+
+Note: if you are running the tests on a Kind cluster started with the `run.sh` 
command explained
+above, then you need to run `ct install` as follows:
+
+```bash
+ct install --namespace polaris --debug --charts ./helm/polaris \
+  --helm-extra-set-args "--set=image.repository=localhost:5001/apache/polaris"
+```
+
+{{ template "chart.valuesSection" . }}

Added: 
dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/extra-service-values.yaml
==============================================================================
--- 
dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/extra-service-values.yaml 
(added)
+++ 
dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/extra-service-values.yaml 
Wed Jun 25 17:55:39 2025
@@ -0,0 +1,47 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+#
+
+image:
+  pullPolicy: Never
+
+service:
+  type: ClusterIP
+  sessionAffinity: ClientIP
+  internalTrafficPolicy: Cluster
+  externalTrafficPolicy: Cluster
+  ports:
+    - name: polaris-http
+      port: 18181
+      targetPort: 8181
+      protocol: TCP
+    - name: polaris-http2
+      port: 28181
+      targetPort: 8181
+      protocol: TCP
+
+extraServices:
+  - nameSuffix: "ext"
+    type: ClusterIP
+    sessionAffinity: None
+    internalTrafficPolicy: Local
+    externalTrafficPolicy: Local
+    ports:
+    - name: polaris-http2
+      port: 38181
+      targetPort: 8181

Added: dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/features-values.yaml
==============================================================================
--- dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/features-values.yaml 
(added)
+++ dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/features-values.yaml 
Wed Jun 25 17:55:39 2025
@@ -0,0 +1,31 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+#
+
+image:
+  pullPolicy: Never
+
+features:
+  ENFORCE_PRINCIPAL_CREDENTIAL_ROTATION_REQUIRED_CHECKING: false
+  SUPPORTED_CATALOG_STORAGE_TYPES:
+    - S3
+  realmOverrides:
+    POLARIS:
+      ENFORCE_PRINCIPAL_CREDENTIAL_ROTATION_REQUIRED_CHECKING: true
+      SUPPORTED_CATALOG_STORAGE_TYPES:
+        - GCS

Added: 
dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/persistence.yaml
==============================================================================
--- 
dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/persistence.yaml 
(added)
+++ 
dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/persistence.yaml 
Wed Jun 25 17:55:39 2025
@@ -0,0 +1,56 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+#
+
+apiVersion: v1
+kind: Secret
+metadata:
+  name: polaris-persistence
+type: Opaque
+stringData:
+  persistence.xml: |-
+    <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence";
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+      xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd";>
+      <persistence-unit name="polaris" transaction-type="RESOURCE_LOCAL">
+        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
+        
<class>org.apache.polaris.extension.persistence.impl.eclipselink.models.ModelEntity</class>
+        
<class>org.apache.polaris.extension.persistence.impl.eclipselink.models.ModelEntityActive</class>
+        
<class>org.apache.polaris.extension.persistence.impl.eclipselink.models.ModelEntityChangeTracking</class>
+        
<class>org.apache.polaris.extension.persistence.impl.eclipselink.models.ModelEntityDropped</class>
+        
<class>org.apache.polaris.extension.persistence.impl.eclipselink.models.ModelGrantRecord</class>
+        
<class>org.apache.polaris.extension.persistence.impl.eclipselink.models.ModelPrincipalSecrets</class>
+        
<class>org.apache.polaris.extension.persistence.impl.eclipselink.models.ModelSequenceId</class>
+        <shared-cache-mode>NONE</shared-cache-mode>
+        <properties>
+          <property name="jakarta.persistence.jdbc.url"
+            value="jdbc:postgresql://postgres:5432/{realm}"/>
+          <property name="jakarta.persistence.jdbc.user" value="postgres"/>
+          <property name="jakarta.persistence.jdbc.password" value="postgres"/>
+          <property 
name="jakarta.persistence.schema-generation.database.action" value="create"/>
+          <property name="eclipselink.logging.level.sql" value="FINE"/>
+          <property name="eclipselink.logging.parameters" value="true"/>
+          <property name="eclipselink.persistence-context.flush-mode" 
value="auto"/>
+          <property name="eclipselink.connection-pool.default.initial" 
value="1" />
+          <property name="eclipselink.connection-pool.default.min" value="1" />
+          <property name="eclipselink.connection-pool.default.max" value="1" />
+          <property name="eclipselink.session.customizer" 
value="org.apache.polaris.extension.persistence.impl.eclipselink.PolarisEclipseLinkSessionCustomizer"
 />
+          <property name="eclipselink.transaction.join-existing" value="true" 
/>
+        </properties>
+      </persistence-unit>
+    </persistence>

Added: 
dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/postgres.yaml
==============================================================================
--- dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/postgres.yaml 
(added)
+++ dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/postgres.yaml 
Wed Jun 25 17:55:39 2025
@@ -0,0 +1,72 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+#
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: postgres
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app.kubernetes.io/name: postgres
+  template:
+    metadata:
+      labels:
+        app.kubernetes.io/name: postgres
+    spec:
+      containers:
+        - name: postgres
+          image: postgres:17.2
+          ports:
+            - containerPort: 5432
+          resources:
+            limits:
+              memory: "128Mi"
+          env:
+            - name: POSTGRES_USER
+              value: "postgres"
+            - name: POSTGRES_PASSWORD
+              value: "postgres"
+            - name: POSTGRES_DB
+              value: "POLARIS"
+            - name: POSTGRES_INITDB_ARGS
+              value: "--encoding UTF8 --data-checksums"
+          readinessProbe:
+            exec:
+              command:
+                - pg_isready
+                - -U
+                - postgres
+            initialDelaySeconds: 5
+            periodSeconds: 5
+            timeoutSeconds: 2
+            failureThreshold: 15
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: postgres
+spec:
+  selector:
+    app.kubernetes.io/name: postgres
+  ports:
+    - protocol: TCP
+      port: 5432
+      targetPort: 5432

Added: 
dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/storage.yaml
==============================================================================
--- dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/storage.yaml 
(added)
+++ dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/storage.yaml 
Wed Jun 25 17:55:39 2025
@@ -0,0 +1,27 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+#
+
+apiVersion: v1
+kind: Secret
+metadata:
+  name: polaris-storage
+type: Opaque
+stringData:
+  access-key: "my-key"
+  secret-key: "my-secret"

Added: 
dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/token-broker.yaml
==============================================================================
--- 
dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/token-broker.yaml 
(added)
+++ 
dev/incubator/polaris/helm-chart/1.0.0-incubating/ci/fixtures/token-broker.yaml 
Wed Jun 25 17:55:39 2025
@@ -0,0 +1,63 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+#
+
+apiVersion: v1
+kind: Secret
+metadata:
+  name: polaris-token-broker
+type: Opaque
+# The following values were generated using the following commands:
+# openssl genrsa -out private.pem 2048
+# openssl rsa -in private.pem -pubout -out public.pem
+# They do not contain any sensitive information and are used for testing 
purposes only.
+stringData:
+  private.pem: |-
+    -----BEGIN PRIVATE KEY-----
+    
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDiae5jQnQ+Dt8Optpa4fLNuUfI
+    
37Sy29JPfn22CkGNo54SJi8NtR38Q958Bx9B+30IZPm3KtZGPC38Tm78/C508h7/Bd0jO7S3/UuQ
+    
rYlg9H8gC59j14fE5cKEiKCvHrNK35Act9LrfhwEoGBs7G+90KD3SBIWzoc4vS8AB/ey09kRN3+M
+    
dQ/DuRrafRgEx8ecq0x4KPggrmvworVVm1ya+H2JNKUQ+uQugmwxeRDE1GuJrgNnn4+ajueEnGdc
+    
ohgz067AgZExzoyRlujJXBuL6JRtOSbEYVpNV1laVdA8UJ2b5I1PiNnVvx1m4gFi/Cela479EO6t
+    
+AC+a1ez+MxTAgMBAAECggEAA1QiXJQ4CEeIsPrz/90NiEe+je34Bp8jtuZ5q6j38MCkjMjB7VYp
+    
1DEdPr6OD5bGbk6puy8mik7NMEXo7NA6UJ7UpNQtvZxdmkzfhQeAGwxNKCfzlnCvPs5P70ng7uIp
+    
KaMix8FOGQc4GztOX5uUQvqjuy70kSBFLajeXYZAdoEOu+E3QDaCUqiJlK3cRAJhg39Br+XfOHDp
+    
cBdhlbxqQKZHWqDR010XUNoQpMHXWTu/e779Xze9uAvmYw98YGtCW8JB5AqjnqAmCZFaktKYw5Z3
+    
IHZCA9hTVngk0WTanuIeTlB2bbl0df+87xHfim2yDuXEkTfAOCug/Qpf+pEhfQKBgQD9M14a1MQ2
+    
Omf9f7X401Ig32e2YfX6sW73THB8Lupz9MCBZxNFCZlzVl55bL2o2vOROEeaneGdboqASW+1ph6e
+    
QbdipiYAfHsG/mvkysqH/plo8QT69GUlzs2yt5zdmFjvkwaZmRmbB6Gjg2sSHKBt3YjTPbdmpuKV
+    
oLvpmaslvQKBgQDk6r+4CGTZwfKYcrTNqJYPdOwfaVjSCulm0wHRw3PvJEi5Eb5qNaJbNICLl5FD
+    
wkOAg33CZ+9h9FJnPd2IbBUBUGcNL5sGNZZNMH16LuFlRYKGgYxjlOjktOC5OXXa7iqkwMqf1dFf
+    
GYU/wHGXYamUKOlinA9rFmbQCUNJL6mzTwKBgQC5Ky/O/3rfDaevRA6YgjK1x6vZPZreU5SLVmOM
+    
7eKYGo4OFIuLGZIXPzqoIlYxfq5RrY7wDDZLI+Q2HX6MoYgSxIyQoGF6SY7PdpEBKS0kd5VJobm6
+    
rbCrDapw4MbfZ+LiketpuQV40wPqyNkszbKlpjXCBohxkepy8rF6DN+VIQKBgFYHFnedx/DB316F
+    
NQdYxNQYN6hyWavN5/r5b2SaVFZZx26tiWa2s0YdS/WpxzC0r9N7FubZUm/4doNQD5H2NEqjIacl
+    
7dd+ifaGM5GYTqJVZgEQbGb8Di3s/8r8Ghtlh+cUgNFidGWN3LKhqs6eKDGC0np5dZ3j9E1YPc4i
+    
OF8nAoGAYeFjfXBXKQhQXItTlL5NMd+yNvMGJDOvNYOn90acZrDld8GvqHI9A1kQf2IuYfA8Yfxg
+    
O2lpCWjiPAsAC3W5BMhfkzjxpikW6YLpXXx7wpDzNAUBAuhEHlmFSMOoa4CIBnN2+6Zw8PSsKnrI
+    49N28pje/ZyABaY7SYP3fcJY17o=
+    -----END PRIVATE KEY-----
+  public.pem: |-
+    -----BEGIN PUBLIC KEY-----
+    
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4mnuY0J0Pg7fDqbaWuHyzblHyN+0stvS
+    
T359tgpBjaOeEiYvDbUd/EPefAcfQft9CGT5tyrWRjwt/E5u/PwudPIe/wXdIzu0t/1LkK2JYPR/
+    
IAufY9eHxOXChIigrx6zSt+QHLfS634cBKBgbOxvvdCg90gSFs6HOL0vAAf3stPZETd/jHUPw7ka
+    
2n0YBMfHnKtMeCj4IK5r8KK1VZtcmvh9iTSlEPrkLoJsMXkQxNRria4DZ5+Pmo7nhJxnXKIYM9Ou
+    
wIGRMc6MkZboyVwbi+iUbTkmxGFaTVdZWlXQPFCdm+SNT4jZ1b8dZuIBYvwnpWuO/RDurfgAvmtX
+    s/jMUwIDAQAB
+    -----END PUBLIC KEY-----



Reply via email to