{"id":21126440,"url":"https://github.com/lreimer/go-for-operations","last_synced_at":"2025-07-08T23:31:58.480Z","repository":{"id":49183882,"uuid":"241637148","full_name":"lreimer/go-for-operations","owner":"lreimer","description":"Demo repository for \"Go for Operations\" workshop.","archived":false,"fork":false,"pushed_at":"2023-02-06T23:58:46.000Z","size":3589,"stargazers_count":3,"open_issues_count":1,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-15T00:50:47.883Z","etag":null,"topics":["development","devops","golang","kubernetes","site-reliability-engineering"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lreimer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-19T14:06:50.000Z","updated_at":"2021-09-11T22:21:37.000Z","dependencies_parsed_at":"2024-06-21T15:16:57.672Z","dependency_job_id":"3a633456-bcf7-4197-8b2e-a2fc6fd353c4","html_url":"https://github.com/lreimer/go-for-operations","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lreimer%2Fgo-for-operations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lreimer%2Fgo-for-operations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lreimer%2Fgo-for-operations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lreimer%2Fgo-for-operations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lreimer","download_url":"https://codeload.github.com/lreimer/go-for-operations/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225470828,"owners_count":17479367,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["development","devops","golang","kubernetes","site-reliability-engineering"],"created_at":"2024-11-20T04:41:52.449Z","updated_at":"2024-11-20T04:41:53.082Z","avatar_url":"https://github.com/lreimer.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Go for Operations Workshop\n\nDemo repository for my \"Go for Operations\" workshop.\n\nUse the right tool (and language) for the job! This is the motto for this hands-on\nsession. Go is a popular modern, simple, reliable and efficient programming language\nespecially in the Ops and Cloud-native domain. Docker, Kubernetes, Kubectl and many\nother known tools and infrastructure components are all implemented in Go.\n\n\n## Prerequisites\n\nMake sure you have prepared your development environment properly.\n\n- Modern Operating System, like Windows 10 or MacOS\n- Local Golang installation. See https://golang.org/doc/install\n- Editor with support for Go\n    - Visual Studio Code with Go plugin\n    - IntelliJ IDEA with Go plugin\n    - JetBrains GoLand\n- Modern terminal and shell\n- Git Client (either CLI or GUI)\n- Local Docker installation like Docker Desktop\n- Local Kubernetes installation like Docker Desktop or Minikube\n\n## Workshop Outline\n\n1. Getting to Know Go: Language Basics and Tooling\n2. Building CLI applications with Cobra\n3. Implementing a custom `kubectl` plugin\n4. Building a Sidecar container\n5. Building a Kubernetes Operator in Go\n\n## Workshop Challenge descriptions\n\nWe created several challenges for you to go through that feature the outlined workshop topics. \nFollow this [README](workshop/README.md) for instructions.\n\n## References\n\n- https://gobyexample.com\n- https://learnxinyminutes.com/docs/go/\n- https://goreleaser.com/quick-start/\n- https://github.com/spf13/cobra/blob/master/cobra/README.md\n- https://docs.aws.amazon.com/sdk-for-go/api/service/ec2/\n- https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/using-ec2-with-go-sdk.html\n- https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/go/example_code/ec2\n- https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/\n- https://github.com/operator-framework/getting-started\n- https://github.com/operator-framework/operator-sdk/blob/master/doc/user-guide.md\n\n## Maintainer\n\nM.-Leander Reimer (@lreimer), \u003cmario-leander.reimer@qaware.de\u003e\nMarkus Zimmermann (@markus_zm), \u003cmarkus.zimmermann@qaware.de\u003e\n\n## License\n\nThis software is provided under the MIT open source license, read the `LICENSE`\nfile for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flreimer%2Fgo-for-operations","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flreimer%2Fgo-for-operations","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flreimer%2Fgo-for-operations/lists"}