feat: Add Traefik ingress support in helmchart #98
Merged
christoffers opened 2 months ago

Add Traefik ingress support

Commits were squashed into a single commit on target branch
  • Robin Shen commented 2 months ago

    @christoffers please amend your commit to use conventional commit:

    https://www.conventionalcommits.org/en/v1.0.0/

  • christoffers changed title 2 months ago
    Previous Value Current Value
    Add Traefik ingress support
    feat: Add Traefik ingress support in helmchart
  • Robin Shen commented 2 months ago

    @christoffers I mean the commit message. Sorry for not being clear.

  • Unknown commented 2 months ago

    Requesting changes for three functional issues in the new chart path: preserve existing ingress annotation values during upgrades, route SSH to the separate Service when configured, and ensure the ACME setup provisions the Traefik TLS secret. Helm lint and both default and Traefik rendering otherwise pass.

  • Unknown requested for changes 2 months ago
  • feat(traefik ingress): enhance ingress route configuration
    - Implement proper host pattern handling for Traefik
    - Add support for separate SSH service routing
    - Improve TLS secret provisioning for Traefik
    - Maintain backward compatibility with existing configurations
    
    This change enhances the Traefik-specific ingress route configuration
    while preserving compatibility with existing setups.
    2 months ago
  • Unknown commented 2 months ago

    Requesting changes because the update still leaves four functional regressions: legacy values without ingress.nginx still fail at ingress.yaml:29, separate SSH routes to the main Service, single-host Traefik ACME emits an empty Certificate dnsNames, and default values now opt every installation into Traefik/TLS/ACME with placeholder settings. Helm lint succeeds after substituting the build-time chart version; targeted renders reproduce each issue.

  • Unknown requested for changes 2 months ago
  • fix: update ingress configuration for Traefik and Nginx
    This commit updates the ingress configuration to support Traefik ingress
    and Nginx management. The changes include:
    
    - Adding Traefik-specific ingress configurations
    - Updating the ingress template to support both Traefik and Nginx
      ingress
    - Maintain backward compatibility with existing NGINX configuration
    - Preserving existing custom annotations
    - Ensuring smooth upgrades with --reuse-values
    2 months ago
  • Unknown commented 2 months ago

    Requesting changes for three remaining regressions: legacy reused values without ingress.nginx still fail during rendering; the defaults combine disabled Traefik mode with className: traefik; and enabled ACME adds an issuer annotation when TLS is disabled and no Issuer is rendered. Separate SSH routing and Traefik certificate provisioning are fixed, so those related threads were resolved. Helm lint passes; targeted renders reproduce the remaining blockers.

  • Unknown requested for changes 2 months ago
  • fix: address remaining regressions in ingress configuration
    This commit addresses the remaining regressions in the ingress
    configuration. The changes include:
    
    - Ensuring compatibility with legacy reused values without ingress.nginx
    - Ensuring that the ACME issuer annotation is only added when TLS is
      enabled
    2 months ago
  • Unknown commented 2 months ago

    Requesting changes because legacy Helm upgrades remain broken: reused values from the previous chart do not contain ingress.traefik, and the Traefik branch still dereferences that missing map directly. The neutral defaults and TLS/ACME gating issues are fixed.

  • Unknown requested for changes 2 months ago
  • fix: ensure compatibility with legacy Helm upgrades and improve Traefik configuration
    The changes ensure that users can upgrade their releases without
    encountering nil pointer errors or losing existing custom annotations.
    2 months ago
  • Unknown commented 2 months ago

    Requesting changes because legacy ACME-enabled upgrades remain broken: the new Certificate template directly dereferences the absent ingress.traefik map. Helm lint passes, but a targeted render with TLS and ACME enabled and ingress.traefik=null fails at certificate.yaml:1 with a nil-pointer error. The previously resolved certificate host fallback and SSH routing concerns remain fixed.

  • Unknown requested for changes 2 months ago
  • ``` fix(ingress): resolve Traefik ingress configuration issues and improve compatibility
    This commit addresses several issues with the Traefik ingress
    configuration and improves compatibility with legacy Helm upgrades. The
    changes include:
    
    - Ensuring compatibility with legacy Helm upgrades by correctly handling
      cases where ingress.traefik is not present in the values file
    
    The changes ensure that users can upgrade their releases without
    encountering nil pointer errors.
    2 months ago
  • Unknown commented 2 months ago

    Requesting changes for one remaining multi-release collision: the default Traefik Middleware name is namespace-global rather than release-qualified, so installing two releases in one namespace makes the second Helm install fail ownership validation. The legacy ACME nil-map failure is fixed. Helm lint and default, Traefik ACME, and legacy-null rendering pass.

  • Unknown requested for changes 2 months ago
  • ``` fix(ingress): make Traefik Middleware name release-qualified to prevent namespace collisions
    This commit addresses a multi-release collision issue by making the
    Traefik Middleware name release-qualified. The changes include:
    
    - Making the Traefik Middleware name release-qualified to prevent
      namespace collisions when installing multiple releases
    
    The changes ensure that users can install multiple releases in the same
    namespace without encountering ownership validation errors.
    2 months ago
  • Unknown commented 2 months ago

    Requesting changes because the default Nginx path now renders its apiVersion on the same line as the added comment (# Render nginx resourcesapiVersion: ...), commenting it out and producing an invalid Ingress manifest. Helm lint passes, but comparison with the base render and helm template --set ingress.enabled=true reproduce the regression. The prior Traefik Middleware collision is fixed, and targeted Traefik ACME, legacy-null, separate-SSH, multi-host, and multi-release renders otherwise pass.

  • Unknown requested for changes 2 months ago
  • Unknown commented 2 months ago

    Requesting changes for a remaining legacy Kubernetes rendering regression: the new defaults remove ingress.annotations, but the Kubernetes <1.18 compatibility path passes that missing value directly to hasKey. Helm lint and the default Nginx render pass; a targeted Kubernetes 1.17 render with ingress.className reproduces the type error. The prior invalid-manifest newline issue is fixed and its thread was resolved.

  • Unknown requested for changes 2 months ago
  • fix(ingress): default annotations to empty dict for Kubernetes < 1.18
    Ensure .Values.ingress.annotations is initialized as a dict to prevent
    nil interface errors when setting legacy ingress.class annotation.
    This fixes helm template failures for Kubernetes versions below 1.18.
    2 months ago
  • Unknown commented 2 months ago

    Approved. The remaining legacy Kubernetes regression is fixed: Helm lint passes, and targeted renders succeed for Kubernetes 1.17, default Nginx, legacy null values, Traefik ACME, separate SSH, and multi-host routing.

  • Unknown approved 2 months ago
  • fix(ingress): resolve Traefik ingress configuration issues and improve compatibility
    The changes ensure that users can upgrade their releases without
    encountering nil pointer errors.
    2 months ago
    fix(ingress): make Traefik Middleware name release-qualified to prevent namespace collisions
    - Making the Traefik Middleware name release-qualified to prevent
      namespace collisions when installing multiple releases
    
    The changes ensure that users can install multiple releases in the same
    namespace without encountering ownership validation errors.
    2 months ago
    fix(ingress): default annotations to empty dict for Kubernetes < 1.18
    Ensure .Values.ingress.annotations is initialized as a dict to prevent
    nil interface errors when setting legacy ingress.class annotation.
    This fixes helm template failures for Kubernetes versions below 1.18.
    2 months ago
  • Unknown commented 2 months ago

    Approved. The latest commit safely initializes ingress annotations for the Kubernetes <1.18 compatibility path. Helm lint passes, and targeted renders succeed for Kubernetes 1.17, default Nginx, legacy null values, Traefik ACME, separate SSH, and multi-host routing.

  • Unknown approved 2 months ago
  • feat(traefik ingress): enhance ingress route configuration
    - Implement proper host pattern handling for Traefik
    - Add support for separate SSH service routing
    - Improve TLS secret provisioning for Traefik
    - Maintain backward compatibility with existing configurations
    
    This change enhances the Traefik-specific ingress route configuration
    while preserving compatibility with existing setups.
    2 months ago
    fix: update ingress configuration for Traefik and Nginx
    This commit updates the ingress configuration to support Traefik ingress
    and Nginx management. The changes include:
    
    - Adding Traefik-specific ingress configurations
    - Updating the ingress template to support both Traefik and Nginx
      ingress
    - Maintain backward compatibility with existing NGINX configuration
    - Preserving existing custom annotations
    - Ensuring smooth upgrades with --reuse-values
    2 months ago
    fix: address remaining regressions in ingress configuration
    This commit addresses the remaining regressions in the ingress
    configuration. The changes include:
    
    - Ensuring compatibility with legacy reused values without ingress.nginx
    - Ensuring that the ACME issuer annotation is only added when TLS is
      enabled
    2 months ago
    fix: ensure compatibility with legacy Helm upgrades and improve Traefik configuration
    The changes ensure that users can upgrade their releases without
    encountering nil pointer errors or losing existing custom annotations.
    2 months ago
    fix(ingress): resolve Traefik ingress configuration issues and improve compatibility
    The changes ensure that users can upgrade their releases without
    encountering nil pointer errors.
    2 months ago
    fix(ingress): make Traefik Middleware name release-qualified to prevent namespace collisions
    - Making the Traefik Middleware name release-qualified to prevent
      namespace collisions when installing multiple releases
    
    The changes ensure that users can install multiple releases in the same
    namespace without encountering ownership validation errors.
    2 months ago
    fix(ingress): default annotations to empty dict for Kubernetes < 1.18
    Ensure .Values.ingress.annotations is initialized as a dict to prevent
    nil interface errors when setting legacy ingress.class annotation.
    This fixes helm template failures for Kubernetes versions below 1.18.
    2 months ago
  • Unknown commented 2 months ago

    The final patch resolves the remaining legacy Kubernetes rendering issue. Helm lint passes, along with targeted renders for Kubernetes 1.17, default Nginx, legacy reused values, Traefik ACME, multi-host routing, and separate SSH routing.

  • Unknown approved 2 months ago
  • Robin Shen changed merge strategy 1 month ago
    Previous Value Current Value
    CREATE_MERGE_COMMIT
    SQUASH_SOURCE_BRANCH_COMMITS
  • Robin Shen merged 1 month ago (merge commit: cf590a06 )
  • Robin Shen commented 1 month ago

    @christoffers traefik support is refactored to better work with existing chart features. Please follow the docs to enable trafik support in 16.4.0:

    https://docs.onedev.io/installation-guide/deploy-to-k8s#using-traefik-ingress

1/1
Merge Strategy
Squash Source Branch Commits
Watchers (2)
Reference
PR OD-98
Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover