2023-02-06 09:49:21 +08:00
|
|
|
---
|
|
|
|
date: "2023-01-20T00:00:00+00:00"
|
2023-05-24 14:21:39 +08:00
|
|
|
title: "Chef Package Registry"
|
Refactor docs (#23752)
This was intended to be a small followup for
https://github.com/go-gitea/gitea/pull/23712, but...here we are.
1. Our docs currently use `slug` as the entire URL, which makes
refactoring tricky (see https://github.com/go-gitea/gitea/pull/23712).
Instead, this PR attempts to make future refactoring easier by using
slugs as an extension of the section. (Hugo terminology)
- What the above boils down to is this PR attempts to use directory
organization as URL management. e.g. `usage/comparison.en-us.md` ->
`en-us/usage/comparison/`, `usage/packages/overview.en-us.md` ->
`en-us/usage/packages/overview/`
- Technically we could even remove `slug`, as Hugo defaults to using
filename, however at least with this PR it means `slug` only needs to be
the name for the **current file** rather than an entire URL
2. This PR adds appropriate aliases (redirects) for pages, so anything
on the internet that links to our docs should hopefully not break.
3. A minor nit I've had for a while, renaming `seek-help` to `support`.
It's a minor thing, but `seek-help` has a strange connotation to it.
4. The commits are split such that you can review the first which is the
"actual" change, and the second is added redirects so that the first
doesn't break links elsewhere.
---------
Signed-off-by: jolheiser <john.olheiser@gmail.com>
2023-04-28 11:33:41 +08:00
|
|
|
slug: "chef"
|
2023-07-26 10:00:14 +08:00
|
|
|
sidebar_position: 5
|
2023-02-06 09:49:21 +08:00
|
|
|
draft: false
|
|
|
|
toc: false
|
|
|
|
menu:
|
|
|
|
sidebar:
|
|
|
|
parent: "packages"
|
|
|
|
name: "Chef"
|
2023-07-26 10:00:14 +08:00
|
|
|
sidebar_position: 5
|
2023-02-06 09:49:21 +08:00
|
|
|
identifier: "chef"
|
|
|
|
---
|
|
|
|
|
2023-05-24 14:21:39 +08:00
|
|
|
# Chef Package Registry
|
2023-02-06 09:49:21 +08:00
|
|
|
|
|
|
|
Publish [Chef](https://chef.io/) cookbooks for your user or organization.
|
|
|
|
|
|
|
|
## Requirements
|
|
|
|
|
|
|
|
To work with the Chef package registry, you have to use [`knife`](https://docs.chef.io/workstation/knife/).
|
|
|
|
|
|
|
|
## Authentication
|
|
|
|
|
|
|
|
The Chef package registry does not use an username:password authentication but signed requests with a private:public key pair.
|
|
|
|
Visit the package owner settings page to create the necessary key pair.
|
|
|
|
Only the public key is stored inside Gitea. if you loose access to the private key you must re-generate the key pair.
|
|
|
|
[Configure `knife`](https://docs.chef.io/workstation/knife_setup/) to use the downloaded private key with your Gitea username as `client_name`.
|
|
|
|
|
|
|
|
## Configure the package registry
|
|
|
|
|
|
|
|
To [configure `knife`](https://docs.chef.io/workstation/knife_setup/) to use the Gitea package registry add the url to the `~/.chef/config.rb` file.
|
|
|
|
|
|
|
|
```
|
|
|
|
knife[:supermarket_site] = 'https://gitea.example.com/api/packages/{owner}/chef'
|
|
|
|
```
|
|
|
|
|
|
|
|
| Parameter | Description |
|
|
|
|
| --------- | ----------- |
|
|
|
|
| `owner` | The owner of the package. |
|
|
|
|
|
|
|
|
## Publish a package
|
|
|
|
|
|
|
|
To publish a Chef package execute the following command:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
knife supermarket share {package_name}
|
|
|
|
```
|
|
|
|
|
|
|
|
| Parameter | Description |
|
|
|
|
| -------------- | ----------- |
|
|
|
|
| `package_name` | The package name. |
|
|
|
|
|
|
|
|
You cannot publish a package if a package of the same name and version already exists. You must delete the existing package first.
|
|
|
|
|
|
|
|
## Install a package
|
|
|
|
|
|
|
|
To install a package from the package registry, execute the following command:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
knife supermarket install {package_name}
|
|
|
|
```
|
|
|
|
|
|
|
|
Optional you can specify the package version:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
knife supermarket install {package_name} {package_version}
|
|
|
|
```
|
|
|
|
|
|
|
|
| Parameter | Description |
|
|
|
|
| ----------------- | ----------- |
|
|
|
|
| `package_name` | The package name. |
|
|
|
|
| `package_version` | The package version. |
|
|
|
|
|
|
|
|
## Delete a package
|
|
|
|
|
|
|
|
If you want to remove a package from the registry, execute the following command:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
knife supermarket unshare {package_name}
|
|
|
|
```
|
|
|
|
|
|
|
|
Optional you can specify the package version:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
knife supermarket unshare {package_name}/versions/{package_version}
|
|
|
|
```
|
|
|
|
|
|
|
|
| Parameter | Description |
|
|
|
|
| ----------------- | ----------- |
|
|
|
|
| `package_name` | The package name. |
|
|
|
|
| `package_version` | The package version. |
|