Fixup some annotations

This commit is contained in:
2021-12-01 15:17:34 +01:00
parent a536fcd369
commit 1085be2b53
8 changed files with 33 additions and 6 deletions

View File

@@ -36,9 +36,8 @@ echo "Done"
func CreateReplicaObject(name string, s compose.Service) (ret []interface{}) { func CreateReplicaObject(name string, s compose.Service) (ret []interface{}) {
Magenta("Generating deployment for ", name) Magenta("Generating deployment for ", name)
o := helm.NewDeployment() o := helm.NewDeployment(name)
ret = append(ret, o) ret = append(ret, o)
o.Metadata.Name = "{{ .Release.Name }}-" + name
container := helm.NewContainer(name, s.Image, s.Environment, s.Labels) container := helm.NewContainer(name, s.Image, s.Environment, s.Labels)
@@ -211,8 +210,7 @@ func CreateReplicaObject(name string, s compose.Service) (ret []interface{}) {
func createService(name string, s compose.Service) []interface{} { func createService(name string, s compose.Service) []interface{} {
Magenta("Generating service for ", name) Magenta("Generating service for ", name)
ks := helm.NewService() ks := helm.NewService(name)
ks.Metadata.Name = "{{ .Release.Name }}-" + name
defaultPort := 0 defaultPort := 0
names := make(map[int]int) names := make(map[int]int)

View File

@@ -23,6 +23,7 @@ func NewConfigMap(name string) *ConfigMap {
base.ApiVersion = "v1" base.ApiVersion = "v1"
base.Kind = "ConfigMap" base.Kind = "ConfigMap"
base.Metadata.Name = "{{ .Release.Name }}-" + name base.Metadata.Name = "{{ .Release.Name }}-" + name
base.Metadata.Labels[K+"/component"] = name
return &ConfigMap{ return &ConfigMap{
K8sBase: base, K8sBase: base,
Data: make(map[string]string), Data: make(map[string]string),
@@ -66,6 +67,7 @@ func NewSecret(name string) *Secret {
base.ApiVersion = "v1" base.ApiVersion = "v1"
base.Kind = "Secret" base.Kind = "Secret"
base.Metadata.Name = "{{ .Release.Name }}-" + name base.Metadata.Name = "{{ .Release.Name }}-" + name
base.Metadata.Labels[K+"/component"] = name
return &Secret{ return &Secret{
K8sBase: base, K8sBase: base,
Data: make(map[string]string), Data: make(map[string]string),

View File

@@ -8,10 +8,12 @@ type Deployment struct {
Spec *DepSpec `yaml:"spec"` Spec *DepSpec `yaml:"spec"`
} }
func NewDeployment() *Deployment { func NewDeployment(name string) *Deployment {
d := &Deployment{K8sBase: NewBase(), Spec: NewDepSpec()} d := &Deployment{K8sBase: NewBase(), Spec: NewDepSpec()}
d.K8sBase.Metadata.Name = "{{ .Release.Name }}-" + name
d.K8sBase.ApiVersion = "apps/v1" d.K8sBase.ApiVersion = "apps/v1"
d.K8sBase.Kind = "Deployment" d.K8sBase.Kind = "Deployment"
d.K8sBase.Metadata.Labels[K+"/component"] = name
return d return d
} }

View File

@@ -11,6 +11,7 @@ func NewIngress(name string) *Ingress {
i.K8sBase.Metadata.Name = "{{ .Release.Name }}-" + name i.K8sBase.Metadata.Name = "{{ .Release.Name }}-" + name
i.K8sBase.Kind = "Ingress" i.K8sBase.Kind = "Ingress"
i.ApiVersion = "networking.k8s.io/v1" i.ApiVersion = "networking.k8s.io/v1"
i.K8sBase.Metadata.Labels[K+"/component"] = name
return i return i
} }

View File

@@ -5,13 +5,15 @@ type Service struct {
Spec *ServiceSpec `yaml:"spec"` Spec *ServiceSpec `yaml:"spec"`
} }
func NewService() *Service { func NewService(name string) *Service {
s := &Service{ s := &Service{
K8sBase: NewBase(), K8sBase: NewBase(),
Spec: NewServiceSpec(), Spec: NewServiceSpec(),
} }
s.K8sBase.Metadata.Name = "{{ .Release.Name }}-" + name
s.K8sBase.Kind = "Service" s.K8sBase.Kind = "Service"
s.K8sBase.ApiVersion = "v1" s.K8sBase.ApiVersion = "v1"
s.K8sBase.Metadata.Labels[K+"/component"] = name
return s return s
} }

View File

@@ -12,6 +12,7 @@ func NewPVC(name, storageName string) *Storage {
pvc.K8sBase.Metadata.Labels[K+"/pvc-name"] = storageName pvc.K8sBase.Metadata.Labels[K+"/pvc-name"] = storageName
pvc.K8sBase.ApiVersion = "v1" pvc.K8sBase.ApiVersion = "v1"
pvc.K8sBase.Metadata.Name = "{{ .Release.Name }}-" + storageName pvc.K8sBase.Metadata.Name = "{{ .Release.Name }}-" + storageName
pvc.K8sBase.Metadata.Labels[K+"/component"] = name
pvc.Spec = &PVCSpec{ pvc.Spec = &PVCSpec{
Resouces: map[string]interface{}{ Resouces: map[string]interface{}{
"requests": map[string]string{ "requests": map[string]string{

View File

@@ -1,18 +1,27 @@
package helm package helm
import ( import (
"crypto/sha256"
"fmt"
"io/ioutil"
"os" "os"
"strings" "strings"
) )
const K = "katenary.io" const K = "katenary.io"
var Appname = ""
var Version = "1.0" // should be set from main.Version var Version = "1.0" // should be set from main.Version
type Kinded interface { type Kinded interface {
Get() string Get() string
} }
type Signable interface {
BuildSHA(filename string)
}
type Metadata struct { type Metadata struct {
Name string `yaml:"name,omitempty"` Name string `yaml:"name,omitempty"`
Labels map[string]string `yaml:"labels"` Labels map[string]string `yaml:"labels"`
@@ -44,11 +53,20 @@ func NewBase() *K8sBase {
return b return b
} }
func (k *K8sBase) BuildSHA(filename string) {
c, _ := ioutil.ReadFile(filename)
sum := sha256.Sum256(c)
k.Metadata.Annotations[K+"/docker-compose-sha256"] = fmt.Sprintf("%x", string(sum[:]))
}
func (k K8sBase) Get() string { func (k K8sBase) Get() string {
return k.Kind return k.Kind
} }
func getProjectName() string { func getProjectName() string {
if len(Appname) > 0 {
return Appname
}
p, _ := os.Getwd() p, _ := os.Getwd()
path := strings.Split(p, string(os.PathSeparator)) path := strings.Split(p, string(os.PathSeparator))
return path[len(path)-1] return path[len(path)-1]

View File

@@ -36,6 +36,8 @@ func main() {
os.Exit(0) os.Exit(0)
} }
// make the appname global (yes...)
helm.Appname = AppName
dirname := filepath.Join(ChartsDir, AppName) dirname := filepath.Join(ChartsDir, AppName)
if _, err := os.Stat(dirname); err == nil && !*force { if _, err := os.Stat(dirname); err == nil && !*force {
@@ -85,6 +87,7 @@ func main() {
kind = strings.ToLower(kind) kind = strings.ToLower(kind)
fname := filepath.Join(templatesDir, n+"."+kind+".yaml") fname := filepath.Join(templatesDir, n+"."+kind+".yaml")
fp, _ := os.Create(fname) fp, _ := os.Create(fname)
c.(helm.Signable).BuildSHA(ComposeFile)
switch c := c.(type) { switch c := c.(type) {
case *helm.Storage: case *helm.Storage:
volname := c.K8sBase.Metadata.Labels[helm.K+"/pvc-name"] volname := c.K8sBase.Metadata.Labels[helm.K+"/pvc-name"]