att-comdev / halcyon-kubernetes

Ansible playbooks for a kubadm-based kubernetes deployment, on supporting any cloud and any kubeadm-enabled OS.
Apache License 2.0
35 stars 22 forks source link

Multi-platform support #40

Closed ravishivt closed 7 years ago

ravishivt commented 7 years ago

It would be great if the project could help deploy kubernetes to other architectures like arm/arm64. The project as-is already almost gets a working install since recent kubeadm versions have good multi-platform support built in.

Here is my post-playbook steps for getting to a happy state.

sudo kubectl delete -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
curl -sSL https://rawgit.com/coreos/flannel/master/Documentation/kube-flannel.yml | sed "s/amd64/arm64/g" | sudo kubectl create -f -
sudo kubectl delete -f https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml
curl -sSL https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml | sed "s/amd64/arm64/g" | sudo kubectl create -f -
sudo kubectl delete pods --all --namespace=kube-system && sudo kubectl delete pods --all

Helm/tiller doesn't currently have arm64 support, but it does have 32-bit arm support and it can be deployed with:

curl -L http://storage.googleapis.com/kubernetes-helm/helm-canary-linux-arm.tar.gz | tar zxv --strip 1 -C /tmp; chmod +x /tmp/helm; sudo mv /tmp/helm /usr/local/bin/helm
sudo /usr/local/bin/helm init

To make these steps work with this project, I'm thinking either ansible could detect the platform with uname -m or it could be user-specified in group_vars/all.yml. Then, ansible just modifies the dashboard and flannel manifests with the specified architecture before installing them.

Other notes:

v1k0d3n commented 7 years ago

@aric49 i think we can do this, but they'll have to be conditional values in group_vars. i don't think this is an ask for vagrant, is that a correct assumption @ravishivt? the only other thing to note is that doing CI on this will be hard to do for us. is this also acceptable?

aric49 commented 7 years ago

Hi @ravishivt, thank you for the feature request. I think this would be a great enhancement to have so our solution can support multiple platforms. I will start working on this today or tomorrow.

v1k0d3n commented 7 years ago

@ravishivt did this issue get corrected with the PR #41 @aric49 completed? if so, i think we can close this issue, if you give the :+1:

aric49 commented 7 years ago

Thanks @ravishivt! Closing the issue.