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

Continuous Delivery to Kubernetes

Continuous Delivery to Kubernetes

DEPLOYMENT INTERFACES - DevOps Pro Europe 2019 (Vilnius) 2019-03-20 - prepared backup talk - not held

Lothar Schulz

March 20, 2019
Tweet

More Decks by Lothar Schulz

Other Decks in Technology

Transcript

  1. Docker image journey – How to shrink a docker image

    | Engineering | Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Continuous Delivery to Kubernetes Deployment Interfaces DevOps Pro Europe 2019 2019-03-20 pic: © Moovel Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering | Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz
  2. pic: © Moovel Continuous Delivery to Kubernetes - Deployment Interfaces

    | Engineering | Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz
  3. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Engineering Manager github.com/lotharschulz @lothar_schulz lotharschulz.info speakerdeck.com/lothar Me
  4. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Starting Point CI / CD
  5. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Deployment Format
  6. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Deployment descriptor & Repository integration ghe-backup-deploy $ filetree README.md delivery.yaml deploy | - deploy apply | --- apply kube|secret.yaml statefulset.yaml
  7. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Dependency $ cat Dockerfile # “latest” will be used when --build-arg is omitted ARG BASE_IMAGE_VERSION=latest FROM registry/stups/python ${BASE_IMAGE_VERSION}
  8. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz SCM integration
  9. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Trigger
  10. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Compliance In general, compliance means conforming to a rule, such as a specification, policy, standard or law. https://en.wikipedia.org/wiki/Regulatory_compliance
  11. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Tests $ cat delivery.yaml version: "2017-09-20" ..... - desc: "run tests" cmd: | nosetests -w python
  12. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Credentials $ cat delivery.yaml version: "2017-09-20" - desc: "build and push docker images" cmd: | PIERONE_NAMESPACE=pierone.stups.zalan.do/machinery BASE_IMAGE=$PIERONE_NAMESPACE/ghe-backup IMAGE=$BASE_IMAGE:cdp-${CDP_BUILD_VERSION} CACHE_IMAGE=$BASE_IMAGE:latest docker build --cache-from $CACHE_IMAGE -t $CACHE_IMAGE -t $IMAGE -f Dockerfile . if [ -z "$CDP_PULL_REQUEST_NUMBER" ]; then docker push $IMAGE echo "$IMAGE pushed" else ... fi
  13. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Credentials & Setup https://speakerdeck.com/lothar/cd-at-zalando
  14. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Credentials & Setup
  15. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Git Branches & Pull Requests Builds
  16. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Git Branches & Pull Requests Builds Poll PR until mergeable is true https://developer.github.com/v3/pulls/#response-1 https://developer.github.com/v3/git/#checking-mergeability-of-pull-requests
  17. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Git Branches & Pull Requests Builds reference is not a tree reference ?
  18. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Git Branches & Pull Requests Builds commits without reference can’t be accessed https://developer.github.com/v3/git/refs/#create-a-reference
  19. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Git Branches & Pull Requests Builds merge A & B in worker VMs/nodes
  20. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Hands off operations $ zkubectl get po | grep cdp-controller cdp-controller-7985fd799f-4jpbz cdp-controller-7985fd799f-rgpf8
  21. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz polling must die Don’t call us, we notify you.
  22. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz object store AWS S3 control access via IAM roles provision roles in AWS accounts change request cache control headers
  23. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Support
  24. Continuous Delivery to Kubernetes - Deployment Interfaces | Engineering |

    Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz Culture
  25. Docker image journey – How to shrink a docker image

    | Engineering | Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz https://www.flickr.com/photos/eyecatcherfotosde/25418973420/ - build https://github.com/zalando/ghe-backup - delivery.yaml - deploy to k8s with Github Enterprise feedback - delivery.yaml - (init Container) I’m sure you have questions lotharschulz.info pic: https://www.flickr.com/photos/eyecatcherfotosde/25397937985 Docker image journey – How to shrink a docker image | Engineering | Lothar Schulz | 2019-03-20 Slido.com #devops2019 | @lothar_schulz