repositories:
  - name: cdf
    helm:
      url: https://cdfoundation.github.io/tekton-helm-chart/
  - name: keel
    helm:
      url: https://charts.keel.sh
  - name: istio
    helm:
      url: https://istio-release.storage.googleapis.com/charts
  - name: metrics-server
    helm:
      url: https://kubernetes-sigs.github.io/metrics-server/
  - name: jetstack
    helm:
      url: https://charts.jetstack.io
  - name: longhorn
    helm:
      url: https://charts.longhorn.io
  - name: metallb
    helm:
      url: https://metallb.github.io/metallb
  - name: coredns
    helm:
      url: https://coredns.github.io/helm
  - name: cilium
    helm:
      url: https://helm.cilium.io/
  - name: traefik
    helm:
      url: https://traefik.github.io/charts
  - name: flannel
    helm:
      url: https://flannel-io.github.io/flannel/
  - name: fluxcd-community
    helm:
      url: https://fluxcd-community.github.io/helm-charts
  - name: rancher-local-path
    git:
      url: https://github.com/rancher/local-path-provisioner.git
      git_ref: main
      path: deploy/chart
  - name: softplayer
    git:
      url: https://git.badhouseplants.net/softplayer/softplayer-helmfile
      git_ref: main
      path: charts
  - name: allanger-charts
    git:
      url: https://git.badhouseplants.net/allanger/helm-charts
      git_ref: add-shadowsocks
      path: charts
  - name: kubernetes-dashboard
    helm:
      url: https://kubernetes.github.io/dashboard/
  - name: vmware-tanzu
    helm:
      url: https://vmware-tanzu.github.io/helm-charts/


mirrors:
  - name: gitea
    custom_command:
      package:
        - helm package -d package .
      upload:
        - helm push ./package/{{ name }}-{{ version }}.tgz oci://registry.badhouseplants.net/softplayer/helm
        - rm -rf ./package
  - name: ghcr
    custom_command:
      package:
        - helm package -d package .
      upload:
        - helm push ./package/{{ name }}-{{ version }}.tgz oci://ghcr.io/allanger/softplayer/helm
        - rm -rf ./package

charts:
  - name: coredns
    repository: coredns
    mirrors:
      - gitea
      - ghcr

  - name: cilium
    repository: cilium
    mirrors:
      - gitea

  - name: metrics-server
    repository: metrics-server
    mirrors:
      - gitea

  - name: traefik
    repository: traefik
    mirrors:
      - gitea

  - name: cert-manager
    repository: jetstack
    mirrors:
      - gitea

  - name: velero
    repository: vmware-tanzu
    mirrors:
      - gitea

  - name: metallb
    repository: metallb
    mirrors:
      - gitea

  - name: longhorn
    repository: longhorn
    mirrors:
      - gitea

  - name: flannel
    repository: flannel
    mirrors:
      - gitea

  - name: local-path-provisioner
    repository: rancher-local-path
    mirrors:
      - gitea

  - name: base
    repository: istio
    mirrors:
      - gitea

  - name: gateway
    repository: istio
    mirrors:
      - gitea

  - name: istiod
    repository: istio
    mirrors:
      - gitea

  - name: tekton-pipeline
    repository: cdf
    mirrors:
      - gitea

  - name: flux2
    repository: fluxcd-community
    mirrors:
      - gitea

  - name: helmrelease
    repository: softplayer
    mirrors:
      - gitea

  - name: shadowsocks-libev
    repository: allanger-charts
    mirrors:
      - gitea

  - name: keel
    repository: keel
    mirrors:
      - gitea

  - name: kubernetes-dashboard
    repository: kubernetes-dashboard
    extensions:
      - name: add a pretty config mapper
        source_dir: ./extensions/kubernetes-dashboard/
        target_dir: config
    patches:
      - name: add a pretty config mapper
        custom_command:
          commands:
            - mv ./config/config.yaml .
            - rm -rf config
      - name: enable ingress
        yq:
          file: values.yaml
          op: Replace
          key: .app.ingress.enabled
          value: "true"
      - name: change ingress class name
        yq:
          file: values.yaml
          op: Replace
          key: .app.ingress.ingressClassName
          value: traefik
      - name: change cert manager issuer name
        yq:
          file: values.yaml
          op: Replace
          key: .app.ingress.issuer.name
          value: network-base
      - name: change cert manager issuer kind
        yq:
          file: values.yaml
          op: Replace
          key: .app.ingress.issuer.scope
          value: cluster
    mirrors:
      - gitea