{"id":20483979,"url":"https://github.com/hammady/ohmyk8s","last_synced_at":"2025-06-20T17:06:59.242Z","repository":{"id":37542060,"uuid":"335825894","full_name":"hammady/ohmyk8s","owner":"hammady","description":"An Ansible Playbook to fully prepare a machine for Kubernetes development","archived":false,"fork":false,"pushed_at":"2024-10-10T18:42:56.000Z","size":23,"stargazers_count":10,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-06-20T17:06:09.840Z","etag":null,"topics":["ansible","ansible-playbook","development-environment","k8s","kubernetes","kubernetes-development"],"latest_commit_sha":null,"homepage":"","language":null,"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/hammady.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,"zenodo":null}},"created_at":"2021-02-04T03:22:47.000Z","updated_at":"2024-10-10T18:43:00.000Z","dependencies_parsed_at":"2023-01-17T15:01:02.816Z","dependency_job_id":"3d19c29c-b83c-4e9e-9992-11019ae3ddbf","html_url":"https://github.com/hammady/ohmyk8s","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hammady/ohmyk8s","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hammady%2Fohmyk8s","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hammady%2Fohmyk8s/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hammady%2Fohmyk8s/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hammady%2Fohmyk8s/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hammady","download_url":"https://codeload.github.com/hammady/ohmyk8s/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hammady%2Fohmyk8s/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260985166,"owners_count":23092885,"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":["ansible","ansible-playbook","development-environment","k8s","kubernetes","kubernetes-development"],"created_at":"2024-11-15T16:19:24.008Z","updated_at":"2025-06-20T17:06:54.220Z","avatar_url":"https://github.com/hammady.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Oh My Kubernetes!\nAn Ansible Playbook to automate the configuration of (Ubuntu Linux x86_64 and ARM64)\nmachines to be ready for Kubernetes development. It cuts down the development\nenvironment preparation from tedious hours to less than 5 minutes.\n\n## Included software\n\nThe below are installed on all groups (`k8sdev`, `k8sdevlite` and `k8sdevdocker`):\n\n- [git](https://git-scm.com/)\n- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/)\n- [helm](https://helm.sh/)\n- [skaffold](https://skaffold.dev/)\n- [k9s](https://github.com/derailed/k9s)\n- [sops](https://github.com/mozilla/sops) and [helm secrets plugin](https://github.com/zendesk/helm-secrets)\n- [azure-cli](https://docs.microsoft.com/en-us/cli/azure/) and [kubelogin](https://github.com/Azure/kubelogin)\n- [awscli](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)\n- [kube-ps1](https://github.com/jonmosco/kube-ps1)\n- [tmux](https://tmuxcheatsheet.com/) and [.tmux](https://github.com/gpakosz/.tmux)\n- [kubectx/kubens](https://github.com/ahmetb/kubectx)\n- [docker-cli](https://docs.docker.com/engine/reference/commandline/cli/)\n\nAll of the above come with bash completion, whenever applicable.\n\nThe below is installed on both `k8sdev` and `k8sdevdocker` groups:\n- [Docker Engine](https://docs.docker.com/engine/install/ubuntu/)\n\nThe below are installed only on the `k8sdev` group:\n- [Kubernetes (microk8s)](https://microk8s.io/)\n- [ingress-nginx](https://kubernetes.github.io/ingress-nginx/)\n\n## System requirements\n1. [Ansible](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html?extIdCarryOver=true\u0026sc_cid=701f2000001OH7YAAW) on your controller machine (e.g. laptop) which is typically different from, but could be the same as, the target machine you are preparing. You also need a couple of Ansible collections, install using the command:\n`ansible-galaxy collection install community.general kubernetes.core` (Make sure that you are using Ansible \u003e v2.9)\n1. One or more SSH connections to the target machine(s) with public key authentication configured. You can do that by editing your `.ssh/config`. For example:\n    ```bash\n    # ~/.ssh/config\n    Host awsdev1\n        HostName 100.100.100.100\n        User ubuntu\n        IdentityFile ~/.ssh/id_rsa\n        IdentitiesOnly yes\n    ```\n\n1. A configured Ansible hosts file with 2 sections called `k8sdev` and `k8sdevlite`\ncontaining all the machines you want to configure (yes you can configure many machines at once!). For example:\n    ```ini\n    # /etc/ansible/hosts\n    [k8sdev]\n    awsdev1 ansible_user=ubuntu\n    1.2.3.4 ansible_user=anotheruser\n    5.6.7.8 ansible_user=ubuntu\n    ...\n    [k8sdevlite]\n    ...\n    [k8sdevdocker]\n    ...\n    ```\n\nThe above file can be stored in the default location `/etc/ansible/hosts` if the control machine is running Debian/Ubuntu or a similar distro. For other distros or other operating systems, you can store it in any location then supply `--inventory \u003cfile-location\u003e` to the `ansible-playbook` command.\n\n## Installation\nTo launch the installation process that will configure all target\nmachines at once, run the following:\n```bash\ngit clone https://github.com/hammady/ohmyk8s.git\ncd ohmyk8s\nansible-playbook ohmyk8s.yaml -Kv\n```\nNote: \n- `ansible-playbook` accepts -v for verbose mode (-vvv for more, -vvvv to enable connection debugging)\n- `-K` to collect `BECOME password`\n\nSit (or stand!) and watch the results, you should get a report similar to the below if everything goes well:\n```\n...\nPLAY RECAP *******************************\nawsdev1                     : ok=56   changed=7    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   \n```\n\n## Caveats\n- This only supports Ubuntu running on either x86_64 or ARM64 architectures.\nSupport for other distributions and architectures is possible but needs some work.\n\n## Support\nIf there are any errors from the above command, please create an issue in this repo or drop\nme a line at: github at hammady dot net.\n\nIf you have any suggestions or enhancements, please feel free to create a PR or discuss\nwith me. Please note that I am a total noob in Ansible, I learned it in the same day\nI created this repo.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhammady%2Fohmyk8s","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhammady%2Fohmyk8s","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhammady%2Fohmyk8s/lists"}