SpringOne 2021:
Session Title: A Series of Fortunate Events: Building an Operator in Java
Speakers: Alberto C. Ríos, Staff Engineer at VMware; Bella Bai, Software Engineer at VMware
🔮 Want more VC/investment startup pitch decks? We’ve centralised ALL succesful investor pitch decks at: https://chagency.co.uk/getstartupfunding — check all of them out
🔮 The effort is adhering to the ideology of “The Future Of Freemium” — read more here: https://chagency.co.uk/blog/ceo/the-future-of-freemium-how-to-get-peoples-attention/
🔮 Our library of pitch decks will not have any advertisement, only a signature. We are a design agency that helps SaaS CEOs reduce user churn.
Kibin is the newest and easiest way to get the things you write looked at by another set of eyes. Upload to Kibin and have another user leave edits and feedback on your writing in less than 24 hours!
Find out more at www.kibin.com or www.angel.co/kibin
🔮 Want more VC/investment startup pitch decks? We’ve centralised ALL succesful investor pitch decks at: https://chagency.co.uk/getstartupfunding — check all of them out
🔮 The effort is adhering to the ideology of “The Future Of Freemium” — read more here: https://chagency.co.uk/blog/ceo/the-future-of-freemium-how-to-get-peoples-attention/
🔮 Our library of pitch decks will not have any advertisement, only a signature. We are a design agency that helps SaaS CEOs reduce user churn.
Kibin is the newest and easiest way to get the things you write looked at by another set of eyes. Upload to Kibin and have another user leave edits and feedback on your writing in less than 24 hours!
Find out more at www.kibin.com or www.angel.co/kibin
The investor presentation we used to raise 2 million dollarsMikael Cho
The investor presentation we used to raise 2 million dollars for ooomf.com (now pickcrew.com)
View the online version here: https://pickcrew.com/investors/
Inilah pitch deck dari raksasa media digital, Buzzfeed. Bagi kamu yang memiliki model bisnis yang serupa dengan BuzzFeed, mungkin kamu dapat terinspirasi dari pitch deck ini.
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 1부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
AppVirality - Plug & Play growth hacking toolkit for Mobile apps.
We help app developers implement Uber/Lyft like in-app referrals under 30 minutes. No coding required.
Checkout - http://appvirality.com
Coinbase pitch deck designed by Zlides
Want to create a pitch deck that inspires your audience? Get your FREE presentation kit designed by Zlides: http://bit.ly/slideshare_zlides
Lean Analytics for Startups and EnterprisesLean Analytics
Latest Lean Analytics workshop from the Lean Startup Week in San Francisco. Focusing on what metrics matter to both startups and big corporations. Incorporates elements of corporate innovation into the Lean Analytics framework to help bigger companies think through the data that really matters.
Stripe pitch deck designed by Zlides
Want to create a pitch deck that inspires your audience? Get your FREE presentation kit designed by Zlides: http://bit.ly/slideshare_zlides
This was our final Series A deck. Read more about raising the round in this blog post:
https://medium.com/@DanielleMorrill/welcome-brad-feld-to-the-mattermark-team-announcing-our-6-5m-series-a-dd9532fc1b39
Marketing Pipeline Intelligence: A Dimensional ModelDaniel Upton
aaRe-publishing this piece, which I originally designed and wrote in October 2010. Importantly, implementing this design and populating even medium-sized fact tables (say 10 million plus records) will probably only produce acceptable query performance if either massively-parallel processing architecture, or OLAP, is used.
On parle des Operator Kubernetes, mais de quoi s’agit-il ? Comment peut-on programmer son cluster Kubernetes et surtout, est-il possible de les écrire en Java ?
C’est ce que nous allons présenter au cours de 3 sessions dont celle-ci est la première. Dans cette session, nous allons présenter les différentes ressources de l’api REST de Kubernetes, les CRD (Custom Resource Definition), la bibliothèque fabric8 kubernetes-client et le projet exemple Hypnos.
par Charles Sabourdin
The investor presentation we used to raise 2 million dollarsMikael Cho
The investor presentation we used to raise 2 million dollars for ooomf.com (now pickcrew.com)
View the online version here: https://pickcrew.com/investors/
Inilah pitch deck dari raksasa media digital, Buzzfeed. Bagi kamu yang memiliki model bisnis yang serupa dengan BuzzFeed, mungkin kamu dapat terinspirasi dari pitch deck ini.
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 1부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
AppVirality - Plug & Play growth hacking toolkit for Mobile apps.
We help app developers implement Uber/Lyft like in-app referrals under 30 minutes. No coding required.
Checkout - http://appvirality.com
Coinbase pitch deck designed by Zlides
Want to create a pitch deck that inspires your audience? Get your FREE presentation kit designed by Zlides: http://bit.ly/slideshare_zlides
Lean Analytics for Startups and EnterprisesLean Analytics
Latest Lean Analytics workshop from the Lean Startup Week in San Francisco. Focusing on what metrics matter to both startups and big corporations. Incorporates elements of corporate innovation into the Lean Analytics framework to help bigger companies think through the data that really matters.
Stripe pitch deck designed by Zlides
Want to create a pitch deck that inspires your audience? Get your FREE presentation kit designed by Zlides: http://bit.ly/slideshare_zlides
This was our final Series A deck. Read more about raising the round in this blog post:
https://medium.com/@DanielleMorrill/welcome-brad-feld-to-the-mattermark-team-announcing-our-6-5m-series-a-dd9532fc1b39
Marketing Pipeline Intelligence: A Dimensional ModelDaniel Upton
aaRe-publishing this piece, which I originally designed and wrote in October 2010. Importantly, implementing this design and populating even medium-sized fact tables (say 10 million plus records) will probably only produce acceptable query performance if either massively-parallel processing architecture, or OLAP, is used.
On parle des Operator Kubernetes, mais de quoi s’agit-il ? Comment peut-on programmer son cluster Kubernetes et surtout, est-il possible de les écrire en Java ?
C’est ce que nous allons présenter au cours de 3 sessions dont celle-ci est la première. Dans cette session, nous allons présenter les différentes ressources de l’api REST de Kubernetes, les CRD (Custom Resource Definition), la bibliothèque fabric8 kubernetes-client et le projet exemple Hypnos.
par Charles Sabourdin
JDD2015: Kubernetes - Beyond the basics - Paul BakkerPROIDEA
KUBERNETES - BEYOND THE BASICS
Kubernetes has answers to many questions related to clustering and the required low-level networking. When using Kubernetes for real live deployments we need more than those lower-level solutions however. We need things like automated deployments, load balancing for web applications, blue/green deployments and monitoring.
This is all possible with Kubernetes when we start to look at Kubernetes as an API. In this talk you will learn to embrace the Kuberentes API and some of the patterns, tools and mechanisms we developed and use around Kubernetes to prepare for production grade deployments.
Spring and Cloud Foundry; a Marriage Made in HeavenJoshua Long
Spring and Cloud Foundry: a Marriage Made in Heaven. This talk introduces how to build Spring applications on top of Cloud Foundry, the open source PaaS from VMware
Kubernetes is exploding in popularity right now and has all the buzz and cargo-culting that Docker enjoyed just a few years ago. But what even is Kubernetes? How do I run my PHP apps in it? Should I run my PHP apps in it ?
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...Tobias Schneck
Thanks to tools like kubeadm, Terraform or Ansible setting up a Kubernetes cluster on a dedicated environment is getting reachable, but what’s about setting up a bunch of cluster in multiple clouds in automatic way? This is still a challenge. Also if you want to do same in your own datacenter. In this talk we will take a look to the approach to orchestrate and manage a whole set of k8s cluster by the Cluster API project of kubernetes (a subproject of sig-cluster-lifecycle). The main idea behind it is to use the Kubernetes API itself to manage multiple clusters with there master and worker nodes in same way you would manage your PODs - define the needed resources and the responsible controller will take care for providing it.
After an overview about the concepts of cluster API, I will show what’s needed to implement a cluster API conform machine class/deployment. There I will see that adding your own provider isn’t that hard as you may aspect. At the end of the day it just requires a simple interface to implement. The corresponding kubermatic controllers we implemented at Loodse are available as open source, so its possible to play around with it. A live demo will show how easy it is to spin up and maintain multiple Kubernetes cluster at different public and on-premise cloud providers over one managing cluster. A final wrap up will summarize the current state of the Cluster API project and the advantages of managing clusters as cattles instead of pets.
Build Your Own CaaS (Container as a Service)HungWei Chiu
In this slide, I introduce the kubernetes and show an example what is CaaS and what it can provides.
Besides, I also introduce how to setup a continuous integration and continuous deployment for the CaaS platform.
DevOpsDaysRiga 2018: Andrew Martin - Continuous Kubernetes Security DevOpsDays Riga
Now that we have passed “peak orchestrator” and as Kubernetes eats the world, we are left wondering: how secure is Kubernetes? Can we really run Google-style multi tenanted infrastructure safely? And how can we be sure what we configured yesterday will be in place tomorrow? In this talk we discuss: - the Kubernetes security landscape - risks, security models, and configuration best-practices - how to configure users and applications with least-privilege - how to isolate and segregate workloads and networks - hard and soft multi-tenancy - Continuous Security approaches to Kubernetes.
A quick overview of tips, tricks and code snippets for developers using Symfony and all its ecosystem, from Monolog to Doctrine. Learn how to become more productive and discover some rarely used options and features.
On Friday 5 June 2015 I gave a talk called Cluster Management with Kubernetes to a general audience at the University of Edinburgh. The talk includes an example of a music store system with a Kibana front end UI and an Elasticsearch based back end which helps to make concrete concepts like pods, replication controllers and services.
Similar to A Series of Fortunate Events: Building an Operator in Java (20)
The Tanzu Developer Connect is a hands-on workshop that dives deep into TAP. Attendees receive a hands on experience. This is a great program to leverage accounts with current TAP opportunities.
The Tanzu Developer Connect is a hands-on workshop that dives deep into TAP. Attendees receive a hands on experience. This is a great program to leverage accounts with current TAP opportunities.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Globus Connect Server Deep Dive - GlobusWorld 2024
A Series of Fortunate Events: Building an Operator in Java
1. A series of fortunate events
Building an operator in Java
September 1–2, 2021
springone.io
1
Bella Bai
@bellalleb_bai
LittleBaiBai
Alberto C. Ríos
@Albertoimpl
Albertoimpl
Sample app:
https://github.com/building-k8s-operator/kubernetes-java-operator-sample
3. Operators are software extensions to
Kubernetes that make use of custom
resources to manage applications and
their components. Operators follow
Kubernetes principles, notably the control
loop.
3
-- Kubernetes Documentation
Quote source: https://kubernetes.io/docs/concepts/extend-kubernetes/operator/
4. Control loop of operators
4
Image source: https://github.com/cncf/tag-app-delivery/blob/master/operator-wg/whitepaper/Operator-WhitePaper_v1-0.md#operator-components-in-kubernetes
5. An operator is a Kubernetes controller that
understands two domains: Kubernetes and
something else.
By combining knowledge of both domains, it
can automate tasks that usually require a human
operator that understands both domains.
5
-- Jimmy Zelinskie
Quote source: https://github.com/kubeflow/tf-operator/issues/300#issuecomment-357527937
6. The “business” context in our sample app
6
apiVersion: "operator.example.com/v1alpha1"
kind: AdoptionCenter
metadata:
name: kittens-dream-land
apiVersion: "operator.example.com/v1alpha1"
kind: CatForAdoption
metadata:
name: my-precious-fluffy-ball
spec:
name: Chocobo
dateOfBirth: 2014-09-17
description: She is chubby, lazy ...
adoptionCenterName: kittens-dream-land
The AdoptionCenter icon is made by Freepik: https://www.flaticon.com/
7. The “business” context in our sample app
7
The AdoptionCenter icons are made by Freepik: https://www.flaticon.com/
9. When do we want to use an operator
● Deploying applications on demand
● Backing up and restoring an application's
state
● Automating application upgrades
● Provide a decentralized way to manage
centralized resources
9
10. When NOT to use an operator
● It is just an app with some configuration
● You don't need some special business logic for
handling most of the operational work and can
deploy it as it is
● When you can just deploy everything with Helm or
Kustomize
● No need for any kind of persistence nor status to
be backed
10
12. Starting from scratch
12
● Pick an operator library with Spring support
○ Kubernetes Java Client
○ Java Operator SDK
● Generate models based on your CRDs
○ Or generate your CRDs based on your model
○ Maintain single source of truth
● Setup your controller with resource listeners
Kubernetes Java Client: https://github.com/kubernetes-client/java
Java Operator SDK: https://github.com/java-operator-sdk/java-operator-sdk
14. Starting from scratch
14
● Pick an operator library with Spring support
○ Kubernetes Java Client
○ Java Operator SDK
● Generate models based on your CRDs
○ Or generate your CRDs based on your model
○ Maintain single source of truth
● Setup your controller with resource listeners
Kubernetes Java Client: https://github.com/kubernetes-client/java
Java Operator SDK: https://github.com/java-operator-sdk/java-operator-sdk
● Start reconciling 💪
15. Example reconciler
15
@Override
public Result reconcile(Request request) {
V1alpha1AdoptionCenter center = adoptionCenterLister.get(request.getName())
try {
V1OwnerReference owner = toOwnerReference(center);
configMapUpdater.createConfigMap(owner);
deploymentEditor.createDeployment(owner);
return new Result(false);
}
catch (Exception e) {
return new Result(true);
}
}
20. Managing status
% kubectl get cats
NAME READY REASON
my-precious-fluffy-ball True CatAddedToConfigMap
2
0
21. Managing status
schema:
openAPIV3Schema :
type: object
properties :
spec:
...
status:
type: object
properties:
conditions:
type: array
items:
type: object
properties:
type:
type: string
description: The unique identifier of a condition, used to
distinguish between other conditions in the resource.
status:
type: string
description: The status of the condition.
21
https://github.com/building-k8s-operator/kubernetes-java-operator-sample/blob/main/
crds/cat-custom-resource-definition.yaml
33. Finalizers are namespaced keys that tell
Kubernetes to wait until specific
conditions are met before it fully deletes
resources marked for deletion.
You can use finalizers to control garbage
collection of resources.
33
-- Kubernetes Documentation
Quote source: https://kubernetes.io/docs/concepts/overview/working-with-objects/finalizers/
34. Removing CatForAdoption without finalizers
34
The AdoptionCenter icons are made by Freepik: https://www.flaticon.com/
Operator
Desired State Actual State
35. Removing CatForAdoption without finalizers
3
5
The AdoptionCenter icons are made by Freepik: https://www.flaticon.com/
Operator
Desired State Actual State
Return “Null”
36. Actual State
Desired State
Return “Null”
Removing CatForAdoption without finalizers
3
6
The AdoptionCenter icons are made by Freepik: https://www.flaticon.com/
Operator
37. Removing CatForAdoption with finalizers
37
The AdoptionCenter icons are made by Freepik: https://www.flaticon.com/
Operator
Desired State Actual State
metadata.deletionTimeStamp != null
40. Watch out when you uninstall
4
0
● Resources pending delete without operator
● What to do?
○ Pre-delete hook in operator
○ Pre-delete hook in Helm or other
packaging options
○ Cancel uninstallation
○ Carefully order the uninstall process
○ Just document as known issue
43. Syntactic validation
schema:
openAPIV3Schema:
…
name:
type: string
description: The name of the cat
dateOfBirth:
type: string
format: date
description: Date of birth of the cat in the format defined in RFC 3339
description:
type: string
description: The description of the cat
adoptionCenterName:
type: string
description: Name of the adoption center to register this cat to
required: ["adoptionCenterName", "name"]
43
51. Testing
● Unit Tests
● Component Tests: Closed-box test from the Operator's
perspective
We do not assert correctness of the deployed application
but assert on the values it was deployed with.
51
54. Testing
● Unit Tests
● Component Tests
● Acceptance Tests: Testing the system as a whole
Using a real environment and installing the product as a
user would.
5
4
61. Closing notes
● Generate your Java classes from CRD:
https://github.com/building-k8s-operator/kubernetes-java-operator-sample#gen
erating-java-classes-from-crd
● Use Statuses, Finalizers, Readiness gates and Owner references.
● They can be TDDed!
61
62. Now it’s your turn to try!
https://github.com/building-k8s-operator/kubernetes-java-
operator-sample