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 :

 

 

 

 

 

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
    metadata:
      annotations:
        ephemeral: "true"
        name: my-control-plane1
    ...
    spec:
    ...
    ---
    apiVersion: metal3.io/v1alpha1
    kind: BareMetalHost
    metadata:
      name: cp-host
    spec:
    ...

 

 

[1] https://github.com/stmcginnis/gofish

[2] https://review.opendev.org/#/c/679563/

 

On Mon, Sep 2, 2019 at 12:40 PM Kanwar Saad <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
http://lists.airshipit.org/cgi-bin/mailman/listinfo/airship-discuss


 

--

Kind regards

Dmitry Ukov

Principal Deployment Engineer

Mirantis, Inc.