Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
ec247ca0
Commit
ec247ca0
authored
Dec 19, 2018
by
Jonathan Basseri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add godoc to pkg/util/configz.
Document the intended use of this package. In particular, document the fact that it is intended for ComponentConfig.
parent
7ce7a80c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
33 additions
and
1 deletion
+33
-1
.golint_failures
hack/.golint_failures
+0
-1
configz.go
pkg/util/configz/configz.go
+33
-0
No files found.
hack/.golint_failures
View file @
ec247ca0
...
...
@@ -359,7 +359,6 @@ pkg/serviceaccount
pkg/ssh
pkg/util/bandwidth
pkg/util/config
pkg/util/configz
pkg/util/ebtables
pkg/util/env
pkg/util/file
...
...
pkg/util/configz/configz.go
View file @
ec247ca0
...
...
@@ -14,6 +14,29 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
// Package configz serves ComponentConfig objects from running components.
//
// Each component that wants to serve its ComponentConfig creates a Config
// object, and the program should call InstallHandler once. e.g.,
// func main() {
// boatConfig := getBoatConfig()
// planeConfig := getPlaneConfig()
//
// bcz, err := configz.New("boat")
// if err != nil {
// panic(err)
// }
// bcz.Set(boatConfig)
//
// pcz, err := configz.New("plane")
// if err != nil {
// panic(err)
// }
// pcz.Set(planeConfig)
//
// configz.InstallHandler(http.DefaultServeMux)
// http.ListenAndServe(":8080", http.DefaultServeMux)
// }
package
configz
import
(
...
...
@@ -28,10 +51,14 @@ var (
configs
=
map
[
string
]
*
Config
{}
)
// Config is a handle to a ComponentConfig object. Don't create these directly;
// use New() instead.
type
Config
struct
{
val
interface
{}
}
// InstallHandler adds an HTTP handler on the given mux for the "/configz"
// endpoint which serves all registered ComponentConfigs in JSON format.
func
InstallHandler
(
m
mux
)
{
m
.
Handle
(
"/configz"
,
http
.
HandlerFunc
(
handle
))
}
...
...
@@ -40,6 +67,8 @@ type mux interface {
Handle
(
string
,
http
.
Handler
)
}
// New creates a Config object with the given name. Each Config is registered
// with this package's "/configz" handler.
func
New
(
name
string
)
(
*
Config
,
error
)
{
configsGuard
.
Lock
()
defer
configsGuard
.
Unlock
()
...
...
@@ -51,18 +80,22 @@ func New(name string) (*Config, error) {
return
&
newConfig
,
nil
}
// Delete removes the named ComponentConfig from this package's "/configz"
// handler.
func
Delete
(
name
string
)
{
configsGuard
.
Lock
()
defer
configsGuard
.
Unlock
()
delete
(
configs
,
name
)
}
// Set sets the ComponentConfig for this Config.
func
(
v
*
Config
)
Set
(
val
interface
{})
{
configsGuard
.
Lock
()
defer
configsGuard
.
Unlock
()
v
.
val
=
val
}
// MarshalJSON marshals the ComponentConfig as JSON data.
func
(
v
*
Config
)
MarshalJSON
()
([]
byte
,
error
)
{
return
json
.
Marshal
(
v
.
val
)
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment