Giter Club home page Giter Club logo

learn-katacoda's Introduction

OpenShift learning on Katacoda

This is the content that appears on learn.openshift.com. If you have any questions raise an issue here.

Contributions

First, you want to fork this repo and sign up at Katacoda with your GitHub handle.

For each scenario, please do the following:

  1. Work on the scenario, try it out in your own environment https://www.katacoda.com/$GITHUBHANDLE
  2. When you're satisfied, send in a pull request mentioning the issue you created in the first step.
  3. Next, get two reviews/thumbs up from team members (mention @btannous or @jdob on your issue if you don't see activity within a couple of days)
  4. Once your scenario has been reviewed, we will merge it and it will appear on learn.openshift.com

Delivering a workshop?

IMPORTANT: If you are delivering a workshop please ensure that you have alerted the Katacoda team a minimum of 48 hours before the start of the event, but ideally a full week ahead of time. Without this, we cannot guarantee capacity for everyone. If you are a Red Hat employee who needs to schedule a workshop using the learn.openshift.com scenarios, please contact [email protected] for information on how to set that up.

Content

Categories

There are currently several top-level categories. Each category has a pathway file to define the order on the page. The homepage pathway file is the top-level file, and it points to each of the catgories. You can find the associated pathway files for each category in the top-level directory of the repository.

The Using the Cluster pathway is a good example to look at to understand how category pathways are structured:

pathway_id indicates which directory the scenario content can be found in. Let's look at the first entry in that file:

{
        "external_link": "https://learn.openshift.com/introduction/cluster-access/",
        "pathway_id": "introduction",
        "course_id": "cluster-access",
        "title": "Logging in to an OpenShift Cluster"
 }

Creating a scenario

  • Create a directory for your scenario in the respective category directory. If you are unsure about which category to use, @btannous and @jdob can help.
  • Follow the naming convention for each step
  • If you have images you want to use in the instructions, you must place them into assets. Please make a directory matching your scenario name so we can associate the files with the right scenario.
  • If you need assets copied into the node to be usable from the shell, you must place them into the assets/ directory in your scenario. Note that files to be copied also must be listed in your index.json under the assets key.

Content admins

To promote a scenario to the public, add it to the pathway file. Scenarios in each directory are accessible without being in the pathway file, but you need to know the full path to access them.

To add the scenario to the dashboard/homepages, include a reference in the pathway file the format of:

https://learn.openshift.com/<category-directory-name>/<scenario-directory-name>/

For example; https://learn.openshift.com/middleware/fis-deploy-app/

To add a new category create a pathway/scenario folder structure similar to introduction and middleware. Add the category to the homepage by editing https://github.com/openshift-evangelists/intro-katacoda/blob/master/homepage-pathway.json

Resources

learn-katacoda's People

Contributors

benhall avatar blues-man avatar bttnns avatar cedricclyburn avatar christianh814 avatar danielhelfand avatar danieloh30 avatar dewan-ahmed avatar duncandoyle avatar edeandrea avatar fatherlinux avatar grahamdumpleton avatar gshipley avatar hguerrero avatar jamesfalkner avatar jimcurtis avatar joellord avatar joshix avatar madorn avatar mattparko avatar mulbc avatar rafabene avatar rocrisp avatar ryanj avatar sully6768 avatar tnobody avatar tqvarnst avatar tsanders-rh avatar weimeilin79 avatar znicoz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

learn-katacoda's Issues

Environment should come with a project selected other than default

This is related to #34 where if the user logged is by default is system:admin, the project used by default is "default".

When testing an scenario I did not select a project or a user, as I was validating the instructions, and I did a deployment that I wanted to delete. I did:

$ oc delete all --all
$ oc delete all --all
buildconfig "zerodowntime-talk" deleted
imagestream "zerodowntime-talk" deleted
deploymentconfig "docker-registry" deleted
deploymentconfig "router" deleted
deploymentconfig "zerodowntime-talk" deleted
service "docker-registry" deleted
service "kubernetes" deleted
service "router" deleted
service "zerodowntime-talk" deleted

As you can see, I deleted the router and the registry, making that instance unusable from that moment.

OpenShift Middleware Build Error

@tqvarnst The last set of commits seem to have caused a build error. There wasn't any output from Packer as it was piped to the file. When a packer build fails, the underlying VM is deleted meaning you can't get access to the file.

With the redirect disabled, the output was:

openshift-middleware: /tmp/script_1575.sh: line 16: syntax error near unexpected token `newline'
    openshift-middleware: #################################################################################


Using hostPath mounts in 1.5 appears to not be working.

My new scenario which uses hostPath volume mounts was working fine in 1.4, but 1.4 private workarea instance wasn't running at all today, so I chose to try 1.5 preview version on host02. Everything else in my new scenario was working fine, but it failed at the point of being able to use the mounted volume from within the container. So something not right and need to look at it.

$ oc rsh $POD ls -las /mnt
ls: cannot open directory /mnt: Permission denied

$ ls -las /tmp
total 52
4 drwxrwxrwt. 12 root root 4096 Jul  2 11:27 .
4 dr-xr-xr-x. 23 root root 4096 Jul  2 11:10 ..
4 drwxrwxrwx.  2 root root 4096 Jul  2 11:10 pv-01
4 drwxrwxrwx.  2 root root 4096 Jul  2 11:10 pv-02

Volume was created with:

{
    "apiVersion": "v1",
    "kind": "List",
    "items": [
        {
            "apiVersion": "v1",
            "kind": "PersistentVolume",
            "metadata": {
                "name": "pv-01"
            },
            "spec": {
                "accessModes": [
                    "ReadWriteOnce",
                    "ReadWriteMany",
                    "ReadOnlyMany"
                ],
                "capacity": {
                    "storage": "10Gi"
                },
                "hostPath": {
                    "path": "/tmp/pv-01"
                },
                "persistentVolumeReclaimPolicy": "Recycle"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "PersistentVolume",
            "metadata": {
                "name": "pv-02"
            },
            "spec": {
                "accessModes": [
                    "ReadWriteOnce",
                    "ReadWriteMany",
                    "ReadOnlyMany"
                ],
                "capacity": {
                    "storage": "10Gi"
                },
                "hostPath": {
                    "path": "/tmp/pv-02"
                },
                "persistentVolumeReclaimPolicy": "Recycle"
            }
        }
    ]
}

The env-init.sh contained:

ssh root@host01 "mkdir /tmp/pv-01 /tmp/pv-02"
ssh root@host01 "chmod 0777 /tmp/pv-01 /tmp/pv-02"
ssh root@host01 "oc create -f volumes.json"

Claim created was:

{
    "apiVersion": "v1",
    "kind": "PersistentVolumeClaim",
    "metadata": {
        "annotations": {
            "pv.kubernetes.io/bind-completed": "yes",
            "pv.kubernetes.io/bound-by-controller": "yes"
        },
        "creationTimestamp": "2017-07-02T11:26:50Z",
        "name": "data",
        "namespace": "myproject",
        "resourceVersion": "1054",
        "selfLink": "/api/v1/namespaces/myproject/persistentvolumeclaims/data",
        "uid": "57bc5c02-5f19-11e7-9a9a-0242ac11000c"
    },
    "spec": {
        "accessModes": [
            "ReadWriteOnce"
        ],
        "resources": {
            "requests": {
                "storage": "1G"
            }
        },
        "volumeName": "pv-01"
    },
    "status": {
        "accessModes": [
            "ReadWriteOnce",
            "ReadWriteMany",
            "ReadOnlyMany"
        ],
        "capacity": {
            "storage": "10Gi"
        },
        "phase": "Bound"
    }
}

Am pretty sure this worked with 1.4.

my site does not open

my site does not open
i restarted the server on openshift for many times
okkartal.com

Provide a basic tutorial for Debezium deployment

The first exercise should just mimic creation of environment described in http://debezium.io/docs/tutorial/ using barnabas images and templates.
A MySQL database should be registered toi Debezium and changes in database will be recorded in Kafka broker and demonstrated using starndard Kafka tools.
When accepted a one more scenari will be developed that will demonstrate a legacy app creating database records, Debezium sourcing them to Kafka and a Camel application consimung the events.

Problem with insecure web socket

The Interactive Learning Portal worked for me two days ago, but today I get the following warnings in the console log:

VM417:35 Mixed Content: The page at 'https://learn.openshift.com/' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://learn.openshift.com:1313/livereload'. This request has been blocked; this endpoint must be available over WSS.
WrappedWebSocket @ VM417:35
VM417:35 Uncaught DOMException: Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.
at WrappedWebSocket (:35:21)
at e.n.Connector.e.connect (https://learn.openshift.com/livereload.js?port=1313&mindelay=10:1:1848)
at new e (https://learn.openshift.com/livereload.js?port=1313&mindelay=10:1:1495)
at new e (https://learn.openshift.com/livereload.js?port=1313&mindelay=10:1:6177)
at Object. (https://learn.openshift.com/livereload.js?port=1313&mindelay=10:1:19616)
at Object.8../customevents (https://learn.openshift.com/livereload.js?port=1313&mindelay=10:1:20040)
at i (https://learn.openshift.com/livereload.js?port=1313&mindelay=10:1:254)
at e (https://learn.openshift.com/livereload.js?port=1313&mindelay=10:1:425)
at https://learn.openshift.com/livereload.js?port=1313&mindelay=10:1:443

As a consequence I can no longer start any of the tutorial scenarios.

A way to get people to load prereqs without starting a scenario

We are about to write and launch some scenarios that require some pre-requisites on the users machine. We don't want to "waste" the hour we are given waiting for the user to install the necessary pieces (like JBoss Developer Studio).
We would like to find some way to indicate to the user BEFORE they start the scenario that they should go do some steps. We were thinking something on the homepage, maybe a mouseover or some additional text next to a scenario... but those are just ideas.

The solution does not need to be fancy, just clear and before they actually start the scenario. Can we try to figure out and implement a solution soon.

Let's try to brainstorm the layout here

@GrahamDumpleton @mhausenblas @BenHall

Vertical slider doesn't work properly when dashboard displayed.

When you have the embedded terminal visible, you can move the cursor to the vertical bar between it and the task notes. You can then click on the vertical bar and move it left and right.

If the embedded dashboard is visible and you try the same, you can only move the vertical bar to the left and can't move it to the right.

If you flick back to terminal, you can move it right again.

Priority: Medium

EAP Kills the OpenShift katacoda instance

When I try to run JBoss EAP in Katacoda it kills the entire Katacoda instance. I can't debug because everything becomes unresponsive. Can I please get some information on what is happening when you do the following

oc create -f https://raw.githubusercontent.com/jboss-openshift/application-templates/master/jboss-image-streams.json -n

oc new-app jboss-eap70-openshift~https://github.com/thesteve0/scalingdemo.git

Wait a while and the build completes and the deployment

Actually it worked this time so keep this issue open and assigned to me while I try to reproduce the error.

Thanks

Means to say interrupt and execute new command.

Am starting to use oc commands such as oc logs --follow and oc get --watch. These commands will not exit unless you do CTRL-C in the terminal window, which you have to tell users to do explicitly. It may be useful to be able to say for a subsequent command:

``some-command``{{interrupt+execute}}

This would have the effect of sending a SIGINT signal into the interactive terminal session to kill of an existing running command and once that has exited then run the command.

You would only use this where you know you are following up a command which would otherwise keeping running unless interrupted.

Invalid Request

Trying the tutorial, and when I login to the web console for the first time (developer/developer) it tells me invalid request

Update FIS example to use the Ui instead of all the command-lines

command-lines is for advanced users when they need to debug, script or access advanced functionalities not available in UI (or old-timer developer).
Please leverage the web UI in the FIS example to deploy images, start builds, check for logs and everything that is possible

My feeling is that if a user si ready to use command-line he.she will be ready to install something on his/her laptop so we don't reach our target audience of this learning.openshift.com platform

Clickable links with sub URL path in katacoda.

Found this in old email. Haven't tested to see if still an issue.

If I have a clickable link such as:

https://[[HOST_SUBDOMAIN]]-8443-[[KATACODA_HOST]].environments.katacoda.com/oauth/token/request

I remember that this used to open in a new window. It seems you may have changed that to use the embedded view in dashboard, which is fine, but I note that in doing that it is ignoring the sub URL path.

That is, it doesn't go to /oauth/token/request path but just brings up the dashboard tab and is not changing to the specified path.

Are there limitations around embedded clickable links?

oc cluster up fails

The reason we did write-config / start instead of cluster up was speed/ability to set masterPublicURL etc to the public domain.

To try and resolve the login issue, I attempted to run it.

$ oc cluster up
<snip>
Waiting for API server to start listening
   OpenShift server started
FAIL
   Error: cannot create container using image openshift/origin:v3.7.0-rc.0
   Caused By:
     Error: Error response from daemon: {"message":"devmapper: Error activating devmapper device for 'c58bd7233500ce0d44e40564d7425acc428761e3f06e01990832c7b955906eda-init': devicemapper: Can't set cookie dm_task_set_cookie failed"}

OpenShift 3.6 update tasks.

Scenarios reviewed for changes required. Only done to identify nature of changes, not fix anything.

  • getting-started
  • cluster-access
  • deploying-images
  • deploying-python
  • resource-objects
  • port-forwarding
  • transferring-files

Scenarios still to be fixed. This is when have actually done the changes.

  • getting-started
  • cluster-access
  • deploying-images
  • deploying-python
  • resource-objects
  • port-forwarding
  • transferring-files

Issues found that need to be addressed.

  • Update any images which show the list of projects in the web console. Instead of multiple icons, now shows a drop down list. Affects cluster-access, deploying-images and deploying-python. Priority Low.
  • Update any descriptions, which step you through how to get to View Membership list from project list of web console. Now under the drop menu. Affects cluster-access. Priority Low.
  • Update any images which show Command Line Tools page. Description has changed as has how you cut and paste command line. Affects cluster-access. Priority Low.
  • Mounting of persistent volumes is failing. This may be because the workaround for older OpenShift to make it work causes it to fail in 3.6.0. See #38. Priority High.
  • When deploying from the web console an image from Docker Hub, after querying the image details, now shows the account name, eg., openshiftkatacoda/blog-django-py where used to show just blog-django-py. This looks like may have changed in 1.4/1.5 transition. Priority Low.
  • Update any images which show the Overview page in the web console. Completely new look. Affects deploy-images. Any text description based on old layout will need to change. Priority High.
  • Update any images and text descriptions about how to create a Route using the web console from the Overview page. Affects deploy-images. Priority High.
  • Update any images which show create Route. Now includes labels above Create button. Affects deploying-images. Priority Low.
  • Update any image which shows just the Route in the Overview page as way displayed changed. Affects deploy-images. Priority High.
  • Update out of oc get all -o name as all resource types are now shown in plural instead of singular. Eg. pods instead of pod. Affects deploying-image. Priority Medium.
  • The create route page on the web console no longer adds an app label. This actually started in 1.5. Not sure yet if this is going to cause problems with scenarios, the issue being that lack of label means can't readily delete all the components of the application from the command line using a label selector. Need to see if have to rewrite scenarios to avoid problems from this. Priority Blocker.
  • Update images which show Add to project in the top menu bar. This is because it no longer clicks directly through to add to project page but displays a drop down menu. This means there is a down arrow indicating the drop down menu. They also changed it to Add to Project instead of Add to project. Need to change text description to note is a drop down menu rather than click through. Priority Low.
  • The description for the Python S2I builder displayed when using oc new-app from source, or when deploying an image build using S2I builder, has been changed and is much longer. Probably need to use in output a truncated version of description with ... to show content not shown. Then will not matter if keeps changing. Priority Low.
  • The oc describe command on image streams, and possibly other resources, can now show additional fields. Priority Low.
  • The oc import-image output when importing an image now shows lots of extra output about the image. Probably need to use in output a truncated version of with ... to show content not shown.
  • Update images which show continue to overview page after starting a source to image build. Details around setup of web hook have changed. Priority Low.
  • Update images which show how to get to build logs from Overview page. Snippet now shown 0n page. Priority High
  • Update images of any pod logs plus text description on how to navigate. Now automatically follows and don't have to click follow manually. Priority Medium.
  • The oc status output has changed with different description at end. Priority Low.
  • The oc get command with no arguments generated different set of resource types now and final description different, no longer gives error. Affects resource-objects. Priority Low.
  • The oc start-build command now waits until the build has finished rather than returning straight away. Can switch to monitoring build status. Affects deploying-python. Priority Medium.
  • The oc logs --follow command keeps exiting before build complete, showing the error string unexpected stream type "". Priority Medium.

developer login on dashboard fails

when logging into learn.openshift.com, the command line login as developer works fine, however login through the dashboard gui returns an error:

Error

Invalid request

The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed.

Return to the console.

Change references to Online Developer Preview to just Online, or Online starter tier.

Scenarios to review.

  • getting-started
  • cluster-access
  • deploying-images
  • deploying-python
  • resource-objects
  • port-forwarding
  • transferring-files

Also address following issues.

  • When running oc login, it appears not to push you to web console to get token. This may only though be where login/passwd is with Red Hat as opposed to third party such as GitHub. Need to check. Affects cluster-access.

Need instructions on how to make a katacoda image

Hey there - we need instructions on how to:

  1. create a new katacoda image that we can use for middleware. By this I mean detailed instructions on how to specify the file, build it, and then get it available on the site
  2. Change resource consumption (right now just up it to 4 gigs) along with telling katacoda how to pull the new "middleware" image

@mhausenblas assign as needed

Could not open session

Hi,
when restart application return error "could not open session" and application is not ready

Why?

Thanks

Option to allow root path for editor commands

When adding the src/main/java/com/example/Demo.java{{open}} there is no option for providing root path, since in case of multi module projects it will be very handy to have something like src/main/java/com/example/Demo.java{{/root/projects/mydemo open}} where /root/projects/mydemo is the root path under which src/main/java/com/example may reside.

Right now only options are uieditorpath attribute in index.json which is ideal in case of single module project.

Need "VMs" with more memory and disk

Some of the new people who want to write scenarios have much larger containers and disk space requirements that we need for some of our intro scenarios. How do we have different size base VMs and call them in the init script. This is related to #16

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.