Skip to content
Snippets Groups Projects
Unverified Commit bb18875b authored by Abhishek Dubey's avatar Abhishek Dubey Committed by GitHub
Browse files

[Node port][Add] Added nodeport support for service (#38)


* Added NodePort service support for redis operator

Signed-off-by: default avatariamabhishek-dubey <abhishekbhardwaj510@gmail.com>

* Added nodePort service support

Signed-off-by: default avatariamabhishek-dubey <abhishekbhardwaj510@gmail.com>

* Updated CHANGELOG with v0.4.0 info

Signed-off-by: default avatariamabhishek-dubey <abhishekbhardwaj510@gmail.com>
parent 044b4290
No related branches found
No related tags found
No related merge requests found
### v0.4.0
##### February 6, 2021
#### :tada: Features
- Add Nodeport support for Kubernetes service
#### :beetle: Bug Fixes
- Updated helm chart with latest CRD configuration
- Optimized helm chart
- RBAC issus fixed
### v0.3.0
##### Decemeber 30, 2020
......
# Current Operator version
VERSION ?= 0.0.1
VERSION ?= 0.4.0
# Default bundle image tag
BUNDLE_IMG ?= controller-bundle:$(VERSION)
# Options for 'bundle-build'
......@@ -12,7 +12,7 @@ endif
BUNDLE_METADATA_OPTS ?= $(BUNDLE_CHANNELS) $(BUNDLE_DEFAULT_CHANNEL)
# Image URL to use all building/pushing image targets
IMG ?= quay.io/opstree/redis-operator:v0.3.0
IMG ?= quay.io/opstree/redis-operator:v0.4.0
# Produce CRDs that work back to Kubernetes 1.11 (no version conversion)
CRD_OPTIONS ?= "crd:trivialVersions=true,preserveUnknownFields=false"
......
......@@ -55,8 +55,8 @@ type Storage struct {
// RedisMaster interface will have the redis master configuration
type RedisMaster struct {
Resources Resources `json:"resources,omitempty"`
RedisConfig map[string]string `json:"redisConfig"`
Service Service `json:"service"`
RedisConfig map[string]string `json:"redisConfig,omitempty"`
Service Service `json:"service,omitempty"`
}
// RedisExporter interface will have the information for redis exporter related stuff
......@@ -78,8 +78,8 @@ type GlobalConfig struct {
// RedisSlave interface will have the redis slave configuration
type RedisSlave struct {
Resources Resources `json:"resources,omitempty"`
RedisConfig map[string]string `json:"redisConfig"`
Service Service `json:"service"`
RedisConfig map[string]string `json:"redisConfig,omitempty"`
Service Service `json:"service,omitempty"`
}
// ResourceDescription describes CPU and memory resources defined for a cluster.
......
---
apiVersion: v1
apiVersion: v2
appVersion: "0.4.0"
description: Provides easy redis setup definitions for Kubernetes services, and deployment.
engine: gotpl
maintainers:
- name: Opstree Solutions
- name: Abhishek Dubey
- name: Sandeep Rawat
name: redis-operator
sources:
- https://github.com/OT-CONTAINER-KIT/redis-operator
version: 0.2
version: 0.4.0
home: https://github.com/OT-CONTAINER-KIT/redis-operator
icon: https://github.com/OT-CONTAINER-KIT/redis-operator/raw/master/static/redis-operator-logo.svg
keywords:
......
......@@ -3,8 +3,15 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Values.redisOperator.name }}
labels:
control-plane: "{{ .Values.redisOperator.name }}"
app.kubernetes.io/name: {{ .Values.redisOperator.name }}
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
spec:
replicas: 1
replicas: {{ .Values.replicas }}
selector:
matchLabels:
name: {{ .Values.redisOperator.name }}
......@@ -13,19 +20,17 @@ spec:
labels:
name: {{ .Values.redisOperator.name }}
spec:
serviceAccountName: {{ .Values.redisOperator.name }}
containers:
- name: "{{ .Values.redisOperator.name }}"
image: "{{ .Values.redisOperator.imageName }}:{{ .Values.redisOperator.imageTag }}"
imagePullPolicy: {{ .Values.redisOperator.imagePullPolicy }}
env:
- name: WATCH_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: OPERATOR_NAME
value: "{{ .Values.redisOperator.name }}"
command:
- /manager
args:
- --leader-elect
{{- if .Values.resources }}
resources:
{{ toYaml .Values.resources | indent 10 }}
{{- end }}
serviceAccountName: "{{ .Values.serviceAccountName }}"
serviceAccount: "{{ .Values.serviceAccountName }}"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
kind: ClusterRoleBinding
metadata:
name: {{ .Values.redisOperator.name }}
labels:
control-plane: "{{ .Values.redisOperator.name }}"
app.kubernetes.io/name: {{ .Values.redisOperator.name }}
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
subjects:
- kind: ServiceAccount
name: {{ .Values.redisOperator.name }}
name: {{ .Values.serviceAccountName }}
namespace: {{ .Release.Namespace }}
roleRef:
kind: Role
name: {{ .Values.redisOperator.name }}
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
creationTimestamp: null
name: {{ .Values.redisOperator.name }}
rules:
- apiGroups:
- ""
resources:
- pods
- pods/exec
- services
- services/finalizers
- endpoints
- persistentvolumeclaims
- events
- configmaps
- secrets
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- replicasets
- statefulsets
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- get
- create
- apiGroups:
- apps
resourceNames:
- redis-operator
resources:
- deployments/finalizers
verbs:
- update
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- apiGroups:
- apps
resources:
- replicasets
- deployments
verbs:
- get
- apiGroups:
- redis.opstreelabs.in
resources:
- '*'
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
......@@ -3,3 +3,10 @@ apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Values.redisOperator.name }}
labels:
control-plane: "{{ .Values.redisOperator.name }}"
app.kubernetes.io/name: {{ .Values.redisOperator.name }}
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
......@@ -2,5 +2,17 @@
redisOperator:
name: redis-operator
imageName: quay.io/opstree/redis-operator
imageTag: v0.2
imageTag: v0.4.0
imagePullPolicy: Always
resources:
limits:
cpu: 100m
memory: 100Mi
requests:
cpu: 100m
memory: 100Mi
replicas: 1
serviceAccountName: redis-operator
......@@ -155,7 +155,8 @@ func ExecuteCommand(cr *redisv1beta1.Redis, cmd []string) {
targetContainer := -1
for i, tr := range pod.Spec.Containers {
if tr.Name+"-master" == cr.ObjectMeta.Name+"-master" {
reqLogger.Info("Pod Counted successfully", "Count", i, "Container Name", tr.Name)
if tr.Name == cr.ObjectMeta.Name+"-master" {
targetContainer = i
break
}
......
......@@ -57,6 +57,8 @@ func GenerateServiceDef(cr *redisv1beta1.Redis, labels map[string]string, portNu
if typeService == "LoadBalancer" {
serviceType = corev1.ServiceTypeLoadBalancer
} else if typeService == "NodePort" {
serviceType = corev1.ServiceTypeNodePort
} else {
serviceType = corev1.ServiceTypeClusterIP
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment