Agenda: How DT deploys ONAP with the help of Argo CD
Info | ||||||
---|---|---|---|---|---|---|
This presentation was recorded by Sylvain Desbureaux and available here:
This page basically acts as my PowerPoint presentation, but without PowerPoint and as GardWiki page. It should be treated like an outline, which should give you all the good links and a basic outline, of how we use Argo CD at DT for ONAP. |
Who I am
I am Flori from Frankfurt, Germany (remember, there was I ONAP release named Frankfurt as well).
I am at DT since 2013. Currently I am the PO of the "System Team" of TNAP.
My biggest professional success: I kickstarted the Magenta Speaker in DT, where I was the Architect/Techlead (which was a.k.a Orange's Djingo https://www.telekom.com/en/media/media-information/consumer-products/with-smart-speaker-your-home-listens-to-your-command-508276).
My biggest challenge, I try to eat all the cake & chocolate of the world (only the good one)
You can find me on twitter: https://twitter.com/florianbachmann
Argo CD
There is no CI/CD
There are Cl and CD!
- The official Argo CD page:
- So Argo CD helps us, doing GitOPs, but what is GitOPs, and basically why is it important, was perfectly answered by Cornelia Davis
- A more recent recorded version of that talk exists as well:
- GitOps Is Likely More Than You Think It Is (only 21 views, I was one of them). Both talks are 99% similar, but the first one is more on point.
- The slides of the two talks can be found here:
- https://static.sched.com/hosted_files/kccncna20/39/GitOpsIsMoreThanYouThink.pdf
- Remark:
- Show slide 3 - What is GitOps
- Show slide 17 - Decouple CI from CD
- Argo CD - a tool for CD, but what says the CNCF Landscape about it.
CNCF Landscape - Continuous Integration & Delivery
There are at least 44 tools regarding CI & CD. (checked )
Why Argo and not Flux
And consider: CNCF - The Trail Map
- Argo CD at TNAP
- Recently Andreas and Marc gave a talk:
- Two scenarios:
- Deploy gitlab runner into one k8s cluster
- Just for learning and getting a feeling
- The runner settings in Gitlab
- install the runner in a different cluster like tesla-dev
- start with version 0.33.1 update it later to 0.34.0
add it to all kustomization.yaml's
Code Block language yml theme DJango title gitlab-runner-k8s.yaml --- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: gitlab-runner namespace: argocd annotations: argocd.argoproj.io/sync-wave: "0" spec: project: argo-management syncPolicy: automated: prune: false selfHeal: true destination: namespace: tnap server: https://kubernetes.default.svc source: repoURL: https://charts.gitlab.io chart: gitlab-runner targetRevision: 0.33.1 helm: values: | imagePullSecrets: - name: tnap-docker-registry-key imagePullPolicy: Always gitlabUrl: "https://whatever_url_we_have/" runnerRegistrationToken: "whatever_token" runners: tags: "tnaplab_k8s_test_oom_test_demostration" name: "tnaplab_k8s_test_oom_test_demostration"
Code Block language yml theme DJango title kustomization.yaml --- kind: Kustomization apiVersion: kustomize.config.k8s.io/v1beta1 resources: - gitlab-runner-k8s.yaml
Code Block language yml theme DJango title kustomization.yaml --- kind: Kustomization apiVersion: kustomize.config.k8s.io/v1beta1 resources: - ... - ... - gitlab-runner-k8s/
- now update it to version 0.34.0
- Update an existing ONAP component
- oom from onap
- In our case, we split the oom repo into several repos. One helm chart repo for each onap component.
- and yesterday we had the increase the internal version number of dmaap (from 8.0.1 to 8.0.1-1)
Code Block language yml theme DJango @@ -16,4 +16,4 @@ apiVersion: v1 description: ONAP DMaaP components name: dmaap - version: 8.0.1 + version: 8.0.1-1
and we put it into our artifactory (JFrog), similar to nexus
Now we need to update it in our argo-management repo to the version 8.0.1-1 as well
- and watch it in Argo CD, how it is being updated
- Deploy gitlab runner into one k8s cluster
- Outlook were we like to get better:
- https://static.sched.com/hosted_files/kccncna20/39/GitOpsIsMoreThanYouThink.pdf
- Remark:
- Show slide 21 to 24 (pull request automatisation) → hint https://github.com/argoproj-labs/argocd-image-updater
- Show slide 26 (Environment Customizations) - use a base config with kustomize
- Notifications: https://argocd-notifications.readthedocs.io/en/stable/services/slack/
- Summary of Argo:
- More from Argo / other projects:
- All from: The Argo Ecosystem: Tailoring Your Installation Through Comm... Jesse Suen & Alexander Matyushentsev
- All from: The Argo Ecosystem: Tailoring Your Installation Through Comm... Jesse Suen & Alexander Matyushentsev
- Offtopic/Backup:
argo-management repo has linters in place
Code Block language bash theme DJango ➜ argo-management git:(main) pre-commit run --all-files Check Yaml...............................................................Passed Fix End of Files.........................................................Passed Trim Trailing Whitespace.................................................Passed yamllint.................................................................Passed k8svalidate..............................................................Passed
If you like to watch 2 talks - watch these:
The Argo Ecosystem: Tailoring Your Installation Through Comm... Jesse Suen & Alexander Matyushentsev
- and of course the one mention above from (Both talks are 99% similar, but the first one is more on point):
and ArgoCD @DT: Florian Bachmann