{"id":15156845,"url":"https://github.com/puppetlabs/kream","last_synced_at":"2025-04-13T08:41:20.869Z","repository":{"id":49511723,"uuid":"104164191","full_name":"puppetlabs/kream","owner":"puppetlabs","description":"Kubernetes Rules Everything Around Me. A development environment for the Puppet/kubernetes module","archived":false,"fork":false,"pushed_at":"2025-02-04T02:37:39.000Z","size":408,"stargazers_count":37,"open_issues_count":1,"forks_count":20,"subscribers_count":102,"default_branch":"master","last_synced_at":"2025-03-27T00:14:06.964Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/puppetlabs.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-20T04:08:32.000Z","updated_at":"2023-10-12T11:46:22.000Z","dependencies_parsed_at":"2025-03-17T12:10:15.922Z","dependency_job_id":"1cdd305a-a822-425c-b3b3-8aaadcb2d36b","html_url":"https://github.com/puppetlabs/kream","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fkream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fkream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fkream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fkream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/puppetlabs","download_url":"https://codeload.github.com/puppetlabs/kream/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248686591,"owners_count":21145524,"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":[],"created_at":"2024-09-26T19:41:38.668Z","updated_at":"2025-04-13T08:41:20.850Z","avatar_url":"https://github.com/puppetlabs.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kubernetes Development Environment:\n```\nPrerequisites:\n- Vagrant\n- Virtualbox v5.x \n- Ruby v2.3.3\n```\n# Basic setup instructions\n\n## Install dependencies\n```\ngit clone to a new directory\ngem install bundler\nbundle install\n```\nIf you're on a Mac you will need Homebrew https://brew.sh/\nOnce brew is installed\n```\nbrew install kubectl\n```\nOn Linux\n```\ncurl -LO https://storage.googleapis.com/kubernetes-release/release/v1.10.3/bin/linux/amd64/kubectl\nchmod +x ./kubectl\nsudo mv ./kubectl /usr/local/bin/kubectl\n```\nNote this will install version 1.10.3, if you want a different version change the version in the url\n\n## Run the cluster\n\nThe repo now supports running Kubernetes on both Ubuntu and Centos. By default it will use the Ubuntu base images.\nIf you want to use Centos just rename `servers.yaml` to `servers.yaml.debian` then rename `servers.yaml.rhel` to `servers.yaml`\n\nTo run the controller just issue the following commands from the root of the cloned repo\n```\nrake cluster_up\n```\nYou will get an output like this. Please note the controller will take a couple of minutes\n```\nChecking if kubectl is installed\nkubectl is installed\nConfiguring local Kubectl\nTo use kubectl issue 'export KUBECONFIG=.kube/admin.conf' in your terminal\nDeploying Kuberntetes controller\n[(    ● )] Deploying the Kubernetes controller... Kubernetes controller is ready\nDeploying worker nodes\nYou can check there progress with\nkubectl get nodes\n```\nIf something goes wrong with your cluster at build time you will be able to look at the log file located `$CWD/.log/cluster-build.log`\n\n## HA master development\n\nIf you are developing or making changes to the Puppet module for Kubernetes that changes the controller. You will need to run a separate command to build a cluster of 3 Kubernetes controllers with a load balancer. Before running up your cluster make sure you have run the [kubetool](https://github.com/puppetlabs/puppetlabs-kubernetes#setup) and move the generated hiera files a moved into the [hieradata](https://github.com/puppetlabs/kream/tree/master/hieradata) folder. Then issue the following command.\n```\nrake cluster_up_ha\n```\nYou will get the following output\n\n```\nCan not install the LB on Mac OS due to networking limitation on Docker for mac\nadd '192.168.56.214 kubernetes' to /etc/hosts as a work around\nBringing up vagrant load balancer\nDeploying Kuberntetes HA controllers\nChecking for local Vagrant images\npuppetlabs/ubuntu-16.04-64-puppet is the current base image you are using\nYou have the base image already locally downloaded\n(   ●  ) Deploying the Kubernetes HA controller cluster... Kubernetes HA controller cluster is ready\nYou can access your cluster with 'kubectl get nodes'\nChecking if kubectl is installed\nkubectl is installed\nConfiguring local Kubectl\nTo use kubectl 'export KUBECONFIG=.kube/admin.conf' in your terminal\n```\n\n`192.168.56.214` is a load balancer that will balance the traffic across the 3 Kubernetes controllers.\n\n## Helm\n\nIn addition to provisioning a kubernetes cluster, this repo also contains code to install and initialise helm on the kube-master. This code is stored in the modules directory of this environment. Until such time as the helm repo is made public it will be stored in this repo, after which it will be put into the puppetfile to ensure the latest version of the module is always used.\n\nComplete documentation about the helm module and specific functionality can be found on the repo github page [here](https://github.com/puppetlabs/puppetlabs-helm) or the official helm documentation [here](https://docs.helm.sh/)\n\nIf you're on a mac you can install helm with homebrew\n```\nbrew install kubernetes-helm\n```\nOn Linux\n```\ncurl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get \u003e get_helm.sh\nchmod 700 get_helm.sh\n./get_helm.sh\n```\n\n## Clean up\nTo clean up after you have finished with your nodes issue\n```\nrake cleanup\n```\n\n## Usage\n\nTo use the cluster after you have run `rake cluster_up` and `export KUBECONFIG=.kube/admin.conf` you can use your local `kubectl` to access the cluster.\nA good exercise to see the cluster working correctly is checking out the Kube Dashboard. To do that issue the following commands\n```\nkubectl proxy\n```\nThe dashboard will be available in your browser at  http://localhost:8001/ui\n\nTo use helm locally, run `helm init --client-only` and ensure your KUBECONFIG environment variable is correctly set.\n```\n$ helm init --client-only\n$HELM_HOME has been configured at /Users/dave.try/.helm.\nNot installing Tiller due to 'client-only' flag having been set\nHappy Helming!\n$\n```\n\n# About the project\n\n## What is this repo actually doing ?\nThis repo is a a sandbox for the [Puppet Kubernetes module](https://forge.puppet.com/puppetlabs/kubernetes)\n\nPlease see the road map section of the README.md to see upcoming functionality and releases of the module.\n\n## Limitations\nDue to the changes in Kubernetes 1.6 with the auth structure changing to RBAC, the module will only support version 1.6 and above.\n\nThe master branch will be the stable branch with the release candidate for the project. The development branches will be named by road map features. Once the development branch is stable it will be merged into master. Please do try the development branches as it will be great to get feedback, just be aware they are still under heavy development.\n\n## Road Map (For the module):\nHere is the list of items that the module needs to at least get to a beta stage\n\n - [x] Multi node support\n - [x] HA controller support\n - [x] Support for both RHEL and Debian\n\n## Road Map (For this repo)\nHere is the functionality that is on the road map for this repo\n - [x] Add build functionality to the rakefile so once the master is up you can build multiple worker at the same time.\n - [x] Use the rakefile to configure the local kubectl client so the user does not need to ssh into a node\n - [x] Add Helm support\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpuppetlabs%2Fkream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpuppetlabs%2Fkream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpuppetlabs%2Fkream/lists"}