mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-24 08:57:03 -05:00
d987ac6bf1
This PR implements a [Chef registry](https://chef.io/) to manage cookbooks. This package type was a bit complicated because Chef uses RSA signed requests as authentication with the registry. ![grafik](https://user-images.githubusercontent.com/1666336/213747995-46819fd8-c3d6-45a2-afd4-a4c3c8505a4a.png) ![grafik](https://user-images.githubusercontent.com/1666336/213748145-d01c9e81-d4dd-41e3-a3cc-8241862c3166.png) Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
96 lines
2.5 KiB
Markdown
96 lines
2.5 KiB
Markdown
---
|
|
date: "2023-01-20T00:00:00+00:00"
|
|
title: "Chef Packages Repository"
|
|
slug: "packages/chef"
|
|
draft: false
|
|
toc: false
|
|
menu:
|
|
sidebar:
|
|
parent: "packages"
|
|
name: "Chef"
|
|
weight: 5
|
|
identifier: "chef"
|
|
---
|
|
|
|
# Chef Packages Repository
|
|
|
|
Publish [Chef](https://chef.io/) cookbooks for your user or organization.
|
|
|
|
**Table of Contents**
|
|
|
|
{{< toc >}}
|
|
|
|
## 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. |
|