Skip to content

Conversation

jpinsonneau
Copy link
Contributor

@jpinsonneau jpinsonneau commented Apr 15, 2024

Description

This is a preparatory work for krew index creation:

  • make command unique since krew is accepting a single bin entry
  • add make release target to generate krew package and prepare github release
  • detect when CLI is running from krew to force either kubectl or oc

Here is a krew index sample:
https://gist.github.com/jpinsonneau/a34785c85a20c3899ec91f266ff33823

You can test it using:

kubectl krew install --manifest=netobserv-cli-index.yaml

The krew index will be automatically generated by github release job and appened to body release notes as draft.

Dependencies

n/a

Checklist

If you are not familiar with our processes or don't know what to answer in the list below, let us know in a comment: the maintainers will take care of that.

  • Is this PR backed with a JIRA ticket? If so, make sure it is written as a title prefix (in general, PRs affecting the NetObserv/Network Observability product should be backed with a JIRA ticket - especially if they bring user facing changes).
  • Does this PR require product documentation?
    • If so, make sure the JIRA epic is labelled with "documentation" and provides a description relevant for doc writers, such as use cases or scenarios. Any required step to activate or configure the feature should be documented there, such as new CRD knobs.
  • Does this PR require a product release notes entry?
    • If so, fill in "Release Note Text" in the JIRA.
  • Is there anything else the QE team should know before testing? E.g: configuration changes, environment setup, etc.
    • If so, make sure it is described in the JIRA ticket.
  • QE requirements (check 1 from the list):
    • Standard QE validation, with pre-merge tests unless stated otherwise.
    • Regression tests only (e.g. refactoring with no user-facing change).
    • No QE (e.g. trivial change with high reviewer's confidence, or per agreement with the QE team).

@jpinsonneau jpinsonneau marked this pull request as draft April 15, 2024 11:05
Copy link

codecov bot commented Apr 15, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 31.25%. Comparing base (f58b119) to head (07b68c0).
Report is 17 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##            main      #27       +/-   ##
==========================================
+ Coverage   0.00%   31.25%   +31.25%     
==========================================
  Files          5        5               
  Lines        898      944       +46     
==========================================
+ Hits           0      295      +295     
+ Misses       898      629      -269     
- Partials       0       20       +20     
Flag Coverage Δ
unittests 31.25% <ø> (+31.25%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

echo " version Print software version."
echo
exit 0
elif [ "$1" = "version" ]; then
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pls change this to

case "$1" in
"version")
    echo "Netobserv CLI version $version"
    exit 0 ;;
"flows")
    ;;
"packets")
    ;;
"cleanup")
    ;;
esac

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll give a try ! Thanks for the tips !

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done in 4e9ea0b

Makefile Outdated
tar-commands: clean ## Generate tar.gz containing krew plugin
$(MAKE) KREW_PLUGIN=true kubectl-commands
tar -czf netobserv-cli.tar.gz LICENSE ./build/netobserv
sha256sum netobserv-cli.tar.gz
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not clear to me how the above tar ball will include krew plugin ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is just creating a tarball and showing sha256 for now.

After that we need to publish the tar.gz to a release (in github for upstream) where a downloadable link is available
Finally we need to publish a krew index containing the link + sha in https://github.com/kubernetes-sigs/krew-index

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added a script to generate index according to version ad143ad

@jpinsonneau jpinsonneau marked this pull request as ready for review April 16, 2024 08:52
@jpinsonneau jpinsonneau requested a review from jotak April 16, 2024 08:52
tar -czf netobserv-cli.tar.gz LICENSE ./build/netobserv
@echo "### Generating krew index yaml"
VERSION=$(VERSION) \
./scripts/krew.sh
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't we need this operation to be arch aware and generate tar ball for each arch ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need to test it on different arch first. It may work out of box; else maybe just tweaking around the script.

On top, krew index allow you to point different binaries for each platform if needed

echo "TODO:
- Submit updated index to https://github.com/kubernetes-sigs/krew-index to update plugin:
\`\`\`yaml${indexYaml}\`\`\`
- Click on 'generate release notes' above and publish" > ./tmp/release.md
Copy link
Contributor

@msherif1234 msherif1234 Apr 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do u need to add ./tmp/release.md to .gitignore

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tmp folder is already there

@msherif1234
Copy link
Contributor

/lgtm

Copy link

openshift-ci bot commented Apr 17, 2024

[APPROVALNOTIFIER] This PR is APPROVED

Approval requirements bypassed by manually added approval.

This pull-request has been approved by:

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-merge-bot openshift-merge-bot bot merged commit 765cca1 into netobserv:main Apr 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants