Okay. That's it. This is another session for the JenkinsX Open Office hours. We're going to probably just do a bit of a chat of what's been going on the last couple of weeks around JenkinsX. As always, feel free to ask questions to anybody to be involved. It's a community thing, more feedback and more involvement from anybody else other than people that talk too much, like most of us on the call. dyna'r unig iawn. Diolch yn fawr o hyn yn ddechrau, yn ymdweud ond wedi bod wedi bod yn bwysig yr aelod ar hyn ymdweud y gwaith o'r ffwrdd yr ymdweud ymdweud ar y cysylltu ar gyfer Genkin's Ex ar UKE, dyna'r ymdweud o'r blwyddyn os ymdweud ymdweud ymdweud ar y cysylltu. Ond a chi oedd ein bod yn ysgol, oedd ymdweud eisiau amdalodd wedi bod ni'n gweithio nhw'n gweithio? Fy ydych chi gweithio gweithio? Rwy'n gweithio? Ian, mae yna'r cyffin weld y cyffin sy'n gweithio yn y peth fwyaf o'r cyffin gwneud. Jog ddweud eich ffordd bwysig dda chi, yn y Starbucks? Mae'n fydig i'n gweithio'n gweithio'n gweithio'n gweithio'n gweithio'n gweithio'n gweithio. Rydyn ni'n gweithio'n gweithio, unrhyw o'r llaw-mwysiad. I have been doing, I've been doing a variety of random things, yeah, so the Chartmuseum stuff was interesting, it's actually a really good way into not only sort of the project itself but also sort of like our deployment and like our infrastructure and how maybe it differs from like a you know sort of vanilla install, so yeah I kind of rolled all of that stuff up, the background to this is basically we won't, we saw who looked. Has anybody else lost sounds, was that just me? I've lost them as well. Yeah me too. You know I think we just like, you've cut out there slightly. Maybe we can come back to you. You still there? Maybe we'll come back to you. I guess, Gary did you want to talk to us about the tutorial that you've been doing? Yeah sure I'll go. Apologies because I'm sat in quite a noisy place because I mean Cardiff City Centre at the moment trying to cheer on Gary and Thomas, he's about to do his victory lap of Cardiff for the Tour de France, so I'm sat in the quietest place that I can find but it's everywhere to be noisy. So yeah I'll be working on adding a tutorial or set of tutorials to my screen. Let me know when you can see this. Did that come through? Yeah I can see that. Okay great so at the moment we've put two tutorials up there both based on GKE and they are both using the cloud shell feature and it seems to be a fairly recent feature that they've added to add is of inbuilt tutorials into cloud shell and I'm just going to show you one of these now. So click on one of these. It's going to launch your cloud shell. Assume that you've already logged in with an account or a boot to the right place. If you've already got it open it's going to ask you to update it. It actually loads the tutorial on the right hand side of the page and it allows you to, it really thinks I've already started it because I have, I've just missed that. And I can start bouncing through this tutorial and it gives me prompts on what I need to do. You can make these as complex as you need to. So if I, just as an example, one of the things, one of the really nice things you can do is you can click on this based in cloud shell button and it will actually copy and paste the command into your shell and you just hit enter and it runs. And that's going to go off and install cloud shell, sorry, install JX for the latest version and any other dependencies that it needs. It takes about 30 seconds roughly, maybe a little bit less today. And once that's complete, you can say I've completed that part and go on to the next step. And then if you need to go and create something here, so I'm going to try this command. This is actually going to create a Terraform cluster and I can just follow that through like I normally would. So it seems like a really, really powerful feature and something that's quite new in. There's a few things where you seem to be able to launch like a local dev proxy. So if there's something you're booting on the inside cloud shell, you could then get it to open up a web browser window to that local app. But I haven't got too far into that yet. But in terms of just generally building out tutorials, I think it's a great little tool. Yeah, it looks fantastic. Yeah, it's certainly going to be useful for some of the workshops we've been running and for people that just want to get going fast without having to download any JX binary or if they have some old restrictions as well. So I love people who have lockdown laptops, corporate laptops. This is another good way, a great way to kind of keep the ties at GenCisex. Yeah, and all of these tutorials here seem to work so far, at least within a sort of GCP trial account. So they're not, but it doesn't require you to have any extra permissions or something. That's awesome. Excellent. Nicely done. And that's on the website now as well, yeah? That is just gone in, yes. Nice stuff. OK, Ian, you're back. I'm back. Can you hear me? We can, yes. I don't know what happened there. It was very strange. It just decided to cut the sound. It obviously had enough of me talking too much as well. It just decided to cut out. Yeah, so highly available chart museum, basically packaged as a chart itself. So there's a sort of custom chart, which I've just called JX Infra. It's like the snapshot tag. And basically, if you install cluster with that, you'll get GCS copy Chrome job running to basically sync your index, and you'll get chart museum starting up, connecting to a GCS bucket. So you basically get, you obviously get the chart museum itself, like the destructive API is actually, you can obviously query that in order to push stuff up to it. But if you make the bucket public with that little sort of sync job running in the background, it means that you can literally just give people the public address of the bucket itself. So in terms of get requests and all of that kind of stuff, you don't even actually need chart museum, the server actually running. So, you know, you could conceivably tear down the entire cluster. Everyone's still be able to pull the charts. Yes, so that was all done. Other things I've done. Oh yeah, I did. This was just because I saw a couple of people. It was partly for myself just because I like the idea of having been able to sort of debug specific versions, and it's particularly people that are committing and doing PRs and stuff like that. Also, I saw a couple of issues raised about JX version on the JX repo. So I kind of rewrote part of the make file yesterday and also added a bunch of tests and other stuff into JX for the versioning.  But if it's not, then you'll get a suffix dev version with the dev suffix and commit hash. So you can always see which version you're using and you won't get prompted to update constantly anymore if you're on a dev build, which is just kind of like a little thing, really, that I just thought would be really nice to have in there. Great stuff. Awesome. So we should be... I'll probably help out. Yeah, I was just about to... I'm sorry? So I think this is the latest one that you've got on. Yeah. It's just one other little thing which is just sort of developer ease type thing, which I've just been quickly playing around with earlier, which was shell completions because JX is quite a sort of complex binary. We've got lots of commands now and it's really difficult to remember and type. So I just added in a little, basically another command that lets you generate bash and zish completions. I thought we had that. I'm pretty sure we did. Yeah, we already have that. Yeah. I can't find it anywhere. I think it's called completions. It's so hard to find the... there's so many commands it's easy to... Yeah. I wonder if we've already got it. It's called JX completion. There you go, it's in the chart. Already for Mike. Great idea, though. Obviously someone beat me to it. Yeah, it's just because I was basically messing around with the... One of the other things I've picked up is basically sharing... Well, adding users and sharing your access to a JX cluster. I was chatting with other James about how to do that. Potentially adding some custom resources in that will enable us to share those things out really easily. Find a grain control rather than just exporting or packaging up basically all of our auth and then just sharing it around because obviously there's sort of... I'm thinking about the user story being basically that some sort of system administrator or admin will be probably the person that's creating the cluster and then it's going to be their job to sort of give out that access to various teams so that they can actually do their work.  It seems like we've had a sort of good conversation with a bunch of people from the community about what they would like and what they want to see. It definitely seems like having even just sort of fairly basic set of roles in the beginning maybe before just admin developer viewer kind of thing. Would make it a lot easier for us then to share those things, share access around with that sort of compromise and the security of the cluster at large. Looking at that at the moment, it's quite interesting. I think a lot of people will be looking forward to that because I think that's a common thing wanting to add extra team members to your... Yeah, this is a regular request. Trying to knock off some of these regular requests and things that will really add value to people's experience and stuff. Yeah, looking forward to that. Awesome, look forward to seeing that. Thanks, Ian. Is there anybody else that wants to share anything? I can show some stuff around Prowl but give an opportunity for anybody else.  I was maybe going to mention KNATIVE, but I wanted to if you should do Prowl first before we lose track of going to KNATIVE, but basically... No, go for KNATIVE, go on. Let's mention KNATIVE really briefly. So KNATIVE was announced two weeks ago. I think it was announced after the last office hours, so in between the last office hours and the office hours. There's now a KNATIVE thing, which is basically a group of bits of open source backed by the usual Red Hat, Google, Pivotal, and various others. The idea is an open source project around serverless. It's the main focus. It's trying to have a Kubernetes-NATIVE serverless platform that runs on top of Kubernetes. In the normal Kubernetes modular microservice kind of way. There's really three parts to KNATIVE. There's the webhook piece, there's the serving piece, and there's the build piece. The serving piece is using Istio, so that's kind of cool. So it's combining Istio with a serverless kind of serving mechanism. So you can, for example, have no containers running, and then the HTTP request can come in. You can then scale up a container to service the request and then tear it down again. It'll have a nice elastic serverless style running of containers. So that's really cool. A bit that's really interesting from a Jenkins X perspective is KNATIVE. KNATIVE build, I should say. KNATIVE build is very similar to things like Codeship and CircleCI and various other CI tools and concourse. Almost everything, apart from Jenkins these days, tends to use Docker containers and simple steps in Docker. Ago, again, is very similar. You define a pipeline in terms of steps. Each step is a Docker container and a command in the container, and you chain them together. So it follows that kind of similar pattern to lots of CI tools that's out there. What's particularly interesting, though, is it's a fairly small controller. It takes a CRD to define builds, and then it's got a controller that turns those CRDs into pods. What's really interesting, which I found quite surprising when the first saw it, but then the more I thought about it, the more awesome it appears. KNATIVE build is turning into a single pod, and each step is an init container in the container. So that each step is then discarded. It runs until the Kubernetes waits for the init container to start and complete. Each init container has an exit code, and it passes or fails, and then if it's good, it goes to the next step, and next step, and next step. So it's kind of really using Kubernetes to implement the pipeline engine, which is kind of interesting, because the build is just a regular pod. There's nothing weird or wonderful about it. It's a regular Kubernetes pod. It's just the CRD takes a build resource and turns it into a pod, which then runs the build using a normal Kubernetes stuff. So that's really interesting. Incidentally, the command JX logs we've had for a while, I'll just type into the shell. There's a command JX logs, which lets you, iteratively, output the log of a pod, and usually you give it the name of a deployment or something, and it will pick the newest pod for a deployment and title the log. I did a patch last week to JX logs, which if you want to title the logs of Kubernetes, you just do JX logs, and then give it the label name, build-name, which is the current default label on the Kubernetes build pod. That it will basically find the latest and then log each initcon that was each step in order, so you can just title the log really simply, because that's one of the problems right now is trying to find out what the logs are for Kubernetes is not immediately obvious. So anyways, that's a bit of a ramble. Knative looks really interesting. Given the backing of Knative and it's the serverless, and serverless is pretty hot right now in the general software development scene, I can see lots of people investing a lot of time and effort into polishing Knative. Right now, it's very simple and basic, and you just run a couple of commands on that kind of it. Knative itself doesn't have a webhook thing yet, which maybe segues into Ystof James with Proud, but it does look like if I was a betting man, I'd kind of say this is looking like a long-term strategic pipeline engine. What's interesting is, you can embed in Knative to build any build tool, whether it's a shell script, a Jenkins file, any kind of language or processing engine or whatever. It can be bash scripts, it can be Perl, Python, PHP, whatever. So, this is just orchestrating the high-level Docker images. The actual detail of those images could do whatever you want. The other thing that's interesting, by the way, about Knative versus things like Argo, if using Argo, each step is a separate physical pod, and so that if you want to share a step between steps, you have to sync everything to S3 or Minio or something, to give back again to the next step. With Knative, a Knative build pod is all the steps are in one pod, and each step has a workspace folder which is mounted in it's content. So, you can just share content between each steps without doing anything or syncing anything, which is kind of nice. Knative is really interesting, it's definitely one to watch. Another thing, well, I should have probably got these links ready. Well, I'll tell you what, shall I switch to you, James, and you'd talk about Prow, and then, when that's finished, I'll mention some of the other bits and bobs in the Kennedy Junkie's X World, because I didn't think of talking about this, so I'll need to look up the URLs so I can show you. It might be worth putting the URLs on the page, so I don't think if people watch this back on YouTube, they don't get the chats of history, so it might just be something I'd be useful as well. It's only for the doc, yeah. Yeah, the doc. Okay, cool. I'll just talk a little bit about Prow. I'm going to share my screen. So, can somebody tell me when you can see this? Yes, looks good. Okay, great. Prow is really interesting. One of the challenges I think we've been trying to solve, I think, with around having pipelines on Kubernetes is ensuring that we have a we don't have a single point of failure, we want to ensure that we can always get a webhook event from when changes are pull requests are raised or pull requests are merged into GitHub or different Git providers and how we then handle those events making sure that we're not actually upgrading Jenkins, for example, and we could miss those events. One of the other really cool projects that's been around for a little while now which is from the Kubernetes ecosystem is Prow. Prow is being used by the Kubernetes projects also other related projects too like Istio and Knate of using it as well. What's kind of interesting is we're looking at adding this in we've got this actually running already for our own services for JX to a certain degree and I really want to there's a diagram here it's under the Kubernetes testing for is the Prow Git repository and there's a little diagram here I don't know if you can see this but it's just thought I wanted to go through this very quickly there's a lot of parts to Prow there's a lot of terms, lots of different names you get used to them but a lot of them are implementation detail Jenkins X is trying to initially hide these implementations but you can go down and have a look at what's usual if you want to so we have events coming through in GitHub say a pull request is opened and that event is sent over to this webhook handler this can be highly available you can have multiple replicas Kubernetes replicas so we can perform upgrades for example and rolling upgrades to the hook handler controller and we won't miss any events coming from GitHub now this does this event then sends and creates a custom resource definition into Kubernetes of a Prow job and we have a controller here which is called Plank and this will then actually start up the pod and actually run the actions in the Prow configuration there are Kubernetes pod specs so you just add a Docker image name and then your commands that actually runs so it's really cool nice and simple highly available so we get scalable as well and it's being used by the some of the largest projects on GitHub most active projects on GitHub so you know it's scaling that way there's also a UI and some various other things that help with periodic batch jobs and cleaning up as well but those are the main ones there's also a UI called DEC interesting then is since the Knative was announced sorry my daughter's in the background apologies for that since Knative has been announced there was a pull request on Prow repo actually adding some support for build controller which will actually create Prow jobs handle Knative builds which is kind of cool I've been getting a bit more familiar with the Prow repo with the codebase and probably adding in some extra bits to actually handle when you're raising pull requests having the statuses get synced back via Prow so kind of we're going to be submitting that upstream as well hopefully we'll get some reviews on that and get a better understanding if that works we'll get that one merged in but in short we should be able to have in Jenkins X support for Prow so highly available webhook handler and the venting and creating Knative jobs being able to actually use these using the CLI the JXCI we're actually familiar with now I can give a little bit of a quick demo it's not amazing but I can just kind of show something in a second so we've started using it slightly on JX we're not fully implemented yet what it does first of all when you raise a pull request actually we have Prow plugins so you can actually see it analyzes the size for example and has labels lots of these controllers actually perform actions based on the labels on the pull request for example there's something called Tide which will automatically merge a pull request if it has all the appropriate labels and doesn't have other labels such as hold or working progress for example so let's actually just start by I've got a test repo Prow test I'm on a branch I'm going to create a pull request from my branch working progress so I'm going to give it a working progress title because we're going to see one of the plugins that Prow has I'm going to create a pull request from my working progress branch into my master branch so that's going to go away and have a little think so that's sent an event into the hook handler and that's then commented back on the pull request because we had working progress in the Prow title it's actually added a label of do not merge that means that if it was approved and if it was all the correct labels were added to it Tide won't actually automatically merge it until that label has been removed we've also added this comments so we don't have an owner's file in here yet but an owner's file contains owners of the repository and reviewers that can actually be recommended and automatically assigned to that pull request and we can see this is a bit I haven't quite figured out quite yet but we've automatically run the test we didn't actually wanted to run that straight away so I've got to fix that or figure that out but the idea is you can now start making comments on the pull request so test this for example if we run that let's do here you can see getpods it should work oh it's already started here we've got a this is a canative build pod that's actually been started with the init container it's actually cloned the source code that pull request it's actually running the unit test for that test project and then it's successful so we should see that the status update should go to successful on that pull request it should go in a second whilst that's going it's got other things like other kind of seems to be developer workflows that people are getting familiar with looks good to me for example I'm not sure if I can actually do that one because it's my own pull request I'll see the status checks that she passed and the job succeeded so I'm just going back very quickly what we've got is CI running using prow and Knative for Jenkins for Jenkins X project which is kind of interesting still a bit more to do but it's kind of very exciting Knative as Jane said was only announced two weeks ago so it's lots more coming but it's very exciting times I was just going to show something really I guess for the next office hours I should try a real demo of Knative with Jenkins X so I don't actually have a real demo right now but I was just going to mention two little things that happened last week if I quickly share my screen which tie into what James has showed just share my screen we have a little controller we have a little controller command which if you type jxcontroller build we kind of need to package this up as a help chart which we haven't quite done yet but if you basically run this command line jxcontroller build it watches for all of the pods generated by Knative and any pods which start or stop or steps happen or whatever we basically mirror the Knative step statuses into the CRD we have right now for looking at pipeline if I open the shell a second we've got this bit bigger let's see one second I should have done this earlier make a big shell if you type jxgetactivity and I'll filter by demo this is going to list all of the pipelines which I'll just be working on right now because here's a pipeline here's a Jenkins pipeline here's a pipeline where we checked out some code we did a release, we released 001 and then we did a promotion and blah blah blah usual kind of stuff what's happening should have turned off my phone before this so we do the normal jxgetactivity stuff which really is just using a Kubernetes CRD under the cover if you do kubectl getact we'll see here's all the different pipeline activities which if I look at my last pipeline kubectl getact minus oh yamol piping demo this is the yamol of the CRD pipeline activity which where we define various methods that are like what's the release name, what's the git URL what's the branch, what's the tags and so forth and also what all the steps are now what this new jxbuildcontroller does is whenever you run a pipeline a KNATIVE build we generate the same CRDs for Jenkins pipelines and KNATIVE pipelines which basically means we can use one tool to visualize all the pipelines either from the command line all the VS code and IntelliJ and Eclipse plugins all use the same CRD so it doesn't really matter if you're using a Jenkins pipeline or a KNATIVE build pipeline the same set of developer tooling the CLI, the REST API, the ID plugins and the CloudBees web console all of those visualize things in the same way which is kind of nice and so hopefully all the same tooling should apply whether using Jenkins for doing a pipeline or whether using KNATIVE it should kind of work the same one of the little thing I thought I mentioned is here's a quick example of this is a KNATIVE build resource as you can see at the top it's part of the KNATIVE version and the kind is build so this is a CRD which defines a build instance and this is just the git repository in the branch or whatever and here I've just got a single step called release and I'm using the Jenkins X Maven builder and I added a step last week called jag step release so this is I'm slightly cheating I thought well what's the quickest way of getting Jenkins X pipelines to work inside KNATIVE let's just write a big uber step that just does everything to do a release which just chains together all of the internal pipeline steps so rather than writing a really big pipeline I just cheated and just did one command so basically end of the cover is what that does is the same as our current Jenkins file it sets a git, it does a clone it generates a version, it tags everything it pushes everything and does all the promotion so that's a one command line version of what our Jenkins files do you'll notice it also mounts dokesocket and sets up a secret for Maven settings but this entire lob of YAML works in KNATIVE for doing a KNATIVE build to do a release pipeline for Jenkins X I was quite surprised how simple this was so we should be allowed let people choose really do they want to stick with a Jenkins server and keep everything in a Jenkins file do they want to go YAML and use KNATIVE build pipelines or maybe even combine them trigger some Jenkins pipelines after KNATIVE build steps or the other way around KNATIVE build steps one other final little thing that was a very experimental thing I raised an issue last week about if people started to use KNATIVE pipeline steps how could we maybe make it simpler to use the two things together to use CI and CD like we do in Jenkins X with configurable steps and with things like build packs and whatever I will get into this whole issue I will read or fly in if you would like but the basic idea is prototype code that lets you take we have a Jenkins X YAML file which is optional which can just define which build pack you want to use so given the build pack we can generate the KNATIVE build YAML completely from a library of build packs so rather than having to copy and paste these big YAML files into all of your Git repos we can just reference them in your Git repo or you could specify various different pipelines in Jenkins X we tend to have different logical pipelines like the pipeline that runs on a pull request the pipeline that does a release we can separate those into different YAMLs or blocks of YAML and let people completely override them in each repo or inherit them we could maybe even look at doing things like prepost steps so you might say I want to reuse the standard release pipeline but before I push the docket image I want to do this so whether you want to copy and paste the whole thing every time or you want to reference it by name or whether you want to just add certain pieces before or after things we should be able to let people just define very dry bits of YAML which is very concise but it gives you the full power to completely do whatever you want in every project so that's just a bit of a ramble I'll put all of these links into the google doc if anybody fancies noodling all this code after this meeting so that's me awesome that's really great stuff I think we've just been blown away a little bit about the potential around Knative and it's certainly going to be quite exciting to be following that project so it's quite surprising how nicely fit into Jenkins X as well we didn't really we weren't really expecting Knative to turn up we just figured that one day it would be some kind of Kubernetes-like thing but it was quite surprising how quickly we've just been able to reuse our IDE plugins our CLI even actually reuse our bills it's been quite surprising how quick it just fit in it was a spooky timing because we were just looking at Proud and almost within the same time Knative arrived and Knative and Proud became a thing and Jenkins X and Proud Knative all kind of happened within a week or two which is still very early and I wouldn't recommend anybody really go into production with Knative build at any time soon but it's certainly looking like it could be a nice simple option plus another thing we've always kind of figured at some point it might be nice to have a SAS option for Jenkins X so that if you just want to use Jenkins X but you didn't want to run any infrastructure or manage anything yourself use something like Codeship or whatever for all of your release pipelines in many ways Codeship and Knative are basically the same pipeline they're just running Docker commands things like Codeship and so forth see how they're hosted Knative runs in your cluster so I think the Knative thing fits very well with the potential SAS version of Jenkins X at some point where you might want to use Codeship or Google Cloud Builder or something like that for your releases but still have the same UX of Jenkins X I think it's a really interesting time I mean everything's changing very rapidly in this space these days it's fun and it's also great that everything's using CRDs as well these are Kubernetes natives exactly and the other thing that's really interesting is so right now okay Prow isn't quite finished in Jenkins X but it's kind of close but you have the option use Jenkins for releases and promotion so you can pick and choose which tool you wish that you could use Prow for webhooks Jenkins for releases so you could basically pick and choose what you're going to use for webhooks what you're going to use for releases what you're going to use for promotions and you can plug and play exactly what pieces you wish when we do multi clusters I really kind of prefer the idea of Prow in staging and production for promotion workflow well pipeline build step that hardly does anything and never really changes you just lock that down and then you're done you kind of don't want a developer centric tool that lets you spin up and import projects whenever you feel like running in production you kind of want that in your dev cluster so I think all these different options is going to let people choose exactly what they want their infrastructure to be like maybe Prow is used in production and staging just for promotion only no docker bills, no releasing anything just promoting released stuff and then maybe use completely Jenkins in development or maybe use a hybrid Jenkins on some projects Knative on others or whatever and pick and choose based on the app what you want to use but have the whole thing integrated together I think that's a really compelling thing Knative is not going to be a good fit for lots of things certainly things like mobile apps stuff like that is going to be terrible for but for lots of things like writing making little containers and releasing them I think Knative could be pretty compelling One of the other things, you mentioned about multi cluster as well because currently our answer to that is to install Jenkins in each cluster to handle the promotion because we're just leveraging the web all worse let your dev cluster be system cluster admin on all of your clusters which is even more scary kind of crazy but now we could just do a lightweight part of Prow so just the hook for example that starts at the job and then runs the Prow job between the helm up there and one of the other good things is you were just asking me before about the size of it the memory footprint is like 60 meg or something and the it was more than one of a CPU so it's very very lightweight, low footprint but it's also Prow has all the secret setup as well so for the webhooks so that's all nice as well so it does feel quite certainly much better fit than what we were using before Plus we probably want to do a cron job as well so as well as just the webhook thing for promotion you probably just want to go every hour let's do a reapply just in case there's been drift and some of these are some crazy production let's just keep reapply in case weird shit happens I think the combination of Prow and cron jobs looks a good one and one day maybe K-native will have its own webhook thing that might use some of Prow or whatever it is we could switch to some other webhooky thing maybe there could be a simpler lean and mean webhook thing that is big just for promotion so it's hard coded to do one job only ever or something like that that's all great we were talking to somebody this week who they have their own custom built webhook thing for production which has been through their security checks if you want to use some custom webhook thing of your own choosing some lambda or whatever crack on it's all good so I think that modularity of Jenkins X is going to serve as well in the future and let people tweak things and configure things to suit exactly what they need rather than this one size fits all model and that's because of the focus around Githops isn't it so having Git being the thing the source of truth and then people like you say and then if they have particular way of actually implementing that then that's cool I think also having this came up on the chat room today people were asking about things like Spinnaker I think one of the really nice things about having a Kubernetes native solution for all of this is it's all microservices all the way down using Kubernetes to connect everything together so if you want to change a webhook handler or a cronjob handler or a load balancer or a thing you just switch a piece in the infrastructure and it all kind of works so I think having Kubernetes native solutions for all these things all the way down the stack is going to really be the best long term solution for all of us I think that this has all moved forwards in a much faster by the way yeah absolutely exciting times cool right I can show the single sign-on operator if you are oh sorry we forgot to mention that we should have gone earlier that I wouldn't have rambled about let's hope it works I can share my screen that you can see okay let me show it do you see my screen not yet oh yes okay so let's have a short introduction to the single sign-on stuff so what we try to achieve is to make this single sign-on setup quite easy for Kubernetes applications and we try to base all the all the pieces on well-known open source components so one of the main components is DEX which is an open ID connect provider federated which has connectors to many identity providers you can see here like github, githlab Microsoft Azure Active Directory Google and so on so basically it's a proxy towards this and it's quite nice lightweight written in Go starts quite fast also it has a nice gRPC API if you look here you can manage it over gRPC and the idea of this single sign-on operator is to have a operator that takes over all these setup steps to configure a single sign-on for a set piece so and if you think it's in this janky sex single sign-on operator I wrote a bit of documentation and yeah I can show it currently I managed everything with janky sex so we have a DEX installation we have a single sign-on operator installation and we have a vanilla go-length HTTP service for which we want to set up a single sign-on so if we check the staging environment we have currently three ports running and I have heard a lot on the single sign-on operator maybe we should have a look into the single sign-on CRT so the basically the operators listen to a so watches the CRT and when the CRT is created it takes over all the steps to set up SSO so if we look inside of the CRT basically we see there is this open ID connect URL which is the URL which points to DEX identity provider depends where is installed so either in the same cluster or typically it is in the same cluster it could be in the same namespace or it could be in a different namespace also we can define the upstream service so we just need to define the name of the service for which we want to set up the single sign-on then we need a domain because this service is the single sign-on for this service which will be publicly exposed under this domain and then it's just typical proxy image we want to use for the single sign-on proxy and then some cookie specific configuration like how long we want to keep the cookie if it's sent over to the PS or these kind of things so that's it so I can now go and just let's put this to watch the post what's going on so we have this here now I create this SSO resource so the resource is created now we see that first operator has created OpenID Connect client into the DEX using gRPC API now it deploys the SSO proxy it waits for the proxy to get ready so we still the pod is not yet running so it waits until the proxy is up and running when the proxy is it's ready it will expose the proxy publicly using the expose controller it runs the expose controller as a job and we see now it's the service was running now it runs the expose controller expose controller is running is ready now what it does it gets the public endpoint of the SSO it sets this public endpoint as a redirect URI into the DEX for this specific client and then it restarts again the SSO the SSO proxy container in order to get the new configuration so this takes a bit and it waits now again for the container to be up and running this takes a while it's relatively fast now it's kind of running so now it's done now the SSO CRDs mark has initialized so now if we go here and just let's say we do a we try to get ingress or engine environment we have this SSO goal lang HTTP ingress here we can just take it I forgot to mention the DEX identity provider is configured with github connector we have a github application for the DEX identity provider and now I will open this SSO public endpoint and I will log using github so I have this now the DEX login window show up shows up so now I can choose github I already logged in once so I have the DEX configured to work only with jenky sex organization so I already went access to this so now when I say authorized so I logged in so now I'm logged in so you see now the SSO HTTP shows up it returns the code now we can go and check that the cookie was created for this so we can check oops we see here in the cookies the cookie should be content settings cookies show our cookie and then we have this so we have this cookie so it was created for this service we see our name whatever we configure it so now if I go back so now I can do whatever I want so I can so cookie it's set up I can log in again so now if I delete a cookie try to log in again so it shows me again the login setup and whatever so now I can log in I already logged in so github keeps track of my authorization and it doesn't ask again to authorize the dex to connect to my so that's it basically on this side so I wrote a bit of documentation here how to install basically SSO operator we kind of not really for dex but we create our own dex repository based on the upstream repository because we wanted to set up Jenkins X to do like continuous deployment of text into Kubernetes and we have our own chart based on the open source stable charts here it's just the dex which has a few jobs here so one of the jobs it generates the GRPC certificates it's a self-sign certificate and it stores the certificate into some secrets the problem is if dex runs in a different namespace we need to copy the certificates from the dex namespace into the SSO operator and into the SSO operator chart there is a there is a job which can be enabled like if you deploy SSO operator in a different namespace than dex we can enable this job and the job it will copy the GRPC certificates from dex namespace into the SSO operator and the SSO operator will be able to connect towards dex so by default if you deploy both in the same namespace you don't need to enable this so the SSO operator will be able to detect the secrets and fetch the client and certificate and public certificate of this because it's a self-sign certificate so yeah that's it yeah if you don't want to use Jenkins X to manage the operator you can also use scaffold and help to install it and then share a bit of details how you can create and run the like a CRT so one probably is our next thing to fix is to see how set manager and TLS work together that we can expose dex over TLS and also create SSO proxy which is exposed over a TLS endpoint that everything so this is absolutely must to have without this it's kind of not very secure setup okay great thanks very much it's awesome it's not okay cool we've got five minutes left anything else anybody want to share going once twice okay again in two weeks well in two weeks time we'll have to send a note out whether we can make the two weeks time because I think maybe a few of us are travelling but we'll see okay thanks everyone goodbye


The untold truth of They Live is that it IS the truth. Despite being an initial failure at the box office, They Live is widely considered to be one of the forgotten masterpieces of 80s cinema. Chops full of cheesy one-liners, overly long fight scenes, and B-movie special effects that look like they were made in someone's garage. If you've seen the movie, you probably know everything that we're going to say. But for those who haven't seen it, well, you can find it here on YouTube, but spoiler warning, here's the plot. They Live follows an unnamed protagonist who discovers, through special sunglasses, that the ruling class are aliens concealing their appearance and manipulating people to spend money, breed, and accept the status quo with subliminal messages and mass media.  And I'm all out of bubblegum. While it was meant to be a funny gag, the Orwellian reality of the movie's universe is not so different from our own. In fact, with all of the new information coming out in recent months, you'd be forgiven for thinking we're not actually living the movie ourselves. While the sci-fi horror world doesn't really seem like conspiracy or fantasy, it's actually closer to reality than you think. Drones in the sky, conspiracies in our heads, militarized police in the streets, economic inequality at every corner of society, media and a ruling class that seeks to control our minds through broadcast frequencies. Oh, wait, sorry, the movie, right? So the film follows this unnamed nobody, whose identity is revealed in the credits as Nada, the Spanish word for nothing. And while this is seemingly just an editing choice, there's an extra layer of meaning to it, in that Roddy Piper's character really is a nobody. He's a homeless drifter with no family, job, or any kind of life that we know of. There's something comfortingly poetic about the fact that a nobody can see through the lives of society, an idea that you don't need to be special or be of a particular class to awaken to the truth. The movie's first and most important message is that all you need to wake up is the ability and determination to see. There's so much we could talk about in this movie, about its similarities to our world, and even the fact that the director, John Carpenter, came out in 2015 and outright said, you have to understand something. It's a documentary, not science fiction, about it being a critique of the Reagan administration and commercialism. But the truth is, there's something much more sinister and relevant expressed in the movie. Spiritual warfare. The aliens who may have influenced David Ike's reptilian somehow, staying in control by using repetitive, subliminal messaging and broadcasting frequencies to deliberately keep everyone's vibration low, which is what allows everyone to be controlled. How did they do this?  Of course, no one can actually hear this, you know, because it's subliminal and everything, but everyone is unknowingly affected. On top of that, every billboard, magazine, and piece of media is delicately crafted to perpetuate the same message. Nothing ever comes solely from one source, except, of course, their signal, and the aliens are sending the same message through every aspect of society, repeating it every day, every year, forever. In other words, it is that sense of repetition and modality that keeps everyone asleep. This is even where we get the name of the movie from. They live. We sleep. In the past few months, the whole COVID pandemic is a great example of this.  As we talked about before on this channel, the true virus is the sense of fear and distress that has come along with COVID-19, and the mass media has bombarded us from every angle with exaggerated information, arguably in an effort to favor control and social influence. When he has his sunglasses on, Nada sees through the smoke and mirrors projected by the advertisement and mass media. He only sees the core of their message, the only reason why they exist. Every advert, media, and magazine is the exact same. Even though they appear different and are all owned by different companies, they all have the same base message. Ultimately, they all serve as the same purpose of translating the message from the 1% to the masses, consume, obey, reproduce, and conform. Now, the movie's main concept is, of course, the truth-seeing sunglasses that let Nada see the aliens. While they look like the most 80s fashion choice ever, there's something more about them underneath the surface. For the most part, they illustrate the importance of knowledge in one's world perception. Two people can be looking at the exact same thing, yet perceive two very different realities, depending on the level of information and the awareness that they have. Modern politics today is an excellent choice. Some people see the left wing, some people see the right wing, and some people see a bird that's having a lot of difficulty flying. Nada's sunglasses can, thus, represent one's knowledge of the truth, which allows a clear perception of reality.  When first exposed to the truth, adapting to the new reality can be difficult and even painful. However, after a while, it becomes a seamless part of the person. Once you understand a new truth, you can never go back to your old reality. In fact, the overly long-winded fight scene is probably the best example of this. During his alley fight with Frank, Nada only wants to show his friend the truth and to help him wake up, but Frank is so attached to the lie that he's living that he even gets violent to defend it. In what is probably the greatest fight scene in movie history, it's effectively an 80s meme, okay? The underlying message is that sometimes you have to beat the truth into people because they're comfortable in their lies and illusion and are willing to fight to protect it. Then again, maybe there's another lesson here of allowing others to have their own experience, although of course, that idea is not very in the favor of Nada here. Now, the other major tactic used by the aliens is to falsify any new information and brand it as a conspiracy theory to get the masses believing its nonsense. Right from the start when our hero meets the guys in the church, the police force and SWAT unit come and arrest everyone to keep them quiet.  Nada and Frank quickly become social pariahs, being hunted by the police, the media, and even the average Joes who think that they're helping the good guys. Towards the end of the film, Nada and Frank sneak into the alien's secret base, which is a network of secret tunnels that even has portals to the rest of the world and even outer space. Inside, they see some pretty weird things, like all of the elite having a fancy dinner party discussing world domination. One of the most bitter lines comes just after this where the broke poor homeless guy from the beginning is now a super rich elite and tells them, We all sell out every day, much will be on the winning team. All this talk of a world without countries, borders, good guys and bad guys seems great on the surface, but once you look underneath, you see some pretty obvious references to the whole Illuminati New World Order thing, which has been a popular interpretation of this movie for a long time. It's pretty clearly shown that the aliens and the one-percenters work together for mutual benefit, with the ruling class supplying everyday people to the aliens and the aliens giving everyone little pay raises. The greatest atrocity of spiritual warfare committed by the aliens then is the commercialization of human life, but the agonizing truth of they live is the implication that the one-percent are okay with it and that they would sell their own species out if it meant a pay raise. The movie was also plagued with racial issues surrounding the identity of the aliens, but there's a lot of different interpretations. For one, the aliens refer to Earth as their own third world nation, a sentiment that is eerily similar to the colonial attitudes of Europe in the 18th century. Further, there may be something to be said about the fact that the truth-seer sunglasses make the wearer perceive the world in black and white, allowing us to see everything for what it is, without the distraction of color, which ultimately is seen as something that separates us. Taking a spiritual perspective to they live really is just a matter of changing how we define things. Nothing really changes in the interpretation. The sunglasses are a metaphor for enlightenment and awakening. The frequencies and subliminal messaging represent stuff like the fluoride in our water and other real-life frequencies in our music, cell towers and whatnot that also lower our vibration while increasing our sense of separation.  Society is structured in a way to keep us complacent and trapped in a never-ending cycle of debt to keep us controlled. Ironically, though, the movie is also a critique of American greed in which the solution is an all-American macho man shooting up foreign intruders with the machine gun. The way that the movie shows the solution is the biggest case of America, f*** yeah, ever seen. Perhaps, like MatPat's film theory on The Matrix, there's a sense here that we can never truly escape the system as long as we subscribe to the more commercialized ways of solving it. In other words, perhaps the system can't be fixed because it isn't broken. It's perfectly designed this way to create suffering. Maybe that's too pessimistic of an outlook, though. But I do think that in order to make real change, both within ourselves and in society, we must shift our mindset first away from that which originally created the system and into a higher vibration. The only question then is whether we'll be able to do that when the world is designed against us doing exactly that. Fortune, however, does favor the bold. In this movie, this happens with not a destroying the broadcast tower at the end of the film, and suddenly the truth is revealed in plain sight to everyone. Perhaps that's really what we need today, a mass revelation of truth for the all. So, with that, thanks for watching. If you liked this video, be sure to like, comment, and subscribe.


If you need Madden 21 coins for anything, make sure to go to buymockcoins.com. It's cheap and reliable and my code MMG is 20% off. Tim Tebow! Oh my God. Gotta be literally the last thing I expected to come out today. And props to EA, dude. They usually just take this big long breather between promos. They got like the Thanksgiving stuff and then they'll just wait till Christmas but they drop campus heroes. Dude, the last time Tebow was in Madden, if this is correct, was like Madden 16 or 17 when he got a golden ticket. Somebody pulled a golden ticket and they got a golden ticket, Tebow. I think I have a video on that from forever ago on Madden Mobile. It was an amazing card. It was so good. He would truck people like nobody else. So Tim Tebow is back today.  Unfortunately, there's no power up so I can't make him like crazy any better but he's already really good at 87 speed. 92 throw power, all his stats are so good. And can I just say this? He gets way better abilities than Kyler Murray which I think is really funny. When I was doing the Kyler Murray gameplay which you guys actually haven't seen yet he doesn't get very good ability but this Tebow gets escape artist and dashing dead eye which is like the best combo in the world and it gets roaming dead eye. So roaming dead eye is just when you set your feet outside the pocket and then dashing dead eye is while you're running but it's only up to 40 yards. So pretty much if we get outside the pocket we're throwing a perfect ball. That's insane. Literally one of the most heartbreaking things is that Tebow wasn't that good in the NFL. It really is crazy though. It reminds me of Johnny Mansell a little bit. How you can be so good in college football and it just might not translate or how you could be mediocre in college football and still be an incredible NFL QB like Tom Brady. Let's just hop straight into this. I'm so ready as Tebow. We're gonna be ready to read options. We can throw dots. We can be rolling out of the pocket. We can do literally anything. Look at Tebow's face bro. They actually added his face. Dude a lot of times it's always like the cartoon generated face when they don't have the picture. Broncos versus Bears. I don't think ever in my history of Madden I have been in a Broncos uniform. All right big greens. Let's see what you got my guy. What just happened? That's a safety. Oh my God. What just happened? I just sent a monstrous heater and I'm coming in with Taylor Mays. Get there. Get there. I got the middle. I got the middle. That was an interception. Apparently not. All right we're gonna keep the blitz as hot. He's gonna make a mistake.  He is yet to run the ball. No. Did not get there in time. We are hitting so hard though. There's gonna be a fumble here soon. All right.  We're here. We're here finally. I could house that but I want Tebow yards. That's the whole point.  Tim Tebow. Oh that's so awesome. All right read option Tebow bite. Bite he bit. Let's go. Tebow's got serious room. Oh. Dude if only Tebow had a receiver like Tyree Kill man. Maybe he'd still be in the league. Cause right now I'm gonna throw a touchdown to him.  Denver Rock goes Tyree Kill. He's in the end zone. And wait. Oh this goes to Josh Allen. Damn I thought this was gonna go to Tebow. But it should be a touchdown anyway. Wait. Oh. Hmm. Big left side blitz. Ah. I'm on the wrong dude. I'm on Randall.  Just find the open man. So play action right here. Right here. This is what he wants.  He's in a box right now. All right we're gonna go play action here. I'm gonna look for Shannon Sharp. He's there. He's. Oh I don't know. Did not deserve that. I don't want to be honest. Okay double team. Just double team that man.  I'm so mad at Tyreek. Tebow is just gonna step up. Get in. This took a hit from.  Oh and he's gonna rap. Dude I thought he was gonna do the Tebow prayer. That would have been awesome. I'm gonna get in there in prime time dude. I'm telling you. No. The fake. The fake. Dammit. Big hit. All right prime time is gonna guard everybody. Oh he runs. I'm blitzing the man on the hat back. I'm baiting. No. No. No. Dammit. Come on let's leave the middle open and then just fly to him. No. Yes. Oh my god of football. Finally. After all of our fake hits we get one. Dude I could get some major pass yardage here. And I'm just gonna hope that Tyreek will burn this man.  Let's do it. Let's do it. Do you got him Tyreek? Maybe not. Nope. See if we can get Mr. Shannon's shirt. No. We just got a lot of different things we can do here. Typo take it off. Truck's a man. Nine seconds on the clock. Excellent scramble.  This is a cover two. So there's gonna be a seam. Ah go Tyreek go Tyreek. Got him. Can I throw a pass in three seconds? I don't trust myself to make this feel good. We're going straight for that end zone. We're running literally Hail Mary. Who's gonna get there? Tyreek what are you running? What are you running? What defense could that possibly have? And he left the game.  All right boys we got a new game in here playing against the Purple Unis. Showbird?  Man's just threaded a needle. Not 5-1 but we're getting in 5-1 territory. Bait, bait, bait, bait, bait. Oh no he just goes underneath good. Pass decision big hit. Got this one. Ooh I can't get to that in time but we can rock him. All right does he run this ball? No. Same looking thing almost. I'm bringing Joe Showbird over here in case he's gonna try and pull the fake. The fake is nasty this year. Yup. Oh it's a left side fake. I had no idea that was gonna go to that side. All right should be able to feed Julio. Looking for him this little window. Oh I don't know if that's open enough. We'll take some peer lock baby. All right Tyreek underneath. Another really solid catch. Second and three I do not think there's a QV Spy. Just hold up these blocks for a hot second. Let me find a good window to roll through. Oh I wanted to run him over. I'm gonna go for two. I think this is gonna work. Let's see it. Let's see it. Okay A you gotta get in the back of the hands oh man. You gotta get in the back right there. I'm gonna keep moving. Had potential didn't work out. That could be crucial in a game like this. First and 10 let's see where he wants to go on this one. I got this locked up and I'm about to have this slant. Oh it's a bad ball. Who is that? Who has the ball? Who am I? Is this Jalen Johnson? Jalen Johnson with a quick interception and we are back with Tim Tebow. But, but he bit, he bit. Let's go!  Tim Tebow just literally ran him out. All right we're gonna go underneath. Julio Jones here can also look up top. Shannon Sharp with a touchdown. Tebow's on the board passing. See we can get it from here. I'm looking for Shannon Sharp off the jump. One, two, but what? Shannon or Tebow who messed up there? Good, good, good defense. I'm gonna bet that he's running this. Oh he's not. I gotta cover everything! Oh get there. Wait did he do that on purpose? It looked like he went out about. Aaron Donald on a QB spy, kind of weird, but just gotta be ready for it. Oh I saw that. A hot second too late and he made a really strong contest to catch. Good play though, but he gave me way too much time. 42 seconds, three time outs. I'm gonna score again. Going back to the screen, it was successful once. All right, we got it off to him. We don't have any blocks there, but we might not need them. First and 10, Tyreek, Tyreek, oh my God. And Tebow's armed to throw that up. It even said it said out of range, bingo. Finally getting two points, goodness. Okay, okay, prime time, go prime time. Put it away. I'm gonna do the kick or flip pass here because I do need this two point, although I don't know if this is effective. Playmaker, go, go, oh my God. I'm a God. Also, can I just say that was one of the best throwing balls by a kicker I've seen in a while.  All right, we got another one here. Easy, so easy for Tebow. 36, dude this game maybe two minutes ago was 12 to 14. And it's now 36 board dance, why you never give up, boys.  Damn it, I got blocked. Oh my God, wait, that was my man.   No, no, there's no way that's going through. All right, let's get, let's get sticky.  All right, we're gonna go play action here. See if we can just heave one. Oh, maybe we don't need to. Come on, Van Noi.  This is an entire kill touchdown. That safety is gonna be way too far inside. We're just gonna lead this outside.  Can be, is he there?  Oh, stop it. Holy, I'll jump.  I'm so dumb. I might as well, bro. I might as well, make the tackle. Stun, make a bad decision. Make a bad decision to dig. Oh, that's definitely a bad decision. Taylor Mays to the 49, he is crumbling apart right now.   Oh, one of my stats right now. They have to be ridiculous, dude.   I cannot believe this game was 12 to 14. Like, I thought I was gonna have to sweat. I'm gonna put this man out of his misery to be honest. As much as I could continue to run this score up, I'm gonna put shoot clock on. All right, we're gonna do one final QB draw from Teemo to close this game out and that's gonna be it for a historic performance from Tim Teemo. Can he take it in the end zone to end this puppy off? Oh, we just got the X factor. We just got trust so I really could go in the end zone here, but I'm not gonna. 158.3 QB rating, 12 for 13, one incomplete pass, 300 on the dot yards. That's awesome. 92% completion, four passing touchdowns, 23 for attempt to rushing. There's also the leading rusher in this game. Buy a billion, honestly. 11 attempts for 83, average seven and a half, two broken tackles.  Julio had 130 on six, Tyreek had 117 on three, two touchdowns for Tyreek, one for Julio and Tyreek had a kick return touchdown. Hey, you guys knew I had a good Teemo video. This is so far. I'm so pumped. I'm glad you guys got to see this and a 50 piece. Wow. Yeah, tomorrow, next gen stuff updates. You won't see a video with the next gen stuff until the seventh though, so keep that in mind. But I love you as always. Thanks for watching.  I'll see you in the next video. Peace.


So, as time goes on, as the lockdown continues, we're seeing more and more of these anti-quarantine protests pop up, and they are emerging in various states almost every single week. In California, Michigan, and even in my home state of Oregon, over the weekend, we saw a reopen Oregon rally take place after Governor Kate Brown announced that the lockdown was extended until July 6th. And some of the images that I saw from this rally, it killed my soul, because this is all a contingent of the population that is, for lack of a better word, batshit crazy.  These are largely pro-Trump, MAGA chuds doing this. And I'm sympathetic to the economic issues that are going to pop up with these types of extended lockdowns. Largely, we have to blame government, because if they actually address the economic concerns of people who can't go to work adequately, there would be less rebellion, there would be less need to have this urgent reopening of the economy in whatever capacity that may be. But I want to highlight a couple of these anti-quarantine protests that kind of went off the rails. There was one in California where a crowd of people, largely I'm assuming pro-Trump individuals based on what they were wearing, were screaming in the faces of police officers. And if you can, try to pay attention to some of the signs that they brought to this rally. So almost no one was wearing a mask. As you can see, obviously they weren't standing six feet apart. And in case you missed it, that first sign at the beginning said, vaccines known to cause seizures.  But these dipshits don't realize that they're making it worse. If we don't hunker down longer, then there will be more cases of COVID-19, which will lead to, you know, a need for longer lockdowns.  And guess what happened immediately?  They're going to open up the state again.  If you truly want the lockdown to be over, this is not helping. This is making it worse. Now again, 100% sympathetic to the economic concerns.  Use that energy to demand universal basic income, rent cancellation, because that's the true solution, not for you to go back to work and risk your life for capitalism. The solution is an economic fix so we can withstand a prolonged lockdown, but that's not happening. So yes, government has failed, but this also isn't helping. This also isn't helping.  It was depressing.  Take a look. God hates dipshits.            Thank you.   God hates dipshits.   Can you explain? Give me a little more of that, will you? I love it.   They are not. They are. I expect no of these people. I do believe in science. You're so foolish. I do believe in science. You're so foolish. Okay, yep. Science is wrong. Yep.  No, science is right.  Science is right. Have you looked at the models, idiot? Look at the models. And what do they look like? Bad. They go from 2.5 million dead to under 50,000.    Oh, it's just the flu. I know. It's just the flu. It's a virus.    Yes, post me.  God hates Trump. God hates dipshits.  Thank you.   Selfish prick.   Yeah. What are you talking about? Crossfit. They're pretty expensive. Yeah, get a real job.  Get an essential job.  Get an essential job.  Oh, good one.      Oh, the wreck. Yeah.    You can take pictures of other people too.   No one wants here.   Nice daddy issues.  No daddy issues.   Get an essential job. Get an essential job. Get an essential job. Get an essential job. Go to work. God hates dipshits.  God hates dipshits.    Swearing around with little kids like that. You're putting your kids at risk from a virus that is very deadly. Oh, are you? Are you? I'm sorry.     Please stay six feet away, sir.        I can't wait to be on Breitbart.  Shut down all the hospitals and no one's getting care right now.   Keep filming.  Yes, thank you.      Nice. Good one.       You are all in danger in people's lives because you're selfish. I'm trying to stay six feet away if you... I love that and I salute you for your service Patriot. That was uh, that was great and I can't help but think that that was you know Matt Crisman from Chapa Trap House because the guy sounded exactly like Matt Crisman But I mean that was really really great because these people are endangering their lives and what's astonishing to me is that they're more concerned with the language that he was using in front of children than the fact that they brought their children to this rally and potentially expose them to a deadly virus that's highly highly contagious.


We're going to just wait right here. Robbie, you want to get them to sit together? Yeah, you get to sit to the back right there. Now you're getting in mine. Just these two? OK. I'm going to start moving down. There's a seat behind me, if you like. A seat behind you.


So how well does this work? Well, it depends. You need to be lucky. So remember, on the one hand we had the actual robot, and on the other hand we had the computer where we're doing things with docking. It wasn't a coincidence that I listed those two compound screens projects before, because they had also been done with docking. In the first one, Lactamase, the docking actually returned two hits. Not only did it return two hits, but from the docking the result were two hits that were actually later experimentally confirmed. So there were two correct hits. And sorry, this said zero. Two is not a lot, but it's certainly a lot better than zero. And particularly when those zero came at the cost of $300,000. Second one, Curtain, when we had 146 experimentally, here the docking didn't do so well. We only found five. The reason for that is possibly chance, I don't know. But again, 146 is certainly better than five, but maybe these five contain slightly different groups, something to work with. At this point we're nowhere near a finished drug, but this is where we're going to need to take things back into the computer and lab and keep iterating and see if we can improve it. Why do we need to improve it? Well, because at this point it's not going to be very efficient. It might have a trace of an effect, but this would never make it even to the clinical trials.


I was just wondering to what extent, because a lot of the words and things we've been talking about over the past while are very linked in with the global alliance for genomics and health. A lot of the issues are very much the same. And Jeff was asking me what lines of collaboration could be more formalized or whatever between the US and Canada. We have just launched a new project, it's not very big one, it's about one and a half million, actually it's more than that, it's about three million dollars, to try and get our act together in Canada in terms of data sharing across institutions, across jurisdictions because we have issues in terms of what we're doing in Canada, the accessibility to clinicians or researchers in different jurisdictions and different institutions. And we have to get our act together in order to be credible partners for the global alliance. But I'm just wondering if to what degree we could, and I heard Mike Broodnow's name mentioned several times and he's very much involved in this new project which actually will be driven by Bartha Knoppers who is also very much involved in the global alliance and who many of you know. So I'm just wondering to what extent these things could be aligned and to what extent emerge is already very much linked in to the global alliance? I guess I can take a short version of that, it's an easy answer, we're not especially aligned at this point, that's not to say that we shouldn't be and I think it is something that I hope will be on the agenda going forward. One of the things that worries me a little bit about, I think the work of the global alliance is great but it sort of emphasizes Chris's point yet, is it yet another standard and how do we make sure that we're getting the ones that we have aligned and make sure we use the best parts of each one and not just say oh that one doesn't work so we're going to start all over again and create a new one. So I think that will be an important... So I think that's a great comment and we have certainly been trying to influence the global alliance to not reinvent the wheel, look and see what's available out there, I'm hoping that people like Mike Brodner are sufficiently aware of what you're doing, what other countries are doing because I think they're going to be very much involved in the words interoperability, the APIs and all of this kind of thing. I think they're going to be very involved in doing the detailed stuff on that. So anyway, we can collectively make sure that there's not too much reinvention of the wheel. I think we'd be really good. Mark. Thank you. I thought Chris was going to tell the joke about it. The group gets together and says there are 18 standards. We need to harmonize and then we have 19 standards but I think it's a variation on the same theme. Two comments. First is related to training. I just wanted the group to be aware that there are some discussions that are occurring between the American College of Medical Genetics and Genomics and the American Medical Informatics Association relating to the Clinical Informatics Fellowship Program which is accredited through Preventive Medicine to develop a genomic emphasis for those clinical informaticists that are interested in developing genomics. And we're in the process now beginning to think about what would a curriculum want to look like. So I think this would be an important group to engage in that sort of curricular development and perhaps also then aligning with the NLM training programs to say, okay, can we harmonize across all these different groups. The other thing is that AMIA is also then looking at a non-physician-based fellowship training program that would sort of be the equivalent for PhD or other informaticists that could also get training there. So I think there's a real nice opportunity at a very low investment of time and effort to accomplish some things in this space. And I'm sort of acting as a go-between so anybody that's interested, just let me know. The second thing is you mentioned Genome Connect. I'm glad you did because that's also, Genome Connect has been involved in the ClinGen project. And in addition, in PCORI, one of the PCORnet patient-powered research networks is using Genome Connect to collect data. And one of the things that's really interesting as we talk about engaging patients more in terms of data collection and supplying the phenotype data that is difficult to get out of the healthcare system is that there's a lot of ability to create new forms and templates. And patients seem to be very interested and willing to take the time and effort and they're pretty much experts about their conditions. They are experts about their conditions and certainly there's been plenty of examples where these types of patient-powered networks have really been able to discover things that had previously not been noticed. So it is an innovative area. It's one where I think that there's some real opportunities that are worthy of study and, again, not to necessarily promote one platform. But it is a platform that's beginning to appear in a number of different spaces. And so trying to not, again, have 50 different ways to do this, but having at least some standards around what's being collected and how it ties into things like HPO and that would be good. Just a second. So Adam and then Mike and then Howard. Great. Thanks, Rex. It's a little hard to get recognized back here in the back seats. So I just wanted to comment a little bit on what Chris was talking about, what Pierre was talking about. So it's been commented before the IOM's Digitized Action Collaborative. This is the Genomics Roundtable's EHR work, where we're actually representing genetic information in the electronic health record. We've been building this specifically off of the HL7 standards. We're building this off of 251. We would be going towards FHIR, but FHIR isn't going to do that for meaningful use right now, but we're looking at that as a future iteration for it. The way we've been operating, though, is by trying to make sure that we can actually engage with all of these groups. And we actually have liaisons to almost every NHGRI program we've talked about today, as well as Global Alliance. And in fact, actually after the Global Alliance meeting in Leiden, we're going to start up quarterly conference calls to make sure that we are aligning our work and courting our work together to make sure that we are progressing. We're also working with Moink. We're using standard Moink terminology to build our Moink codes for this. And the end result is that we've already gotten agreements from EpiCerner, Meditech, Allscripts, and Athena Health to actually build these and develop pilots, at least based on two pharmacogenomics use cases, which are our first iterations. So we are looking at making sure that we're using existing standards. We're not trying to build that 20th standard. We're trying to use 1 through 8, 1 through 19, I guess, and whatever's available. But it is something that we've been cognizant of. I'm sure we're talking about the standardizing across different EHRs and using a 95% certainty of caseness. And in thinking about that, as we're evolving the standard, involving the field, that 95% certainty in some instances of specificity might capture 90% of all the cases. In other cases, it might capture 10% of all the cases. And it's a logical starting point. But as Chris said, there's lots of room to store, lots of extra bytes of data. I think Cisco now measures data circling the globe in zettabytes, which is a billion gigabytes. But if we stored the actual probabilities, if they came across, then you can actually do sensitivity analysis for more extreme caseness. Or maybe you don't necessarily throw away all the data of people that are intermediate caseness. So I think that there's potential ways to think about setting the standards that will allow mapping across the EHRs that might be a little bit different. Antithetical to our clinician view of the world, which is either have it or you don't. But from that 10,000 foot vantage point of mining, of being the data janitors that we are, we do assign probabilities and maybe we can use some of that data. And then I have just a brief follow-up comment to what you were saying about. You triggered a question, is it when does a phenotype become actionable? We've just curated something novel and we now know something. We've associated it, so let's say we associate it with mortality. And we're stepping very gingerly in MVP toward reporting to clinicians or to participants and we've actually told them that the rule is that in the research realm, we won't be doing that. But you could certainly conceive of us coming up with a predictor, not just like some of the genetic ones or maybe even much stronger. Where we identify something novel about a patient from a metabolomic profile or from a curation of the phenomic data that is just as valuable clinically to a particular patient or his doctor. But I don't know that we've ever had that dialogue about, are we generating actionable information on that side of the equation? Let me just quickly say one of the ways that I think we've started to think about that and emerge is through looking at what we're calling FIWAS. So looking at across phenotype space and so looking for co-associations there. But I think it's a really ripe area for a potential research project. Of course, FIWAS has done it on ICD level, but don't get me started. You bring up really a deep philosophical point. And that is, what is the boundary between a disease state and a phenotype? I mean, at some level, certainly Mendelian diseases, a single change constitutes a disease by definition. And to what extent does abnormality from the norm, whatever that means, which is what we're talking about when we're talking about phenotyping, characteristics that are not common. Which is why they're recognized as explicit phenotypes. And to what extent do they constitute a disease situation? It really gets into very deep issues of philosophy of disease or how we characterize disease. The reason I fuss about that is because of my ICD-11 role. But I think as we think about genomic association, particularly disease gene association, it begs a more crisp definition of what we really mean by a pathological entity that we deign to call disease, or at least have sufficient pathological effect that it would become an actionable circumstance, or at least a desirably actionable circumstance. And those sort of by their nature are really phenotypes. And so we get very circular in this whole notion of whether phenotypes predict common diseases, okay, that's fine. But phenotypes in and of themselves raise significant boundary issues over what disease is. In the pharmacogenomic space, we've been talking a lot about the fact that these phenotypes that in most cases is what we're really interested in, that it's that metabolizer status or it's that receptor status. The phenotype that derives from the genotype that really drives the decision about how you alter medication use or dose or whatever. And it raises an interesting question, which is, is genotype the way to answer these questions the best way? TPMT is a great example of Mary, has studied, you know, for years. If you could measure the enzyme activity easily and cheaply, wouldn't that be better than deriving the metabolizer status from the genotype? And so I think that we have areas where we're already beginning to explore the role of the phenotype as opposed to the inference of the phenotype from a genotype. Well, we heard about intermediate biochemical phenotypes earlier today as well. I think that that's a very good point that this sort of, that we're developing new concepts of disease. But also, I mean, we're defining old parameters in new ways. I mean, just as an example, a slope, a single value of a slope of urine protein progression over, because you have now the opportunity that never before to look at 100 values of someone over their 10 year life expectancy might have more predictive value than the way the clinician is using it today. Especially with APOL1 genotype. So now, is that information that we should also be reporting back to the patient and his clinician? And if you're having that debate about actionable variants, then we have to begin to have that, perhaps we have to begin to have that same debate about new actionable phenotypic parameters. Doesn't have to be either or, right? I mean, it's just a reminder that we shouldn't build our EHR and our standardized terms that are so specific to genotype that there isn't room to build the same kind of logic into something that's phenotype. So what we do is both phenotype and genotype for a really important gene like TPMT, where patients, you know, health status is at risk. But I wanted to follow up on one of your points, Rex, around the storing of the data. So I think it makes a lot of sense, obviously, not to have the whole genome sitting inside the EHR. But it did beg the question from me as we were talking about in our panel three with reanalysis of data. So how do you see that working in relating to the EHR? Yeah, I think, you know, it gets back to this question that I can't remember who was talking about it earlier, but it's, at what point is it more valuable to redo the test with maybe more sensitivity or with a better approach than it is to store raw data? And that was a topic that came up, you know, a bit earlier. You know, obviously I think what we're imagining in the ancillary genomic system is to store raw data and then process that into a VCF file that can then be matched against whatever knowledge system we have. But, you know, at some point, the question is, which is cheaper, storage or for the original files, BAM files, for example, or to just redo the sequence? And I think that's an economic decision. Storage is almost free. That's not what our institution tells us. Yeah, I don't think that's necessarily true that storage is almost free over here, Chris, other end. So, because the storage depends on whether it's archival storage or whether you want that storage to be close to compute so that you can actually re-analyze. And if you're going to be able to do this re-analysis, especially from first principles, from the raw data, you've got to have all those data close to the compute, and that is not inexpensive. In fact, that's very expensive, depending on the volume of data. And so, I'm not sure that we have good systems in place for shifting data, agilely, from cold storage into these hot zones for analysis. And I think that's one of the areas that we really need to think about. Because going back to the issues earlier today about analyzing variants, well, calling variants is still an evolving art, right? So aligning, the basic process of aligning sequences to a genome is still evolving, and that technology is going to change. And so I think there is going to be a lot of really interesting re-analysis science that we're going to be able to do if we've got the data stored in the proper way, and we can get it to the compute seamlessly. Yeah, I was just going to comment on the phenotype question that, you know, you can think about this in the phenotype as genotype environment interaction, and you can think about the EHR managing that as well. Yeah, so just in the same theme, so clearly we have this opportunity for the first time to examine the phenome, whether we call it deep phenotyping. Up until now, we've been incredibly constrained with simplistic phenotypes, often just binary phenotypes, and we've got marvelous depth of genome sequence data or GWAS data, and suddenly now there's the opportunity for just about the entire portfolio to flip over into rich deep phenotype data at very little incremental cost. So I think that this is one of the most exciting developments that's coming up in the next couple of years is to catch up on the phenome. And I would very much like to see it be interoperable and not be offline, because that, as you have mentioned, enables dynamic mining of data. Because I don't think it's going to be static. We'd really like to do a best effort to have it fully integrated in the medical record, at least all of the non-referenced nucleotide sites, which is about 5 million. That's not a great deal of information and have it be dynamically searchable. So I just want to pick up on this thread because a lot of the discussion about deep phenotyping is implied from what Mike said and others is that it's all in the EHR and the ability to do longitudinal capture. But I think the mobile health and digital health platforms are a form of phenotypes, and for the first time, as Stephen was saying, we now can get 24-7 phenotypic information and translate that into velocities and instead of static measures of particular, you know, well-validated, at least, forms of that phenotype. So in anticipating where the precision medicine seems to be going, it might behoove NHGRI to really think about expanding the kind of integration of genomic information with the EHR and doing something similar with genomic information and digital or mobile health technologies. Just quickly to add, and we all throw around this concept, it's in the EHR. I mean, there is no the EHR, really, because our records, think about where our records are. They're in our doctor's EHR, our specialist's EHR, the hospital we went to in Florida's EHR. We broke our arm, the one we usually go to, CVS, Walgreens, National Death Index, you know, our claims data files. The exposome is the particulate matter that we get from, you know, the meteorologists. So, I mean, the data is everywhere and sometimes not so easy to totally integrate. And that was a fragmentation I was referring to, really, in our decision. But that's why we need personally controlled health records, right? So that the individual has all of those data and is able to share those data. I don't know how to do that. I mean, I couldn't share, think of my financial data. How could I own all of my credit card, everything, and I share it with people? I mean, I just wouldn't know how to do that. I don't know what that means. We own all of our data. I know we all want it to be able to be seen around. I don't want all of my healthcare data. I wouldn't know what to do with it. I just don't know what it means we own it. I heard that over and over again we should all own our data. I want a few pizza. I want the cholesterol level when I want to go to the lab. I want to be able to schedule an appointment. And I want Dr. A to know what was in my record from five years ago. Plus, that model doesn't work for children, for old people, for people who are blind, for people who speak not English as their language. It's not fair to the most vulnerable parts of our community that need us to figure out how to do this. It's great for patients to be able to take control of what they can. But I don't think we should depend upon that as the way to deliver healthcare. Just thinking that, well, I feel that it's very beneficial to retain the sequence data in some form. But if we're talking about data that has not been validated in a CLIA-approved lab and putting it in the EHR, not trying to speak for any federal agencies, but I think there may be some pushback from the FDA in doing that. So just something to keep in mind. Well, I think that raises the whole broad question of what sort of the regulatory pieces that surround this. And one of the problems with the EHRs, at least as most institutions work with them, is there also are legal documents that are subpoenaable in case there's a concern about a mistake being made. So I think we do, there is something that's legally defined EHR as opposed to sort of a collection of health data that may be unrelated. Sharon, did you or? Well, I was just going to echo that even if it was done in a CLIA lab, right now, EHR, I actually did literally have this circumstance where a patient approached me with a hard drive from some cafe that had done. Like, if I walk up to my EHR and say, like, here? Like, I mean, there is no location. But I did just want to echo the other comment, which is that I think some people really do want to own all their data. Most people just want good health care. And I think that there are lots of people who don't have the capability to own their own BAM file. And I do think that EHRs right now are pretty overwhelmed just with this. And just to give one anecdote, my brother was diagnosed with a brain tumor. His wife asked for an MRI and she really pushed them. I want it now. So they actually gave her, like, four DVDs because it turned out it was, like, some very early pre-processed state. And she gave it to her brother-in-law who was a radiologist who was like, I don't know what this is. I mean, I don't think we realize how much processing is done on all of our medicines. So when we say we're getting our MRI, we're getting a very processed, certified version of it and not, like, the raw data. So I think that sort of we've sort of seen the broad complexity of all of these information things related to what's the definition of phenotype all the way through some of these broader questions. But maybe to sort of bring it back to where Howard asked us to start with is what might be research projects that NHGR might think about. So just to throw out a few and see people's reactions to that, you know, one of the ones was, you know, how do we improve phenotype and genotype sharing? I feel like we're really well along the way to, with things like ClinGen and ClinVar to think about sharing of genotypes. I think we're a long way from the sharing of phenotypes and, you know, and I'm guilty for the projects I'm involved with. Most of the time, you put all the genotypes up, but you put the one phenotype up that caused the genotypes to be put up there, and I can go on and I won't at some length about why it is that we do that, but I think it's an area that's worth some discussion. Related to that, I just wanted to say another area where NHGR might be interested to come up again earlier is this interface between what the meaning of phenotype is informed by humans but also informed by a variety of model organisms, and so there's been, and Carol could certainly speak to this, but there's been a lot of activity in the last couple of years in the model organism community to think fundamentally about what the meaning of phenotype is, you know, the human phenotype ontology that we heard about earlier is a good example of some of the principles that were actually learned in model organisms being applied to human phenotypes. And the Monarch system. Right. So, you know, to think about, there might be research opportunities there for bringing together model organism community, things like HPO and Monarch together with the, you know, CSER and Emerge, and to think about how to better capture this phenotype. So I think some focus on phenotype seems to me a really great opportunity. I'll mention three more and then open up for other people's thoughts, but, you know, this whole idea of portable phenotyping algorithms I think is, you know, there's been some work on that done in Emerge. I think there's intention for more work to be done in Emerge, but I think to think about maybe how we do that across IGNITE and CSER and some of the other activities in terms of phenotype would go a long way. Clinical decision support, I think the opportunity for thinking about sharing of at least decision support rules, again, there's, I think, some movement in that direction that came out of GM7, which was one of these genomic medicine, but again, to think about how NHGRI could create some research around how do we better share clinical decision support rules and what do those look like. And then related to that, I think, is the Infobutton project that we've heard so much about. Infobutton is a great infrastructure to be able to collect data outside the EHR with data inside the EHR, but one of the things we need, I think, a lot more of is what that educational material outside the EHR looks like that informs physicians and even patients about what genetic variation means and what some of these conditions mean might be another area for us. And again, there's been some discussion about that in NHGRI space related to the IACC, ISSC? And then, and I'm not gonna remember the name of it, but the project, there is a genomics information education page that's maintained. G2C2. G2C2, right, talk about acronyms, so. They all have Gs and Cs. Yes, I think all of those are things that I would put on the table as lessons from the discussions here that we should talk about. So Mark and then Chris. Yeah, just kind of rank ordering those a bit. Thanks for mentioning the Infobutton project. That's something that in ClinGen we're actually looking at and talked to Wendy earlier. A lot of the resources in genetics for patients and providers in that right now are not Infobutton accessible and certainly not Infobutton compliant and we actually have a plan in place to work with groups like NCBI and others to make their resources Infobutton accessible so that at least those systems that wish to link their electronic health worker to those data sources, they'll be able to do that through that Infobutton standard, which all certified EHRs will need to be able to do as part of meaningful use three. The clinical decision support interoperability is a much harder issue than it probably should be, unfortunately, but I think some of you have heard me say that in HRQ funded seven years of a clinical decision support consortium and at the end of that, they were able to share one rule between two institutions and so that interoperability piece is really, they learned a heck of a lot, but the reality is it's very difficult, but at least at a very low bar in eMERGE, we're creating and we'll have live by the end of this month the clinical decision support rule repository where at least we'll have the written logic or a visual logic of how a decision support rule might be filed and a number of the eMERGE groups are contributing to that so people can at least see the logic pattern and then they'll have to go and try and code it and so it's not interoperable plug and play, but we're at least making some projects, but that would be an area where I think there could be a lot of energy and time and resources invested with probably very little payback because of just the challenges in the EHR space with clinical decision support at present. I'm obviously gonna pick up on your phenotyping theme, but I think the community and not just NHGRI has been very casual about the entire phenotyping exercise. It's time to start treating clinical information and phenotype algorithms as a first rank resource. It's an interesting question of whether NHGRI can and should do it in and of itself because quite frankly the last thing we'd like to see is an NHGRI style of phenotyping and an NCI style of phenotyping and so on and so forth. I mean you get the picture. There's no reason why NHGRI could not take the lead in coordinating a really an OD level project or a common fund project or whatever it might be, but I think phenotyping has reached a tipping point where it is now the most soft and vulnerable part of the whole scientific enterprise as we try to learn association disease outcome and improve health. I'm pleased that IOM is doing this in partnership with the usual suspects on the clinical side. That's delightful. And so maybe extending that kind of collaboration and consortium to a true NIH wide effort to engage in consistent phenotyping or...