Skip to content

Commit

Permalink
Merge pull request #13 from kubero-dev/feature/add-simple-kafka
Browse files Browse the repository at this point in the history
Feature / add simple Kafka
  • Loading branch information
mms-gianni authored Jan 16, 2023
2 parents b9f1d18 + 78888e7 commit 08c5e37
Show file tree
Hide file tree
Showing 22 changed files with 532 additions and 11 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/docker-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ on:

env:
SDK_VERSION: "v1.24.0"
# IMG: ghcr.io/kubero-dev/kubero-operator/kuberoapp:v0.0.92
# BUNDLE_IMG: ghcr.io/kubero-dev/kubero-operator/kuberoapp-bundle:v0.0.92
# IMG: ghcr.io/kubero-dev/kubero-operator/kuberoapp:v0.0.93
# BUNDLE_IMG: ghcr.io/kubero-dev/kubero-operator/kuberoapp-bundle:v0.0.93

jobs:
# Push image to GitHub Packages.
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# To re-generate a bundle for another specific version without changing the standard setup, you can:
# - use the VERSION as arg of the bundle target (e.g make bundle VERSION=0.0.2)
# - use environment variables to overwrite this value (e.g export VERSION=0.0.2)
VERSION ?= 0.0.92
VERSION ?= 0.0.93

# CHANNELS define the bundle channels used in the bundle.
# Add a new line here if you would like to change its default config. (E.g CHANNELS = "candidate,fast,stable")
Expand Down
7 changes: 7 additions & 0 deletions PROJECT
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,11 @@ resources:
group: application
kind: KuberoCouchDB
version: v1alpha1
- api:
crdVersion: v1
namespaced: true
domain: kubero.dev
group: application
kind: KuberoKafka
version: v1alpha1
version: "3"
50 changes: 50 additions & 0 deletions bundle/manifests/application.kubero.dev_kuberokafkas.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
name: kuberokafkas.application.kubero.dev
spec:
group: application.kubero.dev
names:
kind: KuberoKafka
listKind: KuberoKafkaList
plural: kuberokafkas
singular: kuberokafka
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: KuberoKafka is the Schema for the kuberokafkas API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: Spec defines the desired state of KuberoKafka
type: object
x-kubernetes-preserve-unknown-fields: true
status:
description: Status defines the observed state of KuberoKafka
type: object
x-kubernetes-preserve-unknown-fields: true
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: null
storedVersions: null
118 changes: 113 additions & 5 deletions bundle/manifests/kubero-operator.clusterserviceversion.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -513,6 +513,23 @@ metadata:
}
}
},
{
"apiVersion": "application.kubero.dev/v1alpha1",
"kind": "KuberoKafka",
"metadata": {
"name": "kuberokafka-sample"
},
"spec": {
"kafka": {
"global": {
"storageClass": ""
},
"persistence": {
"size": "8Gi"
}
}
}
},
{
"apiVersion": "application.kubero.dev/v1alpha1",
"kind": "KuberoMongoDB",
Expand Down Expand Up @@ -681,13 +698,13 @@ metadata:
capabilities: Basic Install
categories: Integration & Delivery
certified: "false"
containerImage: ghcr.io/kubero-dev/kubero-operator/kuberoapp:v0.0.92
containerImage: ghcr.io/kubero-dev/kubero-operator/kuberoapp:v0.0.93
description: Kubero is a GitOps continuous delivery tool for Kubernetes.
operators.operatorframework.io/builder: operator-sdk-v1.24.0
operators.operatorframework.io/project_layout: helm.sdk.operatorframework.io/v1
repository: https://github.com/kubero-dev/kubero
support: Kubero Community
name: kubero-operator.v0.0.92
name: kubero-operator.v0.0.93
namespace: placeholder
spec:
apiservicedefinitions: {}
Expand All @@ -698,7 +715,11 @@ spec:
kind: KuberoApp
name: kuberoapps.application.kubero.dev
version: v1alpha1
- kind: KuberoCouchDB
- description: Apache CouchDB is a database featuring seamless multi-master sync,
that scales from big data to mobile, with an intuitive HTTP/JSON API and designed
for reliability.
displayName: Kubero CouchDB
kind: KuberoCouchDB
name: kuberocouchdbs.application.kubero.dev
version: v1alpha1
- description: Elasticsearch is a distributed search and analytics engine. It
Expand All @@ -713,6 +734,13 @@ spec:
kind: Kubero
name: kuberoes.application.kubero.dev
version: v1alpha1
- description: Apache Kafka is a distributed streaming platform designed to build
real-time pipelines and can be used as a message broker or as a replacement
for a log aggregation solution for big data applications.
displayName: Kubero Kafka
kind: KuberoKafka
name: kuberokafkas.application.kubero.dev
version: v1alpha1
- description: MongoDB(R) is a relational open source NoSQL database. Easy to
use, it stores data in JSON-like documents. Automated scalability and high-performance.
Ideal for developing cloud native applications.
Expand Down Expand Up @@ -1219,17 +1247,97 @@ spec:
- patch
- update
- watch
- apiGroups:
- apps
resources:
- statefulsets
verbs:
- '*'
- apiGroups:
- ""
resources:
- secrets
- configmaps
- serviceaccounts
- services
- persistentvolumeclaims
- persistentvolumes
verbs:
- '*'
- apiGroups:
- policy
resources:
- poddisruptionbudgets
verbs:
- '*'
- apiGroups:
- networking.k8s.io
resources:
- networkpolicies
verbs:
- '*'
- apiGroups:
- rbac.authorization.k8s.io
resources:
- roles
- rolebindings
verbs:
- '*'
- apiGroups:
- application.kubero.dev
resources:
- kuberokafkas
- kuberokafkas/status
- kuberokafkas/finalizers
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- apps
resources:
- deployments
- statefulsets
verbs:
- '*'
- apiGroups:
- ""
resources:
- secrets
- configmaps
- serviceaccounts
- services
- persistentvolumeclaims
- persistentvolumes
verbs:
- '*'
- apiGroups:
- job
resources:
- batch
verbs:
- '*'
- apiGroups:
- policy
resources:
- poddisruptionbudgets
verbs:
- '*'
- apiGroups:
- networking.k8s.io
resources:
- networkpolicies
verbs:
- '*'
- apiGroups:
- rbac.authorization.k8s.io
resources:
- roles
- rolebindings
verbs:
- '*'
- apiGroups:
Expand Down Expand Up @@ -1286,7 +1394,7 @@ spec:
- --metrics-bind-address=127.0.0.1:8080
- --leader-elect
- --leader-election-id=kubero-operator
image: ghcr.io/kubero-dev/kubero-operator/kuberoapp:v0.0.92
image: ghcr.io/kubero-dev/kubero-operator/kuberoapp:v0.0.93
livenessProbe:
httpGet:
path: /healthz
Expand Down Expand Up @@ -1373,4 +1481,4 @@ spec:
provider:
name: kubero
url: https://github.com/kubero-dev/
version: 0.0.92
version: 0.0.93
44 changes: 44 additions & 0 deletions config/crd/bases/application.kubero.dev_kuberokafkas.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: kuberokafkas.application.kubero.dev
spec:
group: application.kubero.dev
names:
kind: KuberoKafka
listKind: KuberoKafkaList
plural: kuberokafkas
singular: kuberokafka
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: KuberoKafka is the Schema for the kuberokafkas API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: Spec defines the desired state of KuberoKafka
type: object
x-kubernetes-preserve-unknown-fields: true
status:
description: Status defines the observed state of KuberoKafka
type: object
x-kubernetes-preserve-unknown-fields: true
type: object
served: true
storage: true
subresources:
status: {}
1 change: 1 addition & 0 deletions config/crd/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,5 @@ resources:
- bases/application.kubero.dev_kuberomongodbs.yaml
- bases/application.kubero.dev_kuberoelasticsearches.yaml
- bases/application.kubero.dev_kuberocouchdbs.yaml
- bases/application.kubero.dev_kuberokafkas.yaml
#+kubebuilder:scaffold:crdkustomizeresource
2 changes: 1 addition & 1 deletion config/manager/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ kind: Kustomization
images:
- name: controller
newName: ghcr.io/kubero-dev/kubero-operator/kuberoapp
newTag: v0.0.92
newTag: v0.0.93
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ metadata:
capabilities: Basic Install
categories: Integration & Delivery
certified: "false"
containerImage: ghcr.io/kubero-dev/kubero-operator/kuberoapp:v0.0.92
containerImage: ghcr.io/kubero-dev/kubero-operator/kuberoapp:v0.0.93
description: Kubero is a GitOps continuous delivery tool for Kubernetes.
repository: https://github.com/kubero-dev/kubero
support: Kubero Community
Expand Down Expand Up @@ -66,6 +66,20 @@ spec:
kind: KuberoElasticsearch
name: kuberoelasticsearches.application.kubero.dev
version: v1alpha1
- description: Apache CouchDB is a database featuring seamless multi-master sync,
that scales from big data to mobile, with an intuitive HTTP/JSON API and designed
for reliability.
displayName: Kubero CouchDB
kind: KuberoCouchDB
name: kuberocouchdbs.application.kubero.dev
version: v1alpha1
- description: Apache Kafka is a distributed streaming platform designed to build
real-time pipelines and can be used as a message broker or as a replacement
for a log aggregation solution for big data applications.
displayName: Kubero Kafka
kind: KuberoKafka
name: kuberokafkas.application.kubero.dev
version: v1alpha1
description: |-
Kubero is a Internal Developer Platform (IDP) that brings the convinience of Heroku/platform.sh/vercel/Netlify to your kubernetes cluster. Your developers should not need to worry about the underlying infrastructure and deployment. It enables you to deploy your applications with a few clicks. It also provides a API and CLI to manage your applications.
Expand Down
24 changes: 24 additions & 0 deletions config/rbac/kuberokafka_editor_role.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# permissions for end users to edit kuberokafkas.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: kuberokafka-editor-role
rules:
- apiGroups:
- application.kubero.dev
resources:
- kuberokafkas
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- application.kubero.dev
resources:
- kuberokafkas/status
verbs:
- get
20 changes: 20 additions & 0 deletions config/rbac/kuberokafka_viewer_role.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# permissions for end users to view kuberokafkas.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: kuberokafka-viewer-role
rules:
- apiGroups:
- application.kubero.dev
resources:
- kuberokafkas
verbs:
- get
- list
- watch
- apiGroups:
- application.kubero.dev
resources:
- kuberokafkas/status
verbs:
- get
Loading

0 comments on commit 08c5e37

Please sign in to comment.