mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-24 18:58:08 -07:00
app-containers/reg: drop 0.16.1
Signed-off-by: William Hubbs <williamh@gentoo.org>
This commit is contained in:
@@ -1,3 +1,2 @@
|
||||
DIST github.com-go-yaml-yaml-eb3733d160e7.tar.gz 64789 BLAKE2B a59db73ba751c932695913770550e115d46df28c4cff402325cf5324c97069e3acccb9faf39826a5da416f8c5b0cc69377cef41a6b1451afa82c7ae8bd620544 SHA512 9e34c34c907d1177e072eb5f3b421b8a3af0e68b490508691d745cdcf1145d9bcfd2592d909a4b05e7f12bfb62355d49861f6d2e1bd29b69cf026ef631965289
|
||||
DIST reg-0.16.1-deps.tar.xz 64969744 BLAKE2B 40cc07bc6b24660e945f0a20ea8a8de98e987c23fb44bfc2793ff808b7ef86b01956dbb17af70d13071ffa8ca1301409ca2ad350c73297263b7b24224f816642 SHA512 7c3c41c9b891118504b03c0996d2b6f50928e6f0d9300a2430574d4f39a810c2f8fa0f3d2c2405d4ef5a17509e84d2a19b040f89195885eacd7ae33c9ef67c50
|
||||
DIST reg-0.16.1.tar.gz 3163977 BLAKE2B b161200e7b96b26054e121853bafb4751865de1146f07fa48418a6624beeebd10eb8fcde1af90f9dd3c20ffd8d5807a106d012bf996944c96b5ff841b0079fb4 SHA512 77fbd543de6e94c504e98a0364895b19099e3cde55a85a4413730de58de8e84f50889fdcfaffa1c76ae412a603ed6d5f4b1d57566ec814cf88df70278e91aee6
|
||||
|
||||
@@ -1,254 +0,0 @@
|
||||
From 0ab86b565f437b9dede5d3a7cef56690d8d19bbb Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Manuel=20R=C3=BCger?= <manuel@rueg.eu>
|
||||
Date: Tue, 18 Sep 2018 15:42:24 +0200
|
||||
Subject: [PATCH 2/2] server: Read config from file
|
||||
|
||||
---
|
||||
README.md | 4 ++
|
||||
config.yml.example | 37 ++++++++++++++++
|
||||
server.go | 107 +++++++++++++++++++++++++++++++--------------
|
||||
3 files changed, 114 insertions(+), 34 deletions(-)
|
||||
create mode 100644 config.yml.example
|
||||
|
||||
diff --git a/README.md b/README.md
|
||||
index 3b1b661f..5e0f0175 100644
|
||||
--- a/README.md
|
||||
+++ b/README.md
|
||||
@@ -228,6 +228,7 @@ Flags:
|
||||
-u, --username username for the registry (default: <none>)
|
||||
--listen-address address to listen on (default: <none>)
|
||||
--asset-path Path to assets and templates (default: <none>)
|
||||
+ --config Path to config file (default: <none>)
|
||||
-f, --force-non-ssl force allow use of non-ssl (default: false)
|
||||
--once generate the templates once and then exit (default: false)
|
||||
--skip-ping skip pinging the registry while establishing connection (default: false)
|
||||
@@ -243,6 +244,9 @@ Flags:
|
||||
-p, --password password for the registry (default: <none>)
|
||||
```
|
||||
|
||||
+Alternatively you can provide configuration to `reg server` via a file passed to
|
||||
+`reg server` via as `--config`. See also config.yml.example in this repository.
|
||||
+
|
||||
**Screenshots:**
|
||||
|
||||

|
||||
diff --git a/config.yml.example b/config.yml.example
|
||||
new file mode 100644
|
||||
index 00000000..9d4be25f
|
||||
--- /dev/null
|
||||
+++ b/config.yml.example
|
||||
@@ -0,0 +1,37 @@
|
||||
+### Reg Server Settings
|
||||
+
|
||||
+## Path to server TLS certificate:
|
||||
+# cert:
|
||||
+## Path to server TLS key:
|
||||
+# key:
|
||||
+## Address to listen on:
|
||||
+# listen-address: 0.0.0.0
|
||||
+## Port to listen on:
|
||||
+# port: 8080
|
||||
+## Path Assets are stored under:
|
||||
+# asset-path: /var/lib/reg
|
||||
+## Generate static website and exit:
|
||||
+# once: false
|
||||
+## Refresh interval:
|
||||
+# interval: 1h0m0s
|
||||
+## Debug output
|
||||
+# debug: false
|
||||
+## Skip initial ping
|
||||
+# skip-ping: false
|
||||
+## Timeout
|
||||
+# timeout: 1m0s
|
||||
+
|
||||
+
|
||||
+### Registry and Clair Server Settings
|
||||
+## Registry Server:
|
||||
+# registry: r.j3ss.co
|
||||
+## Username to authenticate against registry server
|
||||
+# username:
|
||||
+## Password to authenticate against registry server
|
||||
+# password:
|
||||
+## If true, do not verify TLS certificates
|
||||
+# insecure: false
|
||||
+## Force allow use of non-TLS connections
|
||||
+# force-nonssl: false
|
||||
+## Clair Server:
|
||||
+# clair:
|
||||
diff --git a/server.go b/server.go
|
||||
index fcd4cd71..0c84d85d 100644
|
||||
--- a/server.go
|
||||
+++ b/server.go
|
||||
@@ -4,7 +4,9 @@ import (
|
||||
"context"
|
||||
"flag"
|
||||
"fmt"
|
||||
+ "gopkg.in/yaml.v2"
|
||||
"html/template"
|
||||
+ "io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
@@ -29,39 +31,76 @@ func (cmd *serverCommand) LongHelp() string { return serverHelp }
|
||||
func (cmd *serverCommand) Hidden() bool { return false }
|
||||
|
||||
func (cmd *serverCommand) Register(fs *flag.FlagSet) {
|
||||
- fs.DurationVar(&cmd.interval, "interval", time.Hour, "interval to generate new index.html's at")
|
||||
+ fs.DurationVar(&cmd.Interval, "interval", time.Hour, "interval to generate new index.html's at")
|
||||
|
||||
- fs.StringVar(&cmd.registryServer, "registry", "", "URL to the private registry (ex. r.j3ss.co)")
|
||||
- fs.StringVar(&cmd.registryServer, "r", "", "URL to the private registry (ex. r.j3ss.co)")
|
||||
+ fs.StringVar(&cmd.RegistryServer, "registry", "", "URL to the private registry (ex. r.j3ss.co)")
|
||||
+ fs.StringVar(&cmd.RegistryServer, "r", "", "URL to the private registry (ex. r.j3ss.co)")
|
||||
|
||||
- fs.StringVar(&cmd.clairServer, "clair", "", "url to clair instance")
|
||||
+ fs.StringVar(&cmd.ClairServer, "clair", "", "url to clair instance")
|
||||
|
||||
- fs.StringVar(&cmd.cert, "cert", "", "path to ssl cert")
|
||||
- fs.StringVar(&cmd.key, "key", "", "path to ssl key")
|
||||
- fs.StringVar(&cmd.listenAddress, "listen-address", "", "address to listen on")
|
||||
- fs.StringVar(&cmd.port, "port", "8080", "port for server to run on")
|
||||
- fs.StringVar(&cmd.assetPath, "asset-path", "", "Path to assets and templates")
|
||||
+ fs.StringVar(&cmd.Cert, "cert", "", "path to ssl cert")
|
||||
+ fs.StringVar(&cmd.Key, "key", "", "path to ssl key")
|
||||
+ fs.StringVar(&cmd.ListenAddress, "listen-address", "", "address to listen on")
|
||||
+ fs.StringVar(&cmd.Port, "port", "8080", "port for server to run on")
|
||||
|
||||
- fs.BoolVar(&cmd.generateAndExit, "once", false, "generate the templates once and then exit")
|
||||
+ fs.StringVar(&cmd.AssetPath, "asset-path", "", "Path to assets and templates")
|
||||
+ fs.StringVar(&cmd.configPath, "config", "", "Path to config file")
|
||||
+
|
||||
+ fs.BoolVar(&cmd.GenerateAndExit, "once", false, "generate the templates once and then exit")
|
||||
}
|
||||
|
||||
type serverCommand struct {
|
||||
- interval time.Duration
|
||||
- registryServer string
|
||||
- clairServer string
|
||||
-
|
||||
- generateAndExit bool
|
||||
-
|
||||
- cert string
|
||||
- key string
|
||||
- listenAddress string
|
||||
- port string
|
||||
- assetPath string
|
||||
+ Interval time.Duration `yaml:"interval"`
|
||||
+ RegistryServer string `yaml:"registry"`
|
||||
+ ClairServer string `yaml:"clair"`
|
||||
+ GenerateAndExit bool `yaml:"once"`
|
||||
+ Cert string `yaml:"cert"`
|
||||
+ Key string `yaml:"key"`
|
||||
+ ListenAddress string `yaml:"listen-address"`
|
||||
+ Port string `yaml:"port"`
|
||||
+ AssetPath string `yaml:"asset-path"`
|
||||
+ configPath string
|
||||
+
|
||||
+ Password string `yaml:"password"`
|
||||
+ Username string `yaml:"username"`
|
||||
+ Insecure bool `yaml:"insecure"`
|
||||
+ Debug bool `yaml:"debug"`
|
||||
+ SkipPing bool `yaml:"skip-ping"`
|
||||
+ ForceNonSSL bool `yaml:"force-nonssl"`
|
||||
+ Timeout time.Duration `yaml:"timeout"`
|
||||
}
|
||||
|
||||
func (cmd *serverCommand) Run(ctx context.Context, args []string) error {
|
||||
// Create the registry client.
|
||||
- r, err := createRegistryClient(ctx, cmd.registryServer)
|
||||
+ if len(cmd.configPath) > 0 {
|
||||
+ config, err := ioutil.ReadFile(cmd.configPath)
|
||||
+ if err != nil {
|
||||
+ return err
|
||||
+ }
|
||||
+ yaml.Unmarshal(config, cmd)
|
||||
+ if err != nil {
|
||||
+ return err
|
||||
+ }
|
||||
+ if len(cmd.Username) > 0 {
|
||||
+ username = cmd.Username
|
||||
+ }
|
||||
+ if len(cmd.Password) > 0 {
|
||||
+ password = cmd.Password
|
||||
+ }
|
||||
+ if cmd.Debug {
|
||||
+ debug = cmd.Debug
|
||||
+ }
|
||||
+ if cmd.Insecure {
|
||||
+ insecure = cmd.Insecure
|
||||
+ }
|
||||
+ if cmd.SkipPing {
|
||||
+ skipPing = cmd.SkipPing
|
||||
+ }
|
||||
+ if cmd.Timeout != 0 {
|
||||
+ timeout = cmd.Timeout
|
||||
+ }
|
||||
+ }
|
||||
+ r, err := createRegistryClient(ctx, cmd.RegistryServer)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -69,25 +108,25 @@ func (cmd *serverCommand) Run(ctx context.Context, args []string) error {
|
||||
// Create the registry controller for the handlers.
|
||||
rc := registryController{
|
||||
reg: r,
|
||||
- generateOnly: cmd.generateAndExit,
|
||||
+ generateOnly: cmd.GenerateAndExit,
|
||||
}
|
||||
|
||||
// Create a clair client if the user passed in a server address.
|
||||
- if len(cmd.clairServer) > 0 {
|
||||
- rc.cl, err = clair.New(cmd.clairServer, clair.Opt{
|
||||
+ if len(cmd.ClairServer) > 0 {
|
||||
+ rc.cl, err = clair.New(cmd.ClairServer, clair.Opt{
|
||||
Insecure: insecure,
|
||||
Debug: debug,
|
||||
Timeout: timeout,
|
||||
})
|
||||
if err != nil {
|
||||
- return fmt.Errorf("creation of clair client at %s failed: %v", cmd.clairServer, err)
|
||||
+ return fmt.Errorf("creation of clair client at %s failed: %v", cmd.ClairServer, err)
|
||||
}
|
||||
} else {
|
||||
rc.cl = nil
|
||||
}
|
||||
// Get the path to the asset directory.
|
||||
- assetDir := cmd.assetPath
|
||||
- if len(cmd.assetPath) <= 0 {
|
||||
+ assetDir := cmd.AssetPath
|
||||
+ if len(cmd.AssetPath) <= 0 {
|
||||
assetDir, err = os.Getwd()
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -131,12 +170,12 @@ func (cmd *serverCommand) Run(ctx context.Context, args []string) error {
|
||||
return fmt.Errorf("creating index failed: %v", err)
|
||||
}
|
||||
|
||||
- if cmd.generateAndExit {
|
||||
+ if cmd.GenerateAndExit {
|
||||
logrus.Info("output generated, exiting...")
|
||||
return nil
|
||||
}
|
||||
|
||||
- rc.interval = cmd.interval
|
||||
+ rc.interval = cmd.Interval
|
||||
ticker := time.NewTicker(rc.interval)
|
||||
go func() {
|
||||
// Create more indexes every X minutes based off interval.
|
||||
@@ -174,12 +213,12 @@ func (cmd *serverCommand) Run(ctx context.Context, args []string) error {
|
||||
|
||||
// Set up the server.
|
||||
server := &http.Server{
|
||||
- Addr: cmd.listenAddress + ":" + cmd.port,
|
||||
+ Addr: cmd.ListenAddress + ":" + cmd.Port,
|
||||
Handler: mux,
|
||||
}
|
||||
- logrus.Infof("Starting server on port %q", cmd.port)
|
||||
- if len(cmd.cert) > 0 && len(cmd.key) > 0 {
|
||||
- return server.ListenAndServeTLS(cmd.cert, cmd.key)
|
||||
+ logrus.Infof("Starting server on port %q", cmd.Port)
|
||||
+ if len(cmd.Cert) > 0 && len(cmd.Key) > 0 {
|
||||
+ return server.ListenAndServeTLS(cmd.Cert, cmd.Key)
|
||||
}
|
||||
return server.ListenAndServe()
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
EGO_VENDOR=( "gopkg.in/yaml.v2 eb3733d160e7 github.com/go-yaml/yaml" )
|
||||
|
||||
inherit golang-build golang-vcs-snapshot user
|
||||
|
||||
EGO_PN="github.com/genuinetools/reg"
|
||||
GIT_COMMIT="4203e559f331009df04a3ca47820989c6c43e138"
|
||||
ARCHIVE_URI="https://${EGO_PN}/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz
|
||||
${EGO_VENDOR_URI}"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
DESCRIPTION="Docker registry v2 command line client"
|
||||
HOMEPAGE="https://github.com/genuinetools/reg"
|
||||
SRC_URI="${ARCHIVE_URI}"
|
||||
LICENSE="MIT Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC"
|
||||
SLOT="0"
|
||||
IUSE=""
|
||||
|
||||
RESTRICT="test"
|
||||
|
||||
pkg_setup() {
|
||||
enewgroup reg
|
||||
enewuser reg -1 -1 /var/lib/reg reg
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
pushd src/${EGO_PN} || die
|
||||
eapply "${FILESDIR}"/reg-0.16.0-config.patch
|
||||
default
|
||||
popd || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export -n GOCACHE GOPATH XDG_CACHE_HOME
|
||||
pushd src/${EGO_PN} || die
|
||||
GO111MODULE=on go build -mod=vendor -v -ldflags "-X ${EGO_PN}/version.GITCOMMIT=${GIT_COMMIT} -X ${EGO_PN}/version.VERSION=${PV}" -o "${S}"/bin/reg . || die
|
||||
popd || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin bin/*
|
||||
dodoc src/${EGO_PN}/README.md
|
||||
insinto /var/lib/${PN}
|
||||
doins -r src/${EGO_PN}/server/*
|
||||
newinitd "${FILESDIR}"/reg.initd reg
|
||||
newconfd "${FILESDIR}"/reg.confd reg
|
||||
|
||||
keepdir /var/log/reg
|
||||
fowners -R reg:reg /var/log/reg /var/lib/reg/static
|
||||
}
|
||||
Reference in New Issue
Block a user