func icon indicating copy to clipboard operation
func copied to clipboard

Create KinD tutorial to test and gather community feedback for 1.0.0 release

Open salaboy opened this issue 3 years ago • 20 comments

The scope of this tutorial is to gather feedback for the upcoming releases. This tutorial should be end-to-end, covering from prerequisites, installation, and usage of the func CLI. It will be great to aim for a 20 minutes max step-by-step tutorial.

I see this tutorial split into two sections:

  • Installation of tools:
    • This tutorial should include cluster creation using KinD or a script like KonK where Knative is also installed as part of that cluster
    • This tutorial should explain how to install the func CLI
  • func CLI usage:
    • Build on top of tutorials like this: https://github.com/knative-sandbox/kn-plugin-func/blob/main/docs/function-developers/golang.md
    • Gather feedback about usage and about the understanding of what each command in the CLI is doing

We can create a google form for people to fill out while they are going over the tutorial.

A set of questions that we can ask people going over this tutorial can be:

  • Experience Level on Kubernetes (choose one of the following)
    • I've never used K8s before
    • I've used K8s and I understand how kubectl works
    • I am a K8s and Knative user already
  • Impressions about the installation procedure:
    • what can be done to improve the installation experience for a local development setup?
  • Impressions about the func CLI
    • Did you find and create a function using your programming language of choice?
    • Did any of the steps performed feel unnatural or different from what you are used to do with your IDE and programming language?
    • Did the tutorial work end to end? Did you manage to interact with your deployed function?
    • What errors did you encounter while following the tutorial?
    • How much time did you spend working through the tutorial?

salaboy avatar Jul 30 '22 10:07 salaboy

It will be awesome if this tutorial is created by community members collaborating, I will be more than happy to help with the coordination.

salaboy avatar Jul 30 '22 10:07 salaboy

/assign @salaboy I would love to work on this.

kranurag7 avatar Jul 30 '22 11:07 kranurag7

@kranurag7 let's work together on this.. I have some other community member also reaching out, so let's get started..

salaboy avatar Aug 02 '22 07:08 salaboy

@kranurag7 We should try not to rewrite any existing tutorials or getting started guides.. but this should have a workshop style (step-by-step) and end to end. Do you want to get started with the installation part:

Installation of tools:
- This tutorial should include cluster creation using KinD or a script like KonK where Knative is also installed as part of that cluster
- This tutorial should explain how to install the func CLI 

As part of this work, I would like to ask you to document your experience and also your environment (mac, linux, windows) and versions of the tools that you need to install.

salaboy avatar Aug 02 '22 07:08 salaboy

@kranurag7 also.. I think that start gathering questions about the feedback that we want to get from new users is highly important

salaboy avatar Aug 02 '22 07:08 salaboy

@salaboy I'm doing it like this. Just wanted to understand and take a quick feedback from you. Am I going in the right direction, or do I need to elaborate the steps a little more?

Creating Cluster using Kind

I'm using Ubuntu 20.04 environment and if you're using any Linux distribution then the process should look similar according to me. If you don't have enough resources locally, then spin up an Ubuntu instance in the cloud & follow the tutorial below.

You need to have docker installed in order to create kind cluster locally.

Installing docker


sudo apt-get remove docker docker-engine docker.io containerd runc

sudo apt-get update 

sudo apt-get install \
	ca-certificates \
	curl \
	gnupg \
	lsb-release -y 
	
sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

kranurag7 avatar Aug 03 '22 17:08 kranurag7

@kranurag7 yes.. I think this is good.. would you mind having that MD file in a repository? or in a fork of this repo? Sections can be:

  • Prerequisites (Docker, kubectl, KinD, etc)
    • For this, links to the tutorials on installing these will be more than enough as you probably don't want to replicate all the instructions.
  • Creating a KinD cluster & Installing Knative Serving
  • Creating a function, the function should do something, like interacting with a public service if possible.
  • Deploying a function and interacting with the function (making a request, and see the result)

So regarding your approach and the feedback that you requested.. instead of listing all the steps to install docker, just create a list of links that people needs to follow to install all the pre-requisites.

salaboy avatar Aug 05 '22 17:08 salaboy

Check the https://github.com/knative-sandbox/kn-plugin-func/blob/main/hack/allocate.sh file which set up a KinD cluster with Knative Serving

salaboy avatar Aug 09 '22 14:08 salaboy

/assign @kranurag7

lance avatar Oct 13 '22 21:10 lance

This issue is stale because it has been open for 90 days with no activity. It will automatically close after 30 more days of inactivity. Reopen the issue with /reopen. Mark the issue as fresh by adding the comment /remove-lifecycle stale.

github-actions[bot] avatar Jan 17 '23 01:01 github-actions[bot]

/remove-lifecycle stale

zroubalik avatar Jan 17 '23 09:01 zroubalik

This issue is stale because it has been open for 90 days with no activity. It will automatically close after 30 more days of inactivity. Reopen the issue with /reopen. Mark the issue as fresh by adding the comment /remove-lifecycle stale.

github-actions[bot] avatar Apr 18 '23 01:04 github-actions[bot]

/remove-lifecycle stale

lance avatar Apr 18 '23 20:04 lance

This issue is stale because it has been open for 90 days with no activity. It will automatically close after 30 more days of inactivity. Reopen the issue with /reopen. Mark the issue as fresh by adding the comment /remove-lifecycle stale.

github-actions[bot] avatar Aug 15 '23 01:08 github-actions[bot]

/remove-lifecycle stale

lance avatar Aug 16 '23 00:08 lance

Unassigning due to inactivity in order to open this up for other contributors. Please feel free to re-assign

lkingland avatar Aug 23 '23 09:08 lkingland

This issue is stale because it has been open for 90 days with no activity. It will automatically close after 30 more days of inactivity. Reopen the issue with /reopen. Mark the issue as fresh by adding the comment /remove-lifecycle stale.

github-actions[bot] avatar Mar 02 '24 01:03 github-actions[bot]

This issue is stale because it has been open for 90 days with no activity. It will automatically close after 30 more days of inactivity. Reopen the issue with /reopen. Mark the issue as fresh by adding the comment /remove-lifecycle stale.

github-actions[bot] avatar Jun 21 '24 01:06 github-actions[bot]

/remove-lifecycle stale

matejvasek avatar Jun 21 '24 11:06 matejvasek

This issue is stale because it has been open for 90 days with no activity. It will automatically close after 30 more days of inactivity. Reopen the issue with /reopen. Mark the issue as fresh by adding the comment /remove-lifecycle stale.

github-actions[bot] avatar Sep 20 '24 01:09 github-actions[bot]