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

Add support for Alibaba Cloud #276

Closed
6 tasks done
ashcrow opened this issue Sep 16, 2019 · 25 comments
Closed
6 tasks done

Add support for Alibaba Cloud #276

ashcrow opened this issue Sep 16, 2019 · 25 comments

Comments

@ashcrow
Copy link
Member

ashcrow commented Sep 16, 2019

In order to properly support this, we should:

/cc @imcleod

@ashcrow ashcrow added cloud* related to public/private clouds area/platforms labels Sep 16, 2019
@jlebon
Copy link
Member

jlebon commented Sep 20, 2019

Just going to dump some info from perusing the documentation.


add support in coreos-assembler to buildextend images for this platform

Looks like qcow2 is supported and recommended, so this should be more or less the same thing as cosa buildextend-openstack.


check if we have some metadata endpoint (or hypervisor back-channel) available for Ignition to use

Looks like a vanilla user-data endpoint. From the docs:

You can use user data of an ECS instance to customize its startup behavior and to pass data into the instance.
...
For Linux, run curl http://100.100.100.200/latest/user-data to view the user data.


add support for ore to upload images

Seems to follow the AWS model of uploading the image into their storage service, then calling to the compute service to import from there (docs).


add support for afterburn if needed

SSH keys are supported. The docs don't say at what endpoint they're available, but cloud-init has:

class DataSourceAliYun(EC2.DataSourceEc2):
    ...
    metadata_urls = ['http://100.100.100.200']
    ...
    def get_hostname(self, fqdn=False, resolve_ip=False, metadata_only=False):
        return self.metadata.get('hostname', 'localhost.localdomain')

    def get_public_ssh_keys(self):
        return parse_public_keys(self.metadata.get('public-keys', {}))

@jlebon
Copy link
Member

jlebon commented Sep 20, 2019

Do we need to discuss this in a community meeting re. whether we want to support it in FCOS? RHCOS definitely will; it would be good for FCOS to lead.

@dustymabe
Copy link
Member

Do we need to discuss this in a community meeting re. whether we want to support it in FCOS?

I don't think so. Maybe we can FYI everyone on it but IMO the more platforms the better.

@ashcrow
Copy link
Member Author

ashcrow commented Sep 20, 2019

Do we need to discuss this in a community meeting re. whether we want to support it in FCOS?

I don't think so. Maybe we can FYI everyone on it but IMO the more platforms the better.

That's my thought as well. Unless there is a reason to not support it I think supporting it in FCOS would be great!

@lucab
Copy link
Contributor

lucab commented Sep 21, 2019

For Afterburn purposes, the metadata endpoint and content is documented at https://www.alibabacloud.com/help/doc-detail/49122.htm.

@lucab
Copy link
Contributor

lucab commented Sep 23, 2019

For reference, terraform supports this cloud platform under the provider name alicloud: https://www.terraform.io/docs/providers/alicloud/index.html. I think we can align ourselves to that as the platform label.

@ashcrow ashcrow mentioned this issue Sep 23, 2019
5 tasks
@bgilbert
Copy link
Contributor

@lucab: We normally avoid having noise like "cloud" in our platform names, and we don't actually need to align with Terraform.

@ashcrow
Copy link
Member Author

ashcrow commented Sep 23, 2019

@bgilbert Would alibaba make more sense?

@bgilbert
Copy link
Contributor

Maybe. I guess the thing that seems odd is abbreviating Alibaba but also adding in cloud. If it's commonly called Alicloud and people will recognize that name, then that's likely the name we should use. But it's not clear to me how common that usage is?

It's not as simple as just naming the platform after the vendor, since we're not fully consistent here; we have digitalocean and packet but also aws and gcp.

@ashcrow
Copy link
Member Author

ashcrow commented Sep 23, 2019

@bgilbert Got it. I did some searching to see if I could find a proper short name for Alibaba's Cloud but nothing came up. Most seem to call it "Alibaba Cloud".

@jlebon
Copy link
Member

jlebon commented Sep 23, 2019

FWIW, cloud-init uses AliYun. Not that we need to align there too, but (1) the initial implementation (and hence naming) was done by someone who works there it seems, and (2) if there's ever another "platform" on Alibaba, cloud-init would likely have to add a new ID too.

@arithx
Copy link
Contributor

arithx commented Sep 23, 2019

FWIW their go sdk is Alibaba Cloud SDK for Go with aliyun being the org.

@bgilbert
Copy link
Contributor

From Wikipedia and from poking around a bit on their website, I think the situation is: Ālǐyún is the pinyin for the Chinese name, Ali Cloud is the literal translation, and Alibaba Cloud is the English branding.

The official CLI is named aliyun.

@ashcrow
Copy link
Member Author

ashcrow commented Sep 25, 2019

aliyun 👍

@ashcrow ashcrow self-assigned this Oct 1, 2019
@ashcrow
Copy link
Member Author

ashcrow commented Oct 1, 2019

@ashcrow
Copy link
Member Author

ashcrow commented Oct 1, 2019

reserve and document a platform ID for this environment

Is there a current location we keep track of the platformid's?

@lucab
Copy link
Contributor

lucab commented Oct 1, 2019

@ashcrow I have this currently in flight coreos/fedora-coreos-docs#11.

@ashcrow
Copy link
Member Author

ashcrow commented Oct 1, 2019

@ashcrow I have this currently in flight coreos/fedora-coreos-docs#11.

Perfect!!

ashcrow added a commit to ashcrow/fedora-coreos-docs that referenced this issue Oct 2, 2019
See: coreos/fedora-coreos-tracker#276

Signed-off-by: Steve Milner <smilner@redhat.com>
@ashcrow
Copy link
Member Author

ashcrow commented Oct 2, 2019

Doc PR: coreos/fedora-coreos-docs#12

@lucab lucab added platform/aliyun and removed cloud* related to public/private clouds labels Oct 2, 2019
ajeddeloh pushed a commit to coreos/fedora-coreos-docs that referenced this issue Oct 4, 2019
See: coreos/fedora-coreos-tracker#276

Signed-off-by: Steve Milner <smilner@redhat.com>
@lucab
Copy link
Contributor

lucab commented Oct 8, 2019

Misc self-notes from my exploration of the API so far:

  • if no user-data is provided when creating an instance, the endpoint returns 404 (instead of an empty body)
  • I set up a single ssh-pubkey, but the API returns two entries for it (with the same content)
  • docs differ across language, and the English one lacks a few metadata entries (e.g. instance/instance-type)

@jlebon
Copy link
Member

jlebon commented Oct 17, 2019

OK, we got all the prereqs in place. If we want to get FCOS there, we need to work out the legal stuff to get a Fedora account there.

@jlebon
Copy link
Member

jlebon commented Oct 17, 2019

We could also just publish the artifacts for now so at least folks can upload to their own accounts.

jlebon added a commit to jlebon/fedora-coreos-pipeline that referenced this issue Oct 17, 2019
We don't upload anything yet:
coreos/fedora-coreos-tracker#276 (comment)

But at least the artifacts are available.
@ashcrow
Copy link
Member Author

ashcrow commented Oct 17, 2019

We could also just publish the artifacts for now so at least folks can upload to their own accounts.

That would be a good starting point for FCOS artifacts.

jlebon added a commit to coreos/fedora-coreos-pipeline that referenced this issue Oct 18, 2019
We don't upload anything yet:
coreos/fedora-coreos-tracker#276 (comment)

But at least the artifacts are available.
@lucab
Copy link
Contributor

lucab commented Oct 25, 2019

Just to recap, is the final goal of this ticket to "upload artifacts to FCOS bucket" or to "upload artifacts to Alibaba cloud"? (Is that decided yet?)

In both cases, should we add one last task in here to write a "Booting on Alibaba Cloud" doc?

@ashcrow
Copy link
Member Author

ashcrow commented Oct 25, 2019

This card is for the tools in place for the OS teams to utilize. In terms of uploading to $LOCATION, those would be other issues/cards IMHO.

@ashcrow ashcrow closed this as completed Oct 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants