Skip to content

Add config-validator to pre-start scripts to fail on canaries #333

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions jobs/bosh-dns-adapter/spec
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
name: bosh-dns-adapter

templates:
pre-start.erb: bin/pre-start
aliases.json.erb: dns/aliases.json
bpm.yml.erb: config/bpm.yml
client.crt.erb: config/certs/client.crt
Expand Down
5 changes: 5 additions & 0 deletions jobs/bosh-dns-adapter/templates/pre-start.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash -e

<% if spec.bootstrap == true %>
/var/vcap/packages/bosh-dns-adapter/bin/config-validator -config /var/vcap/jobs/bosh-dns-adapter/config/config.json
<% end %>
4 changes: 4 additions & 0 deletions jobs/garden-cni/templates/pre-start.erb
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
#!/bin/bash -eu

<% if spec.bootstrap == true %>
/var/vcap/packages/runc-cni/bin/config-validator -config /var/vcap/jobs/garden-cni/config/adapter.json
<% end %>

rm -rf /var/vcap/data/garden-cni/container-netns || true
rm -rf /var/vcap/data/garden-cni/external-networker-state.json || true
1 change: 1 addition & 0 deletions jobs/service-discovery-controller/spec
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ name: service-discovery-controller

templates:
bpm.yml.erb: config/bpm.yml
pre-start.erb: bin/pre-start
post-start.erb: bin/post-start
config.json.erb: config/config.json
server.crt.erb: config/certs/server.crt
Expand Down
5 changes: 5 additions & 0 deletions jobs/service-discovery-controller/templates/pre-start.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash -e

<% if spec.bootstrap == true %>
/var/vcap/packages/service-discovery-controller/bin/config-validator -config /var/vcap/jobs/service-discovery-controller/config/config.json
<% end %>
3 changes: 2 additions & 1 deletion packages/bosh-dns-adapter/packaging
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@ mkdir ${BOSH_INSTALL_TARGET}/bin
export GOBIN=${BOSH_INSTALL_TARGET}/bin

pushd src/code.cloudfoundry.org
go install code.cloudfoundry.org/bosh-dns-adapter/...
go build -o "${BOSH_INSTALL_TARGET}/bin/bosh-dns-adapter" code.cloudfoundry.org/bosh-dns-adapter/cmd/bosh-dns-adapter
go build -o "${BOSH_INSTALL_TARGET}/bin/config-validator" code.cloudfoundry.org/bosh-dns-adapter/cmd/config-validator
popd
4 changes: 3 additions & 1 deletion packages/bosh-dns-adapter/spec
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@ files:
- code.cloudfoundry.org/go.mod
- code.cloudfoundry.org/go.sum
- code.cloudfoundry.org/vendor/modules.txt
- code.cloudfoundry.org/bosh-dns-adapter/cmd/bosh-dns-adapter/*.go
- code.cloudfoundry.org/vendor/code.cloudfoundry.org/bbs/db/sqldb/helpers/monitor/*.go # gosub
- code.cloudfoundry.org/bosh-dns-adapter/*.go # gosub
- code.cloudfoundry.org/bosh-dns-adapter/cmd/bosh-dns-adapter/*.go # gosub
- code.cloudfoundry.org/bosh-dns-adapter/cmd/config-validator/*.go # gosub
- code.cloudfoundry.org/bosh-dns-adapter/config/*.go # gosub
- code.cloudfoundry.org/bosh-dns-adapter/handlers/*.go # gosub
- code.cloudfoundry.org/bosh-dns-adapter/sdcclient/*.go # gosub
Expand Down
3 changes: 2 additions & 1 deletion packages/runc-cni/packaging
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ source /var/vcap/packages/golang-*-linux/bosh/compile.env
mkdir ${BOSH_INSTALL_TARGET}/bin

pushd src/code.cloudfoundry.org
go build -o "${BOSH_INSTALL_TARGET}/bin/garden-external-networker" code.cloudfoundry.org/garden-external-networker
go build -o "${BOSH_INSTALL_TARGET}/bin/garden-external-networker" code.cloudfoundry.org/garden-external-networker/cmd/garden-external-networker
go build -o "${BOSH_INSTALL_TARGET}/bin/config-validator" code.cloudfoundry.org/garden-external-networker/cmd/config-validator
popd

chmod u+s /var/vcap/packages/runc-cni/bin/garden-external-networker
3 changes: 2 additions & 1 deletion packages/runc-cni/spec
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ files:
- code.cloudfoundry.org/vendor/modules.txt
- code.cloudfoundry.org/vendor/code.cloudfoundry.org/filelock/*.go # gosub
- code.cloudfoundry.org/vendor/code.cloudfoundry.org/garden/*.go # gosub
- code.cloudfoundry.org/garden-external-networker/*.go # gosub
- code.cloudfoundry.org/garden-external-networker/adapter/*.go # gosub
- code.cloudfoundry.org/garden-external-networker/bindmount/*.go # gosub
- code.cloudfoundry.org/garden-external-networker/cmd/config-validator/*.go # gosub
- code.cloudfoundry.org/garden-external-networker/cmd/garden-external-networker/*.go # gosub
- code.cloudfoundry.org/garden-external-networker/cni/*.go # gosub
- code.cloudfoundry.org/garden-external-networker/config/*.go # gosub
- code.cloudfoundry.org/garden-external-networker/ipc/*.go # gosub
Expand Down
3 changes: 2 additions & 1 deletion packages/service-discovery-controller/packaging
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@ mkdir ${BOSH_INSTALL_TARGET}/bin
export GOBIN=${BOSH_INSTALL_TARGET}/bin

pushd src/code.cloudfoundry.org
go install code.cloudfoundry.org/service-discovery-controller/...
go build -o "${BOSH_INSTALL_TARGET}/bin/service-discovery-controller" code.cloudfoundry.org/service-discovery-controller/cmd/service-discovery-controller
go build -o "${BOSH_INSTALL_TARGET}/bin/config-validator" code.cloudfoundry.org/service-discovery-controller/cmd/config-validator
popd
3 changes: 2 additions & 1 deletion packages/service-discovery-controller/spec
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@ files:
- code.cloudfoundry.org/policy-server/store/*.go # gosub
- code.cloudfoundry.org/policy-server/store/helpers/*.go # gosub
- code.cloudfoundry.org/policy-server/store/migrations/*.go # gosub
- code.cloudfoundry.org/service-discovery-controller/*.go # gosub
- code.cloudfoundry.org/service-discovery-controller/addresstable/*.go # gosub
- code.cloudfoundry.org/service-discovery-controller/cmd/config-validator/*.go # gosub
- code.cloudfoundry.org/service-discovery-controller/cmd/service-discovery-controller/*.go # gosub
- code.cloudfoundry.org/service-discovery-controller/config/*.go # gosub
- code.cloudfoundry.org/service-discovery-controller/localip/*.go # gosub
- code.cloudfoundry.org/service-discovery-controller/mbus/*.go # gosub
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func TestBoshDnsAdapter(t *testing.T) {
var pathToServer string

var _ = SynchronizedBeforeSuite(func() []byte {
path, err := gexec.Build("code.cloudfoundry.org/bosh-dns-adapter", "-buildvcs=false")
path, err := gexec.Build("code.cloudfoundry.org/bosh-dns-adapter/cmd/bosh-dns-adapter", "-buildvcs=false")
Expect(err).NotTo(HaveOccurred())
SetDefaultEventuallyTimeout(2 * time.Second)
return []byte(path)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package main

import (
"flag"
"fmt"
"log"
"os"

"code.cloudfoundry.org/bosh-dns-adapter/config"
"code.cloudfoundry.org/bosh-dns-adapter/sdcclient"
)

var (
configFile string
)

func main() {
flag.StringVar(&configFile, "config", "", "Configuration File")
flag.Parse()

bytes, err := os.ReadFile(configFile)
if err != nil {
log.Fatal("Could not read config file: ", err)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you update this failure to have dashes like all the other logs?

}

config, err := config.NewConfig(bytes)
if err != nil {
log.Fatal("failed-to-load-config: ", err)
}

sdcServerUrl := fmt.Sprintf("https://%s:%s",
config.ServiceDiscoveryControllerAddress,
config.ServiceDiscoveryControllerPort,
)

_, err = sdcclient.NewServiceDiscoveryClient(sdcServerUrl, config.CACert, config.ClientCert, config.ClientKey)
if err != nil {
log.Fatal("failed-to-create-service-discovery-client: ", err)
}
log.Print("config-loaded-successfully")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package main

import (
"flag"
"log"

"code.cloudfoundry.org/garden-external-networker/config"
)

var (
configFile string
)

func main() {
flag.StringVar(&configFile, "config", "", "Configuration File")
flag.Parse()

_, err := config.New(configFile)
if err != nil {
log.Fatal("failed-to-load-config: ", err)
}
log.Print("config-loaded-successfully")
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ type testPaths struct {

var _ = SynchronizedBeforeSuite(func() []byte {
var err error
paths.PathToAdapter, err = gexec.Build("code.cloudfoundry.org/garden-external-networker", "-race", "-buildvcs=false")
paths.PathToAdapter, err = gexec.Build("code.cloudfoundry.org/garden-external-networker/cmd/garden-external-networker", "-race", "-buildvcs=false")
Expect(err).NotTo(HaveOccurred())

paths.PathToFakeCNIPlugin, err = gexec.Build("code.cloudfoundry.org/garden-external-networker/integration/fake-cni-plugin", "-race", "-buildvcs=false")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package main

import (
"flag"
"log"
"os"

"code.cloudfoundry.org/service-discovery-controller/config"
)

var (
configFile string
)

func main() {
flag.StringVar(&configFile, "config", "", "Configuration File")
flag.Parse()

bytes, err := os.ReadFile(configFile)
if err != nil {
log.Fatal("Could not read config file: ", err)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you update this failure to have dashes like all the other logs?

}

_, err = config.NewConfig(bytes)
if err != nil {
log.Fatal("failed-to-load-config: ", err)
}
log.Print("config-loaded-successfully")
}