Actually on #2 I just read this : https://github.com/metal3-io/metal3-docs/blob/master/design/bmc-address.md It’s a proposal from metal3-io opn how a redfish url would supported in the BareMetalSpec : For each type of controller, we can often assume we know the protocol used to communicate with it (HTTP, HTTPS, etc.). Therefore the scheme in a URL provided by the user is redundant, and we can use that portion of the URL to specify the controller type. For example: ipmi://192.168.111.1 In cases where we cannot assume the correct communication protocol, we will need to combine the type and protocol. For example: redfish+https://IP/redfish/v1/Systems/42 Initially, we will only support IPMI controllers, so we do not need users to specify the type or protocol. If the field only contains a network address, we can assume that the controller uses IPMI on the standard port, 623. Therefore this would be equivalent to the previous example: 192.168.111.1 I guess for SMASH it would look something like : smash://192.168.111.1 Regards Rodolfo Pacheco Home/Office 732 5337671 From: "PACHECO, RODOLFO J" <rp2723@att.com> Date: Tuesday, September 3, 2019 at 8:09 AM To: Dmitry Ukov <dukov@mirantis.com>, Kanwar Saad <kanwar.sbl@gmail.com> Cc: "airship-discuss@lists.airshipit.org" <airship-discuss@lists.airshipit.org> Subject: Re: [Airship-discuss] airshipctl remotedirect POC On #1 , Did we compare gofish library vs https://github.com/thecodeteam/gorackhd-redfish, this one seems to have some )on a cursory look) remote bootstrapping stuff already. They both seem light (2 – 3 cointributors).. #2 Need to discuss this on the Design Call perhaps. This goes squarely into two issues : * What does the YAML look like . I,.e is is all in the Baremetal Host Spec * Does the isogen output actually update this information , or is it explicitly stated in the input document. * #3 We stated the proposed annotations. In the airshipctl cluster https://docs.google.com/document/d/15zRU5c5cCJLdFzE1P9UArdu19u-nRVrYk8p_JKTm... o airshipit.org/clustertype=ephemeral or airshipit.org/clustertype=target Regards Rodolfo Pacheco Home/Office 732 5337671 From: Dmitry Ukov <dukov@mirantis.com> Date: Monday, September 2, 2019 at 3:05 PM To: Kanwar Saad <kanwar.sbl@gmail.com> Cc: "airship-discuss@lists.airshipit.org" <airship-discuss@lists.airshipit.org> Subject: Re: [Airship-discuss] airshipctl remotedirect POC Hi, 1. We can try gofish [1] 2. I guess we need to discuss this topic since Redfish/IPMI/iLO usually set up to use out-of-band (OOB) data center network which has limited external access. 3. Since we are going to use K8s Cluster API + Kustomize + Metal3 and deployment data (i.e. evolved treasuremap or treasuremap 2.0) is stored as directory structure applicable for Kustomize rendering. Therefore all nodes should be described as Machine which is tied to BareMetalHost. AFAIK enduser has to mark particular Machine with specific annotation tag (e.g. ephemeral=true). I'm trying to use this approach in CR [2] (it's in WIP status so far) which adds ephemeral node cloud-init generator to airshipct. This CR assumes that our deployment data has following objects defined kind: Machine apiVersion: cluster.x-k8s.io/v1alpha2<https://urldefense.proofpoint.com/v2/url?u=http-3A__cluster.x-2Dk8s.io_v1alpha2&d=DwMFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=Bjzj_RciGLj21LnNXoD5dw&m=ZMgdGPf9OXpUqSIwaqKQhKttOEYWWfV_QC7T1m9LUMo&s=frDcqYC1CLYvWYg3Jdc9H0BAuoSGBIcq2il7Dup4wi8&e=> metadata: annotations: ephemeral: "true" name: my-control-plane1 ... spec: ... --- apiVersion: metal3.io/v1alpha1<https://urldefense.proofpoint.com/v2/url?u=http-3A__metal3.io_v1alpha1&d=DwMFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=Bjzj_RciGLj21LnNXoD5dw&m=ZMgdGPf9OXpUqSIwaqKQhKttOEYWWfV_QC7T1m9LUMo&s=JzRf4gHiK11SlXVQTzGb3XDbZASXjFwIzxf8Le1f9l0&e=> kind: BareMetalHost metadata: name: cp-host spec: ... [1] https://github.com/stmcginnis/gofish<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_stmcginnis_gofish&d=DwMFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=Bjzj_RciGLj21LnNXoD5dw&m=ZMgdGPf9OXpUqSIwaqKQhKttOEYWWfV_QC7T1m9LUMo&s=HN9Hf8F99US4NB6Ekm7kn0U48hXRGFh0LXNUbRmEXL8&e=> [2] https://review.opendev.org/#/c/679563/<https://urldefense.proofpoint.com/v2/url?u=https-3A__review.opendev.org_-23_c_679563_&d=DwMFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=Bjzj_RciGLj21LnNXoD5dw&m=ZMgdGPf9OXpUqSIwaqKQhKttOEYWWfV_QC7T1m9LUMo&s=CdneUNl4WNd6nGuArXACb-NmlPaNdtA4JnsygJ7GeAM&e=> On Mon, Sep 2, 2019 at 12:40 PM Kanwar Saad <kanwar.sbl@gmail.com<mailto:kanwar.sbl@gmail.com>> wrote: Hi all, I am planning to start contributing on remotedirect code for airshipctl(or join forces with anyone who is already working). For that, I was investigating Redfish APIs. I have a couple of questions to start with: 1. There is no good golang client for redfish. What I have investigated is that we need couple of REST API calls for the bootstrap operation. So should we create a small redfish util library in airshipctl itself or should it be a separate project or if anyone has any idea about a good go client for redfish? I have a minimal redfish go client for testing, we can start maturing it if we want to go with that approach. 2. For setting the CD image in redfish, it requires a HTTP(s) endpoint to download ISO file. After generation of ISO locally where should we put it so that it is visible to redfish server. Do we have any design decision about that? Or do we have a totally different way of pushing the ISO image which I am not aware of? 3. Redfish server would be managing multiple Systems. You can get a list of Systems it is managing from "redfish/v1/Systems" endpoint. How do we select a system for the ephemeral host? Should it be provided via config or we just randomly select one of the systems from the list? In the latter case, how do we ensure that any selected system should have minimal requirements for the ephemeral host? Br, Kanwar Saad Ericsson Software Technologies _______________________________________________ Airship-discuss mailing list Airship-discuss@lists.airshipit.org<mailto:Airship-discuss@lists.airshipit.org> http://lists.airshipit.org/cgi-bin/mailman/listinfo/airship-discuss<https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.airshipit.org_cgi-2Dbin_mailman_listinfo_airship-2Ddiscuss&d=DwMFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=Bjzj_RciGLj21LnNXoD5dw&m=ZMgdGPf9OXpUqSIwaqKQhKttOEYWWfV_QC7T1m9LUMo&s=yIB6JZpdTEvh2Rj4bOw1aUYoTO8FrD-KQ6uoab4APIs&e=> -- Kind regards Dmitry Ukov Principal Deployment Engineer Mirantis, Inc.