Skip to content
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

GuestOsFeatures documentation has []string] #365

Closed
jsoref opened this issue Mar 8, 2018 · 6 comments · Fixed by #367
Closed

GuestOsFeatures documentation has []string] #365

jsoref opened this issue Mar 8, 2018 · 6 comments · Fixed by #367

Comments

@jsoref
Copy link
Contributor

jsoref commented Mar 8, 2018

| GuestOsFeatures | []string] | *Optional.* Along with the GCE JSON API's more complex object structure, Daisy allows the use of a simple list. |

@jsoref
Copy link
Contributor Author

jsoref commented Mar 8, 2018

Based on Metadata, it appears the right answer is map[string]string.

I might send a PR for this. (I'm still trying to figure out if I can use this tool to achieve my task...)

@zmarano
Copy link
Contributor

zmarano commented Mar 8, 2018

Speaking of, what is your task? Maybe we can help you answer that question.

@zmarano
Copy link
Contributor

zmarano commented Mar 8, 2018

@jsoref
Copy link
Contributor Author

jsoref commented Mar 9, 2018

Automating the deployment of VMs to Google cloud. We have a Jenkins in GCE which automatically starts build nodes there which build our software.

For this project, I want to create modern "immutable" systems, so ideally when I start one, we give it some configuration, but it already has our software and the required system software enabled and mostly configured.

I've looked into chef/puppet/ansible and they're both painful to write and really not helpful, since the goal is that systems be immutable.

I'm considering using Terraform as the orchestrator.

@zmarano
Copy link
Contributor

zmarano commented Mar 9, 2018

Cool, depending exactly what you mean by immutable systems Daisy can probably help you here.

If you want to build GCE images that have your software pre-installed to then use to deploy instances that is absolutely what Daisy can do. Generally you would build your image using one of the GCE base images and bootstrap what you want and what you want configured on it. Technically, because Daisy is just an API workflow client, it can actually deploy instances from your images as well but that doesn't quite handle ongoing orchestration as such. It is useful for testing the image you just built however.

A conceivable workflow is:
derivative image build -> deploy to test instance -> run tests, on pass -> publish to production project/family for use with Terraform

@adjackura
Copy link
Contributor

[]string is the correct type (the ] on the end is a typo).

You can specify GuestOSFeatures as a a simple list of strings:
"GuestOsFeatures": ["VIRTIO_SCSI_MULTIQUEUE", "MULTI_IP_SUBNET"],

or you can use the more complex system the api uses:
"GuestOsFeatures": [
{
"type": "VIRTIO_SCSI_MULTIQUEUE"
},
{
"type": "MULTI_IP_SUBNET"
}
],

jsoref added a commit to jsoref/compute-image-tools that referenced this issue Mar 11, 2018
adjackura added a commit that referenced this issue Mar 14, 2018
Fix precheck binary links - fixes #366
Fix typo in config spec - fixes #365
gaohannk pushed a commit to gaohannk/compute-image-tools that referenced this issue May 20, 2021
Add required --github-token-path to hook/tide.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants