From f9c7fbcf26dcea89e0e8118be123f0729e654c4c Mon Sep 17 00:00:00 2001 From: James Blair Date: Mon, 27 May 2024 08:52:18 +1200 Subject: [PATCH] Begin working on exercise 4. --- data/workshop/exercise3.mdx | 8 +- data/workshop/exercise4.mdx | 99 ++++++++++++++++++ .../static/images/windows/mixed-workloads.png | Bin 0 -> 38551 bytes 3 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 data/workshop/exercise4.mdx create mode 100644 public/static/images/windows/mixed-workloads.png diff --git a/data/workshop/exercise3.mdx b/data/workshop/exercise3.mdx index af9963c..934b4c4 100644 --- a/data/workshop/exercise3.mdx +++ b/data/workshop/exercise3.mdx @@ -112,11 +112,13 @@ After retrieving your cluster id and zone update the sample `MachineSet` using y Within OpenShift you can then click the ➕ button in the top right hand corner, paste in your yaml and click **Create**. - -``` - |![workshop](/workshops/static/images/windows/create-machineset.gif) | |:-----------------------------------------------------------------------------:| | *Create a windows machineset* | + + +## 3.2 Verify windows machine status + +> diff --git a/data/workshop/exercise4.mdx b/data/workshop/exercise4.mdx new file mode 100644 index 0000000..2e69f2a --- /dev/null +++ b/data/workshop/exercise4.mdx @@ -0,0 +1,99 @@ +--- +title: Deploying a windows workload +exercise: 4 +date: '2024-05-26' +tags: ['openshift','windows','kubernetes','containers'] +draft: false +authors: ['default'] +summary: "Putting our new cluster windows node to work 🚀" +--- + + +With our cluster now having both Windows and Linux worker nodes, let's deploy a hybrid workload that will make use of both. + +**The NetCandy Store** + +You will be deploying a sample application stack that delivers an eCommerce site, The NetCandy Store. This application is built using Windows Containers working together with Linux Containers. + +This application consists of: + +1. Windows Container running a .NET v4 frontend, which is consuming a backend service. +2. Linux Container running a .NET Core backend service, which is using a database. +3. Linux Container running a MSSql database. + + +|![workshop](/workshops/static/images/windows/mixed-workloads.png) | +|:-----------------------------------------------------------------------------:| +| *Mixed workload architecture diagram* | + + + +## 4.1 Add helm repository + +In this exercise we will deploy the NetCandy Store application using `helm`. You can deliver your Windows workloads in the same way you deliver your Linux workloads. Since everything is just YAML, the workflow is the same. Whether that be via Helm, an Operator, or via Ansible. + +We'll get started by creating a project and adding a helm repository that our application helm chart will be sourced from. + +Follow the steps below to add the repository: + +1. Switch from **Administrator** to **Developer** view in the top left web console dropdown menu. +2. Click on **+Add** in the left menu. +3. Click on the **Project** dropdown at the top and click **Create Project** +4. Enter the name `netcandystore` and click **Create**. +5. Click on **Helm Chart repositories**. +6. Enter the name `redhat-demos` and url `https://redhat-developer-demos.github.io/helm-repo` then click **Create**. + +This will allow us to deploy any helm charts available in this repository. + + +|![workshop](/workshops/static/images/windows/mixed-workloads.png) | +|:-----------------------------------------------------------------------------:| +| *Mixed workload architecture diagram* | + + + + +In this excersie we will create a `MachineSet`. Once created this will automatically begin provisoning a Windows machine and adding it to our cluster as a worker node. + +Below is a yaml snippet we will use as base to create our `MachineSet`: + +```yaml + metadataServiceOptions: {} + tags: + - name: kubernetes.io/cluster/cluster- + value: owned + deviceIndex: 0 + ami: + id: ami-0e76083a67107f741 + subnet: + filters: + - name: 'tag:Name' + values: + - cluster--private-ap-southeast- + apiVersion: awsproviderconfig.openshift.io/v1beta1 + iamInstanceProfile: + id: cluster--worker-profile +``` + +There are ten references to `` in the sample that we need to find & replace with the actual cluster id for the cluster we have been allocated for the workshop and five references to the availability `` for our cluster nodes that we also need to update with our actual zone in use. + +Run the following command in your bastion host to find your cluster id and zone: + +```bash +name=$(oc get machineset -A -o jsonpath={.items[0].metadata.name}) +echo "Cluster id is: ${name:8:11}" +echo "Cluster availability zone is: ${name:40:2}" +``` + +After retrieving your cluster id and zone update the sample `MachineSet` using your preferred text editor, then select and copy all of the text to clipboard. + +Within OpenShift you can then click the ➕ button in the top right hand corner, paste in your yaml and click **Create**. + + +``` + + +|![workshop](/workshops/static/images/windows/create-machineset.gif) | +|:-----------------------------------------------------------------------------:| +| *Create a windows machineset* | + diff --git a/public/static/images/windows/mixed-workloads.png b/public/static/images/windows/mixed-workloads.png new file mode 100644 index 0000000000000000000000000000000000000000..f741fff894a4a220516074a2f4e976829f2157fd GIT binary patch literal 38551 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 E0e1Xri~s-t literal 0 HcmV?d00001