Skip to content

Commit

Permalink
Merge pull request #142 from f5devcentral/develop
Browse files Browse the repository at this point in the history
DanielCayer request to merge dev to main
  • Loading branch information
russgmoore authored Feb 23, 2024
2 parents c22561d + 557806b commit 9f03867
Show file tree
Hide file tree
Showing 53 changed files with 593 additions and 349 deletions.
Binary file added docs/_static/intro/UDFDocumentationTab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/UDFJoinClass.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/account-activated.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/activate-account.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/create-account.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/email-invite.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/launch-course.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/mfa-setup.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/udf-login.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/udf-start.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions docs/appendix/appendix7/module2/lab1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ URL: https://10.1.1.245

.. code-block:: bash
# From the CLI:
# Via the CLI:
tmsh create auth partition mesos
# From the UI:
GoTo System --> Users --> Partition List
Browse to System --> Users --> Partition List
- Create a new partition called "mesos" (use default settings)
- Click Finished
Expand Down
4 changes: 2 additions & 2 deletions docs/class1/class1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ We will leverage the following setup to configure the Kubernetes environment.
* - **Hostname**
- **IP-ADDR**
- **Credentials**
* - jumpbox
* - superjump
- 10.1.1.5
- ubuntu/ubuntu
- ubuntu/HelloUDF
* - bigip1
- 10.1.1.4
- admin/admin
Expand Down
Binary file added docs/class1/images/TMUI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/TMUILicense.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/TMUILogin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/UDFJoinClass.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/WEBSHELL.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/WEBSHELLroot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/account-activated.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/activate-account.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/create-account.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/email-invite.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/class1/images/f5-container-connector-access-app.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/ffhelloworld.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/gitrepo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/launch-course.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/mfa-setup.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/class1/images/start-term.png
Binary file added docs/class1/images/udf-login.png
Binary file added docs/class1/images/udffirefox.png
72 changes: 43 additions & 29 deletions docs/class1/module1/lab1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,16 @@ In this lab we'll use NodePort mode to deploy an application to the BIG-IP.
BIG-IP Setup
------------

Via RDP connect to the UDF lab "jumpbox" host.
#. Browse to the **Deployment** tab of your UDF lab session at https://udf.f5.com
and connect to **BIG-IP1** using the **TMUI** access method.

.. note:: Username and password are: **ubuntu/ubuntu**
.. image:: ../images/TMUI.png

#. Open firefox and connect to bigip1 management console. For your convenience
there's a shortcut on the firefox toolbar.
#. Login with username: **admin** and password: **admin**.

.. note:: Username and password are: **admin/admin**
.. image:: ../images/TMUILogin.png

.. image:: ../images/TMUILicense.png

.. attention::

Expand All @@ -38,19 +40,27 @@ Via RDP connect to the UDF lab "jumpbox" host.

.. image:: ../images/f5-check-partition.png

#. First we need to setup a partition that will be used by F5 Container Ingress
Service.
#. Create a **partition**, which is requiredfor F5 Container Ingress Service.

- Browse to: :menuselection:`System --> Users --> Partition List`

.. attention::

- Be sure to be in the ``Common`` partition before creating the following
objects.

- GoTo: :menuselection:`System --> Users --> Partition List`
- Create a new partition called "kubernetes" (use default settings)
.. image:: ../images/f5-check-partition.png

- Create a new partition called "**kubernetes**" (use default settings)
- Click Finished

.. image:: ../images/f5-container-connector-bigip-partition-setup.png

# Via the CLI:

.. code-block:: bash
# From the CLI:
ssh [email protected] tmsh create auth partition kubernetes
tmsh create auth partition kubernetes
#. Verify AS3 is installed.

Expand All @@ -60,16 +70,16 @@ Via RDP connect to the UDF lab "jumpbox" host.
.. seealso:: For more info click here:
`Application Services 3 Extension Documentation <https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/>`_

- GoTo: :menuselection:`iApps --> Package Management LX` and confirm
"f5-appsvcs" is in the list as shown below.
- Browse to: :menuselection:`iApps --> Package Management LX` and confirm
"*f5-appsvcs*" is in the list as shown below.

.. image:: ../images/confirm-as3-installed.png

#. If AS3 is NOT installed follow these steps:
#. If *AS3* **is NOT** installed follow these steps:

- Click here to: `Download latest AS3 <https://github.com/F5Networks/f5-appsvcs-extension/releases>`_

- Go back to: :menuselection:`iApps --> Package Management LX`
- Browse back to: :menuselection:`iApps --> Package Management LX`

- Click Import
- Browse and select downloaded AS3 RPM
Expand All @@ -78,22 +88,25 @@ Via RDP connect to the UDF lab "jumpbox" host.
Explore the Kubernetes Cluster
------------------------------

#. On the jumphost open a terminal and start an SSH session with kube-master1.
#. Go back to the **Deployment** tab of your UDF lab session at https://udf.f5.com
and connect to **kube-master1** using the **Web Shell** access method.

.. image:: ../images/start-term.png
.. image:: ../images/WEBSHELL.png

.. code-block:: bash
#. The CLI will appear in a new window or tab.
Switch to the **ubuntu** user account using the following "**su**" command.

# If directed to, accept the authenticity of the host by typing "yes" and hitting Enter to continue.
.. image:: ../images/WEBSHELLroot.png

.. code-block:: bash
ssh kube-master1
su ubuntu
.. image:: ../images/sshtokubemaster1.png
#. "**git**" the lab files and set the working directy with the "**cd**" command.

#. "git" the demo files
.. note:: These files should already be there and automatically updated upon login of the ubuntu user account.

.. note:: These files should already be there and upon login updated. If not
use the following command to clone the repo.
.. image:: ../images/gitrepo.png

.. code-block:: bash
Expand All @@ -109,12 +122,12 @@ Explore the Kubernetes Cluster

To list all nodes that are known to the master:

.. image:: ../images/kube-get-nodes.png

.. code-block:: bash
kubectl get nodes
.. image:: ../images/kube-get-nodes.png

.. attention::
If the node STATUS shows **NotReady** or **SchedulingDisabled** contact
the lab proctor. The node is not passing the health checks performed from
Expand Down Expand Up @@ -235,9 +248,10 @@ check the logs, kubectl command or docker command.
#. Using ``kubectl`` command: you need to use the full name of your pod as
shown in the previous image.

# For example:

.. code-block:: bash
# For example:
kubectl logs k8s-bigip-ctlr-7469c978f9-6hvbv -n kube-system
.. image:: ../images/f5-container-connector-check-logs-kubectl.png
Expand All @@ -248,9 +262,9 @@ check the logs, kubectl command or docker command.

.. important:: Be sure to check which Node your "connector" is running on.

.. code-block:: bash
# If directed to, accept the authenticity of the host by typing "yes" and hitting Enter to continue.

# If directed to, accept the authenticity of the host by typing "yes" and hitting Enter to continue.
.. code-block:: bash
ssh kube-node2
Expand Down
71 changes: 51 additions & 20 deletions docs/class1/module1/lab2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ To deploy our application, we will need the following definitions:
in a container.

- Define the **Service** resource: this is an abstraction which defines a
logical set of pods and a policy by which to access them. Expose the service
logical set of pods and a policy by which to access them, and exposes the service
on a port on each node of the cluster (the same port on each node). You’ll
be able to contact the service on any <NodeIP>:NodePort address. When you set
the type field to "NodePort", the master will allocate a port from a
Expand All @@ -29,9 +29,23 @@ To deploy our application, we will need the following definitions:
App Deployment
--------------

Back to the terminal and SSH session on **kube-master1** we will create all the
We will use the command line on **kube-master1** to create all the
required files and launch them.

#. Go back to the Web Shell session you opened in the previous task. If you need to open a new
session go back to the **Deployment** tab of your UDF lab session at https://udf.f5.com
to connect to **kube-master1** using the **Web Shell** access method, then switch to the **ubuntu**
user account using the "**su**" command:

.. image:: ../images/WEBSHELL.png

.. image:: ../images/WEBSHELLroot.png

.. code-block:: bash
su ubuntu
#. Create a file called ``deployment-hello-world.yaml``

.. tip:: Use the file in ~/agilitydocs/docs/class1/kubernetes
Expand Down Expand Up @@ -94,58 +108,75 @@ required files and launch them.
from the outside. In this example it's "32722", highlighted above.

#. Now that we have deployed our application sucessfully, we can check the
configuration on bigip1. Switch back to the open management session on
firefox.
configuration on BIG-IP1.
Go back to the TMUI session you opened in a previous task. If you need to open a new
session go back to the **Deployment** tab of your UDF lab session at https://udf.f5.com
and connect to **BIG-IP1** using the **TMUI** access method (*username*: **admin** and *password*: **admin**)

.. image:: ../images/TMUI.png

.. image:: ../images/TMUILogin.png

#. Browse to: :menuselection:`Local Traffic --> Virtual Servers` and select the **kubernetes** partition.

.. warning:: Don't forget to select the "kubernetes" partition or you'll
see nothing.

GoTo: :menuselection:`Local Traffic --> Virtual Servers`

Here you can see a new Virtual Server, "ingress_10.1.1.4_80" was created,
listening on 10.1.1.4:80 in partition "kubernetes".

.. image:: ../images/f5-container-connector-check-app-ingress.png

#. Check the Pools to see a new pool and the associated pool members.

GoTo: :menuselection:`Local Traffic --> Pools` and select the
Browse to: :menuselection:`Local Traffic --> Pools` and select the
"ingress_default_f5-hello-world-web" pool. Click the Members tab.

.. image:: ../images/f5-container-connector-check-app-ingress-pool.png

.. note:: You can see that the pool members listed are all the cluster
node IPs on port 32722. (**NodePort mode**)

#. Access your web application via firefox on the jumpbox.
#. Now let's test access to the new web application "*through*"" **Firefox** on **superjump**.
To do this, browse back to the **Deployment** tab of your UDF lab session at
https://udf.f5.com and connect to **superjump** using the **Firefox** access method.

.. note:: The web application is not directly accessible from the public Internet.
But since the **superjump** system is connected to the same internal virtual lab network
we can use the **Firefox** access method because it provides *browser-in-a-browser*
functionality that allows remote browsing to this new private web site.

.. image:: ../images/udffirefox.png

#. The *Firefox* application installed on the superjump system's will appear in your browser (i.e., a *browser-in-a-browser*).
Find and click on the "**Hello, World**" bookmark/shortcut, or type http://10.1.1.4 in the appropriate URL field.

.. note:: Open a new tab and select the "Hello, World" shortcut or type
http://10.1.1.4 in the URL field.
.. image:: ../images/ffhelloworld.png

.. image:: ../images/f5-container-connector-access-app.png

#. To check traffic distribution, hit Refresh many times on your open browser
session. Then go back to the management console open on firefox.
#. To check traffic distribution, hit *Refresh* many times on your open browser
session. Then go back to the BIG-IP TMUI management console.

GoTo: :menuselection:`Local Traffic --> Pools --> Pool list -->
Browse to: :menuselection:`Local Traffic --> Pools --> Pool list -->
ingress_default_f5-hello-world-web --> Statistics`

.. image:: ../images/f5-container-connector-check-app-ingress-stats.png

.. note:: Are you seeing traffic distribution as shown in the image above?
If not why? (HINT: Check the virtual server settings.)
If not why? (**HINT**: *Check the virtual server settings... Resources tab...*)

#. Delete Hello-World

.. important:: Do not skip this step. Instead of reusing some of these
objects, the next lab we will re-deploy them to avoid conflicts and
errors.
#. Delete Hello-World with the following commands in the **kube-master1** Web Shell window:

.. code-block:: bash
kubectl delete -f ingress-hello-world.yaml
kubectl delete -f nodeport-service-hello-world.yaml
kubectl delete -f deployment-hello-world.yaml
.. attention:: Validate the objects are removed via the management console.
.. important:: **Do not skip this step. Instead of reusing some of these
objects, the next lab we will re-deploy them to avoid conflicts and
errors.**

#. Validate the objects are removed via the BIG-IP TMUI management console:
:menuselection:`Local Traffic --> Virtual Servers`
Loading

0 comments on commit 9f03867

Please sign in to comment.