'Deploy Traefik with ArgoCD and additional values file

I'm trying to install Traefik on a K8s cluster using ArgoCD to deploy the official Helm chart. But I also need it to us an additional "values.yml" file. When I try to specify in the Application yaml file what additional values file to use, it fails to file not found for it.

Here is what I'm using:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: argo-traefik-chart
  namespace: argocd
spec:
  project: default
  source:
    path: traefik
    repoURL: https://github.com/traefik/traefik-helm-chart.git
    targetRevision: HEAD
    helm:
      valueFiles:
        - /traefik-values.yml
  destination: 
    server: https://kubernetes.default.svc
    namespace: 2195-leaf-dev-traefik
  syncPolicy:
    syncOptions:
      - CreateNamespace=true
    automated:
      prune: true
      selfHeal: true

Here is the traefik-value.yml file.

additionalArguments:
# Configure your CertificateResolver here...
# 
# HTTP Challenge
# ---
# Generic Example:
#   - --certificatesresolvers.generic.acme.email=your-email@example.com
#   - --certificatesresolvers.generic.acme.caServer=https://acme-v02.api.letsencrypt.org/directory
#   - --certificatesresolvers.generic.acme.httpChallenge.entryPoint=web
#   - --certificatesresolvers.generic.acme.storage=/ssl-certs/acme-generic.json
#
# Prod / Staging Example:
#   - --certificatesresolvers.staging.acme.email=your-email@example.com
#   - --certificatesresolvers.staging.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory
#   - --certificatesresolvers.staging.acme.httpChallenge.entryPoint=web
#   - --certificatesresolvers.staging.acme.storage=/ssl-certs/acme-staging.json
#   - --certificatesresolvers.production.acme.email=your-email@example.com
#   - --certificatesresolvers.production.acme.caServer=https://acme-v02.api.letsencrypt.org/directory
#   - --certificatesresolvers.production.acme.httpChallenge.entryPoint=web
#   - --certificatesresolvers.production.acme.storage=/ssl-certs/acme-production.json
#
# DNS Challenge
# ---
# Cloudflare Example:
#  - --certificatesresolvers.cloudflare.acme.dnschallenge.provider=cloudflare
#  - --certificatesresolvers.cloudflare.acme.email=your-email@example.com
#  - --certificatesresolvers.cloudflare.acme.dnschallenge.resolvers=1.1.1.1
#  - --certificatesresolvers.cloudflare.acme.storage=/ssl-certs/acme-cloudflare.json
#
# Generic (replace with your DNS provider):
#  - --certificatesresolvers.generic.acme.dnschallenge.provider=generic
#  - --certificatesresolvers.generic.acme.email=your-email@example.com
#  - --certificatesresolvers.generic.acme.storage=/ssl-certs/acme-generic.json

logs:
# Configure log settings here...
  general:
    level: DEBUG

ports:
# Configure your entrypoints here...
  web:
    # (optional) Permanent Redirect to HTTPS
    redirectTo: websecure
  websecure:
    tls:
      enabled: true
      # (optional) Set a Default CertResolver
      # certResolver: cloudflare
  

#env:
# Set your environment variables here...
# 
# DNS Challenge Credentials
# ---
# Cloudflare Example:
#   - name: CF_API_EMAIL
#     valueFrom:
#       secretKeyRef:
#         key: email
#         name: cloudflare-credentials
#   - name: CF_API_KEY
#     valueFrom:
#       secretKeyRef:
#         key: apiKey
#         name: cloudflare-credentials

# Just to do it for now
envFrom:
  - secretRef:
      name: traefik-secrets
  
# Disable Dashboard
ingressRoute:
  dashboard:
    enabled: true

# Persistent Storage
persistence:
  enabled: true
  name: ssl-certs
  size: 1Gi
  path: /ssl-certs

# deployment:
#   initContainers:
#     # The "volume-permissions" init container is required if you run into permission issues.
#     # Related issue: https://github.com/containous/traefik/issues/6972
#     - name: volume-permissions
#       image: busybox:1.31.1
#       command: ["sh", "-c", "chmod -Rv 600 /ssl-certs/*"]
#       volumeMounts:
#         - name: ssl-certs
#           mountPath: /ssl-certs

# Set Traefik as your default Ingress Controller, according to Kubernetes 1.19+ changes.
ingressClass:
  enabled: true
  isDefaultClass: true

The traefik-values.yml file is in the same sub-directory as this file. I fire this of with kubectl apply -f but when I got to look at it in the Argo GUI, it shows an error. I'll paste the entire thing below, but it looks like the important part is this:

` failed exit status 1: Error: open .traefik-values.yml: no such file or directory

It's putting a period before the name of the file. I tried different ways of specifying the file: .traefik-values.yml and ./treafik-values.yml. Those get translated to:

: Error: open .traefik/.traefik-values.yml: no such file or directory

When I do a helm install using the exact same traefik-values.yml file, I get exactly what I expect. And when I run the Argo without the alternate file, it deploys but with out the needed options of course.

Any ideas?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source