GithubHelp home page GithubHelp logo

raskyld / go-tektasker Goto Github PK

View Code? Open in Web Editor NEW
7.0 1.0 0.0 116 KB

A small tool to create, test and deploy Tekton tasks writing only Go code ๐Ÿ˜Ž

Home Page: https://go-tektasker.nocera.eu

License: Apache License 2.0

Go 100.00%
hacktoberfest hacktoberfest2023 tekton tekton-pipelines tekton-tasks tektoncd

go-tektasker's Issues

Better description computation

Summary

Tektasker use GoDoc on marked structures to generate description but because of GoDoc convention of starting the comment
with the name of the type or package documented, this lead to weird description in the generated manifests.

Ideas

  • Exclude the first line or paragraph of package-level comments
  • For types and fields, find the first occurence of the name of the type or field associated with the comment and remove it

build: wrong version number when using go install

Describe the bug
If you go install go-tektasker, its version will be left to the default dev version :(

To Reproduce
Steps to reproduce the behavior:

  1. go install github.com/raskyld/go-tektasker@latest
  2. go-tektasker version will return dev

Expected behavior
The go build system seems to be able to get VCS information using the importpath, we should handle this case when users
will go install tektasker and provides them with the tag that was resolved for the build system.

Handle custom headers

Summary

As of now, when generating go code, there is no way to customise the headers of the generated code.
This may be a problem for users licensing their code (e.g. wanting to add an apache 2.0 header).

Ideas

  • Use the same technique than the CRD builder of the controller-tools, see there.

generate cli reference in yaml and markdown

Describe the solution you'd like
We should be able to generate documentation for this CLI in Markdown and Yaml using official cobra doc pkg.

This should be invokable in the help subcommand if possible by passing an -o, --output <yaml|md> and this would be used by the official documentation builder to keep up-to-date reference of the CLI.

Rewrite the repository README.md

Is your feature request related to a problem? Please describe.
Now that the project is really close to release, we should should update the readme.

Describe the solution you'd like
The README.md should makes people easily:

  1. understand the value of Tektasker
  2. get a grasp of the user journey (maybe a short introduction video / GIF would help?)
  3. install and use tektasker
  4. list features
  5. see limitations
  6. go deeper

ko.local look up failed no such host

Describe the bug
When running a task generated by Tektasker with KO_DOCKER_REPO=ko.local, the TaskRun fails with
a look-up failure on ko.local, this is because Tekton Pipeline is trying to look-up the registry of the image of the Task when
the command args is left empty in the steps.

To Reproduce
Steps to reproduce the behavior:

  1. Init a project
  2. Use ko.local
  3. task manifest
  4. Ensure there is no command in the step of the Task generated
  5. task apply
  6. Create a TaskRun for the just applied task and observe the failure

Expected behavior
Tektasker try to guess the correct entrypoint and specify the command accordingly to avoid a registry look-up as
described in the Container Contract.

Desktop (please complete the following information):

  • Version unreleased
  • Tekton Pipelines version: v0.52

DX: ease the requirements installation

Is your feature request related to a problem? Please describe.
The Taskfile and the opinionated development environment shipped with go-tektasker requires other tool:

  • ko builder
  • kubectl and a valid context pointing to a cluster with tekton installed
  • task to run the taskfile

This may hurt DX and create an useless barrier to use Tektasker.

Describe the solution you'd like

An installer that SHOULD install task, ko and propose to install Tekton Pipelines to the current Kubernetes
context if the CRDs are not found. It should be easy to maintain and to read so the user isn't
scared to launch it. (more likely a bash script right?)

It should be interactive (asks the user for permission) and use go install for task and ko so we don't have to deal with
arch and OS specificities.

doc for the project

Is your feature request related to a problem? Please describe.
We should have a simple stupid documentation before we release Tektasker.

Describe the solution you'd like
A simple GitHub page with a docusaurus generated static website.

taskfile: check if tekton is installed

Is your feature request related to a problem? Please describe.
If you task apply on a cluster without Tekton installed, this will fail.

Describe the solution you'd like
It may sound stupid but it's likely to happen in a developer environment, imagine you installed a fresh KinD cluster, you may have forgotten to install Tekton, let's make dev life simpler by linking them to the official documentation.

Describe alternatives you've considered
We could also add a new task "installTekton" but we need to maintain it and handle cross-platform (macOS, linux, ...)

cli: tektasker version

Describe the solution you'd like
tektasker version returns the version of the binary.
The version should be baked-in by the linker using the -X ldflag during the build process that should be implemented in #14

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.