Skip to content
This repository has been archived by the owner on Jul 1, 2024. It is now read-only.

Commit

Permalink
Merge pull request #17 from medyagh/support_k8s_1.6
Browse files Browse the repository at this point in the history
support for kubernetes 1.6
  • Loading branch information
rmb938 authored Jul 14, 2017
2 parents f9b6827 + e6e73dc commit 4805523
Show file tree
Hide file tree
Showing 9 changed files with 112 additions and 139 deletions.
8 changes: 4 additions & 4 deletions discover/deployments.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,23 @@ import (
"strings"
"io/ioutil"
"encoding/json"
"k8s.io/client-go/pkg/api/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
lib "github.com/k8guard/k8guardlibs"
"k8s.io/client-go/pkg/apis/extensions/v1beta1"
"k8s.io/client-go/pkg/apis/apps/v1beta1"
"github.com/k8guard/k8guardlibs/messaging/kafka"
"github.com/k8guard/k8guardlibs/violations"
"github.com/k8guard/k8guard-discover/metrics"
"github.com/prometheus/client_golang/prometheus"
)

func GetAllDeployFromApi() []v1beta1.Deployment {
deploys, err := Clientset.Deployments(lib.Cfg.Namespace).List(v1.ListOptions{})
deploys, err := Clientset.AppsV1beta1().Deployments(lib.Cfg.Namespace).List(metav1.ListOptions{})
if err != nil {
lib.Log.Error("error: ", err)
panic(err.Error())
}

if (lib.Cfg.OutputPodsToFile == true) {
if lib.Cfg.OutputPodsToFile == true {
r, _ := json.Marshal(deploys.Items)
err = ioutil.WriteFile("deployments.txt", r, 0644)
if err != nil {
Expand Down
3 changes: 2 additions & 1 deletion discover/images.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"github.com/bradfitz/gomemcache/memcache"
"k8s.io/client-go/pkg/api/v1"
lib "github.com/k8guard/k8guardlibs"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/k8guard/k8guard-discover/metrics"
"strings"
"github.com/prometheus/client_golang/prometheus"
Expand All @@ -18,7 +19,7 @@ func cacheAllImages(storeInMemcached bool) {

imageCount := int64(0)

nodes, err := Clientset.CoreV1().Nodes().List(v1.ListOptions{})
nodes, err := Clientset.CoreV1().Nodes().List(metav1.ListOptions{})
if err != nil {
panic(err.Error())
}
Expand Down
10 changes: 5 additions & 5 deletions discover/ingresses.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package discover

import (
"k8s.io/client-go/pkg/api/v1"
lib "github.com/k8guard/k8guardlibs"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/pkg/apis/extensions/v1beta1"
"github.com/k8guard/k8guardlibs/messaging/kafka"
"strings"
Expand All @@ -12,7 +12,7 @@ import (
)

func GetAllIngressFromApi() []v1beta1.Ingress {
ingresses, err := Clientset.Ingresses(lib.Cfg.Namespace).List(v1.ListOptions{})
ingresses, err := Clientset.Ingresses(lib.Cfg.Namespace).List(metav1.ListOptions{})
if err != nil {
lib.Log.Error("error:", err)
panic(err.Error())
Expand Down Expand Up @@ -41,7 +41,7 @@ func GetBadIngresses(allIngresses []v1beta1.Ingress, sendToKafka bool) []lib.Ing
isBadIngressRule(rule, &in)
}

if (len(in.Violations) > 0) {
if len(in.Violations) > 0 {
allBadIngresses = append(allBadIngresses, in)
if sendToKafka {
lib.Log.Debug("Sending ", in.Name, " to kafka")
Expand All @@ -62,14 +62,14 @@ func GetBadIngresses(allIngresses []v1beta1.Ingress, sendToKafka bool) []lib.Ing
func isBadIngressRule(rule v1beta1.IngressRule, ingress *lib.Ingress) bool {

if isNotIgnoredViloation(violations.INGRESS_HOST_INVALID_TYPE) {
for _, s := range (lib.Cfg.IngressMustContain) {
for _, s := range lib.Cfg.IngressMustContain {
if strings.Contains(rule.Host, s) != true {
ingress.Violations = append(ingress.Violations, violations.Violation{Source: rule.Host, Type: violations.INGRESS_HOST_INVALID_TYPE})
return true
}
}

for _, s := range (lib.Cfg.IngressMustNOTContain) {
for _, s := range lib.Cfg.IngressMustNOTContain {
if strings.Contains(rule.Host, s) == true {
ingress.Violations = append(ingress.Violations, violations.Violation{Source: rule.Host, Type: violations.INGRESS_HOST_INVALID_TYPE})
return true
Expand Down
10 changes: 7 additions & 3 deletions discover/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,19 @@ import (


// Clientset talks to kubernetes API
var Clientset kubernetes.Clientset
var Clientset *kubernetes.Clientset
var Memcached *memcache.Client
var KafkaProducer kafka.KafkaProducer


var err error

func init() {
Clientset, err = k8s.LoadClientset()

if err != nil {
lib.Log.Error("error loading ClientSet ", err)
panic(err)
}

Memcached = memcache.New(fmt.Sprintf("%s:11211", lib.Cfg.MemCachedHostname))

KafkaProducer, err = kafka.NewProducer(kafka.DISCOVER_CLIENTID, lib.Cfg)
Expand Down
14 changes: 7 additions & 7 deletions discover/jobs.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@ package discover

import (
"k8s.io/client-go/pkg/apis/batch/v2alpha1"
batch "k8s.io/client-go/pkg/apis/batch/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
lib "github.com/k8guard/k8guardlibs"
"k8s.io/client-go/pkg/api/v1"
"github.com/k8guard/k8guardlibs/messaging/kafka"
"strings"
"github.com/k8guard/k8guard-discover/metrics"
"github.com/prometheus/client_golang/prometheus"
)


func GetAllJobFromApi() []v2alpha1.Job {
jobs, err := Clientset.BatchV2alpha1().Jobs(lib.Cfg.Namespace).List(v1.ListOptions{})
func GetAllJobFromApi() []batch.Job {
jobs, err := Clientset.BatchV1().Jobs(lib.Cfg.Namespace).List(metav1.ListOptions{})

if err != nil {
lib.Log.Error("error:", err)
Expand All @@ -24,7 +24,7 @@ func GetAllJobFromApi() []v2alpha1.Job {
}

func GetAllCronJobFromApi() []v2alpha1.CronJob {
cronjobs, err := Clientset.BatchV2alpha1().CronJobs(lib.Cfg.Namespace).List(v1.ListOptions{})
cronjobs, err := Clientset.BatchV2alpha1().CronJobs(lib.Cfg.Namespace).List(metav1.ListOptions{})

if err != nil {
lib.Log.Error("error:", err)
Expand Down Expand Up @@ -75,7 +75,7 @@ func GetBadCronJobs(allCronJobs []v2alpha1.CronJob, sendToKafka bool) []lib.Cron

}

func GetBadJobs(allJobs []v2alpha1.Job, sendToKafka bool) []lib.Job {
func GetBadJobs(allJobs []batch.Job, sendToKafka bool) []lib.Job {
timer := prometheus.NewTimer(prometheus.ObserverFunc(metrics.FNGetBadJobs.Set))
defer timer.ObserveDuration()

Expand Down Expand Up @@ -104,7 +104,7 @@ func GetBadJobs(allJobs []v2alpha1.Job, sendToKafka bool) []lib.Job {
getVolumesWithHostPathForAPod(kj.Spec.Template.Spec, &j.ViolatableEntity)
GetBadContainers(kj.Spec.Template.Spec, &j.ViolatableEntity)

if (len(j.Violations) > 0) {
if len(j.Violations) > 0 {

badJobsCounter += 1
allBadJobsWitoutOwner = append(allBadJobsWitoutOwner, j)
Expand Down
5 changes: 3 additions & 2 deletions discover/namespaces.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package discover
import (
lib "github.com/k8guard/k8guardlibs"
"k8s.io/client-go/pkg/api/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/k8guard/k8guard-discover/metrics"
"github.com/k8guard/k8guardlibs/messaging/kafka"
"github.com/prometheus/client_golang/prometheus"
Expand All @@ -23,7 +24,7 @@ func isIgnoredNamespace(namespace string) bool {
func GetAllNamspacesFromApi() []v1.Namespace {
namespaces := Clientset.Namespaces()

namespaceList, err := namespaces.List(v1.ListOptions{})
namespaceList, err := namespaces.List(metav1.ListOptions{})

if err != nil {
lib.Log.Error("error: ", err)
Expand Down Expand Up @@ -77,7 +78,7 @@ func GetBadNamespaces(theNamespaces []v1.Namespace, sendToKafka bool) []lib.Name
}

func hasOwnerAnnotation(namespace v1.Namespace,annotationKind string) bool {
teamString, ok := namespace.Annotations[annotationKind];
teamString, ok := namespace.Annotations[annotationKind]
if ok {
team := strings.Split(teamString, ",")
if len(team) > 0 {
Expand Down
3 changes: 2 additions & 1 deletion discover/pods.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"encoding/json"
"k8s.io/client-go/pkg/api/v1"
lib "github.com/k8guard/k8guardlibs"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/k8guard/k8guardlibs/messaging/kafka"
"github.com/k8guard/k8guardlibs/violations"
"github.com/k8guard/k8guard-discover/metrics"
Expand All @@ -14,7 +15,7 @@ import (
)

func GetAllPodsFromApi() []v1.Pod {
pods, err := Clientset.CoreV1().Pods(lib.Cfg.Namespace).List(v1.ListOptions{})
pods, err := Clientset.CoreV1().Pods(lib.Cfg.Namespace).List(metav1.ListOptions{})
if err != nil {
lib.Log.Error("error:", err)
panic(err.Error())
Expand Down
Loading

0 comments on commit 4805523

Please sign in to comment.