Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
a398ce82f7 | ||
|
e814b37839 | ||
|
cb4d9e81a4 | ||
|
b87a4628e6 | ||
|
b22fdd5ac9 | ||
|
6939fc2ddc | ||
|
e3117269cb | ||
|
3bb3a683a4 | ||
|
e1033c979e | ||
|
9a4d24826f | ||
|
7bed1307e1 | ||
|
47b536532d |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
*.swp
|
*.swp
|
||||||
bin/
|
bin/
|
||||||
|
coverage/
|
||||||
pkg/
|
pkg/
|
||||||
|
37
Documentation/cloud-config-oem.md
Normal file
37
Documentation/cloud-config-oem.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
## OEM configuration
|
||||||
|
|
||||||
|
The `coreos.oem.*` parameters follow the [os-release spec][os-release], but have been repurposed as a way for coreos-cloudinit to know about the OEM partition on this machine. Customizing this section is only needed when generating a new OEM of CoreOS from the SDK. The fields include:
|
||||||
|
|
||||||
|
- **id**: Lowercase string identifying the OEM
|
||||||
|
- **name**: Human-friendly string representing the OEM
|
||||||
|
- **version-id**: Lowercase string identifying the version of the OEM
|
||||||
|
- **home-url**: Link to the homepage of the provider or OEM
|
||||||
|
- **bug-report-url**: Link to a place to file bug reports about this OEM
|
||||||
|
|
||||||
|
coreos-cloudinit renders these fields to `/etc/oem-release`.
|
||||||
|
If no **id** field is provided, coreos-cloudinit will ignore this section.
|
||||||
|
|
||||||
|
For example, the following cloud-config document...
|
||||||
|
|
||||||
|
```
|
||||||
|
#cloud-config
|
||||||
|
coreos:
|
||||||
|
oem:
|
||||||
|
id: rackspace
|
||||||
|
name: Rackspace Cloud Servers
|
||||||
|
version-id: 168.0.0
|
||||||
|
home-url: https://www.rackspace.com/cloud/servers/
|
||||||
|
bug-report-url: https://github.com/coreos/coreos-overlay
|
||||||
|
```
|
||||||
|
|
||||||
|
...would be rendered to the following `/etc/oem-release`:
|
||||||
|
|
||||||
|
```
|
||||||
|
ID=rackspace
|
||||||
|
NAME="Rackspace Cloud Servers"
|
||||||
|
VERSION_ID=168.0.0
|
||||||
|
HOME_URL="https://www.rackspace.com/cloud/servers/"
|
||||||
|
BUG_REPORT_URL="https://github.com/coreos/coreos-overlay"
|
||||||
|
```
|
||||||
|
|
||||||
|
[os-release]: http://www.freedesktop.org/software/systemd/man/os-release.html
|
@@ -87,44 +87,6 @@ coreos:
|
|||||||
reboot-strategy: etcd-lock
|
reboot-strategy: etcd-lock
|
||||||
```
|
```
|
||||||
|
|
||||||
#### oem
|
|
||||||
|
|
||||||
The `coreos.oem.*` parameters follow the [os-release spec][os-release], but have been repurposed as a way for coreos-cloudinit to know about the OEM partition on this machine:
|
|
||||||
|
|
||||||
- **id**: Lowercase string identifying the OEM
|
|
||||||
- **name**: Human-friendly string representing the OEM
|
|
||||||
- **version-id**: Lowercase string identifying the version of the OEM
|
|
||||||
- **home-url**: Link to the homepage of the provider or OEM
|
|
||||||
- **bug-report-url**: Link to a place to file bug reports about this OEM
|
|
||||||
|
|
||||||
coreos-cloudinit renders these fields to `/etc/oem-release`.
|
|
||||||
If no **id** field is provided, coreos-cloudinit will ignore this section.
|
|
||||||
|
|
||||||
For example, the following cloud-config document...
|
|
||||||
|
|
||||||
```
|
|
||||||
#cloud-config
|
|
||||||
coreos:
|
|
||||||
oem:
|
|
||||||
id: rackspace
|
|
||||||
name: Rackspace Cloud Servers
|
|
||||||
version-id: 168.0.0
|
|
||||||
home-url: https://www.rackspace.com/cloud/servers/
|
|
||||||
bug-report-url: https://github.com/coreos/coreos-overlay
|
|
||||||
```
|
|
||||||
|
|
||||||
...would be rendered to the following `/etc/oem-release`:
|
|
||||||
|
|
||||||
```
|
|
||||||
ID=rackspace
|
|
||||||
NAME="Rackspace Cloud Servers"
|
|
||||||
VERSION_ID=168.0.0
|
|
||||||
HOME_URL="https://www.rackspace.com/cloud/servers/"
|
|
||||||
BUG_REPORT_URL="https://github.com/coreos/coreos-overlay"
|
|
||||||
```
|
|
||||||
|
|
||||||
[os-release]: http://www.freedesktop.org/software/systemd/man/os-release.html
|
|
||||||
|
|
||||||
#### units
|
#### units
|
||||||
|
|
||||||
The `coreos.units.*` parameters define a list of arbitrary systemd units to start. Each item is an object with the following fields:
|
The `coreos.units.*` parameters define a list of arbitrary systemd units to start. Each item is an object with the following fields:
|
||||||
|
5
build
5
build
@@ -1,6 +1,9 @@
|
|||||||
#!/bin/bash -e
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
ORG_PATH="github.com/coreos"
|
||||||
|
REPO_PATH="${ORG_PATH}/coreos-cloudinit"
|
||||||
|
|
||||||
export GOBIN=${PWD}/bin
|
export GOBIN=${PWD}/bin
|
||||||
export GOPATH=${PWD}
|
export GOPATH=${PWD}
|
||||||
|
|
||||||
go build -o bin/coreos-cloudinit github.com/coreos/coreos-cloudinit
|
go build -o bin/coreos-cloudinit ${REPO_PATH}
|
||||||
|
@@ -11,7 +11,7 @@ import (
|
|||||||
"github.com/coreos/coreos-cloudinit/system"
|
"github.com/coreos/coreos-cloudinit/system"
|
||||||
)
|
)
|
||||||
|
|
||||||
const version = "0.6.0"
|
const version = "0.6.1"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var printVersion bool
|
var printVersion bool
|
||||||
@@ -42,11 +42,6 @@ func main() {
|
|||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
if file != "" && url != "" && !useProcCmdline {
|
|
||||||
fmt.Println("Provide one of --from-file, --from-url or --from-proc-cmdline")
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
var ds datasource.Datasource
|
var ds datasource.Datasource
|
||||||
if file != "" {
|
if file != "" {
|
||||||
ds = datasource.NewLocalFile(file)
|
ds = datasource.NewLocalFile(file)
|
||||||
|
27
cover
Executable file
27
cover
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/bash -e
|
||||||
|
#
|
||||||
|
# Generate coverage HTML for a package
|
||||||
|
# e.g. PKG=./initialize ./cover
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ -z "$PKG" ]; then
|
||||||
|
echo "cover only works with a single package, sorry"
|
||||||
|
exit 255
|
||||||
|
fi
|
||||||
|
|
||||||
|
COVEROUT="coverage"
|
||||||
|
|
||||||
|
if ! [ -d "$COVEROUT" ]; then
|
||||||
|
mkdir "$COVEROUT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# strip out slashes and dots
|
||||||
|
COVERPKG=${PKG//\//}
|
||||||
|
COVERPKG=${COVERPKG//./}
|
||||||
|
|
||||||
|
# generate arg for "go test"
|
||||||
|
export COVER="-coverprofile ${COVEROUT}/${COVERPKG}.out"
|
||||||
|
|
||||||
|
source ./test
|
||||||
|
|
||||||
|
go tool cover -html=${COVEROUT}/${COVERPKG}.out
|
@@ -20,6 +20,9 @@ func addStrategy(strategy string, root string) error {
|
|||||||
etcUpdate := path.Join(root, "etc", "coreos", "update.conf")
|
etcUpdate := path.Join(root, "etc", "coreos", "update.conf")
|
||||||
usrUpdate := path.Join(root, "usr", "share", "coreos", "update.conf")
|
usrUpdate := path.Join(root, "usr", "share", "coreos", "update.conf")
|
||||||
|
|
||||||
|
// Ensure /etc/coreos/ exists before attempting to write a file in it
|
||||||
|
os.MkdirAll(path.Join(root, "etc", "coreos"), 0755)
|
||||||
|
|
||||||
tmp, err := ioutil.TempFile(path.Join(root, "etc", "coreos"), ".update.conf")
|
tmp, err := ioutil.TempFile(path.Join(root, "etc", "coreos"), ".update.conf")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -22,7 +22,6 @@ REBOOT_STRATEGY=etcd-lock
|
|||||||
|
|
||||||
func setupFixtures(dir string) {
|
func setupFixtures(dir string) {
|
||||||
os.MkdirAll(path.Join(dir, "usr", "share", "coreos"), 0755)
|
os.MkdirAll(path.Join(dir, "usr", "share", "coreos"), 0755)
|
||||||
os.MkdirAll(path.Join(dir, "etc", "coreos"), 0755)
|
|
||||||
os.MkdirAll(path.Join(dir, "run", "systemd", "system"), 0755)
|
os.MkdirAll(path.Join(dir, "run", "systemd", "system"), 0755)
|
||||||
|
|
||||||
ioutil.WriteFile(path.Join(dir, "usr", "share", "coreos", "update.conf"), []byte(base), 0644)
|
ioutil.WriteFile(path.Join(dir, "usr", "share", "coreos", "update.conf"), []byte(base), 0644)
|
||||||
|
@@ -53,7 +53,7 @@ func CreateUser(u *User) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if u.PrimaryGroup != "" {
|
if u.PrimaryGroup != "" {
|
||||||
args = append(args, "--primary-group", u.PrimaryGroup)
|
args = append(args, "--gid", u.PrimaryGroup)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(u.Groups) > 0 {
|
if len(u.Groups) > 0 {
|
||||||
|
39
test
39
test
@@ -1,10 +1,37 @@
|
|||||||
#!/bin/bash -e
|
#!/bin/bash -e
|
||||||
|
#
|
||||||
|
# Run all coreos-cloudinit tests
|
||||||
|
# ./test
|
||||||
|
# ./test -v
|
||||||
|
#
|
||||||
|
# Run tests for one package
|
||||||
|
# PKG=initialize ./test
|
||||||
|
#
|
||||||
|
|
||||||
echo "Building bin/coreos-cloudinit"
|
# Invoke ./cover for HTML output
|
||||||
. build
|
COVER=${COVER:-"-cover"}
|
||||||
|
|
||||||
|
source ./build
|
||||||
|
|
||||||
|
declare -a TESTPKGS=(initialize system datasource)
|
||||||
|
|
||||||
|
if [ -z "$PKG" ]; then
|
||||||
|
GOFMTPATH="$TESTPKGS coreos-cloudinit.go"
|
||||||
|
# prepend repo path to each package
|
||||||
|
TESTPKGS=${TESTPKGS[@]/#/${REPO_PATH}/}
|
||||||
|
else
|
||||||
|
GOFMTPATH="$TESTPKGS"
|
||||||
|
# strip out slashes and dots from PKG=./foo/
|
||||||
|
TESTPKGS=${PKG//\//}
|
||||||
|
TESTPKGS=${TESTPKGS//./}
|
||||||
|
TESTPKGS=${TESTPKGS/#/${REPO_PATH}/}
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Running tests..."
|
echo "Running tests..."
|
||||||
for pkg in "./initialize ./system ./datasource"; do
|
go test -i ${TESTPKGS}
|
||||||
go test -i $pkg
|
go test ${COVER} $@ ${TESTPKGS}
|
||||||
go test -v $pkg
|
|
||||||
done
|
echo "Checking gofmt..."
|
||||||
|
fmtRes=$(gofmt -l $GOFMTPATH)
|
||||||
|
|
||||||
|
echo "Success"
|
||||||
|
Reference in New Issue
Block a user