Demo repository for my "Go for Operations" workshop.
Use the right tool (and language) for the job! This is the motto for this hands-on session. Go is a popular modern, simple, reliable and efficient programming language especially in the Ops and Cloud-native domain. Docker, Kubernetes, Kubectl and many other known tools and infrastructure components are all implemented in Go.
Make sure you have prepared your development environment properly.
- Modern Operating System, like Windows 10 or MacOS
- Local Golang installation. See https://golang.org/doc/install
- Editor with support for Go
- Visual Studio Code with Go plugin
- IntelliJ IDEA with Go plugin
- JetBrains GoLand
- Modern terminal and shell
- Git Client (either CLI or GUI)
- Local Docker installation like Docker Desktop
- Local Kubernetes installation like Docker Desktop or Minikube
- Getting to Know Go: Language Basics and Tooling
- Building CLI applications with Cobra
- Implementing a custom
kubectl
plugin - Building a Sidecar container
- Building a Kubernetes Operator in Go
We created several challenges for you to go through that feature the outlined workshop topics. Follow this README for instructions.
- https://gobyexample.com
- https://learnxinyminutes.com/docs/go/
- https://goreleaser.com/quick-start/
- https://github.com/spf13/cobra/blob/master/cobra/README.md
- https://docs.aws.amazon.com/sdk-for-go/api/service/ec2/
- https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/using-ec2-with-go-sdk.html
- https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/go/example_code/ec2
- https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/
- https://github.com/operator-framework/getting-started
- https://github.com/operator-framework/operator-sdk/blob/master/doc/user-guide.md
M.-Leander Reimer (@lreimer), mario-leander.reimer@qaware.de Markus Zimmermann (@markus_zm), markus.zimmermann@qaware.de
This software is provided under the MIT open source license, read the LICENSE
file for details.