Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
jrauh01 committed Dec 11, 2023
1 parent be4bf11 commit e226bc0
Show file tree
Hide file tree
Showing 5 changed files with 89 additions and 29 deletions.
7 changes: 5 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@ FROM golang:alpine AS builder
RUN apk update && apk add --no-cache git
WORKDIR $GOPATH/src/icinga-kubernetes/
COPY . .
#COPY ./config.yml /go/bin/config.yml
RUN go build -o /go/bin/icinga-kubernetes ./cmd/icinga-kubernetes/main.go

FROM scratch

COPY --from=builder /go/bin/icinga-kubernetes /go/bin/icinga-kubernetes
WORKDIR /go/bin/
#COPY --from=builder /go/bin/config.yml ./config.yml
COPY --from=builder /go/bin/icinga-kubernetes ./icinga-kubernetes
EXPOSE 8080
ENTRYPOINT ["/go/bin/icinga-kubernetes"]
ENTRYPOINT ["./icinga-kubernetes"]
48 changes: 39 additions & 9 deletions cmd/icinga-kubernetes/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ package main

import (
"context"
"github.com/icinga/icinga-go-library/config"
"fmt"
"github.com/goccy/go-yaml"
"github.com/icinga/icinga-go-library/database"
"github.com/icinga/icinga-go-library/driver"
"github.com/icinga/icinga-go-library/logging"
Expand All @@ -12,14 +13,21 @@ import (
"github.com/okzk/sdnotify"
"github.com/pkg/errors"
"golang.org/x/sync/errgroup"
kmetav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
kinformers "k8s.io/client-go/informers"
"k8s.io/client-go/kubernetes"
kclientcmd "k8s.io/client-go/tools/clientcmd"
"k8s.io/client-go/rest"
"strings"
)

func main() {
kconfig, err := kclientcmd.NewNonInteractiveDeferredLoadingClientConfig(
kclientcmd.NewDefaultClientConfigLoadingRules(), &kclientcmd.ConfigOverrides{}).ClientConfig()
//kconfig, err := kclientcmd.NewNonInteractiveDeferredLoadingClientConfig(
// kclientcmd.NewDefaultClientConfigLoadingRules(), &kclientcmd.ConfigOverrides{}).ClientConfig()
//if err != nil {
// logging.Fatal(errors.Wrap(err, "can't configure Kubernetes client"))
//}

kconfig, err := rest.InClusterConfig()
if err != nil {
logging.Fatal(errors.Wrap(err, "can't configure Kubernetes client"))
}
Expand All @@ -29,16 +37,38 @@ func main() {
logging.Fatal(errors.Wrap(err, "can't create Kubernetes client"))
}

flags, err := config.ParseFlags[internal.Flags]()
//flags, err := config.ParseFlags[internal.Flags]()
//if err != nil {
// logging.Fatal(errors.Wrap(err, "can't parse flags"))
//}
//
//cfg, err := config.FromYAMLFile[internal.Config](flags.Config)
//if err != nil {
// logging.Fatal(errors.Wrap(err, "can't create configuration"))
//}

cm, err := k.CoreV1().ConfigMaps("default").Get(context.Background(), "test-configmap", kmetav1.GetOptions{})
if err != nil {
logging.Fatal(errors.Wrap(err, "can't parse flags"))
logging.Fatal(errors.Wrap(err, "can't load ConfigMap"))
}

cfg, err := config.FromYAMLFile[internal.Config](flags.Config)
if err != nil {
logging.Fatal(errors.Wrap(err, "can't create configuration"))
// Convert the ConfigMap data to a Config struct
cfg := &internal.Config{}

//err = mapstructure.Decode(cm.Data, cfg)
//if err != nil {
// logging.Fatal(errors.Wrap(err, "can't map config to struct"))
//}

f := strings.NewReader(cm.Data["config.yml"])

d := yaml.NewDecoder(f, yaml.DisallowUnknownField())
if err := d.Decode(cfg); err != nil {
logging.Fatal(errors.Wrap(err, "can't parse YAML file config.yml"))
}

fmt.Printf("%+v\n\n", cfg)

logs, err := logging.NewLoggingFromConfig("Icinga Kubernetes", &cfg.Logging)
if err != nil {
logging.Fatal(errors.Wrap(err, "can't configure logging"))
Expand Down
15 changes: 0 additions & 15 deletions icinga-kubernetes-expose-8080.yml

This file was deleted.

38 changes: 35 additions & 3 deletions icinga-kubernetes.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,46 @@
---
apiVersion: v1
kind: Pod
metadata:
name: icinga-kubernetes
labels:
app: icinga-kubernetes
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- minikube
containers:
- name: icinga-kubernetes
image: icinga-kubernetes
imagePullPolicy: Never
ports:
- containerPort: 8080

---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [ "" ] # "" indicates the core API group
resources: [ "*" ]
verbs: [ "get", "watch", "list" ]

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: read-pods
namespace: default
subjects:
- kind: ServiceAccount
name: default
namespace: default
roleRef:
kind: ClusterRole
name: pod-reader
apiGroup: ""
10 changes: 10 additions & 0 deletions schema/mysql/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
FROM mysql:latest

ENV MYSQL_USER=kubernetes
ENV MYSQL_PASSWORD=kubernetes
ENV MYSQL_DATABASE=kubernetes
ENV MYSQL_ROOT_PASSWORD=kubernetes

COPY schema.sql /docker-entrypoint-initdb.d

EXPOSE 3306

0 comments on commit e226bc0

Please sign in to comment.