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... * 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.