aespinosa / cookbook-kube

Custom Chef resources to launch a Kubernetes cluster
https://supermarket.chef.io/cookbooks/kube
Apache License 2.0
32 stars 20 forks source link

Updates for the latest k8s and etcd #17

Closed tas50 closed 7 years ago

tas50 commented 7 years ago

Update things for the latest and greatest

aespinosa commented 7 years ago

Can you show the diff for commandline options for each component (v1.4.5 to v1.7.5). Kubernetes changes the commandline flags quite frequently. At least the default properties should by in-sync with the version offered.

tas50 commented 7 years ago

Just a heads up this entire thing is broken at the moment. I just wanted to open the PR to get some visibility on what I was working on. Feedback would be super welcome.

Now that I have things matching the upstream unit files a bit more and using the systemd_unit resource I'm going to look at the default options. I'm sure there's quite a few new ones and that will need to get updated to work with 1.7.5 w/o the need for a wrapper cookbook defining new properties.

tas50 commented 7 years ago

@aespinosa This works on Ubuntu. Debian has some cgroups issues that are going to need some additional work, but were broken already.

  Service kube-apiserver
     ✔  should be installed
     ✔  should be running
  Port 8080
     ✔  should be listening
     ✔  processes should include "kube-apiserver"
  Port 6443
     ✔  should be listening
     ✔  processes should include "kube-apiserver"
  Service kube-controller-manager
     ✔  should be installed
     ✔  should be running
  Service kube-proxy
     ✔  should be installed
     ✔  should be running
  Service kube-scheduler
     ✔  should be installed
     ✔  should be running
  Service kubelet
     ✔  should be installed
     ✔  should be running
  Port 10250
     ✔  should be listening
     ✔  processes should include "kubelet"
  Command kubectl
     ✔  get node exit_status should eq 0
     ✔  get node stdout should match /default.*Ready/
  Command kubectl
     ✔  get pod busybox exit_status should eq 0
     ✔  get pod busybox stdout should match /busybox.*Running/
tas50 commented 7 years ago

So here's a highlight of the changes:

Use systemd_unit to manage the systemd unit files and sync the unit files with upstream a bit Add a new property for the file ulimit for each service Add a new property for specifying the version of each service so you don't have to set the whole artifact URL to use a new version Default to k8s 1.7.6 Install the dependent packages for kubelets Require the master property to be set so services will properly start Use the new etcd cookbook that uses etcd 3.X Resolve all Chef 14 deprecation warnings and cookstyle warnings Test on Ubuntu as add ubuntu as a supported platform in the metadata Remove the usage of the apt cookbook in testing Use chef-apt-docker instead of manually setting up the repo in testing Test with docker 17.06.1

tas50 commented 7 years ago

RHEL 7 converges locally now

aespinosa commented 7 years ago

Released in 3.0.0 https://supermarket.chef.io/cookbooks/kube/versions/3.0.0

tas50 commented 7 years ago

Thanks. I'll have a flannel PR for you soon-ish