carvel-dev / carvel-dev/kapp-controller

`kctrl`: Install kapp-controller from kctrl

Open
#1,043 0 comments 0 reactions 0 assignees View on GitHub
cli enhancement priority/awaiting-more-evidence
Dominant language
Go
Stars
323
Forks
127
Avg merge
2d 16h
Merged PRs (30d)
4

Description

**Describe the problem/challenge you have**
This feature request, similar to https://github.com/vmware-tanzu/carvel-kapp-controller/issues/1001, aims at streamlining the onboarding experience when using Carvel packages.

Right now, the steps needed to setup an environment are the following:

1. Install kapp-controller with `kubectl` or `kapp` (+ optional wait for readiness when using kubectl).
2. Add a package repository with `kctrl` (+ create namespace).
3. Install a package with `kctrl`.

Step 1 could be made more straightforward, without the need to reference the URL where the YAML manifests are published (found via lookup + copy/paste). Using `kubectl` to install kapp-controller leads to an additional step to check when the controller is actually deployed and ready (required before moving to step 2). Using `kapp` would solve that problem since it waits for it to be ready, but it means installing an additional tool.

In the context of onboarding people to Carvel, or when using Carvel to setup a demo/tutorial/workshop/training, the current experience could be improved and simplified (less cognitive load and less tools).

**Describe the solution you'd like**

I suggest extending the capabilities of the `kctrl` CLI so that it can be used to install kapp-controller. For example:

```shell
kctrl cluster init
```

The main goal is to improve the onboarding experience and for that no further arguments should be needed. But this could be further enhanced to provide additional capabilities for research or production-oriented scenarios. For example, the CLI could accept additional arguments to customise/configure the deployment. One example of that would be which version of kapp-controller to install.

```shell
kctrl cluster init --version 0.44.1
```

---
Vote on this request

This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.

👍 "I would like to see this addressed as soon as possible"
👎 "There are other more important things to focus on right now"

We are also happy to receive and review Pull Requests if you want to help working on this issue.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.