Skip to content

Conversation

g-pan
Copy link
Member

@g-pan g-pan commented Sep 23, 2025

Please review content carefully - Copilot was used extensively in writing this material
Examples are prone to hallucinations
@asselitx I believe that you maybe most familiar with this content to review,
please add any another reviewer as necessary.
Thank you.

Type of change:

  • This change is a bug fix (non-breaking change which fixes an issue).
  • This change is a new feature (non-breaking change which adds functionality).
  • This change improves the code (refactor or other change that does not change the functionality)
  • This change fixes warnings (the fix does not alter the functionality or the generated code)
  • This change is a breaking change (fix or feature that will cause existing behavior to change).
  • This change alters the query API (existing queries will have to be recompiled)

Checklist:

  • My code follows the code style of this project.
    • My code does not create any new warnings from compiler, build system, or lint.
  • The commit message is properly formatted and free of typos.
    • The commit message title makes sense in a changelog, by itself.
    • The commit is signed.
  • My change requires a change to the documentation.
    • I have updated the documentation accordingly, or...
    • I have created a JIRA ticket to update the documentation.
    • Any new interfaces or exported functions are appropriately commented.
  • I have read the CONTRIBUTORS document.
  • The change has been fully tested:
    • I have added tests to cover my changes.
    • All new and existing tests passed.
    • I have checked that this change does not introduce memory leaks.
    • I have used Valgrind or similar tools to check for potential issues.
  • I have given due consideration to all of the following potential concerns:
    • Scalability
    • Performance
    • Security
    • Thread-safety
    • Cloud-compatibility
    • Premature optimization
    • Existing deployed queries will not be broken
    • This change fixes the problem, not just the symptom
    • The target branch of this pull request is appropriate for such a change.
  • There are no similar instances of the same problem that should be addressed
    • I have addressed them here
    • I have raised JIRA issues to address them separately
  • This is a user interface / front-end modification
    • I have tested my changes in multiple modern browsers
    • The component(s) render as expected

Smoketest:

  • Send notifications about my Pull Request position in Smoketest queue.
  • Test my draft Pull Request.

Testing:

see: https://github.com/g-pan/github-action-dev-build/actions/runs/17959821424

Panagiotatos added 2 commits September 23, 2025 17:08
Signed-off-by: Panagiotatos <greg.panagiotatos+copilot@lexisnexisrisk.com>
Signed-off-by: Panagiotatos <greg.panagiotatos+copilot@lexisnexisrisk.com>
@g-pan g-pan requested review from asselitx and Copilot September 23, 2025 22:41
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds comprehensive documentation for SSL/TLS setup in containerized ESP deployments, addressing the gap between bare-metal and Kubernetes-based HPCC Platform installations. The documentation covers multiple SSL/TLS implementation approaches and provides practical configuration examples.

Key changes:

  • Consolidates SSL/TLS certificate ownership and permissions documentation in the bare-metal installation guide
  • Adds extensive SSL/TLS configuration section for containerized ESP deployments
  • Documents ingress controller SSL termination, pod-level SSL, and cert-manager integration approaches

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
ssl-esp.xml Consolidates certificate ownership documentation and adds section on converting HTTP to HTTPS service bindings
ConfigureValues.xml Adds comprehensive SSL/TLS configuration documentation for containerized ESP deployments with examples and troubleshooting

Comment on lines +1192 to +1214
<programlisting>esp:
- name: eclwatch
application: eclwatch
replicas: 1
service:
port: 8010
servicePort: 8010
protocol: http
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/ssl-redirect: "true"
hosts:
- host: eclwatch.example.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: eclwatch-tls
hosts:
- eclwatch.example.com
Copy link
Preview

Copilot AI Sep 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ingress class annotation kubernetes.io/ingress.class is deprecated. Use spec.ingressClassName field instead or the newer annotation kubernetes.io/ingress.class should be replaced with ingressClassName: nginx in the spec section.

Copilot uses AI. Check for mistakes.

Comment on lines +1270 to +1282
https:
enabled: true
certificateSecretName: esp-tls-secret
# Optional: specify passphrase for encrypted private keys
# passphrase: "your-passphrase"
volumes:
- name: esp-certs
secret:
secretName: esp-tls-secret
volumeMounts:
- name: esp-certs
mountPath: /etc/ssl/esp
readOnly: true</programlisting>
Copy link
Preview

Copilot AI Sep 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The configuration references the same secret esp-tls-secret in both certificateSecretName and the volume definition, which creates redundancy. Consider documenting whether both are needed or if one approach is preferred over the other to avoid confusion.

Copilot uses AI. Check for mistakes.

<varlistentry>
<term>Certificate Not Found</term>
<listitem>
<para>Verify the certificate secret exists in the correct namespace and contains both 'tls.crt' and 'tls.key' keys. Use <command>kubectl describe secret &lt;secret-name&gt;</command> to inspect.</para>
Copy link
Preview

Copilot AI Sep 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The command uses HTML entity encoding for angle brackets (&lt; and &gt;) which may not render correctly in all documentation formats. Consider using backticks or code formatting instead: kubectl describe secret <secret-name>.

Suggested change
<para>Verify the certificate secret exists in the correct namespace and contains both 'tls.crt' and 'tls.key' keys. Use <command>kubectl describe secret &lt;secret-name&gt;</command> to inspect.</para>
<para>Verify the certificate secret exists in the correct namespace and contains both 'tls.crt' and 'tls.key' keys. Use <command>kubectl describe secret <replaceable>secret-name</replaceable></command> to inspect.</para>

Copilot uses AI. Check for mistakes.

Copy link

Jira Issue: https://hpccsystems.atlassian.net//browse/HPCC-34819

Jirabot Action Result:
Workflow Transition To: Merge Pending
Updated PR

Copy link
Contributor

@kenrowland kenrowland left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I cannot confirm the correctness, However, is there a scenario where the certificates are store in a vault? I ask because the platform supports retrieving secrets both from Kubernetes and from a vault. If certs can be store in a vault, that should be covered here. If not, it should be stated that only certs retrieved as a Kubernetes secret is supported.

Copy link
Contributor

@JamesDeFabia JamesDeFabia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks ok from my POV, but needs approval by a SME

@asselitx
Copy link
Contributor

I cannot confirm the correctness, However, is there a scenario where the certificates are store in a vault? I ask because the platform supports retrieving secrets both from Kubernetes and from a vault. If certs can be store in a vault, that should be covered here. If not, it should be stated that only certs retrieved as a Kubernetes secret is supported.

Yes I think that's true. I'll confirm and add information if so.

@ghalliday
Copy link
Member

@g-pan this will need rebasing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants