Conversation
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
WalkthroughAdds Helm values and Terraform/kubernetes resources to deploy cert-manager and ingress-nginx, creates a Let's Encrypt ClusterIssuer using HTTP-01 via the nginx ingress class, and updates GitLab Helm values to disable bundled components and configure external ingress/cert-manager integration. Changes
Sequence Diagram(s)mermaid Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 734c8e7a-7ee0-4274-8e11-41015a53333e
📒 Files selected for processing (6)
helm/cert-manager/values.yamlhelm/gitlab/values.yamlhelm/ingress-nginx/values.yamlkubernetes/cluster-issuer.yamlterraform/helm.tfterraform/kubernetes.tf
📜 Review details
🔇 Additional comments (3)
terraform/helm.tf (1)
1-11: Ingress Helm release wiring looks good.Line 3 correctly binds to
kubernetes_namespace_v1.ingress_nginx, and Line 9 cleanly sources the dedicated values file.terraform/kubernetes.tf (1)
1-15: Namespace provisioning and cluster dependency are correctly wired.Lines 6 and 14 correctly enforce cluster creation before namespace creation.
helm/gitlab/values.yaml (1)
12-18: External ingress/cert-manager integration is consistent and correctly disabled in-chart.The new ingress block and component toggles are aligned with the external
ingress-nginx+cert-managerinstallation model in this PR.Also applies to: 59-59, 69-75
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 7447096d-28db-4312-9789-461e8e87435e
📒 Files selected for processing (6)
helm/cert-manager/values.yamlhelm/gitlab/values.yamlhelm/ingress-nginx/values.yamlkubernetes/cluster-issuer.yamlterraform/helm.tfterraform/kubernetes.tf
📜 Review details
🔇 Additional comments (9)
helm/cert-manager/values.yaml (1)
1-8: Looks good: cert-manager CRD lifecycle and metrics are configured correctly.
crds.enabled/crds.keepand the values structure align with the Terraform Helm release wiring interraform/helm.tf.terraform/helm.tf (2)
1-11: Ingress-NGINX Helm release wiring is solid.Namespace binding, chart pinning, and external values file usage are coherent.
13-23: Cert-manager Helm release wiring is correct.The OCI repository path, version pin, and values file integration are consistent with the cert-manager setup in this PR.
terraform/kubernetes.tf (2)
1-15: Namespace provisioning changes are correct.Both namespaces are explicit and properly ordered after cluster creation.
25-29: Good dependency guard for ClusterIssuer apply order.The explicit dependency on
helm_release.cert_manageraddresses CRD ordering risk before applyingClusterIssuer.helm/ingress-nginx/values.yaml (1)
1-32: Ingress controller values are coherent for this integration.The class name, proxy-protocol pairing, TLS-related config, and metrics settings align with the rest of the PR.
helm/gitlab/values.yaml (3)
12-19: Ingress/cert-manager integration values look correct.Disabling bundled cert-manager wiring while setting the external
letsencryptClusterIssuer annotation is consistent with this PR’s architecture.
59-59:tmpBucketmapping update is correct.Using
${buckets["tmp"]}aligns with the provisioned Spaces bucket keys.
69-74: Bundled component toggles are aligned with external Helm releases.Disabling in-chart
minio,prometheus, andnginx-ingressmatches the Terraform-managed components introduced in this PR.
| solvers: | ||
| - http01: | ||
| ingressClassName: nginx No newline at end of file |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
For cert-manager v1.20.x, what is the exact YAML path for setting nginx ingress class in a ClusterIssuer HTTP-01 solver?
💡 Result:
The exact YAML path for setting the nginx ingress class in a ClusterIssuer HTTP-01 solver for cert-manager v1.20.x is spec.acme.solvers[0].http01.ingress.ingressClassName: nginx. This uses the modern ingressClassName field (recommended since cert-manager 1.12), which sets spec.ingressClassName on the challenge Ingress resource. The legacy spec.acme.solvers[0].http01.ingress.class: nginx sets the kubernetes.io/ingress.class annotation instead. Example: apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: example spec: acme: # ... other fields solvers: - http01: ingress: ingressClassName: nginx
Citations:
- 1: https://cert-manager.io/docs/configuration/acme/http01/
- 2: Conflicting ingressClassName http01 issuer spec and acme.cert-manager.io/http01-ingress-class annotation cert-manager/cert-manager#6184
- 3: https://cert-manager.io/docs/releases/release-notes/release-notes-1.20/
Fix HTTP-01 solver structure: ingressClassName must be nested under http01.ingress.
The current structure will fail cert-manager schema validation. Move ingressClassName: nginx to http01.ingress.ingressClassName so the ClusterIssuer can be applied successfully.
Proposed fix
solvers:
- http01:
- ingressClassName: nginx
+ ingress:
+ ingressClassName: nginx📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| solvers: | |
| - http01: | |
| ingressClassName: nginx | |
| solvers: | |
| - http01: | |
| ingress: | |
| ingressClassName: nginx |
No description provided.