Skip to content

Commit

Permalink
Update docs with pkg repository
Browse files Browse the repository at this point in the history
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
  • Loading branch information
antgamdia committed May 30, 2022
1 parent 8b146af commit 0d4c55d
Show file tree
Hide file tree
Showing 16 changed files with 64 additions and 64 deletions.
2 changes: 1 addition & 1 deletion chart/kubeapps/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -900,7 +900,7 @@ Yes! Follow the [offline installation documentation](https://github.com/vmware-t

### Does Kubeapps support private repositories?

Of course! Have a look at the [private app repositories documentation](https://github.com/vmware-tanzu/kubeapps/blob/main/site/content/docs/latest/howto/private-app-repository.md) to learn how to configure a private repository in Kubeapps.
Of course! Have a look at the [private package repositories documentation](https://github.com/vmware-tanzu/kubeapps/blob/main/site/content/docs/latest/howto/private-app-repository.md) to learn how to configure a private repository in Kubeapps.

### Is there any API documentation?

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ it("should hide the all-namespace switch if the user doesn't have permissions",
expect(wrapper.find("input[type='checkbox']")).not.toExist();
});

// TODO: Remove this test when app repos are supported in different clusters
// TODO: Remove this test when package repos are supported in different clusters
it("shows a warning if the cluster is not the default one", () => {
const wrapper = mountWrapper(
getStore({
Expand Down
10 changes: 5 additions & 5 deletions site/content/docs/latest/howto/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# How-to guides

How-to guides can be thought of as recipes, directions that guide the reader through the steps to achieve a specific end. They'll help you achieve an end result but may require you to understand and adapt the steps to fit your specific requirements. Here you'll find short answers to "How do I...?" types of questions.
How-to guides can be thought of as directions that guide the reader through the steps to achieve a specific end. They'll help you achieve an end result but may require you to understand and adapt the steps to fit your specific requirements. Here you'll find short answers to "How do I...?" types of questions.

| How-to-guides | Get stuff done |
| -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
Expand All @@ -11,12 +11,12 @@ How-to guides can be thought of as recipes, directions that guide the reader thr
| [Dashboard](./dashboard.md) | Manage and deploy applications in your cluster by using Kubeapps dashboard. |
| [Multi-cluster Support](./deploying-to-multiple-clusters.md) | Configure Kubeapps to target other clusters when deploying a package, in addition to the cluster on which Kubeapps is itself deployed. |
| [Offline Installation](./offline-installation.md) | Install Kubeapps in an offline environment (without Internet connection) |
| [Private App Repository](./private-app-repository.md) | Configure Kubeapps to use a private app repository. |
| [Syncing App Repositories](./syncing-apprepository-webhook.md) | Change default configuration for scheduling the syncing process of the App Repositories (globally or specific for a given App Repository) |
| [Private Package Repository](./private-app-repository.md) | Configure Kubeapps to use a private package repository. |
| [Syncing Package Repositories](./syncing-apprepository-webhook.md) | Change default configuration for scheduling the syncing process of the Package Repositories (globally or specific for a given Package Repository) |
| [Using an OIDC provider with Pinniped](./OIDC/using-an-OIDC-provider-with-pinniped.md) | Install and configure Pinniped in your cluster to trust your identity provider and configure Kubeapps to proxy requests via Pinniped. |

Alternatively, our [Tutorials section](../tutorials/README.md) contain step-by-step tutorials to help outline what Kubeapps is capable of while helping you achieve specific aims, such as installing Kubeapps or using an OIDC provider.
Alternatively, our [Tutorials section](../tutorials/README.md) contains step-by-step tutorials to help outline what Kubeapps is capable of while helping you achieve specific aims, such as installing Kubeapps or using an OIDC provider.

Take a look at our [Reference section](../reference/README.md) when you need to know design decisions, what functions the API supports, detailed developer guides, etc.

Finally, for a better understanding of Kubeapps architecture, our [Background section](../background/README.md) enable you to expand your knowledge.
Finally, for a better understanding of Kubeapps architecture, our [Background section](../background/README.md) enables you to expand your knowledge.
10 changes: 5 additions & 5 deletions site/content/docs/latest/howto/access-control.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ kubectl create -n default rolebinding example-view \
--serviceaccount default:example
```

This role should be enough to explore and discover the applications running in your cluster. It's certainly not enough for deploying new apps or managing app repositories.
This role should be enough to explore and discover the applications running in your cluster. It's certainly not enough for deploying new apps or managing package repositories.

#### Write access to Applications within a namespace

Expand All @@ -72,9 +72,9 @@ kubectl create -n default rolebinding example-edit \

With the `edit` role, a user will be able to deploy and manage most of the applications available but it will still not be able to create new application repositories.

### App Repositories
### Package Repositories

In order to manage Kubeapps app repositories, the `apprepositories-write` ClusterRole in the namespace Kubeapps is installed in is required. This cluster role include permissions to manage Kubernetes secrets in the namespace is installed (in order to manage app repository credentials) so treat it carefully:
In order to manage Kubeapps package repositories, the `apprepositories-write` ClusterRole in the namespace Kubeapps is installed in is required. This cluster role include permissions to manage Kubernetes secrets in the namespace is installed (in order to manage package repository credentials) so treat it carefully:

```bash
export KUBEAPPS_NAMESPACE=kubeapps
Expand All @@ -83,9 +83,9 @@ kubectl create -n ${KUBEAPPS_NAMESPACE} rolebinding example-kubeapps-repositorie
--serviceaccount default:example
```

> Note: There is also a cluster-role for just allowing people to read app repositories: `kubeapps:${KUBEAPPS_NAMESPACE}:apprepositories-read`.
> Note: There is also a cluster-role for just allowing people to read package repositories: `kubeapps:${KUBEAPPS_NAMESPACE}:apprepositories-read`.
The above command allows people to create app repositories in the Kubeapps namespace, these are called "Global Repositories" since they will be available in any namespace Kubeapps is available. On the other hand, it's also possible to create "Namespaced Repositories" that will be available just in a single namespace. For doing so, users need to have permissions to create app repositories in those namespaces. Read the next section to know how to create those roles.
The above command allows people to create package repositories in the Kubeapps namespace, these are called "Global Repositories" since they will be available in any namespace Kubeapps is available. On the other hand, it's also possible to create "Namespaced Repositories" that will be available just in a single namespace. For doing so, users need to have permissions to create package repositories in those namespaces. Read the next section to know how to create those roles.

### Assigning roles across multiple namespaces

Expand Down
4 changes: 2 additions & 2 deletions site/content/docs/latest/howto/dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ You can remove any of the applications from your cluster by clicking the "Delete

### Add more chart repositories

By default, Kubeapps comes with the Bitnami repository enabled. You can see the list of enabled chart repositories in the "App Repositories" page under the menu:
By default, Kubeapps comes with the Bitnami repository enabled. You can see the list of enabled chart repositories in the "Package Repositories" page under the menu:

![Repositories List](../img/dashboard-repos.png)

Add new repositories (for example, your organization's chart repository) by clicking the "Add App Repository" button. Fill the "Add Repository" form using the repository info. For a detailed guide of how to add app repositories, check [this guide](./private-app-repository.md).
Add new repositories (for example, your organization's chart repository) by clicking the "Add Package Repository" button. Fill the "Add Repository" form using the repository info. For a detailed guide of how to add package repositories, check [this guide](./private-app-repository.md).

![Adding repository](../img/dashboard-add-repo.png)
6 changes: 3 additions & 3 deletions site/content/docs/latest/howto/offline-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Since the version 1.10.1 of Kubeapps (Chart version 3.7.0), it's possible to suc

- Pre-download the Kubeapps chart.
- Mirror Kubeapps images so they are accessible within the cluster.
- [Optional] Have one or more offline App Repositories.
- [Optional] Have one or more offline Package Repositories.

## 1. Download the Kubeapps chart

Expand Down Expand Up @@ -46,9 +46,9 @@ docker push REPO_URL/bitnami/nginx:1.19.2-debian-10-r32

You will need to follow a similar process for every image present in the values file.

## 3. [Optional] Prepare an offline App Repository
## 3. [Optional] Prepare an offline Package Repository

By default, Kubeapps install the `bitnami` App Repository. Since, in order to sync that repository, it's necessary to have Internet connection, you will need to mirror it or create your own repository (e.g. using Harbor) and configure it when installing Kubeapps.
By default, Kubeapps install the `bitnami` Package Repository. Since, in order to sync that repository, it's necessary to have Internet connection, you will need to mirror it or create your own repository (e.g. using Harbor) and configure it when installing Kubeapps.

For more information about how to create a private repository, follow this [guide](./private-app-repository.md).

Expand Down
22 changes: 11 additions & 11 deletions site/content/docs/latest/howto/private-app-repository.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,20 @@ It is possible to use a private Helm repository to store your own Helm charts an

But first, a note about Kubeapps AppRepository resources:

## Per Namespace App Repositories
## Per Namespace Package Repositories

Previously, once an App Repository was created in Kubeapps, the charts indexed by that repository were then available cluster-wide to all Kubeapps users. This was changed in Kubeapps 1.10 to allow creating App Repositories that are available only in specific namespaces, which is more inline with the Kubernetes RBAC model where an account can have roles in specific namespaces. This change also enables Kubeapps to support deploying charts with images from private docker registries (more below).
Previously, once an Package Repository was created in Kubeapps, the charts indexed by that repository were then available cluster-wide to all Kubeapps users. This was changed in Kubeapps 1.10 to allow creating Package Repositories that are available only in specific namespaces, which is more inline with the Kubernetes RBAC model where an account can have roles in specific namespaces. This change also enables Kubeapps to support deploying charts with images from private docker registries (more below).

A Kubeapps AppRepository can be created by anyone with the required RBAC for that namespace. If you have cluster-wide RBAC for creating AppRepositories, you can still create an App Repository whose charts will be available to users in all namespaces by selecting "All Namespaces" when creating the repository.
A Kubeapps AppRepository can be created by anyone with the required RBAC for that namespace. If you have cluster-wide RBAC for creating AppRepositories, you can still create an Package Repository whose charts will be available to users in all namespaces by selecting "All Namespaces" when creating the repository.

To give a specific user `USERNAME` the ability to create App Repositories in a specific namespace named `custom-namespace`, grant them both read and write RBAC for AppRepositories in that namespace:
To give a specific user `USERNAME` the ability to create Package Repositories in a specific namespace named `custom-namespace`, grant them both read and write RBAC for AppRepositories in that namespace:

```bash
kubectl -n custom-namespace create rolebinding username-apprepositories-read --user $USERNAME --clusterrole kubeapps:$KUBEAPPS_NAMESPACE:apprepositories-read
kubectl -n custom-namespace create rolebinding username-apprepositories-write --user $USERNAME --clusterrole kubeapps:$KUBEAPPS_NAMESPACE:apprepositories-write
```

or to allow other users the ability to deploy charts from App Repositories in a specific namespace, grant the read access only.
or to allow other users the ability to deploy charts from Package Repositories in a specific namespace, grant the read access only.

## Associating docker image pull secrets to an AppRepository

Expand Down Expand Up @@ -100,9 +100,9 @@ curl --data-binary "@my-chart-1.0.0.tgz" http://localhost:8080/api/charts

### ChartMuseum: Configure the repository in Kubeapps

To add your private repository to Kubeapps, select the Kubernetes namespace to which you want to add the repository (or "All Namespaces" if you want it available to users in all namespaces), go to `Configuration > App Repositories` and click on "Add App Repository". You will need to add your repository using the Kubernetes DNS name for the ChartMuseum service. This will be `<release_name>-chartmuseum.<namespace>:8080`:
To add your private repository to Kubeapps, select the Kubernetes namespace to which you want to add the repository (or "All Namespaces" if you want it available to users in all namespaces), go to `Configuration > Package Repositories` and click on "Add Package Repository". You will need to add your repository using the Kubernetes DNS name for the ChartMuseum service. This will be `<release_name>-chartmuseum.<namespace>:8080`:

![ChartMuseum App Repository](../img/chartmuseum-repository.png)
![ChartMuseum Package Repository](../img/chartmuseum-repository.png)

Once you create the repository you can click on the link for the specific repository and you will be able to deploy your own applications using Kubeapps.

Expand Down Expand Up @@ -174,7 +174,7 @@ Please refer to ['Manage Helm Charts in Harbor'](https://goharbor.io/docs/2.5.0/

### Harbor: Configure the repository in Kubeapps

To add Harbor as the private chart repository in Kubeapps, select the Kubernetes namespace to which you want to add the repository (or "All Namespaces" if you want it available to users in all namespaces), go to `Configuration > App Repositories` and click on "Add App Repository" and use the Harbor helm repository URL `http://harbor.default.svc.cluster.local/chartrepo/my-helm-repo`
To add Harbor as the private chart repository in Kubeapps, select the Kubernetes namespace to which you want to add the repository (or "All Namespaces" if you want it available to users in all namespaces), go to `Configuration > Package Repositories` and click on "Add Package Repository" and use the Harbor helm repository URL `http://harbor.default.svc.cluster.local/chartrepo/my-helm-repo`

Once you create the repository you can click on the link for the specific repository and you will be able to deploy your own applications using Kubeapps.

Expand All @@ -183,7 +183,7 @@ Once you create the repository you can click on the link for the specific reposi
It is possible to configure Harbor to use HTTP basic authentication:

- When creating a new project for serving as the helm chart repository in Harbor, set the `Access Level` of the project to non public. This enforces authentication to access the charts in the chart repository via Helm CLI or other clients.
- When `Adding App Repository` in Kubeapps, select `Basic Auth` for `Authorization` and specify the username and password for Harbor.
- When `Adding Package Repository` in Kubeapps, select `Basic Auth` for `Authorization` and specify the username and password for Harbor.

## OCI Registry

Expand All @@ -210,7 +210,7 @@ JFrog Artifactory is a Repository Manager supporting all major packaging formats

> **Note**: In order to use the Helm repository feature, it's necessary to use an Artifactory Pro account.
To install Artifactory with Kubeapps first add the JFrog repository to Kubeapps. Go to `Configuration > App Repositories` and add their repository:
To install Artifactory with Kubeapps first add the JFrog repository to Kubeapps. Go to `Configuration > Package Repositories` and add their repository:

![JFrog repository](../img/jfrog-repository.png)

Expand Down Expand Up @@ -245,7 +245,7 @@ curl -u{USER}:{PASSWORD} -XPOST "http://{REPO_URL}/artifactory/api/security/toke
}
```

The above command creates a token with read-only permissions. Now you can select the namespace to which you want to add the repository (or "All Namespaces" if you want it available to users in all namespaces), go to the `Configuration > App Repositories` menu and add your personal repository:
The above command creates a token with read-only permissions. Now you can select the namespace to which you want to add the repository (or "All Namespaces" if you want it available to users in all namespaces), go to the `Configuration > Package Repositories` menu and add your personal repository:

![JFrog custom repository](../img/jfrog-custom-repo.png)

Expand Down
Loading

0 comments on commit 0d4c55d

Please sign in to comment.