-
Notifications
You must be signed in to change notification settings - Fork 558
Enable running custom images in acs-engine #2513
Enable running custom images in acs-engine #2513
Conversation
@Kargakis I have rebased this locally after cloning your fork. Permission to force push? ( if you have local changes that haven't been pushed up, say no :) ) |
@jackfrancis I rebased my branch if that's all you wanted. My editor messes up the satori import.. Other than that, I have no local changes - feel free to do what you need to do. |
@Kargakis I'll force push w/ rebase from recent master, stand by |
I just verified that ARM does not allow data disks when an image resource ID is provided.
I will update the PR shortly to exclude them. @jim-minter @pschiffe after submitting this PR I realized it's not only going to be useful for playing around with acs-engine but will be likely how we do PR testing in OpenShift. |
Thanks for this @Kargakis, this will help with a use case I need, too! |
@Kargakis could you include an example of how to use this, either an API model (see |
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.
tests and improved error lgtm. I think we're just needing an examples/
file based on current feedback.
A question to folks, the example I am adding is going to work for |
Seems that some examples don't work ootb even for |
@Kargakis I assume we intend for these image references to be available from the public internet? Are you able to publish a known-working prototype that we can test this cluster configuration workflow against? |
examples/custom-image.json
Outdated
"ssh": { | ||
"publicKeys": [ | ||
{ | ||
"keyData": "mykeyData" |
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.
nit: let's keep these boilerplate non-vals empty strings in the example api model (ditto dnsPrefix
above and clientId
/secret
below)
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.
updated
pkg/api/vlabs/types.go
Outdated
@@ -311,6 +311,8 @@ type MasterProfile struct { | |||
Extensions []Extension `json:"extensions"` | |||
Distro Distro `json:"distro,omitempty"` | |||
KubernetesConfig *KubernetesConfig `json:"kubernetesConfig,omitempty"` | |||
ImageName string `json:"imageName,omitempty"` |
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.
Did we consider delivering a struct to represent these properties instead of this flat structure? Instinctually, the advantage of that is the ability to scale out in the future without expanding the overhead of the parent struct, and easier re-use among typed API versions.
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.
updated
Added some remarks, this looks close, eager to test this soon! Thanks! |
If an image is public then can't we just use the pre-existing fields? I don't think I can publish an image atm (@kwoodson is going through this process right now, he can share how long does it take). This is important for unpublished images I think and will be likely used by our CI process since we are going to be building images and deploying them via acs-engine on every PR that lands in our repo. |
@Kargakis @jackfrancis We will be producing an origin image in the very near future. Hope this helps. |
Thanks @Kargakis! Running E2E now. |
This generally LGTM and back-compat tests are showing green. Is the inclusion of changes to |
Initially I included the changes to it for consistency. Is it used only on the hosted master deployment mode? I feel we are going to need it eventually for testing but can leave it out for now if desired. |
@Kargakis Let's leave it out for now if it's not immediately operable, because its inclusion will (reasonably) engage an add'l review/validation process. Make sense to you? |
@jackfrancis fine by me, done+squashed. |
@Kargakis Added basic docs, feel free to validate. Will run E2E and then lgtm |
@jackfrancis docs look fine to me, thanks for adding these. Assuming tests pass, please merge. |
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.
lgtm, thanks @Kargakis!
@khenidak this is the fix we talked yesterday about enabling us to run custom images in acs-engine. Any pointers on adding an e2e test that validates generation would be appreciated.
cc @jim-minter @pweil-