---
# System prepended metadata

title: Untitled

---

Support installing plugins with local filesystem

Issue: https://github.com/vmware-tanzu/tanzu-framework/issues/1264

Meeting: 02 Dec 2021
Attendees: Navid, Anuj, Rajas

Agenda: 

* Plugin artifacts split: core, admin and non admin plugins
* Installation source selection UX
* Flag UX

**Details:**


**Release Artifacts:**

**Darwin-amd64 bundle:**

1. tanzu-cli-darwin-amd64 (only the tanzu cli binary)
1. tanzu-cli-default-standalone-plugins-darwin-amd64.tar.gz (Check below for the sample content of the tarball)
1. tanzu-cli-admin-plugins-darwin-amd64.tar.gz

**Linux-amd64 bundle:**

1. tanzu-cli-linux-amd64 (only the tanzu cli binary)
1. tanzu-cli-default-standalone-plugins-linux-amd64.tar.gz
1. tanzu-cli-admin-plugins-linux-amd64.tar.gz

**Windows-amd64 bundle:**
1. tanzu-cli-windows-amd64.exe (only the tanzu cli binary)
1. tanzu-cli-default-standalone-plugins-linux-amd64.tar.gz
1. tanzu-cli-admin-plugins-linux-amd64.tar.gz

**Generating directory structure and content for darwin-amd64:**
NOTE: We already have a few make targets (`make publish-plugins-local`, `make publish-admin-plugins-local` etc ) to generate this directory structure based on the artifact directory. But we need to make them generic to support our usecases.

As part of PR https://github.com/vmware-tanzu/tanzu-framework/pull/1278,
I am adding the make target `publish-plugins-local-%` which can be used to generate below directory structure. Below are the steps:

1. Generate or download legacy tanzu-cli and plugins tarball [tanzu-framework-darwin-amd64.tar.gz](https://github.com/vmware-tanzu/tanzu-framework/releases/download/v0.12.0/tanzu-framework-darwin-amd64.tar.gz) and extract it to a location. `tar -xvf tanzu-framework-darwin-amd64.tar.gz -C /tmp/darwin-artifacts`
1. Use builder plugin or make target to generate the directory structure for publishing specific plugins.
    * For example to generate below directory structure which includes `login`, `management-cluster`, `package`, `pinniped-auth`, `secret` plugins, configure below env variables
        * ARTIFACTS_DIR="/tmp/darwin-artifacts"
        * PLUGINS="login management-cluster package pinniped-auth secret"
        * TANZU_PLUGIN_PUBLISH_PATH="/tmp/default-standalone-plugins/darwin-amd64"
    * To generate plugins with discovery name `standalone` and `darwin-amd64` as OS-ARCH run the below make target
        * `make publish-plugins-local-darwin-amd64-standalone`
    * Same way to publish admin plugins
        * `make publish-plugins-local-darwin-amd64-admin ARTIFACTS_DIR=path/to/admin/artifacts-dir PLUGINS="builder codegen test" TANZU_PLUGIN_PUBLISH_PATH=/tmp/admin-plugins/darwin-amd64`
1. Generate `tar.gz` files
    * Standalone plugins:
        * `tar -czvf standalone-plugins-darwin-amd64.tar.gz -C /tmp/default-standalone-plugins/darwin-amd64 .`
    * Admin plugins:
        * `tar -czvf admin-plugins-darwin-amd64.tar.gz -C /tmp/admin-plugins/darwin-amd64 .`


```
$ tree /tmp/tanzu-plugins/
/tmp/tanzu-plugins/
├── discovery
│   └── standalone
│       ├── login.yaml
│       ├── management-cluster.yaml
│       ├── package.yaml
│       ├── pinniped-auth.yaml
│       └── secret.yaml
└── distribution
    └── darwin
        └── amd64
            └── cli
                ├── login
                │   └── v0.13.0-dev
                │       └── tanzu-login-darwin_amd64
                ├── management-cluster
                │   └── v0.13.0-dev
                │       └── tanzu-management-cluster-darwin_amd64
                ├── package
                │   └── v0.13.0-dev
                │       └── tanzu-package-darwin_amd64
                ├── pinniped-auth
                │   └── v0.13.0-dev
                │       └── tanzu-pinniped-auth-darwin_amd64
                └── secret
                    └── v0.13.0-dev
                        └── tanzu-secret-darwin_amd64
```