-
Notifications
You must be signed in to change notification settings - Fork 39.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A build and deploy script to manage cluster federation lifecycle and a Makefile wrapper to drive that process. #29515
A build and deploy script to manage cluster federation lifecycle and a Makefile wrapper to drive that process. #29515
Conversation
6a3b6f5
to
66b3feb
Compare
1ef472d
to
94b25f2
Compare
@madhusudancs this is awesome!!! I feel like a human can actually understand what's going on now! I will give this a thorough review later today. Just wanted to say how happy this makes me. |
94b25f2
to
eec20c5
Compare
@colhom thanks! |
@madhusudancs if I'm reading this correctly- we don't really need the |
@colhom you are right. However, kubernetes-anywhere, on which this depends, does not work very well with AWS yet. I think it is a good idea to leave the |
@madhusudancs what aws-specific issues are you running into? i see you're using the kube-up bash libraries, so there shouldn't (theoretically) be any provider-specific problems. |
@colhom Although it is theoretically possible to use kube-up with this script, this PR uses kubernetes-anywhere to turn up clusters. I don't remember the exact error and I tried it only once. When I tried to bring up the cluster with kubernetes-anywhere, the AWS resources were all created correctly but I could still not reach kube-apiserver. I did not spend time debugging. But any help there is welcome. |
|
||
.PHONY: build | ||
build: | ||
./build.sh $(do) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any reason not to make these individual make targets? make gen
, make deploy
, make destroy
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is one of the things that I am going to work on next, unless someone offers to help (as listed in the TODO in the README file). I started out this way because it was easier to experiment with things if I had to make changes to only one script (build.sh).
@mml @nikhiljindal PTAL. |
Reviewed 2 of 4 files at r1, 2 of 2 files at r2, 1 of 1 files at r3. federation/build.sh, line 74 [r3] (raw file):
Tab literals here (through the whole file). Not sure we have a style guide, but it seems to me that 2 blank spaces is what I've seen, except in go files. federation/Makefile, line 16 [r2] (raw file):
|
Also, wrap the script around a Makefile. And also provide a sample config file to describe clusters. The build script implements the following things: 1. Generates the required configs. 2. Builds the hyperkube binary and the corresponding docker image. 3. Pushes the image to a specified repository. 4. Pulls the federation installer docker images. 5. Builds the Kubernetes clusters described the config.json file. 6. Pushes the federation components to one of the Kubernetes clusters built in the previous step. 7. Also turns down the federation components and the Kubernetes clusters.
…ithout gcloud prefix.
368fad7
to
7f20eff
Compare
@mml Addressed review comments. PTAL. Review status: 2 of 5 files reviewed at latest revision, 6 unresolved discussions. federation/build.sh, line 74 [r3] (raw file):
|
Reviewed 1 of 1 files at r4, 2 of 2 files at r5. federation/README.md, line 12 [r2] (raw file):
|
@k8s-bot test this issue: #IGNORE |
GCE e2e build/test passed for commit f3c82af. |
`config.default.json` file to describe your clusters and run | ||
|
||
```shell | ||
make build do=deploy |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is do=gen a required step or can I directly run deploy if I want to deploy release images.
Also how can I specify the image that I want to use for federation (if I want to use a release image)?
(Am just asking for my curiosity. Its fine to say we dont support it right now, if thats the case).
My comments are all optional and mostly questions for my own curiosity. Dont need to block this PR on those. |
@k8s-bot test this [submit-queue is verifying that this PR is safe to merge] |
GCE e2e build/test passed for commit f3c82af. |
Automatic merge from submit-queue |
Also includes a sample config file to describe clusters.
The build script implements the following things:
built in the previous step.
clusters.
NOTE: Installer images are right now being pulled from my public repository of docker images. I am working on pushing them to our release repository.
cc @kubernetes/sig-cluster-federation @colhom
Fixes: Issue #26655
This change is