我们有一个设置,Traefik作为侵入控制器/ CRD和ArgoCD。我们将ArgoCD安装到我们的EKS装置中,如阿戈被盯着的向导中所述
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml现在,正确配置Traefik的就像医生说的那样 IngressRoute对象如下所示:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: argocd-server
namespace: argocd
spec:
entryPoints:
- websecure
routes:
- kind: Rule
match: Host(`argocd.tekton-argocd.de`)
priority: 10
services:
- name: argocd-server
port: 80
- kind: Rule
match: Host(`argocd.tekton-argocd.de`) && Headers(`Content-Type`, `application/grpc`)
priority: 11
services:
- name: argocd-server
port: 80
scheme: h2c
tls:
certResolver: default现在是医生里有个窃听器 -所以一定要删除options: {}以便让Traefik接受配置。
Traefik显示仪表板上的一切都很好:

但是,如果我们试图访问ArgoCD仪表板在https://argocd.tekton-argocd.de,我们得到了多个HTTP 307重定向,最后不能访问仪表板。您可以看到开发人员工具中的重定向:

在寻找解决方案时,我们已经找到了本期,其中描述了问题:
问题是,在默认情况下,Argo-CD处理TLS终止本身,并且总是将HTTP请求重定向到HTTPS。结合一个入口控制器,它也处理TLS终止,并且总是与后端服务使用HTTP通信,您就可以得到Argo-CD的服务器,它总是以重定向到HTTPS的方式响应。
此外,还勾勒出了解决方案:
其中一个解决方案是在argocd上禁用HTTPS,这可以通过在argocd服务器上使用--不安全的标志来实现。
但是,如何配置argocd-server部署以将--insecure标志添加到argocd-server命令中??因为它也是在ArgoCD文档中声明。
发布于 2022-03-31 12:57:08
0。为什么使用Kustomize的声明式ArgoCD设置是配置自定义参数的好方法?
关于如何配置ArgoCD有多个选项。一个很好的方法是使用声明式方法,这应该是默认的Kubernetes风格。浏览ArgoCD文档有一个附加配置部分,其中可以找到ConfigMap argocd-cmd-params-cm的可能标志。这些标志在argocd-cmd-params-cm.yaml中描述。其中之一是旗标server.insecure
## Server properties
# Run server without TLS
server.insecure: "false"随https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml附带的argocd-server部署将使用此参数,如果它是在argocd-cmd-params-cm ConfigMap中定义的。
为了以声明的方式配置ArgoCD配置,ArgoCD文档有一个很好的部分介绍了如何使用库斯托姆进行配置。事实上,ArgoCD团队本身使用这种方法来部署他们自己的ArgoCD实例--在这里可以使用动态部署,https://cd.apps.argoproj.io/和配置使用可以在GitHub上找到。
将此应用于我们的用例中,我们需要将ArgoCD安装从简单地使用kubectl apply -f切换到基于库口化的安装。ArgoCD文档也有关于如何做到这一点的一节。以下是简单的步骤:
创建一个带有新文件argocd/installation kustomization.yaml的目录
我们稍微增强了文档中提出的kustomization.yaml:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://raw.githubusercontent.com/argoproj/argo-cd/v2.3.3/manifests/install.yaml
## changes to config maps
patchesStrategicMerge:
- argocd-cmd-params-cm-patch.yml
namespace: argocd因为docs状态
建议将清单作为远程资源包括在内,并使用Kustomize修补程序应用其他自定义。
我们使用patchesStrategicMerge配置键,它包含我们需要创建的另一个名为argocd-cmd-params-cm-patch.yml的新文件。
argocd-cmd-params-cm-patch.yml 2.创建一个新的文件
这个新文件只包含我们希望在ConfigMap argocd-cmd-params-cm中更改的配置。
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-cmd-params-cm
data:
server.insecure: "true"kubectl apply -k 3.使用库口化文件& ArgoCD安装ArgoCD
有一个单独的kustomize CLI可以安装,例如通过brew install kustomize。但是,当Kustomize构建到kubectl中时,我们只需使用kubectl apply -k并将其指向新创建的argocd/installation目录,如下所示。我们还需要确保创建了argocd命名空间:
kubectl create namespace argocd --dry-run=client -o yaml | kubectl apply -f -
kubectl apply -k argocd/installation这将安装ArgoCD,并将argocd-server部署配置为根据需要使用--insecure标志,以阻止Argo处理TLS终止本身并将该责任交给Traefik。现在访问https://argocd.tekton-argocd.de应该像预期的那样打开ArgoCD仪表板:

发布于 2022-05-04 21:19:03
您可以使用这个traefik规则:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: argocd-server
namespace: argocd
spec:
entryPoints:
- websecure
routes:
- kind: Rule
match: Host(`argocd.example.com`)
priority: 10
services:
- name: argocd-server
port: 80
- kind: Rule
match: Host(`argocd.example.com`) && Headers(`Content-Type`, `application/grpc`)
priority: 11
services:
- name: argocd-server
port: 80
scheme: h2c
tls: {}它适用于我使用traefik 2.6.3。
麻烦在tls: {}。
https://stackoverflow.com/questions/71692891
复制相似问题