On Wed, Feb 20, 2019 at 12:41 AM Joey Ma <majunj...@gmail.com> wrote:

>
>
> On Tue, Feb 19, 2019 at 7:23 PM Barak Korren <bkor...@redhat.com> wrote:
>
>>
>>
>> On Tue, 19 Feb 2019 at 09:14, Joey Ma <majunj...@gmail.com> wrote:
>>
>>> Hi all,
>>>
>>
>> Hi Joey,
>>
>
>>
>>>
>>> With the generous help of several nice guys, currently the Go SDK
>>> related projects, oVirt/ovirt-engine-sdk-go and oVirt/go-ovirt, are already
>>> available under oVirt org, and the integration of oVirt/ovirt-engine-sdk-go
>>> with oVirt STD-CI is also completed [1]. Sincerely thank you to everyone.
>>>
>>> While there is still an issue left that we need a proper solution to
>>> integrate oVirt/ovirt-engine-sdk-go with TravisCI which could push the
>>> auto-generated codes into oVirt/go-ovirt. Previously I adopted my
>>> personal github access token which is stored encrypted [2] to work it out.
>>>
>>> But as it's been under oVirt community, we need a more regular way to
>>> make this. As @Evgheni <edere...@redhat.com> suggested, maybe a new
>>> access token from a dedicated github account or via the Jenkins job will
>>> work?
>>>
>>> Any one could help? Any insights into this would be appreciated and
>>> thanks in advance.
>>>
>> If you do it from the STDCI script (The Jenkin job), we could make the
>> credentials for the STDCI GitHub bot available to the script when it runs
>> (See the section about secrets in the standard CI docs
>> <https://ovirt-infra-docs.readthedocs.io/en/latest/CI/Build_and_test_standards/index.html>
>> for a full explanation about how this works).
>>
>
>>
> I`d want do understand how the flow works and what is its purpose, it
>> sounds to me a bit strange that we need to push from one repo to the other.
>>
>
> Hi Barak,
>
> Basically the root cause is that the Go SDK codes are automatically
> generated by oVirt/ovirt-engine-sdk-go, but reside in oVirt/go-ovirt.
>
> Current workflow is:
> 1. Once a pull request get merged in ovirt-engine-sdk-go, TravisCI will
> run the build phrase, which mainly generates the Go SDK codes;
> 2. If the build phrase has passed,  TravisCI will then trigger the
> script deploy-codes.sh [1];
> 3. The deploy-codes.sh [1]  pushes the auto-generated Go SDK codes to
> go-ovirt via the preconfigured credential of github account;
> 4. Eventually users are able to utilize the latest SDK by using "
> github.com/ovirt/go-ovirt" as the import path;
>
> The reasons for this are:
> 1. The auto-generated codes are better to be put into a dedicated repo,
> not in its generator repo;
> 2. The dedicated go-ovirt repo provides a convenient way for users to
> utilized the SDK package, which is also the common way to import Go
> packages;
>
> From my perspective, there are two projects with similar purpose:
> * oVirt/ovirt-engine-sdk: TravisCI will trigger a script [2] to push newly
> generated docs into its gh-pages branch once new commits merged.
> > *This feature will also get implemented in oVirt/ovirt-engine-sdk-go
> ASAP.*
> * kubevirt/kubevirt: After new commits merged, the kubevirt repo would
> trigger the script [3] to deploy new auto-generated Python client codes
> into kubevirt/client-python. This enables users could easily install the
> Python client by running `pip install git+
> https://github.com/kubevirt/client-python.git`
> <https://github.com/kubevirt/client-python.git>.
>

Hi Barak,

I was wondering if I made this clear.


> Regarding to the credentials, the environment variables binding secrets
> mentioned in STD-CI doc are effective solutions and definitely I would like
> to prefer the common rules used in community.
> *> Also I've a question that make me confused for a long time, are the two
> environment variables `encrypted_1fc90f464345_key` and
> `encrypted_1fc90f464345_iv` used in [2] defined in a STDCI secrets file [4]
> for oVirt/ovirt-engine-sdk? For I could not find where they are defined.*
>

This definitely was a stupid question. I apologize for not carefully
reading [1] which could tell the answers.

[1] and [2]probably provide us another way to work it out via deploy-key.
Please let me introduce the working steps:
1. Generate a pair of public and private keys;
2. Upload the public key to oVirt/go-ovirt as a deploy-key as mentioned in
[2];
3. Follow [1] to encrypt the private key and add the encrypted one into the
oVirt/ovirt-engine-sdk-go repo;
4. In the deploy script [3] of oVirt/ovirt-engine-sdk-go, add the logic
codes of decrypting and ssh-adding the private key;
Then the script could be able to access and push the codes in
oVirt/go-ovirt.

This seems less risky than the previous solution which using github account
token. I guess it's the solution also adapted by oVirt/ovirt-engine-sdk [4]
and oVirt/ovirt-engine-api-model [5].

So, Barak, may I have your clarification on if my proposal could comply
with the regular rules? If yes, I'd proceed with the next step. Thanks in
advance.

Regards,
Joey

[1]: https://docs.travis-ci.com/user/encrypting-files/
[2]:
https://developer.github.com/v3/guides/managing-deploy-keys/#deploy-keys
[3]:
https://github.com/oVirt/ovirt-engine-sdk-go/blob/master/.travis/deploy-codes.sh
[4]:
https://github.com/oVirt/ovirt-engine-sdk/blob/master/automation/deploy-on-gh-pages.sh
[5]:
https://github.com/oVirt/ovirt-engine-api-model/blob/master/automation/deploy-on-gh-pages.sh



> Not sure if make myself clear. Your comments and suggestions are very
> welcome. Thanks in advance.
>
> Regards,
> Joey
>
> [1]:
> https://github.com/oVirt/ovirt-engine-sdk-go/blob/master/.travis/deploy-codes.sh
> [2]:
> https://github.com/oVirt/ovirt-engine-sdk/blob/master/automation/deploy-on-gh-pages.sh
> [3]:
> https://github.com/kubevirt/kubevirt/blob/master/hack/gen-client-python/deploy.sh
> [4]:
> https://ovirt-infra-docs.readthedocs.io/en/latest/CI/Writing_STDCI_secrets_file/index.html
>
>
>
>> Regards,
>> Barak.
>>
>>
>> --
>> Barak Korren
>> RHV DevOps team , RHCE, RHCi
>> Red Hat EMEA
>> redhat.com | TRIED. TESTED. TRUSTED. | redhat.com/trusted
>>
>
_______________________________________________
Devel mailing list -- devel@ovirt.org
To unsubscribe send an email to devel-le...@ovirt.org
Privacy Statement: https://www.ovirt.org/site/privacy-policy/
oVirt Code of Conduct: 
https://www.ovirt.org/community/about/community-guidelines/
List Archives: 
https://lists.ovirt.org/archives/list/devel@ovirt.org/message/YY43OWPST542JXOB2QA4DQU45EGICGKP/

Reply via email to