File: types.go

package info (click to toggle)
golang-github-openshift-api 4.0%2Bgit20190508.81d064c-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 14,040 kB
  • sloc: sh: 171; makefile: 32
file content (75 lines) | stat: -rw-r--r-- 3,532 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package v1

import (
	configv1 "github.com/openshift/api/config/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

// WebConsoleConfiguration holds the necessary configuration options for serving the web console
type WebConsoleConfiguration struct {
	metav1.TypeMeta `json:",inline"`

	// ServingInfo is the HTTP serving information for these assets
	ServingInfo configv1.HTTPServingInfo `json:"servingInfo"`

	// ClusterInfo holds information the web console needs to talk to the cluster such as master public URL
	// and metrics public URL
	ClusterInfo ClusterInfo `json:"clusterInfo"`

	// Features define various feature gates for the web console
	Features FeaturesConfiguration `json:"features"`

	// Extensions define custom scripts, stylesheets, and properties used for web console customization
	Extensions ExtensionsConfiguration `json:"extensions"`
}

// ClusterInfo holds information the web console needs to talk to the cluster such as master public URL and
// metrics public URL
type ClusterInfo struct {
	// ConsolePublicURL is where you can find the web console server (TODO do we really need this?)
	ConsolePublicURL string `json:"consolePublicURL"`

	// MasterPublicURL is how the web console can access the OpenShift v1 server
	MasterPublicURL string `json:"masterPublicURL"`

	// LoggingPublicURL is the public endpoint for logging (optional)
	LoggingPublicURL string `json:"loggingPublicURL"`

	// MetricsPublicURL is the public endpoint for metrics (optional)
	MetricsPublicURL string `json:"metricsPublicURL"`

	// LogoutPublicURL is an optional, absolute URL to redirect web browsers to after logging out of the web
	// console. If not specified, the built-in logout page is shown.
	LogoutPublicURL string `json:"logoutPublicURL"`

	// AdminConsolePublicURL is an optional, public URL of the OpenShift admin console. If specified, the web
	// console will add a link to the admin console in a context selector in its masthead.
	AdminConsolePublicURL string `json:"adminConsolePublicURL"`
}

// FeaturesConfiguration defines various feature gates for the web console
type FeaturesConfiguration struct {
	// InactivityTimeoutMinutes is the number of minutes of inactivity before you are automatically logged out of
	// the web console (optional). If set to 0, inactivity timeout is disabled.
	InactivityTimeoutMinutes int64 `json:"inactivityTimeoutMinutes"`

	// ClusterResourceOverridesEnabled indicates that the cluster is configured for overcommit. When set to
	// true, the web console will hide the CPU request, CPU limit, and memory request fields in its editors
	// and skip validation on those fields. The memory limit field will still be displayed.
	ClusterResourceOverridesEnabled bool `json:"clusterResourceOverridesEnabled"`
}

// ExtensionsConfiguration holds custom script, stylesheets, and properties used for web console customization
type ExtensionsConfiguration struct {
	// ScriptURLs are URLs to load as scripts when the Web Console loads. The URLs must be accessible from
	// the browser.
	ScriptURLs []string `json:"scriptURLs"`
	// StylesheetURLs are URLs to load as stylesheets when the Web Console loads. The URLs must be accessible
	// from the browser.
	StylesheetURLs []string `json:"stylesheetURLs"`
	// Properties are key(string) and value(string) pairs that will be injected into the console under the
	// global variable OPENSHIFT_EXTENSION_PROPERTIES
	Properties map[string]string `json:"properties"`
}