model

package
v3.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 27, 2020 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ImageStatusNew      = ImageStatus("new")
	ImageStatusUpdate   = ImageStatus("update")
	ImageStatusUnchange = ImageStatus("unchange")
)

Image status constants

Variables

This section is empty.

Functions

This section is empty.

Types

type App

type App struct {
	ID      string
	Name    string
	Desc    string
	URL     string
	Author  string
	Version string
}

App holds application details

type Cli

type Cli struct {
	Version   kong.VersionFlag
	Cfgfile   string `kong:"required,name='config',env='CONFIG',help='Diun configuration file.'"`
	Timezone  string `kong:"name='timezone',env='TZ',default='UTC',help='Timezone assigned to Diun.'"`
	LogLevel  string `kong:"name='log-level',env='LOG_LEVEL',default='info',help='Set log level.'"`
	LogJSON   bool   `kong:"name='log-json',env='LOG_JSON',default='false',help='Enable JSON logging output.'"`
	LogCaller bool   `kong:"name='log-caller',env='LOG_CALLER',default='false',help='Add file:line of the caller to log output.'"`
	TestNotif bool   `kong:"name='test-notif',default='false',help='Test notification settings.'"`
}

Cli holds command line args, flags and cmds

type Db

type Db struct {
	Path string `yaml:"path,omitempty"`
}

Db holds data necessary for database configuration

type Image

type Image struct {
	Name        string        `yaml:"name,omitempty" json:",omitempty"`
	Platform    ImagePlatform `yaml:"platform,omitempty" json:",omitempty"`
	RegOptsID   string        `yaml:"regopts_id,omitempty" json:",omitempty"`
	WatchRepo   bool          `yaml:"watch_repo,omitempty" json:",omitempty"`
	MaxTags     int           `yaml:"max_tags,omitempty" json:",omitempty"`
	IncludeTags []string      `yaml:"include_tags,omitempty" json:",omitempty"`
	ExcludeTags []string      `yaml:"exclude_tags,omitempty" json:",omitempty"`
}

Image holds image configuration

type ImagePlatform

type ImagePlatform struct {
	Os      string `yaml:"os,omitempty" json:",omitempty"`
	Arch    string `yaml:"arch,omitempty" json:",omitempty"`
	Variant string `yaml:"variant,omitempty" json:",omitempty"`
}

ImagePlatform holds image platform configuration

type ImageStatus

type ImageStatus string

ImageStatus holds Docker image status analysis

type Job

type Job struct {
	Provider   string
	Image      Image
	RegImage   registry.Image
	Registry   *registry.Client
	FirstCheck bool
}

Job holds job configuration

type Notif

type Notif struct {
	Amqp       *NotifAmqp       `yaml:"amqp,omitempty"`
	Gotify     *NotifGotify     `yaml:"gotify,omitempty"`
	Mail       *NotifMail       `yaml:"mail,omitempty"`
	RocketChat *NotifRocketChat `yaml:"rocketchat,omitempty"`
	Script     *NotifScript     `yaml:"script,omitempty"`
	Slack      *NotifSlack      `yaml:"slack,omitempty"`
	Teams      *NotifTeams      `yaml:"teams,omitempty"`
	Telegram   *NotifTelegram   `yaml:"telegram,omitempty"`
	Webhook    *NotifWebhook    `yaml:"webhook,omitempty"`
}

Notif holds data necessary for notification configuration

type NotifAmqp

type NotifAmqp struct {
	Username     string `yaml:"username,omitempty"`
	UsernameFile string `yaml:"username_file,omitempty"`
	Password     string `yaml:"password,omitempty"`
	PasswordFile string `yaml:"password_file,omitempty"`
	Host         string `yaml:"host,omitempty"`
	Port         int    `yaml:"port,omitempty"`
	Queue        string `yaml:"queue,omitempty"`
	Exchange     string `yaml:"exchange,omitempty"`
}

NotifAmqp holds amqp notification configuration details

type NotifEntry

type NotifEntry struct {
	Status   ImageStatus       `json:"status,omitempty"`
	Provider string            `json:"provider,omitempty"`
	Image    registry.Image    `json:"image,omitempty"`
	Manifest registry.Manifest `json:"manifest,omitempty"`
}

NotifEntry represents a notification entry

type NotifGotify

type NotifGotify struct {
	Endpoint string `yaml:"endpoint,omitempty"`
	Token    string `yaml:"token,omitempty"`
	Priority int    `yaml:"priority,omitempty"`
	Timeout  int    `yaml:"timeout,omitempty"`
}

NotifGotify holds gotify notification configuration details

type NotifMail

type NotifMail struct {
	Host               string `yaml:"host,omitempty"`
	Port               int    `yaml:"port,omitempty"`
	SSL                *bool  `yaml:"ssl,omitempty"`
	InsecureSkipVerify *bool  `yaml:"insecure_skip_verify,omitempty"`
	Username           string `yaml:"username,omitempty"`
	UsernameFile       string `yaml:"username_file,omitempty"`
	Password           string `yaml:"password,omitempty"`
	PasswordFile       string `yaml:"password_file,omitempty"`
	From               string `yaml:"from,omitempty"`
	To                 string `yaml:"to,omitempty"`
}

NotifMail holds mail notification configuration details

type NotifRocketChat

type NotifRocketChat struct {
	Endpoint string `yaml:"endpoint,omitempty"`
	Channel  string `yaml:"channel,omitempty"`
	UserID   string `yaml:"user_id,omitempty"`
	Token    string `yaml:"token,omitempty"`
	Timeout  int    `yaml:"timeout,omitempty"`
}

NotifRocketChat holds Rocket.Chat notification configuration details

type NotifScript

type NotifScript struct {
	Cmd  string   `yaml:"cmd,omitempty"`
	Args []string `yaml:"args,omitempty"`
	Dir  string   `yaml:"dir,omitempty"`
}

NotifScript holds script notification configuration details

type NotifSlack

type NotifSlack struct {
	WebhookURL string `yaml:"webhook_url,omitempty"`
}

NotifSlack holds slack notification configuration details

type NotifTeams

type NotifTeams struct {
	WebhookURL string `yaml:"webhook_url,omitempty"`
}

NotifTeams holds Teams notification configuration details

type NotifTelegram

type NotifTelegram struct {
	BotToken string  `yaml:"token,omitempty"`
	ChatIDs  []int64 `yaml:"chat_ids,omitempty"`
}

NotifTelegram holds Telegram notification configuration details

type NotifWebhook

type NotifWebhook struct {
	Endpoint string            `yaml:"endpoint,omitempty"`
	Method   string            `yaml:"method,omitempty"`
	Headers  map[string]string `yaml:"headers,omitempty"`
	Timeout  int               `yaml:"timeout,omitempty"`
}

NotifWebhook holds webhook notification configuration details

type PrdDocker

type PrdDocker struct {
	Endpoint       string `yaml:"endpoint,omitempty" json:",omitempty"`
	APIVersion     string `yaml:"api_version,omitempty" json:",omitempty"`
	TLSCertsPath   string `yaml:"tls_certs_path,omitempty" json:",omitempty"`
	TLSVerify      *bool  `yaml:"tls_verify,omitempty" json:",omitempty"`
	WatchByDefault *bool  `yaml:"watch_by_default,omitempty" json:",omitempty"`
	WatchStopped   *bool  `yaml:"watch_stopped,omitempty" json:",omitempty"`
}

PrdDocker holds docker provider configuration

type PrdFile

type PrdFile struct {
	Filename  string `yaml:"filename,omitempty" json:",omitempty"`
	Directory string `yaml:"directory,omitempty" json:",omitempty"`
}

PrdFile holds file provider configuration

type PrdSwarm

type PrdSwarm struct {
	Endpoint       string `yaml:"endpoint,omitempty" json:",omitempty"`
	APIVersion     string `yaml:"api_version,omitempty" json:",omitempty"`
	TLSCertsPath   string `yaml:"tls_certs_path,omitempty" json:",omitempty"`
	TLSVerify      *bool  `yaml:"tls_verify,omitempty" json:",omitempty"`
	WatchByDefault *bool  `yaml:"watch_by_default,omitempty" json:",omitempty"`
}

PrdSwarm holds swarm provider configuration

type Providers

type Providers struct {
	Docker *PrdDocker `yaml:"docker,omitempty" json:",omitempty"`
	Swarm  *PrdSwarm  `yaml:"swarm,omitempty" json:",omitempty"`
	File   *PrdFile   `yaml:"file,omitempty" json:",omitempty"`
}

Providers represents a provider configuration

type RegOpts

type RegOpts struct {
	Username     string `yaml:"username,omitempty" json:",omitempty"`
	UsernameFile string `yaml:"username_file,omitempty" json:",omitempty"`
	Password     string `yaml:"password,omitempty" json:",omitempty"`
	PasswordFile string `yaml:"password_file,omitempty" json:",omitempty"`
	InsecureTLS  bool   `yaml:"insecure_tls,omitempty" json:",omitempty"`
	Timeout      int    `yaml:"timeout,omitempty" json:",omitempty"`
}

RegOpts holds registry options configuration

type Watch

type Watch struct {
	Workers         int    `yaml:"workers,omitempty"`
	Schedule        string `yaml:"schedule,omitempty"`
	FirstCheckNotif *bool  `yaml:"first_check_notif,omitempty"`
}

Watch holds data necessary for watch configuration

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL