My name is Hugo. I'm part of the record team. I'm Mexican, Massachusetts in the United States. I'm based in the Westford office and I'm a specialist in APIs and messaging and also an open source advocate. And when we used to travel, a fan of traveling all around and then so good man. So I really like to try new food and street food and so on. So I really miss being in the Chagrabub like sometimes we were able to taste really good food there. So for today, we're going to be talking a little bit more about Kafka. We will be introducing some challenges and interconnection of systems. And we will talk about the Apache camera project for those that haven't really heard about that one for the integration. It's a very interesting project. And then we will be talking about one of the sub projects within the Apache camera umbrella that is the camera Kafka connector project. And why is it offering to us at all? So I hope you like the session and please remember you can put some questions, comments in the chat and we can follow up the conversation using discourse as part of the event chat. Okay. So first thing, let's talk about Apache Kafka. So Apache Kafka is the cookie is the center of this of this chat. And let's get a review of what is Apache Kafka. So remember Apache Kafka was a project originally created around 2010 within LinkedIn and it was mainly focused on trying to track all the different web clicks that you do in the site to give some analytics and more information and insights on how the site was being used. And for that, they were trying to get all this information coming from the web system and being able to easily move that information that around and being able to store them quickly because the amount of events that they have in the site was growing so much. They were facing some limitations on the traditional messaging infrastructure to record all those events. So that's why they decided to focus there for some trading. This publish and subscribe messaging system that allows you to implement a very efficient broker that can handle thousands of messages and events per second. And it become and it has been growing into becoming a data streaming platform. But in the core of the system, it is distributed commit log. So it is a set of events coming into a log file that is just appending. So it's very focused on having this high throughput nature. And as a result, it has a distribution in nature because it's doing sharding of the information and these files across a pool of broker notes that allows you to have a very good throughput. However, most of the people that are starting to talk or getting into the Kafka world, they are focusing on just implementing Kafka by itself and thinking that perhaps that implementation, it's enough to solve many different problems and use cases and technical patterns from microservices or even driven architecture. So let's think about this of a Jedi journey, right? And one of the things that I tell people is when you are focusing on Kafka, it's not like you are in the, you know, the last Jedi type of movie where there's only one Jedi and they only need Kafka for that and that will solve, you know, all the universe problems. You are not alone. When we're talking about Apache Kafka, it's more when we're talking about the first movie where there's a lot of Jedi around. So don't think about Kafka by a goal itself, but more like Kafka as a tool for that. And this is because Kafka, it's a broader ecosystem, right, beyond the broker. So, you know, there's the Apache Kafka project under the Apache umbrella, but that does only include certain features like the APIs and some projects like NeuroMaker and so on. However, you know that we need to be able to connect with other systems. We need to be able to interact with other applications. And even for the LinkedIn use case for metrics and analytics, you know, you cannot access a Kafka UI and being able to just review the topics and so on. It's not part of the original project. You need to connect with other different parts and systems to be able to export that information to showcase those data visualizations or even able to provide more data into your system. So let's talk about how we can then be able to connect with Kafka and integrate our systems. And one of those mechanisms within the same Kafka ecosystem is the Kafka Connect API. So the idea of the Kafka Connect API is to have this wrapper around the consumer and the producer APIs. And it's this framework that allows you to easily compose transferring of data between your Kafka broker cluster and other data systems. And for this, it offers a series of mechanisms and components that facilitate data conversion, scaling, and load balancing because you can create a Kafka Connect cluster that is able to handle the lifecycle of your connectors or your connector plugins. That's how it's calling the Kafka Connect world for those pieces of software that allows you to have specialized connectivity with systems. And it defines a framework for having sync connectors and source connectors depending on if you are moving your data from or of Kafka. And also remember that the Apache project only includes two connectors, the file sync and the file source. That means that the ecosystem around more connectors needs to outgrow from the Apache project and it's being provided by additional providers. There's other companies and providers that have developed their own additional plugins. And you will see that the databases have their own plugins or other Kafka providers providing enterprise support. They also have their connectors. So this is an ecosystem that's growing and growing and growing. And let's review why Kafka Connect. As I was mentioning before, it's part of Kafka itself, right? So you are talking about it appears that it's very well crafted within the ecosystem to match the capabilities, use the same versions and so on. And as I mentioned, if you are using the cluster nature of the Kafka Connect, if you are using the distributed one, it's scalable and distributed by default. You can also rely on storing your tracking information for the offsets within Kafka itself. So it's automatically able to outscale. And also it offers some things like additional transformations. So transformations, when you are moving your data from one source to another, remember most of the times you will want to have some data management so you can, you know, remove fields or do some minor changes. So this framework is not an integration tool, but it offers something like the single message transformation that allows you to do some kind of these activities for easy of use, right? And allows you to have this streaming integration and batch integration. So you will have your connectivity easy and configuration based. And you can also write your own connectors. So in this case, remember that when you're, we're talking about this positioning on the first movies of the Star Wars trilogy when there's a lot of GLIs already available. Sometimes you need to remember that most of those GLIs are coming from different types of species and they talk different languages. And this is very similar to what we have with Kafka, right? So we have Kafka and then we need to connect to very different type of systems from coming from Slack to MongoDB to passing through Telegram or exporting those to Elasticsearch. So sometimes those systems are having protocols that are not included in some of the other connectors providers. So you have to either ask the system provider to give you an easy to consume API or you need to craft and develop your own specific connector. And sometimes that is very complicated. It's like if you need to understand how to connect to each one of those services being just the Kafka add-in. So taking the same approach as we were mentioning on the Star Wars trilogy, why don't you benefit of some mechanisms that are already available for you like in this case C3PO who is very fluent in over more than six million forms of communication and you're able to use and rely on these different type of technologies to be able to help you with that integration within Kafka and other systems. So this is the approach to, you know, reuse some of the content that is already there that has been proved for a lot of time because projects that have been dealing with integration since a while and then being able to tune your Kafka ecosystem to be able to use this kind of components. So let's get a little bit more into what it's Apache Camel. So remember Apache Camel, it's another project under the Apache Foundation that helps us to deal with integrations. So in a nutshell, what is Apache Camel? Remember this open source project that is basically the Swiss Army knife for framework as for integration. So it has a lot of components, more than 350 of them to be able to do data transformation, to do protocols and connectivity as well as the implementation of enterprise integration patterns. So you can model your connection flow or your data flow as a route and then you can do interesting things like being able to do aggregation or splitting or content enrichment and so on. And this is a project that has been around for more than 10 years. It's a very active project and the community is growing and blossoming all the time. They're moving according to the new technology and they are evolving all the time. So if you want to take a look closer on how Camel routes look, you can see the following slide where you define using the camel DSLs of the domain-specific languages to define how your flow or your integration is going to be described. Okay, and I'm sorry about that. I was mentioning how the Camel routes look like. So it's the way to check this as a DSL where you can put like from where is your data coming and where is the endpoint that you are sending your information to. So we have different ways to express those DSLs. They have the Java version that it's based on Java language where you have a fluent DSL that helps you to map this kind of approach or you have also the XML DSL where you can define a spring kind of objects in XML and then define again using tags from where your data is coming. In this case, for example, it's coming from a file that it's stored in the data inbox folder and then it's going to be sent into a GMS queue that it's called order. So you can see there's using this URI pattern where you define what is the component that you're going to use and where is the destination for that. And the camel architecture is a little bit more complex. So if you want to take a look, it's like if you really want to get into the insights of C3PO, there's a lot of details inside this and there's the implementation of the integration pattern, the management of the context within the routes and so on. But the interesting part here is the concept of the components that allows you to do this integration with other systems and they've been able to transfer and pass the information along your flows. So this is the really interesting part that you really want to focus on. And on those components that are already available, as part of Apache Camel, to be able to simplify your integration. And at the beginning, we were talking about the Apache Camel umbrella project and the soup projects that are available. So if you already are familiar with Camel, you will have seen that they have been releasing now different runtimes for each one of the deployment options. So you can run in the traditional carafe mode using the Camel carafe project or you can deploy on top of Spring Boot. And if you check the previous session with Quarkus, there's another option to be able to deploy Camel on top of that container native and cloud native runtime. So you have also the Camel core project where all these internals of the framework are being developed. And if you're thinking about deploying Camel on a serverless environment running on top of Kubernetes, Camel K is the way to go. But in this moment, we're going to be talking more about the Camel Kafka connector sub-project where we are focusing on dealing with Camel and well as Kafka. So let's get a little deeper diver on the Camel Kafka connector project. And in this case, the idea that the Camel contributors have with this project was to tune their components to be able to play well together with Kafka. So the idea of having this part of the time where you need C3P to be able to easily talk and being able to mention and being able to speak what the dark side is saying. So you need to tune also C3P to be able to ingest and being able to mention what the dark side is saying. So this is very similar or what the Camel team did for making the batch of Camel connectors being able to play nicely with Kafka. And this is why they create this project. So the Camel Kafka connector project, it's a pool of Kafka connectors that are built on top of the Apache Camel components. The idea is to reuse in a very simple way all the different Camel components that are already available. The more than 350 connectors that are part of the project and being able to just add this logic and this tiny integration to make them run as if they were native connector plugins for Kafka Connect. And this was very successful because now we have connectors that are coming from the Camel components and most of them are already available. So there's a connector list that you can check with all the different connectors available. And they are being generated every time there's a new version of the Camel project. So you get all those connectors available and it's easy to use. And it's live as we mentioned a sub-project from the Apache Camels are really integrated. So if we think about why do we use the Camel Kafka connector? So most of the times I was saying you want to have your Kafka being able to talk to other systems either to get information from those systems or being able to push that information and being able to do a little bit more transformation. So remember there's two ways to do the integration with your system. You can use the traditional Camel approach where you need to deal with the company that retrieves information as its consumer or producer and you can do heavyweight transformation so you can use Disney approach to have a simple node code or local type of configuration using the internals of Kafka Connect. And it have three like use cases here. You have consolidated events that you are taking from a Mongo instance. And then you have several instances and you want to consolidate information. You can use the Mongo scene. So you can send information there for analytics or reporting. You can also use the elastic search sync that it's a component so you can use the elastic search rest API to send information from your Kafka clusters. And also for example, if you're getting logs that is a use case that people like for example in Telefonica they're having where they're taking information coming from their logs in a Kubernetes environment and they're using the connectors to be able to send information as an integration log and then being able to then produce a process and do a streaming analytic on those logs. And there's a ton of connectors that are very available, right? That allows you not only to connect to elastic search but also being able to connect to things like Slack. So no need to write Python code to connect to Slack or any other client. You can reuse the connector and just configure your tokens and then being able to send information into Slack or for example, getting data from Google Sheets or being able to send information there. And a little bit of detail on the code configuration. So remember, this is pure configuration. There's no code here. No need to write the Java DSL or the XML DSL. This is using the Kafka Connect approach where you just configure where is your class and the different parameters that your class needs to for the configuration. So in the first example, we have Amazon S3, then sending information using the configuration. You just need to pass the information on your secret and your access token and what is the region that you are being querying that S3 bucket. And if you're sending from Kafka to Amazon SQS, for example, is the taxing thing you need to tell the component where is the topic that you're listening to and then where is the path with the information on how you are gonna be accessing the SQS queues, right? And if you want to get started in your journey, there's a very simple steps you can follow to get started with this type of component. So the first thing is, you can go to the website on Kamal at Apache.org and they've been able to navigate into the list of supported connectors where you can find information on which of those connectors are available as the sync connectors or also as source connectors. So not all the different components are available as both. Sometimes some are sync, some are source, or sometimes they do as work as both. And then you can find the download links so you can download the components and then being able to create them as part of your Kafka Connect plugins folder or you can create your container images if you're running, for example, using StreamSync. And now that you have downloaded on sync the file, you can then take that set of jars, put in your plugins directory and then you can configure the connector. So in this example that you're seeing here, if you are using just traditional deployment of Kafka on a virtual machine or a server and you're using the standalone mode for Kafka Connect, you can just add the properties on your properties file and then start that process with that configuration. However, most of us will be using the container-based image, for example. And this is an option that is very common for where you're using StreamSync, for example, to deploy on Kubernetes or if you're just using the Docker compose configuration, you take a base image and then you can add the plugins either by creating your own image or just configuring your Docker compose. And then you can configure this new container and in the case of, for example, StreamSync, you can either use the REST endpoint so you can send that information directly as the endpoint or you can also define that as a custom resource because StreamSync uses custom resources to be able to define the different configuration of your Kafka ecosystem. So you can define a Kafka node or you can define a Kafka Connect cluster and also the Kafka Connect connectors. But if not, then you can use the REST API for that. And for that, let's see if we can do this in a few minutes and show you the power of the camel connectors. So please confirm me that you are able to see my screen and my demo. I can see only the presentation. Now it's good. Okay. Let's increase the font. Okay. Can you increase it a little bit more, please? Yeah, sure. Let's do a couple more. That should be better. Thank you. All right. So first I'm going to clone my repo and oh my God. So I prepared this example to show you how to do a simple trigger implementation of a timer that will send some information into our Kafka topic. So for this, I have this example where I have my camel Kafka connectors and here I do have a very simple configuration. First I have a Docker compose file that will start a local running version of a Kafka cluster. So if you want to take a look at the Docker compose, it's basically defining the suitkeeper, a broker using the examples from the code platform. It's using schema registry and I'm defining here a connect image that is using the Kafka connect data gen example from Confluent and the interesting thing here is that I'm adding here the plugins directory. So I will be mounting this as a file system in the same images. So when Kafka connected starts, it will query that information and then retrieve the information from the plugins and will automatically load my camel plugins from that place. So then the thing we need to do is go into the plugins directory and currently I don't have anything. So what we can do is then go into the page easily. So it's camel.apache.org and as I was mentioning you, you go to the documentation and you can find a different projects here, core, camelK, but we're interested in seeing the camelKaka connector. So we go to the documentation and you can check the connectors list here and we'll a little bit more documentation and how to get started. And here's all the different... Oh my God, this is a little bit odd. Well, something happened there, right? But yeah, it should be a table with the information. It looks like somehow the UI has been messed around. Let's see if we can find our connector. We're looking for the timer connector. Oh, never mind. I think I can download the pre-downloaded version because the timer it's... Okay, you know the demo gods are playing against me. So let's see, we'll have the camelK. I sent you a link on the chat if that helps. Oh, okay. Don't worry. I have an example here. So I'm going to just copy my into my plugins directory. So I have this and then I go to my project where it's got samples, connectors. So I'm just going to paste here my connector and as I was mentioning after you download the zip file that Octavio has shared with the chat, there's different jars that you can get from that jar and those are the implementation jars that you need to require from camel. They're slimmed down so you don't need to download everything and they will help us to put this. So now that we have downloaded the file and then we are able to start our environment. So we're going to do get back and then we can do docker-compose-compose-up for the recreate and this will start the docker-compose file that I showed you. It's already in use. So okay. It's okay. So my container is already running. It's right then. Now it's creating. As I mentioned, it's just running one node for Sukiber, one node for the broker, the schema registry and the connect cluster. So now that it's running, we can check that everything is there. So let's do a docker-ps and if everything runs correctly, there's the different containers running there. So now that they're here, let's do some integration. So as I set up at the Kafka Connect, we have available a REST API that allows us to interact with the Kafka Connect cluster and being able to query the information on the plugins and show the information there. So let's do a curl command to the local host, port 8083. That's the port that is exposed by the connect cluster. And let's check the connector plugins available. Let's make it a little bit clear using JQ. And here we have the default components available, the plugins, the connectors for Mirror Maker, for the file stream, the sync and the source that I was mentioning that are part of the default implementation. And now we have also the data generator connector that is the one that I've been using as a base image as well as the generic camel sync and the generic camel source connectors. But the one that we are really interested into is this connector, the camel timer source connector that is now available in my Kafka Connect cluster. So now that we've checked that the plugins directory was correctly read from my environment, then I can start to interact with the configuration. So for that, I have crafted a configuration file for configuring my timer. So we can see the timer.json file. We can see that we have a component that is going to be called timer. So it's the term that we'll be triggering every certain amount of time. I'm going to be using this configuration for my connector. I have the camel timer source connector. We'll be sending messages into a topic called camel.timer.one. We just have to put a name on our timer component. That's part of the camel configuration. So it's timer, and it will be triggering every 5 seconds. So 5,000 milliseconds. We're going to be using some more traditional Kafka configuration, like in this case, I'm going to use the string converter for the key, a JSON converter for the value, and some more configuration for the task of the Kafka Connect. In this case, I just need one trigger to one timer to be triggered. And these are the transformations that Kafka Connect provides for you to use when using the Kafka Connect framework. In this case, I'm just going to use the host field transformation to be able to create a JSON file that's called timer. So we have instead of just triggering with the null value, I just want to put some information like what is the topic that I'm using for the trigger, as well as painting or putting within the payload the timestamp of my trigger. So I'm going to use the host value, and then we're going to insert body transformation, and I'm going to be adding a field that's called TS for the timestamp and the information about the topic. So this is traditional Kafka Connect configuration. There's nothing related to camel here, DSL, and nothing like that. The only thing you need to know is these properties that are part of the documentation for the camel connectors. So now that I have go over this, I can then post to the REST API to create this connector. So let's run another curlCabat, and we're going to do a post method using the connectors endpoint, and I'm going to use this JSON file as the payload for my call. So if we run this, we have a successful result, and then it just says me that the timer was correctly configured, and it's now running on my cluster. So let's check if this is really happening. So for that, I'm going to be using a Kafka utility called Kafka Cat. It's a simple way to interact with your Kafka cluster without using the traditional console consumer, console producer scripts that are part of the project. So you can check this. It's pretty useful. And for this, I'm going to be reading from my local host, 1992, that's the bootstrap server URL that I'm using in my local environment, and I'm going to select the topic camel.timer.one, that is the topic that I configure to be triggering the information. So now let's take a look, and then you can see that it's going to be publishing the information on the timer and topic every certain amount of time. So every five seconds, we will get a new event, a new record coming into the topic that it's being triggered by my camel component. So sometimes you will need to trigger, you just want to get information every certain amount of time. You can craft a little bit on the data that you want to receive and so on. So it's pretty straightforward. This is a sync connector, but you can also use other connectors, as I was mentioning, to get information out of your cluster. So let's get back to the slides. Yeah, are you trying to interrupt you? But I have to warn you that you have three minutes left, okay? Correct. I'm already done. I'm just going to my takeaways. Good. So I hope you liked the demo. It was pretty interesting. And then for the takeaways that I wanted to share with you, it's that we have the combination of two really interesting projects from the Apache Foundation. For one side, we have all the power of the data stream platform that Kafka represents. And then we have all the knowledge and the accumulation of experience that the camel team has on the integration side. And playing them together allows you as a Kafka Connect user to get a lot of new integrations and a lot of options to connect to your system. And for the camel users, allows you to reuse all that knowledge that you have on the components and the connectors to be able to easily plug into the Kafka ecosystem using the very straightforward Kafka Connect approach. And finally, I want to show you some of the links that I use here. So you can go to the camel Kafka Connector GitHub projects. You can follow the conversation on the SELIF chat or you can also follow them on Apache camel for more in-depth information. So I hope you like this session. I think we are running out of time. I really appreciate the invitation to join you. And if you want to know a little bit more on what we are doing on the APIs and event-driven architecture world, you can follow me on Twitter, on at HGoretto with double o at the end. Or also I invite you to subscribe to my YouTube channel where you can find some more demos and examples and videos on how to work with APIs and messaging.


Sure, Colonel Michael F. Bolinky. It's spelled B-E-L-E-N-K-Y. Sure, so hospital hospice stands for hospital exercise, and for us it's a validation exercise for our unit as part of Defender 21. Sure, so the purpose of our hospice as part of Defender 21 is to truly validate this unit in our training stance as we converted previous this last year from the 212th Combat Support Hospital to the 519th Hospital Center, the 512th Field Hospital, and the 167th Medical Augmentation Detachment. It's our first chance to finally do our collective training and a great chance to train with our partners and our sister service in the United States Air Force. So the validation is two parts. So the first is United States Army validation that we are T in our ability to do our mission essential tasks. And the second part is our NATO evaluation, and that we can be certified as a role to enhanced for the NATO forces. So for this exercise, we have seven different nations that are involved, both embedded within the hospital and primarily from the German Bundeswehr, the 2nd Center Stop Regiment. But we have a total of seven nations that include the nations within NATO for the medical evaluation. So this exercise in a real-life scenario allows us to train truly our bread and butter and to receive and treat casualties and to perform and validate that we can do damage control resuscitation, damage control surgery, and then look to hold for at least 72 hours, if not more, in our intensive care unit, in our intermediate care wards. So this allows us to do our real-world job in a training environment. It allows our nurses, our providers, our medics, our LPNs, our supply personnel, and the entire team to work as one team in a field environment. No. No, not at all. So for the exercise, we started this planning easily a year ago, and then we had a deliberate change, originally going to Hungary, and change around April 3rd to come to Bomb Holder due to some certain COVID response options and other things going on. So this is definitely a permanent temporary structure. It can be moved. It can be mobile. And it takes it roughly anywhere from one to four days from initial operating capability to full operating capability set up. So, yeah, of the prospects. So the main objective for the hospital exercise is to validate our post-transformation training with our new equipment and our new personnel structure. So changing from the 212th Combat Support Hospital to three separate units under a force design update, we became the 519th Hospital Center and Mission Command Headquarters, the 512th Field Hospital, a 32-bed Roll 3, and then the 167th Medical Augmentation Detachment, a 32-bed ICU, ICW, and Medical Specialty Care Unit. So it's a chance for us to train as a new structure, new equipment, and a new personnel layout post-transformation. Sure. I would say the only thing I would add, this has been the first large training exercise we've done as post-COVID. So it's been a great chance for us not only to train as a unit, but us for to train with our German partners. From day one, they've been integrated within the staff and been meshed in like they were naturally signed teammates from day one. So it's been a great exercise for us and hopefully we can continue this in the future. Absolutely. So approximately, so COVID mitigations, we have an effect. We had random temperature checks throughout. Approximately 83% of the unit is vaccinated that came out here. Those that were not vaccinated have had pre-COVID tests. They're all negative before we departed. And today we just did their post-COVID tests and they're all negative before we depart.


Welcome everyone again to the depth and right now we have with us Mario who'd be speaking about the code to the production. Kubernetes with tecton and GI so I'd be having Mario as well in the session right now and if you have any of the questions for the session you can just push posted in the chat box to the right side of your screen. So I will go ahead and start the recording sessions. If you have any of the concern, just let me know. Hello everyone. Thank you for attending this session. My name is Mario Azquez. And today we're going to see how you can go from code to production using Kubernetes tecton and github. But let's just start by github. So what is github github is a way to do Kubernetes cluster management and application delivery. It works by using github as a single source of truth for declarative infrastructure and applications. So our application manifest for Kubernetes will be storing github and github will provide version control for our files as well as audit capabilities. We can do templating by using other tools like home or customize more on this later. On the cluster side, it's pretty simple. It's just a controller which runs QCTL applied that's F over and over again. So if there's any change, it will be applied. There are no object types creation limitations. So as long as the API type exists on the destination cluster, it will work. And usually change changes are applied using web hooks or by a controller monitoring the git repository every now and then. Today we are going to see Argo CD. Argo CD is the tool that will enable github's capabilities in our cluster. So it features a super nice web UI with proper RBAC which can be extended as well. We can manage multiple clusters from it. And we can use Helm or customize to configure different overlays for the different clusters more on this later. Argo CD offers multiple sync options. For example, we have planning support, which means that if something is removed from git, Argo CD will remove it from Kubernetes as well. Again, all these options are configurable, so you don't need to have all of them enabled if you don't want to. And self healing, if something exists in git but it's not present in Kubernetes, Argo CD will go ahead and create it. We have auto sync as well, which means that if it's enabled every three minutes, Argo CD will check if there are configuration drifts. And in case there are some configuration drifts, Argo CD will fix them. And it provides web hook capabilities that can be used to force Argo CD to run as synchronization against a git repository by using a web hook, as I said. And for example, this is useful when you are using, for example, a repository for storing your deployment files. If you change your deployment files, you want a web hook, which is sent to Argo CD and that triggers the deployment of that new file, for example. Then Tecton, the other big thing in today's demo. So Tecton enables CI CD workflows on your Kubernetes cluster. It's kind of serverless, meaning that you don't need to configure your CI server plus workers. It's built into the cluster. It introduces pipeline and workflow functionalities. And one of the best things that it has is that it's pluggable so you can define tasks or pipelines that can be used by multiple teams or processes by using different parameters and resources at runtime. So that means that you could have a task which builds an application. It uses your standard base image and then you only need to provide the binary, for example. So that task could be used by multiple teams and everything will provide its own binary. That's a basic example. So this is the first pipeline, which is the one in terms of building and deploying the code to a staging. So we can see here the developers that will push new code into the Git repository. In this case would be a repository in GitHub. We have a web hook configuring in this repository, in the application repository, which when new commits are received will trigger a pipeline run in Tecton. Tecton will link test and build the code, create the container image, and then will push the container image to the Red Hat Registry. And after that, the pipeline will connect to a different repository. In this case will be the CI CD repository for our application and will update the deployment file for the staging environment. And we will see the different repositories later. Once the CI CD repository gets that update, that will generate a new web hook, which will send the web hook will be sent to Argos CD, and Argos CD will go ahead and deploy the new image to the stage environment, running an open-sit. So that's the way that we go from code to a stage. And then we have the other pipeline, which is the promotion pipeline. In this case, we have the stage build running on a staging and we have TestVid. It's stable enough to be moved to production, so the developers will manually run the pipeline on Tecton. Tecton will go ahead and run some tests and after those tests are OK, will connect to the CI CD repository and open a PR, modifying the deployment file for the production environment. Then we will go ahead and review that PR, make sure that everything is OK. And when we merge that PR, that will generate a new web hook that will be sent to Argos CD. And Argos CD will then deploy the new image to production. That way we will be using the same image that we use in a staging and production, automatically as well. We just need to review the PR. And that's it for the different pipelines. And now we will jump to the demand environment. All right, so let's get started with the demo. First of all, in this kit repository, you can find the required files in order to create your own demo environment. So in this file, you will get the explanations for creating the environment itself. And then in this other file, you will find the instructions to run the demo. So with that, we have a scripts folder here, which has the required scripts to automate the deployment of the demo environment. And with that being said, let's jump to the two repositories that we will be using today for the demo. So the first repository is the application repository. This repository is a very simple one. This has one range called main. And then we have the application code in this file, the application testing this file. And then we have a Docker file, which we will use for building the image for the application. Other than that, we have some configurations on the web hooks. We will see those later. And now we are going to see the CI CD repository. So as you can see here, this repository has multiple branches. Let's get started by the CI branch. So in this branch, we have all the YAML files that are used by Tecton in order to configure the two pipelines, the one for building the application and the one for promoting the images to production. Everything that we need is here. So if we want to move these pipelines to another cluster or if we need to recreate the CI environment, we just need to run OC apply on all these files. And that's pretty much it. We will get the pipelines up and running again. Then we have the GitOps branches, let's say. So I like to configure multiple branches for GitOps. Other people like to have multiple folders. So as we said before, there is no standard around this. So as long as it works for you, it's okay. So usually I create a config branch where I store all the manifest are common to all environments. So in this case, I have two environments, a stage and production. So I have a deployment and a service, which are common to those two environments. So as you can see here, this is a basic deployment. We have an image here. This is important because later on we will see how we can override some configurations using customize. So here we have the image that we are using for the base deployment. And then the release, we are setting the base release here. This is a simple environment variable that is used by the application to show the release on a screen. Then the service, pretty simple, plus the AP service, that's it. And then we have the customization file. And in this case, it's super easy to understand. We have only two resources, deployment and service, that's it. And now we are going to see the two branches for the environments. Let's just start by a stage. So in the stage file, the customization file, it's a bit bigger, let's see. We have the base files, which are pointing to this git repository. That is the git repository that we are using for CACD. But we are pointing to the config branch. So that means that customize will read the files from here. It will read the deployment and the service. And then on top of that, it will create some other things. It will create these two resources, the name, space and the ingress. Let's review them. Name, space, pretty simple. It's just this reverse words stage. Name, space for the stage environment and for the production environment. It's reverse words production. And then the ingress file, really simple as well. We are basically defining this URL for the application reverse words depth for staging. And then for production, we are defining reverse words. And that's it for the ingress. And now we are running a patch on the deployment file. So this is where we say that we are patching this file deployment. And now in a stage, if we look at the deployment file, we will see that we are basically replacing the release environment variable. We are changing each value from base release to a stage release. And then the image that we are using, we are using this tag. And this tag, I will explain later where it comes from. But basically, this is for a stage. And this is for production. We're using production release. And in this case, we are using the same tag. So this tag is configured automatically when we run a build for from tecton. It will read the latest commit file in this case, as you can see is B440. This is longer than this small thing here. But it will read that commit ID and it will be used as tag for the image that we are building. That way, we will know which code is included in which image. So now I can see that I'm using this commit ID on the image. So I know that the code that is included in this image is the code which is present in this commit ID here. Okay, so that's automatically, as I said, that's configured on the pipeline. So the pipeline will read the commit, the latest commit ID that hit the main branch for our application. And we'll use that as a tag for our image when building the image itself. Okay, so the idea now is that when we run a new build of the of the application, we will generate any image and this file here will be updated automatically by the pipeline. As we mentioned in these slides, so we will get a new commit ID here. And then when we promote the image to production, the pipeline will read this file. We'll see, okay, this is a tag that it's using a stage at the moment. And it will open a PR against the production branch changing this tag by the new one. That's the main workflow that we will see today. So let's get started by adding the CIC repository to tech to our good city. So as you can see now, we don't have anything in in our good city. So the first thing that we need is to add the git repository. So for you know to that we hit this icon here, we go to repositories we will want to connect using HTTPS. We will add this repository here. So let's get here, let's copy this. Now we put this URL here. We don't need username or password because it's public. Everything looks fine. So let's click connect. We can see that now we are connected to the git repository. So now what we are going to do is we are going to define the two applications in our good city. So let's click here on the applications. Now we want to create one application. So let's give it. Let's give it a name. In this case, we are creating the states application. So let's call it reverse was a stage project. Our good city has something they call projects so you can organize your applications under some projects. Then you can use our back in order to give some users access to some projects and so on so forth. Then sync policy. This is interesting. Basically, this means that if we use manual, we need to tell our good city when to run the synchronization against the git repository. Or if we send a web hook in this case, it will run the synchronization or then we have automatic, which means that after some time it will run the synchronization automatically. The default is three minutes. Then automatic gives us two different options. So the first one, brand resources, we explain it in the slides but let's review it again. It means that if we have something in the cluster, which is not in the git repository, it will be deleted from the, from the cluster. Otherwise, the application will be market out of sync, meaning that, hey, there is something in the cluster which is not present in the git repository. And then the self healing is kind of similar. It means that if you have something in the git repository, which is not present in the cluster, because maybe some user has deleted or whatever. It will synchronize that file again. So in this case, we want to have self self healing. We want to use a schema to validate the resource manifest. This means that the YAML files will be validated before being created. Then the source for this application is the repository that we just created. We are using the stage runs because we are deploying the stage application and then the path, it's the root folder for this git repository. As you can see here, we have all our files in this, in the root repository, sorry, in the root folder for this repository. If we had folders, we could configure the folder here. And that's it. And then for the destination, we are using the in cluster destination, which is the cluster where RGC is currently running. If we had multiple clusters added to this RGC instance, we could choose different clusters for the application. In this case, we only have one cluster, so we are using it. And then the name space where we will run the application, in this case, is resource state. And everything else, it's fine. So let's hit create. And that should start deploying the application. So here we can see the application and you can see it's out of sync and it will start syncing and creating all the resources. So now we can see that the name space was created, the service, the deployment, the ingress, the ingress created a route, the deployment created a replica set, the replica set created the product, the pod, and then the service created some endpoints. So that's it. And now that we have the application deployed, we can go ahead and click the ingress button and we can see that we are running the stage release, the application version 009. All right. So now on this, it's in deploying the Opensiv cluster. Let's review it here. We have the reverse-versa stage and we have the same application here. I prefer the RGCDB to be honest. But that's it. Now, what we are going to do is we are going to use the RGCDB CLI in order to create the production application. So let's put the command here. As you can see, RGCDB, upgrade, the RGCDB project will be created in the application, default in this case, the name for the application, the repository that we are using, the pod in the repository, the destination server, the destination namespace, the branch that we are using, the self-healing and the sync policy to automated. So that's what we, the same that we use for states. So I'm going to hit enter and then we are going back to the web UI. Let's go back to Firefox and now here we should see a new application production, which is being deployed. Now it's ready. And now we can see that we have the production release here, application version 009, same version that in staging. So what we are going to do now, well, and again, we can see this application using the OpenCiv dashboard as well. All right. So what we are going to do now is run an automatic build for our application. How do we have this configured? So basically we have in the application repository, we have a webhook here, which is pointing to the reverse words webhook that we created in Tecton. So when we create a new, when we create a new commit and the commit hits the main branch of this application, a webhook will be sent to this URL. This URL is running on our OpenCiv cluster. So Tecton will get the webhook and will run the pipeline, will run the pipeline with some parameters. And that will end up being an image pushed to create.io. And then these other repository will be modified. So the deployment file here will be modified by the pipeline. And this repository has another webhook, which points to the Argo CD, as you can see here. So when that, when that file, the deployment file is modified, the webhook will be sent to the Argo CD application running on the, well, to the Argo CD server running on the OpenCiv cluster. And the Argo CD webhook will instruct Argo CD to sync the application automatically. So we will see how the application is updated automatically. The webhooks are protected. So they need to send a specific patch phrase to the, in the, in the webhook. So that way we can avoid people running the, well, triggering the webhook if they don't have that secret. So let's go back to the terminal. And in the terminal, I'm going to configure that webhook for Argo CD. So basically, this is our secret here. And we need to use that to patch a secret in Argo CD that will say, okay, this is the secret that we use for GitHub webhooks. Once we have done that, now we are ready to send a new commit to the application. So let's go ahead and do this. What we have done is basically bump the application version from 009 to 0010. And now we are ready to run this Git push. But first, let's go back to Firefox. So I can go to pipelines here. We are using the reverse world CI project for the pipelines. So now I'm going to run the Git push origin main in my terminal. And we will see how the pipeline is run automatically when this happens. Right. That's the push. And now we can see that the pipeline is running now. So now we can see the different steps in the pipeline. So the first step is linking the code, then testing the code, and then building and pushing the image. And once the image is pushed to the registry, we will update the state's deployment file. So if we click here, we can see the logs for that step. So the link is complete. Now we are going to run the test. All right. So we can see the test have run now. So next step is building and pushing the image. Now the build is done. Now we are going to push the image. Right. So the image has been pushed. And now we are going to update the deployment file in the Git repository. So as soon as the file is updated, we will see that the Argus application will be updated. So now, as you can see, it was saying out of sync and now we can see that the deployment is being updated. So we have a different logic asset here, which is deploying a new pod. Meanwhile, we are going to see the file in the state's run here. So now we can see that the deployment not says 8771 for the tag. And if we go to this Git repository for the application, we can see that the last commit ID that hit the main run is 171db. Let's see there. 171db. Now the new pod is running. So if we go to the application, we can see that we are running the application version 0010. And the production application is still running 009, sorry. All right. So what we need to do now is running the promote pipeline. Let's do that. Let's go back to the terminal. And we are using the TKN command line tool for running this pipeline. So let me copy the command really quick. Then we want to start the pipeline, which is called reverse words promote pipeline. We are configuring two resources. The first one is the app Git, which it's configured to use the CI CD Git repository. Then the path to deployment file inside this repository is the root folder deployment file. The state's run. It's a stage and the stage application URL is the one that is returned by this command, which basically gets the route configure host name. So what will happen is that this pipeline will connect to the states to the states application. In this case, you could run some tests against the states application, which is currently running. And we are just running a core command. That's it. And now I want to show you that you can basically use the TKN CLI to see the logs for the pipeline run. The same that we did using the web UI, we can do the same using the CLI. So you can see that the states core returned this thing here. So stage release application version 0010. And now I think that will happen is that we will update the deployment file in the production branch opening up here. So let's go back to the Firefox view. So now we need to get the release, which is configuring the states repository. And now we can run the promotion. So let's go back to reverse was production. This is the application as you can see here the deployment has not been updated. So now what we are going to do is go to the CICD repository. Well, we can see here that the pull request has been created. The pipeline has finished. So now in this repository, we should have a pull request. We can see it here. And this pull request. What we'll do is change the tag for the image. As you can see, we are changing the old tag by the new tag. So as soon as I merge this file, we will see how RGCD updates the application for us. Right, this merge. And now we can see how RGCD detected the change. And now we are deploying the new release on production as well. So let's open the states application in the meantime. Okay, so in a stage we are running 0010. And now in production, we are running 0010. So this is how you can go from code to production. So the only manual intervention as you have seen is the promotion. So there are different ways of doing this. You could have a pipeline that runs automatically and opens the PR. And then you have some people review that PR. And once that PR is reviewed, you can merge it and then you will get to the application to production as well. So in this case, we are just showcasing how you can do it. And then, of course, you need to introduce some steps in the workflow that fit your organization. So that was it for the first part of the demo. And now I want to introduce you the Asilet secrets. So in this application, we haven't used any secret, but in case that you want to use secrets, as you can imagine, pushing a standard Kubernetes secrets to give to pastures is not a good idea, because those secrets can be decoded. So instead of doing that, there are other applications that you can use in order to encrypt your secrets and make them safe to be pushed to Git. So let's review that. Let's go back to a terminal. I'm going to deploy the Kibsil controller really quick. So basically we are deploying this, this controller into our cluster. And now what I'm going to do is I'm going to go back to the CI-CD Rupa story. I'm going to status everything that we have here. So I'm going to change to the stage branch now. All right. And now I need to pull the changes. In this case will be the deployment file that we updated before. And what I'm going to do now is I'm going to create a secret and I'm going to store that secret in a temporary file. All right. So we're creating my test secret, which has a username called admin and then password. It's called very secure. We're basically running this in right run. So we have this file here. And as you can see, if we push this to Git, it's as easy as running this. Basically for the code. And now we have the secret in plain text. Okay. So what we want to do now is seal our secrets. So Kibsil works with private and public keys. And when we run this command, here what we are doing is saying, okay, Kibsil, I want the output to be YAML. The input is this test secret here. And then the output I want it to be this test secret seal it here. So what we will, what will happen is that Kibsil tool will use our Kib config to talk to the Kibsil controller in our cluster. And it will use the public key to create this secret. And then the controller will use the private key to the creep that secret. So the secret can be created on the cluster. So now we have the test secret. The seal it secret here. Sorry. So as you can see here, if we try to run this base 64 decode command in this output here, we'll get a binary output because this is encrypted. All right. As you can see that it didn't work. So this, this file, it's not, is now safe to be uploaded to the git report story. So the first thing that I'm going to do is I'm going to add this file to the customization. So now you can see here that the customization has a new resource, which is called test secret seal it. I need to add this customization new customization file and the test secret seal it. I'm going to commit this and push this to the stage branch. And now if we go back to Firefox, if we go back to the August, the application, we will see that the application is being updated. And now we have the seal it secret that has created the, the secret file that it's just by Kubernetes. So if we go back to the terminal, now in the reverse words, a stage name a space, we have a secret, which is called my test my test secret. What we can run this and we can we will get the standard corner secret that now we can decode. The difference here is that the secret it's encrypted in the git repository. So if we go to the git repository, and we go to the CI CD repository, we can go to the stage branch. And here we have the seal it secret. So this cannot be decrypted by anyone that doesn't have the private key and the private key it's currently in the keep system name a space in our cluster. And with that demo is finished. If you have any questions, feel free to reach me out. That's it. Take care. Bye. I didn't see any questions on the chat but as I said in the video, if you have any questions, feel free to reach me out. Even if you're watching this in the recording, feel free to send me an email. I'm more than happy or well you can open an issue on the git repositories that you have seen as well. And I'm more than happy to help you. Thank you.


To reduce vaccine hesitancy among women, more research needs to be done to understand the long-term effects of COVID-19 vaccines on reproductive health. Women should also be encouraged to report any unusual changes in their menstrual cycles following vaccination to their doctor. Strict pharmacovigilance should also be practiced to monitor people with pre-existing coagulopathies and those on certain medications to prevent life-threatening conditions such as CVSD. This article was authored by Aksa Salim, Syeda Weiss-Javid and Farheen Malik.


Life is happening, whether we like it or not, the energy is non-stop, the only constant is change. Spiritual beings having a human experience can be overwhelming. Walking around on this planet as a human with this crazy awareness that we're here is almost too much to bear. But we're in this, so let's ride.  You standing there above the ocean, seeing the surface, seeing the waves is your awareness, seeing your thoughts and your experiences of life. Acknowledging we are in this insane experience that is looking up and looking at the ocean around us. If we're alive, we are in this ocean of energy. Now I want this to help you engage with every single edge of our existence to live life completely. Now your body in the ocean can see the waves, can see the ocean, can see the vastness. That is your awareness, seeing your thoughts, seeing your experiences. You are separate, yet connected. You can observe them, yet experience them simultaneously. Now the first step is seeing these waves coming at you with no judgment. You wouldn't look at the ocean and say, why is this wave happening to me? Why is this wave coming my way? How come that wave never comes this way? I never get waves like that. No judgment, the waves are just coming. The waves are just happening. And there's no point of worrying about a wave that's way out in the ocean. We can only interact with it when it gets here and now. And we can only act in the here and now. We can only control ourselves. No expectations. Not expecting a good wave, not expecting a bad wave. Release all expectations of what waves you want to come. That way you can be open and ready for any which way the waves come at you. And there's a million ways to look at this. It's all your perspective. When the waters are very calm, you could see them as flat, lonely, boring, but they could also be calm and peaceful. When the waves are turbulent and rough, you could see them as frustrating or annoying, but they can also be a challenge, a chance for you to grow.  Acknowledge these thoughts. Acknowledge all the experiences so you can use every single one. These waves are not happening to you. They're happening for you. And when those waves come, we should have no resistance. We should allow them to flow through us. And if you're aware enough, you can observe these waves passing right by you and literally through you. They go through your body out the other side and they shape around you. The wave is affecting you as much as you are affecting that wave. There is no separation between you and the entire universe. Every moment, every being is one. The more aware you are, the more you practice, the more aligned you can become with the energy of the ocean. So no matter what wave comes your way, you are ready. You're ready to improve. You're ready to grow. You're ready to learn.  Maybe when the waves get super rough, it's your time to just hold on, to just weather the storm. When it's super serene, maybe it's time for you to rest and enjoy doing less. And when the waves get bigger and the experiences are coming, maybe it's time to grab that board and go for it. Go for those experiences. Push yourself outside of your comfort zone. Ride that wave. These waves are amazing. They can help you become that person you never thought you could become. They will challenge you, but that will help you grow. That will help you live and experience higher than you ever thought possible. You can't control your thoughts. You can't control experiences just like you can't control the waves. Whatever experience is on the horizon, coming at you with all the energy of the universe. I want you to rise above the past versions of yourself and live in a higher reality. The next time a thought comes, the next time an experience comes your way, no matter what it is, be the wave.


Good morning everybody back on the road. It's a beautiful day here in Northern Ontario. We're on highway 11 Nearby Hearst, Ontario. We left Kappa's casing this morning. That's where we slept last night They have great internet there I can upload videos faster at flying jays in the back of the parking lot than I can at home They have incredible Wi-Fi So we're gonna get as far as we can today still pulling this 10 foot wide load So I can't drive down these highways at night. So The latest I can drive is a half hour after sunset So I'm thinking we should probably make it to around Dryden, maybe Dryden, Ontario And we'll see See how we're feeling see where we get to And before you say anything yes, I will acknowledge that my windshield does need to be replaced I have an appointment and by the time you watch this video. It will already be replaced They throw some rocks at me. Well, I didn't actually throw it at me his truck threw it at me very rude It was actually in Alberta last week A big oil field truck pulled out in front of me and must have just come off like a very loose gravel lock Or something it was just throwing stones like mad I actually had to slow right down to let him get ahead of me because he was throwing so many stones and two of them hit my windshield and two chips that I was gonna get filled and get replaced as soon as I got back, but Going from the warm weather to the cold weather and then my windshield a Heats up cools down Suddenly I looked over and I had this crack on my windshield So that has to get replaced ASAP and we're gonna get that done right away Like I said by the time you're watching this it's already been replaced. So I Saw your comments. Thanks for letting me know. I'm aware I can feel it feel it in my bones. It's gonna be a good day I'm just happy that it's not snowing Very tired of that stuff already. I want spring. I want to go camping. I'm gonna go to the beach. I want to go swimming We're here in Beardmore, Ontario. Now we're getting close to Nipagon But well 45 minutes or so from highway 17 That's where the two highways meet And then there is a couple of fuel stations Right there as well I'm gonna stop at the Petro Pass and hopefully they'll have DEF because the last couple of trucks outside stopped at the fuel Their DEF pumps were frozen. So whenever I find a place that Has DEF pumps that are not frozen I Always top up my tank because you never know we're headed out west in it was apparently pretty cold there last week I don't know how it is right now But that probably means I won't be able to buy any bulk DEF out there The DEF in this tank lasts about 4,000 kilometers or like in Almost 3,000 to 2,500 miles. It's a 28 a little over 2,500 miles 3,000 miles I haven't really ever checked before but I know I can drive for days and days and days Without fueling up that DEF tank And if you're new to the vlog don't know what I'm talking about DEF is a diesel exhaust fluid that all diesel vehicles now have even the pickup trucks It just cleans out the exhaust so that the exhaust that actually leaves the truck out the stack Is cleaner it's not that black smoke you won't see black smoke coming out of new trucks If you do there's something very wrong Because that prevents all of that It used to be when you started up your truck in the winter time And it was a cold start at the truck would just pour out white smoke for like half an hour till it warmed up Right, but now with this new DEF system on every truck. They don't do that anymore. Not as much anyway Very very little and it's like a fluid. It's sort of like water I think in Europe. They call it at blue. It's sort of like a bluish watery thing, but don't drink it Point of advice don't drink it Looks like water, but it's not water. It's not vodka either You Russians You come over here and visit that that's not vodka All right, I showed you this stretch last time and I do almost every time I come through here I throw out the seasons of the year This is still the most beautiful stretch of highway in northern Ontario in my opinion.  There's so many beautiful places to see in this world and You know, I only travel north america canada in the united states I mean, I haven't even been outside those countries in my lifetime There's so many other places in this world that I would love to go and see So many places Like australia, I would love to go see australia, but to see all of australia would take so long There's still so many places here in canada and the united states that I haven't seen yet I still go to new places all the time I'd like to see everything But for that, I would need a lifespan of like 500 years I'd love to go to europe and see the old world and see how it's sort of The modern world has sort of been built over the the old world in europe if you know what I mean I guess I don't really even know what I mean because I haven't been there But there's so many thousands of years of history there You know bricht is related to uh, someone who owns a castle in germany They have a castle in their family and oh, I'm married into royalty I'd love to go see that see the united kingdom I want to go there just to rent a car and drive on the wrong side of the road that is Australia same thing first thing I would do when I land there is that rent a car Just so I could drive around on the wrong side of the road That's one thing I've always wanted to do And also in australia I'd love to pull one of those road trains that they have going across their outback where the the trucks drive with However many trailers behind them like across the prairies in canada. We do 253 foot trailers sometimes And you can have up to three trailers now It's on some routes on the prairies of canada, but in the outback of australia I think you ozzy's can tell me down below in the comment section But I'm pretty sure they have what like 10 bus trailers behind one truck Oh, that'd be so much fun so much fun The only thing that sort of turns me off from australia is that everything there wants to kill me and the spiders Are like mutant demons from the pits of hell And I have arachnophobia and I just don't know if I could sleep or anything Because I know all you ozzy's will back me up the spiders there.  I will visit you one day. I might have to come in like a Like a protective bomb suit or something, but I'm gonna come Look out You can see the bridge over there already that's the one bridge that connects eastern canada and western canada It's the only way It's the only road connecting And remember was it last no a couple years ago? They built a new bridge and then it failed and it buckled so they had to shut it down and that shut down all traffic and freight Going east to west and it just messed with our whole economy All because everything relies on one bridge. They built two bridges now one for each direction So I guess if one buckles now they can use the other one, but Ridiculous, hey diesel Yeah, man, we need neither road. Yeah No kidding One day and come together here and shut down the country and they're forgot that it gets cold up here So in the winter time it contracted but they fixed it and I guess he learned his lesson a very expensive lesson But projects again and went, you know over time over budget Well, this is the town of nipagon that we're coming up to here. I'm gonna stop for fuel Or def sorry, I'm gonna stop for fuel in uh Thunder Bay A little ways ahead but 45 minutes ahead there's a flying jay. I can get my points then But their def pumps, I'm sure will be frozen. Whereas petro pass There should work Guess we'll see we have to be in Alberta tomorrow or the next day Hopefully I can get there for tomorrow, but we have 1,600 kilometers to go yet. We've already been driving for two days So that's another two days of drive. That's about a thousand miles if you're wondering almost exactly So I gotta stop by home today. I got to drop off the weasel again. So the next few days will be without the weasel I'm gonna be lonely and sad But good thing I have you find people here with me keep me company Uh delivering us to that site again that doesn't like dogs Even though the guy at the other end like I told you the other day He said it should be fine and you know, tell them to give him a call if they have a problem I just don't want any problems to begin with, you know, I just want to get there deliver my stuff and get out of there Now I'm coming right back home usually anyway, so Whatever diesel misses his mom and his brothers anyway, so he can go home and run around with him for a bit All right, you want to go home diesel? Yeah I'm gonna bring you home today. Okay Yeah, so next stop is home miss park is nearby home as I can I'm not gonna be home for very long I'm just dropping in for a couple of hours. I'll have lunch with her and Drop diesel off relax a little bit Probably upload some videos We'll be on our way Well, we have a bit of change of plans If you look over to the left, there's my trailer try to Get in here without blocking the road here So I bob tailed into town. Let me tell you the story about this One second here. Let me get in front of my trailer again My truck is going into the shop I put a band-aid on it for now Let me hook on to my trailer here again, and I'll explain it all to you Having a bad day We got an oil leak It's somewhat of a slow leak, but it's a little too fast of a leak To continue with this load all the way to alberta So, uh, I noticed that I had to put in two gallons of oil Yesterday, which is weird. I've never had to add oil to this engine before between service drops And I'm like, oh no two gallons. So I put a note in my head like hey next time I get home We got to get this looked at I shouldn't be burning any oil at all And then today I checked the oil in the morning and it had gone down again It was still above the ad line quite a bit. So I'm like, oh my oil's still going down. This isn't good I'll keep an eye on it, right?  You should probably pull over in not so many words so, uh I started freaking out a little bit. I found this little pull out here and I pulled in I I checked all my gauges. I checked everything. I went to go check my oil Oil wasn't even touching the dipstick or it was just barely tipping the bottom of it. I think And I forgot to pick up oil this morning Because I didn't think anything of it. I added two gallons of oil. I checked the oil this morning. It was fine So I'm like, hey, well when I get home, I'll get a better deal on the oil if I go buy it at Walmart or something Right, that's what I usually do. Hey, well, I'll go pick up oil and you know replenish my supplies as soon as I can get a Better deal on it right in the middle night and me I don't want to pay as much as I have to at the truck stops So I had no oil in the truck of course right when my truck decides to Go weird on me And I'm four hours from Winnipeg right now three maybe less than that And uh So I I called into town. I'm literally less than 10 miles from canora It's the the last town before you hit the province of manitoba my home province The best province you might just say at least the southern part. I like the southern part southeast specifically It's like the best the best of the best. Believe me. Everybody says it believe me I'm getting sidetracked I'm just Joking around I'm kind of Laughing about it now because everything worked out. But what happened was I pulled into this pull-out And uh, the dipstick was just barely touching the oil, right? It wasn't completely out of oil But I don't want to go All the way into town to get oil pulling like 65,000 pounds of steel. So I detached my trailer And I brought it into town Where I could pick up oil I had to add in a few gallons of oil again I came back to get my trailer now and now we're going to get to our yard and drop the trailer there So somebody else can take over for this load because you don't want to leave this load just sitting around While my truck gets fixed because who knows what's going to be wrong with it. Hopefully it's something small And uh, yeah, now we're gonna keep an eye very close eye on the oil and we're gonna get this thing back to the yard I wish that I had a better option But that is my best option right now It's either that or I have to Get this load recovered and I think they charged me for that To have someone come out here and pull this load out of here for me And then the customer is not happy because they're not getting their freight on time I'm not happy because I'm sitting in a motel while my truck's in the shop the shop here was uh Booked up for days. I'd be sitting here for more than a week probably and I'm only like two and a half three hours from home What's the point of that right So I went and got enough oil so that I can get myself to the yard that way this trailer doesn't need to be recovered Someone else can take the load. It can still be on time And I can bring this truck to the shop And go home and spend whatever time it takes to fix it at home So there's plenty of oil in the engine right now. Uh, it is leaking somewhat a little bit I can't tell where it's coming from And I can tell you it won't be a problem just for a couple of hours going home. It's not leaking that bad It's just a steady drip from somewhere So This is the decision I made. I don't know if it's the decision you would make or not But I think I made the best decision in my opinion because otherwise Everybody's not happy and this way just I'm not happy So let's see what happens. Let's let's get this thing home and let's get it into a shop Every shop I've been talking to in steinback as well is booked up until next week. So I might be home for a while Which means I'll be making lots of youtube videos for you guys if that's the case Goody one of those days it's been a It was it was a good day. It was a good morning. Man did that turn bad fast So I'm just gonna follow up on yesterday's video today. This is the next day I did get home We're about to make a delicious breakfast. I am the bacon eater I'm gonna charge a bacon So I make the best bacon, right? It's not true, but we'll say it for now So yesterday we brought the truck into the shop. Uh, it was very difficult to find a shop to Do the work because everybody's booked up for the next week except for trucks unlimited in steinback the freight liner dealership So we brought it to their shop and they're gonna take a look at it They already called me this morning and said that they can't find the leak So I told them to look harder Because I lost two oils and two two oils. I lost two gallons in a day I lost two oils in a day and The majority of it was lost during the night while I was idling I think so now they have it outside their shop right now Idling for a few hours and then they're going to take it back in They've obviously cleaned off the engine so that they can see if it comes oozing out anywhere Hopefully they can find that and hopefully it's just like a little seal that they can fix It could also be that I was pulling 65 000 pounds and the pressure of the engine pulling that much weight up the hills Could be just pushing it out of a seal that isn't quite sealed I don't know. Hopefully they find it and they're going to also replace my windshield because I had a big crack across that And they're going to take a look at my bunk heater as well to fix that so that I don't have to idle it through the night Because I've been spending around a thousand dollars a month just idling that truck So hopefully they can get that bunk heater fixed and if they can't I have a pretty much brand new one in my freight liner here on the road Uh, that freight liner is being sold off or got being brought off our property this summer I want to sell it to whoever will buy it or Just bring it away if I have to but there is a bunk heater in there That's practically brand new that I just paid $1,500 for before I sold it I mean before I parked it and I don't want to sell that part I want to keep that and put that in the Volvo if this bunk heater doesn't work that makes sense Forgive him for all his stuttering. He knows not what he does. He hasn't eaten yet I'll feed him and then he can vlog properly. Yes I haven't had my bacon yet The bacon eater meets his bacon. You're in charge of bacon. Yep. I'm not doing this whole thing alone I'll do this one. Good and wants to do it alone. Someone's got to take care of the bacon make sure it's done right Right. Am I right? If mine isn't crispy you're fired If I don't film another clip she killed me so you know who did it It was her Anyways, I want to end this vlog here because uh, that's that's all that really happened Brought the truck in the shop. It's getting looked at. I'll let you guys know in tomorrow's vlog if there's any new news I'll see you then Take care and don't forget to subscribe Hit the like button if you liked the video if you didn't like the video hit the thumbs down button I don't care. Be honest. I'll see you tomorrow


Right? But before we get into the options, one thing you want to do is, if you don't know what options are, here is a link to Investopedia Investopedia, okay? If you're in the chat, Investopedia, and I'll probably provide the link in the description of this video once it's been uploaded to our video sharing platforms as well as the audio on SoundCloud, okay? And this is the page for Essential Options Trading Guide, and it sort of runs you through what options are, and options are basically a derivative, right, that you can buy, which is a secondary bet on a stock where it's time, it's got a time constraint on it, and one option in general is equivalent to a hundred shares of stock, right? So it's really linked up with fractional reserve banking is very much on the same level if you know anything about fractional reserve banking, where banks can loan out a hundred times or more of the amount of cash they have on hand and deposit, right? So options you can think about as if you end up buying one option, one option for a certain stock, may it be puts or calls, is basically gives you control over a hundred shares okay, over a certain amount of time, okay? So that's what options are. Now, if you're betting that a stock is going to go up, they call those options calls, right? If you're betting that a stock is going to go down, they call those options puts, okay? And this page has videos in there as well, but let's, what we'll do, we'll just read the key points here, okay? Key takeaways. And by the way, before we continue anymore, my internet has been kicking in and out in the morning, early morning was kicking in and out, it's snowed here a lot, it's cold and whatnot, so if there's any interruptions of the live stream breaks, my apologies, sort of beyond my control, and I will try to come back up again as soon as we can, right? If not today, we'll continue this discussion in a future day, right? But here's the key takeaways from options trading, and we're just going to read this from investopedia, right? So key takeaways, point one, an option is a contract given the buyer the right, the right, but not the obligation, which is extremely important, but not the obligation to buy in the case of a call or sell in the case of a put, the underlying asset at a specific price on or before a certain date. And we're going to expand on this, we'll take a look at this, right? Point two, people use options for income to speculate and to hedge risk, right? And when it mentions people use options for income, basically those are people that are either writing calls or writing puts, right? Basically what that means is if a stock is going up, right, and you think the stock is going to go up, what you can do is sell puts short, basically naked, sell puts and take that money and bank it, and usually you don't extend it over too long of a period, usually you're selling basically using as an income basis for a shorter time frame, right? Because you can't really predict too far into the future in certain markets, right? So you can either, if a stock is going up, you can write puts, right? Basically sell them without having them, and because it's a time-constrained instrument, right, derivative, over a certain time it goes down to zero, and if you sold it, then you made money, right? So if you sold a put at $2 and after a certain time the put expires, you banked that $2. And the same can be said if the stock is going down, if the stock is going down, you're going to write calls on it, right? If you sell a call at $2 and the stock never goes up, that call is banking the money because it's going to go down to zero, right? That's the income part of it. Speculation is just basically either writing puts and calls, shorting them, or buying them straight up, puts and calls, and betting that a stock is going to go up or down. Hedging risk is basically if you've got a position in a stock, right? And you think there might be some bad news coming, but you don't want to pull out of that stock for multiple reasons. One of them being you don't want to pay taxes, right? If you had a lot of gains, if you sell a stock, then you have to realize those capital gains, right? So you don't want to necessarily realize a capital gain just in case there's going to be a hiccup in the company, in stock, right, in the price of the stock. So what you can do is if you're betting the stock is going to go up and you want to lock in your profits, you can buy puts, which basically means that you're going to bet that the stock is going to go down for a short period of time or a long period of time. It doesn't make a difference. And if the stock goes down, then you can sell the put and that difference, right? That difference, you didn't really lose because the stock went down. You just covered it with your put and the other way around, right? If the stock is going down and you think it's going to go down a lot further, but there might be some news coming in that might push the stock high, you might end up buying calls for it. And if the stock does a bump, right, then you made that difference. You made money off that and you can sell that and then wait until the hype is over and the stock continues its downward trend, right? So those are what income, speculate and hedge imply, right, are referring to. The other point, options are known as derivatives because they drive their value from an underlying asset and that should be self-explanatory because you're not really investing in something in a tangible asset like a stock, right? Stock in a company, you're doing a secondary bet on that thing, right? So for example, if you see two people flipping coins, right, for $100 a pop, right, flip a coin. One person's calling has the other one's calling tails, right? Well, those people are playing for $100 a pop, but the audience can make secondary bets on the flip, right? So a couple of other people that are watching these guys flip in a coin might decide to say, hey, listen, I'm willing to give you two to one odds that the guy flipping a coin is going to get two heads in a row and one person may take the bet, right? And because that's happening, the odds are more, right? So that person, when he takes the bet, he'll put $100 up and because this person gave two to one odds, if the person flipping a coin doesn't get heads twice in a row, the person that offered the option, right, will lose $200 and the person that took the option bet wins the $200 and takes his $100 back, right? And flip the flip. If the person does flip two heads in a row, the guy who put up $200 wins $100 from the other guy. That's the way you should think about derivatives. And there's multiple layers of derivatives, right? The stock market is, has a certain amount of value being played on it, but the derivatives market is a few orders of magnitude larger than that. Okay, it's huge. So if when you see liquidity completely die out in the market, it means the derivative market is being destroyed or there's a lot of people making a lot of money, which is usually, it's a two-way trade, right? It does happen. Lonely piggy, how are you doing? Hello, Chichou and chat. Hope everyone's having a good new year's eve so far. Indeed, good new year's morning for me. I'm eating pastries, mom's pastries. I'll show you guys in the, in the big screen. Super delicious, super delicious. First time chat.  I'm interested in what family is currently invested in. I am still more put, puts than calls. Indeed. Okay. Imlumbo family right now is, I forget what the percentage is. There's been a lot of trading going on. As far as equities is concerned, family is probably holding 40% of the portfolio in equities. Okay. Maybe, maybe let's say 50% of portfolio in equities. Okay. Majority of those are cannabis stocks. Okay. Because I think they've had a bottom. The family thinks they've had a bottom. Okay. So cannabis stocks are the majority of holdings in the family's equity position. The other 50% is options and from that 45% is puts. Okay. So about, not 45%. From that 95% is put. So basically 45% of the portfolio isn't puts right now, which is a huge bet, huge gamble with a possibility of substantial losses. But if it goes the right way, a possibility of gigantic returns. Okay. That's approximately what the family's position is right now. And the puts are encompassing some high-end fang stocks, tech stocks, as well as some industrials as well. Okay. As well as some consumers, consumer goods, textiles, if you want to call it. Right. The fourth point they have here. Gotcha. Thanks so much. Still have puts on Twitter. Still have puts on Twitter. Indeed. Sold out of puts. Family sold out of puts. Family obtained put positions in Twitter when it was in the 60s and 70s, low 70s and sold out in the low 50s. Right. Sold out a little too early, but it's locked in profits. Twitter went down to 43, 42. It bounced to around 44 and the family just acquired puts, some more puts on it this week. Right. And since we're towards the end of the week, you can guess when it was. Early week as well as later week, 44 dollar a week trade. And they're longer time frame because short time frame, it might still pop up. But on the longer basis, I don't think Twitter has a hope in hell of retaining its value market cap. Okay. Possibly. High gamble. Right. The fourth point in these key takeaways is a stock option contract typically represents 100 shares of the underlying stock, but options may be written on any sort of underlying asset from bonds to currencies to commodities. And I've never played the four acts. I've never played options on bonds, currencies, or commodities. Only puts and calls as well as for stocks, equities, as well as straddling, which is basically betting that a stock is going to do movement. Okay. That's what you're looking for when you're buying puts and calls. You're looking for movement because with options, you basically, it's a time sensitive bet.  And as you get closer to the expiry date, the option value drops significantly. Okay. So that's sort of the underlying takeaway from this. And when you control 100 shares, just think about it this way. If you buy one option for a certain company, you control 100 shares. So if the stock price at that company does a $1 movement, you didn't just make $1. If it's on the way up or lose $1 on the way down, you made $100 or lost $100. If a stock moves $10, you control the 100 shares, then that's $1,000. And there's time sensitivity in there. There's what do you call it, the premium you're paying for it and whatnot. But that's sort of the base way you can think about it. And on this page, there's videos that you can listen to what are options and they run you through it. Options as derivatives, calls and put options, call option example, more videos, put option example. And you can go through it, buying, selling calls and puts, buy, call, sell, call and all these things that you can do. And then secondary hedging your bet, straddling whatnot. So there's a whole bunch of information there. And I'll link it up just in case anybody has popped in more recently.