Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GIDS - Secure Cloud Native CI/CD with Tekton and ArgoCD

GIDS - Secure Cloud Native CI/CD with Tekton and ArgoCD

Kevin Dubois

April 24, 2024
Tweet

More Decks by Kevin Dubois

Other Decks in Technology

Transcript

  1. www.developersummit.com Securing Cloud Native CI/CD with the Dynamic Duo of

    Tekton and ArgoCD Kevin Dubois Principal Developer Advocate Red Hat
  2. @kevindubois Kevin Dubois ★ Principal Developer Advocate at Red Hat

    ★ Java Champion ★ Based in Belgium 󰎐 ★ Speak English, Dutch, French, Italian ★ Open Source Contributor (Quarkus, Camel, Knative, ..) @[email protected] youtube.com/@thekevindubois linkedin.com/in/kevindubois github.com/kdubois @kevindubois.com
  3. @kevindubois Developer Flow Outer loop Inner loop Pull/Merge Request Production

    Build / Package Code Push Debug Code Review Build Deploy Security Tests Compliance Inner loop Outer loop Developer Test
  4. @kevindubois Outer Loop Development Outer loop Pull/Merge Request Production Outer

    loop Code Review Build Deploy Security Tests Compliance
  5. @kevindubois CI - CD - CD Build Test Security Checks

    Release Ready Deploy Stage Deploy Prod Continuous Integration Continuous Delivery Continuous Deployment Manual Auto
  6. @kevindubois The application Push to give energy windmill Kafka Topic

    2.Sends the interaction Dashboard: Green Energy Nickname Team Push/Tap to generate energy Cars that needs energy Two teams competing (top 5 players) First wins
  7. @kevindubois Architecture 3: Generate power (REST) Game Dashboard 1: Assign

    player Name & Team (REST) 6: Update dashboard (SSE) 2: Increment player cluster counter 4: Send power event 5: Receive power events
  8. @kevindubois Developer Flow Outer loop Inner loop Pull/Merge Request Production

    Build / Package Code Push Debug Code Review Build Deploy Security Tests Compliance Inner loop Outer loop Developer Test
  9. @kevindubois Cloud-Native CI/CD Containers Built for container apps and runs

    on Kubernetes Designed with microservices and distributed teams in mind DevOps Serverless Runs serverless with no CI/CD engine to manage and maintain
  10. @kevindubois Why Cloud-Native CI/CD? Traditional CI/CD Cloud-Native CI/CD Designed for

    Virtual Machines Designed for Containers and Kubernetes Require IT Ops for CI engine maintenance Pipeline as a service with no Ops overhead Plugins shared across CI engine Pipelines fully isolated from each other Plugin dependencies with undefined update cycles Everything lifecycled as container images No interoperability with Kubernetes resources Native Kubernetes resources Admin manages persistence Platform manages persistence Config baked into CI engine container Configured via Kubernetes ConfigMaps Declarative !
  11. @kevindubois Tekton is a Graduated Continuous Delivery Foundation project and

    follows the OpenSSF best practices. Contributions from Google, Red Hat, Cloudbees, IBM, Elastic, Puppet, and many more An open-source project for providing a set of shared and standard components for building Kubernetes-style CI/CD systems https://tekton.dev
  12. @kevindubois Task step step Task step Task step step Task

    step step Pipeline Tekton Concepts step
  13. @kevindubois Tekton Architecture Pipeline Task Task Define pipeline Run pipelines

    Pipeline Controllers (Tekton, ext, ...) pipeline-pod-a pipeline-pod-b PipelineRun TaskRun TaskRun pipeline-pod-c
  14. @kevindubois apiVersion: tekton.dev/v1beta1 kind: Pipeline metadata: name: wind-turbine-pipeline spec: params:

    - name: MANIFESTS_GIT_REPO type: string tasks: - name: git-clone params: - name: url value: $(params.GIT_REPO) workspaces: - name: output workspace: source workspaces: - name: source
  15. @kevindubois Part of the Tekton ecosystem A Kubernetes controller that

    watches TaskRun and PipelineRun resources Depending on its configuration, it does the following: • Signing TaskRun results with user provided cryptographic keys, including TaskRuns themselves and OCI Images • Attestation formats like intoto • Signing with a variety of cryptographic key types and services (x509, KMS) • Support for multiple storage backends for signature Tekton Chains
  16. @kevindubois An in-toto attestation is authenticated metadata about one or

    more software artifacts, as per the SLSA Attestation Model. • Sign OCI image • Create signed SLSA Provenance attestation for TaskRuns and PipelineRuns https://tekton.dev/docs/chains/
  17. @kevindubois Tekton CLI(tkn) •List and Describe • Pipeline • Resource

    • Task • Task Run • Pipeline Run •View logs • Task Run • Pipeline Run •https://github.com/tektoncd/cli
  18. @kevindubois What is GitOps? Treat everything as code Git is

    the single source of truth Operations through Git workflows
  19. @kevindubois CI/CD Engines Jenkins Spinnaker Tekton Concourse CI …... CI/CD

    versus GitOps 31 Desired State Cluster State Observe State Take Action GitOps Engines ACM, ArgoCD, FluxCD Razee, Faros Desired State Cluster State
  20. @kevindubois Source Git Repository Image Registry CI Config Git Repository

    Kubernetes CD Pull Request / Commit Push Pull GitOps Application Delivery Model
  21. @kevindubois GitOps Application Delivery Model Push Pull Pull Request Source

    Git Repository Image Registry Config Git Repository Kubernetes Deploy Monitor Detect drift CD Take action
  22. @kevindubois ArgoCD Sync Monitor Detect drift Take action Argo CD

    is a declarative, GitOps continuous delivery tool for Kubernetes. Cluster and application configuration versioned in Git Automatically syncs configuration from Git to clusters Drift detection, visualization and correction
  23. @kevindubois Start exploring in the OpenShift Sandbox. Learn containers, Kubernetes,

    and OpenShift in your browser. developers.redhat.com/developer-sandbox Try Red Hat's products and technologies without setup or configuration.
  24. @kevindubois Join Red Hat Developer. Build here. Go anywhere. facebook.com/RedHatDeveloper

    youtube.com/RedHatDevelopers twitter.com/rhdevelopers linkedin.com/showcase/red-hat-developer