Skip to content

Instantly share code, notes, and snippets.

View akash-gautam's full-sized avatar

Akash Gautam akash-gautam

View GitHub Profile
apiVersion: blog.velotio.com/v1alpha1
kind: BookStore
metadata:name: example-bookstore
spec:
bookApp:
repository: "akash125/pyapp"
tag: latest
imagePullPolicy: "IfNotPresent"
replicas: 1
port: 80
type BookStoreSpec struct {
BookApp BookApp `json:"bookApp,omitempty"`
BookDB BookDB `json:"bookDB,omitempty"`
}
type BookApp struct {
Repository string `json:"repository,omitempty"`
Tag string `json:"tag,omitempty"`
ownerReferences:
- apiVersion: blog.velotio.com/v1alpha1
blockOwnerDeletion: true
controller: true
kind: BookStore
name: example-bookstore
uid: 0ef42889-deb4-11e9-ba56-42010a800256
resourceVersion: "20295281"
func (r *ReconcileBookStore) BookStore(bookstore *blogv1alpha1.BookStore) error {
reqLogger := log.WithValues("Namespace", bookstore.Namespace)
mongoDBSvc := getmongoDBSvc(bookstore)
msvc := &corev1.Service{}
err := r.client.Get(context.TODO(), types.NamespacedName{Name: "mongodb-service", Namespace: bookstore.Namespace}, msvc)
if err != nil {
if errors.IsNotFound(err) {
controllerutil.SetControllerReference(bookstore, mongoDBSvc, r.scheme)
err = r.client.Create(context.TODO(), mongoDBSvc)
if err != nil { return err }
func (r *ReconcileBookStore) Reconcile(request reconcile.Request) (reconcile.Result, error) {
reqLogger := log.WithValues("Request.Namespace", request.Namespace, "Request.Name", request.Name)
reqLogger.Info("Reconciling BookStore")
// Fetch the BookStore instance
bookstore := &blogv1alpha1.BookStore{}
err := r.client.Get(context.TODO(), request.NamespacedName, bookstore)
// Watch for changes to primary resource BookStore
err = c.Watch(&source.Kind{Type: &blogv1alpha1.BookStore{}}, &handler.EnqueueRequestForObject{})
if err != nil {
return err
}
@akash-gautam
akash-gautam / add-controller-output.log
Created September 24, 2019 08:20
Output of operator-sdk add controller --api-version=blog.velotio.com/v1alpha1 --kind=BookStore
INFO[0000] Generating controller version blog.velotio.com/v1alpha1 for kind BookStore.
INFO[0000] Created pkg/controller/bookstore/bookstore_controller.go
INFO[0000] Created pkg/controller/add_bookstore.go
INFO[0000] Controller generation complete.
@akash-gautam
akash-gautam / add-api-output.log
Created September 24, 2019 08:18
Output of operator-sdk add api --api-version=blog.velotio.com/v1alpha1 --kind=BookStore
INFO[0000] Generating api version blog.velotio.com/v1alpha1 for kind BookStore.
INFO[0000] Created pkg/apis/blog/group.go
INFO[0001] Created pkg/apis/blog/v1alpha1/bookstore_types.go
INFO[0001] Created pkg/apis/addtoscheme_blog_v1alpha1.go
INFO[0001] Created pkg/apis/blog/v1alpha1/register.go
INFO[0001] Created pkg/apis/blog/v1alpha1/doc.go
INFO[0001] Created deploy/crds/blog.velotio.com_v1alpha1_bookstore_cr.yaml
INFO[0009] Created deploy/crds/blog.velotio.com_bookstores_crd.yaml
INFO[0009] Running deepcopy code-generation for Custom Resource group versions: [blog:[v1alpha1], ]
INFO[0010] Code-generation complete.
@akash-gautam
akash-gautam / main.yml
Created September 9, 2019 08:08
mai tasks file for bookstore Ansible role.
---
# tasks file for bookstore
- name: Create the mongodb deployment
k8s:
definition:
kind: Deployment
apiVersion: apps/v1beta1
metadata:
name: mongodb-deployment
@akash-gautam
akash-gautam / blog_v1alpha1_bookstore_cr.yaml
Created September 9, 2019 07:23
Bookstore cr for ansible based operator blog
apiVersion: blog.velotio.com/v1alpha1
kind: BookStore
metadata:
name: my-bookstore
spec:
image:
app:
repository: akash125/pyapp
tag: latest
pullPolicy: IfNotPresent