COVID19 communication starter kit for the Call for Code challenge

In this blog post I want to point out the awesome COVID19 communication starter kit for the Call for Code challenge. I created a small YouTube Video series following a COVID19 starter kit tutorial with the objective to show and talk: “More about the how and not so much about the why”.

 

I selected the tutorial Create a crisis communication chatbot and connect it to news and COVID-19 data sources for my video series on YouTube.

Note: Here is the YouTube video series link for LinkedIn users ;-), because I notice in the LinkedIn Mobile App it seems, it isn’t possible to access the embedded YouTube video in the blog post.

Continue reading

error: no matches forkind “Deployment”in version “apps/v1beta1”

This is a short blog post about changes in the new Kubernetes deployment definition.
In my older blog posts related to Kubernetes you will find older deployment definitions, these definitions will cause errors during the Kubernetes deployment. Here are the two major problems you maybe will notice:

1. If you get the following error

error: unable to recognize "deployment.yaml": 
no matches forkind "Deployment"in version "apps/v1beta1"
Please change the entry apps/v1beta1 to apps/v1 in the deployment.yaml file, the newer `deployment definition` for Kubernetes v1.16.8 (v1.18).

Note: Additional useful blog post here.


2. If you get this error

error: error validating "deployment.yaml": 
error validating data: ValidationError(Deployment.spec): 
missing required field "selector"in io.k8s.api.apps.v1.DeploymentSpec; 
#if you choose to ignore these errors, 
turn validation off with --validate=false
You need to insert in the deployment specification the statement selector:matchLabels:name:authors, as you see in the table below.
The table contains an example of the major changes in the deployment specification, the left hand side contains the new Kubernetes deployment definition and right hand side includes the older definition. The `selector` is now required.

kind: Deployment
apiVersion: apps/v1
metadata:
   name: authors
   labels:
     app: authors
spec:
   selector:
     matchLabels:
       app: authors
       version: v1
  replicas: 1
  template:
    metadata:
     labels:
        app: authors
        version: v1
     spec:
       containers:
       - name: authors
         image: authors:1
         ports:
          - containerPort: 3000
 ...
kind: Deployment
apiVersion: apps/v1beta1
metadata:
  name: authors
  labels:
    app: authors
spec: 
  ...
  ...
  ...
  ...
  replicas: 1
  template:
  metadata:
    labels:
      app: authors
        version: v1
    spec:
      containers:
      - name: authors
        image: authors:1
        ports:
        - containerPort: 3000
...

I hope this was useful for you and let’s see what’s next?

Greetings,

Thomas

PS:  You can try out Cloud Foundry Apps or Kubernetes on IBM Cloud. By the way, you can use the IBM Cloud for free, if you simply create an IBM Lite account. Here you only need an e-mail address.

#Kubernetes, #Deployment, #yaml

 

A Node-RED Twitter-follower-flow

In my last blog post I did an introduction to “how use the starter kit for Node-RED on IBM Cloud” and in this new blog post I want to highlight the Node-RED Twitter-follower-flow I developed as an introduction to different topics I frequently face at hackathons. Here is the link to the “Twitter-follower-flow” GitHub project. Node-RED is very good for prototyping, that is the reason why it is often used in hackathons. If you are new to Node-RED and you start  to develop a Node-RED flow, you normally have following challenges:

  • How to …
    1. … define own REST endpoints to encapsulate an external API?
    2. … automate the authentication to that external API?
    3. … extract data from the external API?
    4. … customize data and CRUD with databases?

The Node-RED flow of that project has the objective to provide an (little advanced) introduction to the first three topics above. The CRUD (Create, Read, Update, Delete) topic is not covered here. Visit that CRUD example for more information.

  • The “Twitter-follower-flow” example …
    • … uses open technologies (Node-RED is a Project of the OpenJS foundation )
    • … creates no additional costs
    • … has following technical level:
      • Beginner to intermediate
      • Needs a basic knowledge of JavaScript and REST
    • … takes 30 – 45 min to setup the example from scratch
      1. Register on IBM Cloud
      2. Create a Node-RED instance on IBM Cloud
      3. Register at Twitter for a developer API Account
      4. Copy the existing Node-RED flow
      5. Configure the flow
      6. Run the flow

The YouTube video below gives you a 13 min more detailed introduction to the Twitter-follower-flow.

Continue reading

A short introduction of the Node-RED Starter kit on IBM Cloud for Hackathons

In that blog post I want to highlight the new way of the instantiation of a Node-RED application on  IBM Cloud with the Node-RED Starter kit. From my perspective Node-RED is a very helpful tool at hackathons. (just take a look in my blog post  How to prepare for a Hackathon with IBM Cloud?)

The Node-RED instantiation has changed and with the Node-RED Starter kit we can take the advantage of the capabilities of IBM Cloud to control the build, deployment and execution of the Node-RED application and we setup automatically all  development tools to work effectively in a small development team in our hackathon.

I want to provide a short walkthrough from my perspective and created a 13 min YouTube video in addition to that blog post.

Continue reading

Automated deployment of a microservice to Kubernetes on IBM Cloud

In that blog post I want to point out the awesome topic, how to automate the deployment of a Microservice using a delivery pipeline on IBM Cloud.

Maybe you already know Niklas, Harald and I made the great project called Cloud Native Starter. That project includes a Hands-on workshop that is called “Build a Java Microservice and deploy the Microservice to Kubernetes on IBM Cloud”.  In Lab 4 you have to deploy the Authors Microservice to Kubernetes on IBM Cloud. Sometimes we have limited time in workshops. The limited time is the reason why we want to reduce the manual effort for students in a workshop to a minimum, therefor we took the IBM® Cloud Continuous Delivery and I created a repeatable way with minimal human interaction. The delivery pipeline contains sequences of stages which retrieve inputs and run jobs, such as builds, and deployments.

That image shows two stages, one stage is called FETCH and the other DEPLOY_SERVICES. The FETCH stages contains a job called Fetch code and the DELOY_SERVICES has two jobs one for build and one for deployment.

Toolchain-04

With the realization of the automated setup for the creation of the toolchain, you can just press the button Create toolchain in the GitHub project and follow a guided wizard to deploy the Authors Microservice.

Visit the hands-on workshop Use a IBM Cloud toolchain to deploy a Java Microservices to Kubernetes on IBM Cloud and press the button 😉

create-toolchain-gitbook

Continue reading

Deploy the Reactive Cloud Native Starter example to IBM Cloud

The Cloud Native Starter project now contains the new great topic, the development of Reactive Microservices  with Java, quarkus, MicroProfile and Vue.js as front-end. The Reactive example implementation runs on minikube, local OpenShift and on IBM Cloud Kubernetes. Here are the instructions on GitHub.

But what does reactive mean? Here is an extract of the definition in  The Reactive Manifesto.

“Systems built as Reactive Systems are more flexible, loosely-coupled and scalable. This makes them easier to develop and amenable to change. They are significantly more tolerant of failure and when failure does occur they meet it with elegance rather than disaster. Reactive Systems are highly responsive, giving users effective interactive feedback.” 

But be aware, our example is not a full Reactive System it shows reactive programming techniques.

Note: To understand the difference between these two topics, that badge on cognitiveclass is useful Reactive Architecture: Introduction to Reactive Systems.

In our reactive programming example, you see directly changes in the database on the Web UI, without refreshing the browser.

reactive-sample

In this blog post I want to share, how you deploy that awesome Reactive example to a free IBM Cloud Kubernetes Cluster and using the free quota of the IBM Cloud Container Registry. We avoid for the setup that you have to use any paid IBM Cloud services, because you want just to see how the Reactive example works on IBM Cloud.
To create a free Cluster you need a feature code to create a Trial Account or you create a pay as you go account and you only use the free services of IBM Cloud.

That is the major architecture of the Reactive example. Three Java Microservices, one Vue UI application and two infrastructure components running on Kubernetes.

reactive-architecture

But what is reactive programming in more detail? If you want to get more details of the Reactive topic, just visit the blog post Development of Reactive Applications with Quarkus from Niklas Heidloff and if you want to explore the setup for local OpenShift take a look into the blog post Cloud Native Starter on Red Hat OpenShift 4 from Harald Uebele.

Continue reading

Deploy WordPress on a free IBM Cloud Kubernetes Cluster for non-productive usage

In this blog post I just want to highlight an awesome guideline I noticed on GitHub: How to deploy WordPress to a free IBM Cloud Kubernetes Cluster for non-productive usage?

Why do I say “non-productive”? Because of the free IBM Cloud Kubernetes Cluster , which will be deleted after 30 days. Surely you can also deploy WordPress for production usage, when you deploy to a paid cluster. But maybe you got a feature code for free IBM Cloud at a conference or at a hackathon and you want play around with IBM Cloud, that could be one option.

You can find the instructions for the deployment here: Scalable WordPress deployment on Kubernetes Cluster. By the way, the project is under Apache 2.0 license.

wordpress-installation

Continue reading

Central management of billing and resource usage tracking across multiple accounts in IBM Cloud

In this blog post I want to shortly highlight the topic central management of billing and resource usage tracking across multiple accounts. I think it is good to know that topic, even if you will currently not use it.

I didn’t use IBM Cloud Enterprise until now, but is great to know that this is possible. This organisational topic is (more or less 😉 ) related to one of my older blog posts  “What are major elements to organize my services, apps and devices in IBM Cloud?”

The announcement was in Juli 2019 :

“Now you can organize multiple IBM Cloud accounts in flexible hierarchical groups.”

For more details please visit that blog post introducing IBM Cloud Enterprises.

Continue reading

No code changes needed to secure your application on Kubernetes

In that blog post I want to highlight how I did my first configuration of the App Identity and Access Adapter for Istio Mixer in my Cloud Native Starter system on a free IBM Cloud Kubernetes cluster.

In my last blog post I described how I did the installation of the App Identity and Access Adapter.

Once more I want to highlight, that the cool thing from my perspective of App Identity and Access Adapter is “that the adapter can be configured to work with any OIDC compliant identity provider, which enables it to control authentication and authorization policies in all environments including frontend and backend applications. And, it does it all without any change to your code or the need to redeploy your application.

I did a combination of the steps from the videos inside the IBM Cloud App ID service documentation and of the videos from Anton Aleksandrov. With that in mind I applied needed changes of that configurations in the videos to run it on our Cloud Native Starter setup.

Continue reading

Install the App Identity and Access Adapter on a free IBM Cloud Kubernetes Cluster

In that blog post I want to highlight that I started to integrate the open source App Identity and Access Adapter for Istio Mixer into our open source Cloud Native Starter sample that uses the free IBM Cloud Kubernetes cluster setup with a manual Istio installation.

The cool thing from my perspective of the App Identity and Access Adapter is “that the adapter can be configured to work with any OIDC compliant identity provider, which enables it to control authentication and authorization policies in all environments including frontend and backend applications. And, it does it all without any change to your code or the need to redeploy your application. I had a short problem with the installation you can find on stackoverflow.

Continue reading