#Installatie:	

kubectl create ns argocd

#certificaat aanmaken:
kubectl apply -f argocd-certificate.yaml

  apiVersion: cert-manager.io/v1
  kind: Certificate
  metadata:
    name: argocd-tls-cert
    namespace: argocd
  spec:
    secretName: argocd-tls-cert
    dnsNames:
      - argocd-dev.allarddcs.nl
    issuerRef:
      name: letsencrypt
      kind: ClusterIssuer

Hier wordt dus een Certificate aangemaakt met naam "argocd-tls-cert":
NAME                           TYPE                 DATA   AGE
argocd-tls-cert                kubernetes.io/tls    2      76m
 
dat is opgeslagen in een secret "argocd-tls-cert": 
NAME              READY   SECRET            AGE
argocd-tls-cert   True    argocd-tls-cert   76m

#installeren via helm
helm install argocd -f values.yaml argo-cd/argo-cd -n argocd -f values.yaml

#values.yaml:

ingress:
  server:
    enabled: true
    ingressClassName: traefik
    hosts:
      - host: argocd-dev.allarddcs.nl
        paths:
          - "/"
    tls:
      - hosts:
          - argocd-dev.allarddcs.nl
        secretName: argocd-tls-cert

configs:
  params:
    # disable insecure (HTTP)
    server.insecure: "false"

server:
  tls:
    enabled: true
    # name of the TLS secret (created via cert-manager)
    secretName: argocd-tls-cert

Dit zorgt ervoor dat het eerder aangemaakte certificaat wordt gebruikt door argocd en 
dat alleen verkeer via poort 443 mogelijk is.

#ingressroutes:
- door het LP-cluster loopt een ingressrouteTCP met tls: passtrough: true. 
- in het DEV-cluster is alleen de ingressrouteTCP nodig:

apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
  name: argocd-route-tcp
  namespace: argocd
spec:
  entryPoints:
    - websecure
  routes:
  - match: HostSNI(`argocd-dev.allarddcs.nl`)
    priority: 10
    services:
    - name: argocd-server
      port: 443
  - match: HostSNI(`argocd-dev.allarddcs.nl`) && Headers(`Content-Type`, `application/grpc`)
    priority: 11
    services:
    - name: argocd-server
      port: 443
  tls:
    passthrough: true

of het tweede deel nodig is en werkt weet ik niet zeker. In ieder geval doet traefik GEEN tls-interrupt.

#Initieel password opvragen:

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

#gitea repository koppelen:

Checken of de repository in git aanwezig is.

project: default
https://gitea-dev.allarddcs.nl/AllardDCS/dev/olproperties (ZONDER.git!!!)
user: allard
password: Gitea01@

#applicatie toevoegen:

repository invullen
pad toevoegen (olproperties)

#api testen:

er staat een argocd binary op pisvrwsv00
argcd login https://argocd-dev.allarddcs
argocd app list


#task argocd-sync-and-wait installeren:

kubectl apply -f argocd-task-sync-and-wait.yaml

    #testen kan met:
kubectl apply -f argocd-pipeline.yaml 
kubectl create -f  argocd-pipeline-run.yaml
