Skip to content

vojtechmares-examples/notino-kargo

Repository files navigation

notino-(k)argo

This demo is based on kargo-advanced example.

Links

Name URL Note
ArgoCD notino-argocd.maresdemo.com Crendetials: User: admin, Pass: sIxEeez5-jC2ABD3
Kargo notino-kargo.maresdemo.com Credentials: User: admin, Pass: admin
Slides Google Slides .pptx

How to

  1. Prepare DigitalOcean infrastructure:

    make infra-up
  2. Export kubeconfig

    make kubeconfig
    
    export KUBECONFIG=$(pwd)/infrastructure/kubeconfig.yaml
  3. Install ArgoCD, Argo Rollouts, Kargo

    make install-argocd
    make install-argorollouts
    make install-kargo
  4. Install kargo and argocd cli

    ./scripts/download-cli.sh /usr/local/bin/kargo
    
    # argocd
    # macos:
    brew instal argocd
  5. Login to Kargo and ArgoCD via cli

    kargo login https://notino-kargo.maresdemo.com --admin # password: admin
    argocd login notino-argocd.maresdemo.com # username: admin, password: sIxEeez5-jC2ABD3
  6. Create ArgoCD resources

    argocd project create -f ./argocd/appproj.yaml
    argocd appset create ./argocd/appset.yaml
    
    # or via kubectl
    kubectl apply -f ./argocd
  7. Create Kargo resources

    kargo apply -f ./kargo
  8. Create Kargo credentials with GitHub PAT for repository-write access

    kargo credentials create github-creds \
      --project notino-demo \
      --username <your github username> \
      --repo-url <github repo url over https>
  9. Simulate fake release of new docker image

    ./scripts/new-tag.sh

Manual Freight approval

In case something breaks, you can still manually approve Freight for stage promotion to get unstuck via kargo cli:

kargo approve \
  --freight <freight id> \
  --stage prod \
  --project notino-demo

To get the Freight ID, just list them with kubectl:

kubectl get freight -n notino-demo

For more information, see documentation.

Analysis for automated stage promotions

Analysis is an Argo Rollouts feature

There are some analysis examples in this repo for convenience: