fix(osctl): nil pointer when injecting kubernetes PKI (#187)

This commit is contained in:
Andrew Rynhard 2018-11-04 13:47:28 -08:00 committed by GitHub
parent c5fbe9957d
commit 160702be24
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -63,9 +63,7 @@ var injectKubernetesCmd = &cobra.Command{
// nolint: dupl
func injectOSData(u *userdata.UserData, crt, key string) (err error) {
if u.Security == nil {
u.Security = &userdata.Security{
OS: &userdata.OSSecurity{},
}
u.Security = newSecurity()
}
crtAndKey, err := x509.NewCertificateAndKeyFromFiles(crt, key)
if err != nil {
@ -79,9 +77,7 @@ func injectOSData(u *userdata.UserData, crt, key string) (err error) {
// nolint: dupl
func injectIdentityData(u *userdata.UserData, crt, key string) (err error) {
if u.Security == nil {
u.Security = &userdata.Security{
OS: &userdata.OSSecurity{},
}
u.Security = newSecurity()
}
crtAndKey, err := x509.NewCertificateAndKeyFromFiles(crt, key)
if err != nil {
@ -95,9 +91,7 @@ func injectIdentityData(u *userdata.UserData, crt, key string) (err error) {
// nolint: dupl
func injectKubernetesData(u *userdata.UserData, crt, key string) (err error) {
if u.Security == nil {
u.Security = &userdata.Security{
Kubernetes: &userdata.KubernetesSecurity{},
}
u.Security = newSecurity()
}
crtAndKey, err := x509.NewCertificateAndKeyFromFiles(crt, key)
if err != nil {
@ -139,6 +133,13 @@ func inject(args []string, crt, key string, f func(*userdata.UserData, string, s
return nil
}
func newSecurity() *userdata.Security {
return &userdata.Security{
OS: &userdata.OSSecurity{},
Kubernetes: &userdata.KubernetesSecurity{},
}
}
func init() {
injectCmd.PersistentFlags().StringVar(&crt, "crt", "", "the path to the PKI certificate")
if err := injectCmd.MarkPersistentFlagRequired("crt"); err != nil {