vania-janet/multiturn-rag-retrieval-data huggingface dataset:
This tutorial walks you through the process setting up a continuous integration and delivery pipeline for containerized applications running on the Kubernetes Service. You will learn how to set up source control, then build, test and deploy the code to different deployment stages. Next, you will add integrations to other services like Slack notifications.

Kubernetes service Container Registry

+1

Continuous Delivery



* 1 hour
* 2023-05-08



[Working with App Configuration](https://cloud.ibm.com/docs/app-configuration?topic=app-configuration-ac-appconfig)Working with App Configuration

App Configuration enables app developers to quickly build mobile and web apps. With feature management of App Configuration, you can embark on a truly agile development methodology by separating feature roll outs from release cycles. Reduce risk by controlling the release of features and rolling back as needed. Create user groups (segments) and target features to selected user groups based on different criteria.

App Configuration



* 90 minutes
* 2022-10-11



[Accelerate a dynamic website using Dynamic Content Acceleration](https://cloud.ibm.com/docs/solution-tutorials?topic=solution-tutorials-dynamic-content-cdn)Accelerate a dynamic website using Dynamic Content Acceleration

Web applications are composed of static content like text, images, cascading style sheets, and JavaScript files. The tutorial Accelerate delivery of static files using a CDN shows how to host and serve static assets (images, videos, and documents) of a website from IBM Cloud Object Storage with IBM® Content Delivery Network (CDN).

Content Delivery Network (CDN) Kubernetes service

+2

Container Registry,Domain Name Registration



* 2 hours
* 2023-06-14



[Create an Event Notifications destination](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-create-en-destination)Create an Event Notifications destination

Create an Event Notifications destination. Destinations are custom protocols, which are either services or user reachable entities. Event Notifications supports the following destinations:

Event Notifications



* 10 minutes
Connecting an IBM Cloud application 

Applications running in IBM Cloud can be bound to your IBM Cloud® Databases for MongoDB deployment.



 Connecting a Kubernetes Service application 

There are two steps to connecting a Cloud databases deployment to a Kubernetes Service application. First, your deployment needs a to be bound to your cluster and its connection strings stored in a secret. The second step is configuring your application to use the connection strings.

The sample app in the [Connecting a Kubernetes Service Tutorial](https://cloud.ibm.com/docs/databases-for-mongodb?topic=cloud-databases-tutorial-k8s-app) provides a sample application that uses Node.js and demonstrates how to bind the sample application to a Cloud Databases deployment.

Before connecting your Kubernetes Service application to a deployment, make sure that the deployment and cluster are both in the same region and resource group.



 Binding your deployment 

Public Endpoints - If you are using the default public service endpoint to connect to your deployment, you can run the cluster service bind command with your cluster name, the resource group, and your deployment name.

ibmcloud ks cluster service bind <your_cluster_name> <resource_group> <your_database_deployment>

OR Private Endpoints - If you want to use a private endpoint (if one is enabled on your deployment), then first you need to create a service key for your database. Kubernetes uses it when binding to the database.

ibmcloud resource service-key-create <your-private-key> --instance-name <your_database_deployment> --service-endpoint private

The private service endpoint is selected with --service-endpoint private. After that, you bind the database to the Kubernetes cluster through the private endpoint with the cluster service bind command.

ibmcloud ks cluster service bind <your_cluster_name> <resource_group> <your_database_deployment> --key <your-private-key>

Verify - Verify that the Kubernetes secret was created in your cluster namespace. Running the following command, you get the API key for accessing the instance of your deployment in your account.
Try out the [Creating a classic cluster in your VPC tutorial](https://cloud.ibm.com/docs/containers?topic=containers-vpc_ks_tutorial).

Kubernetes 1.14
: [Kubernetes 1.14](https://cloud.ibm.com/docs/containers?topic=containers-cs_versionscs_versions_available) is now the default version.





 17 August 2019 

IBM Cloud® Activity Tracker
: The [IBM Cloud Activity Tracker service](https://cloud.ibm.com/docs/containers?topic=containers-at_events) is now supported for you to view, manage, and audit user-initiated activities in your clusters.

Version change logs
: Updated the change logs for [1.15.2_1514](https://cloud.ibm.com/docs/containers?topic=containers-115_changelog1152_1514), [1.14.5_1530](https://cloud.ibm.com/docs/containers?topic=containers-114_changelog1145_1530), [1.13.9_1533](https://cloud.ibm.com/docs/containers?topic=containers-113_changelog1139_1533), and [1.12.10_1564](https://cloud.ibm.com/docs/containers?topic=containers-112_changelog11210_1564) master fix pack updates.





 15 August 2019 

App deployments
: Added steps for [copying deployments from one cluster to another](https://cloud.ibm.com/docs/containers?topic=containers-update_appcopy_apps_cluster).

FAQs
: Added an FAQ about free clusters.

Istio
Tuning performance 

If you have specific performance optimization requirements, you can change the default settings for some cluster components in IBM Cloud® Kubernetes Service.

If you choose to change the default settings, you are doing so at your own risk. You are responsible for running tests against any changed settings and for any potential disruptions caused by the changed settings in your environment.



 Default worker node settings 

By default, your worker nodes have the operating system and compute hardware of the [worker node flavor](https://cloud.ibm.com/docs/containers?topic=containers-planning_worker_nodes) that you choose when you create the worker pool.



 Customizing the operating system 

You can find a list of supported operating systems by cluster version in the [Kubernetes version information](https://cloud.ibm.com/docs/containers?topic=containers-cs_versions). Your cluster can't mix operating systems or use different operating systems.

To optimize your worker nodes, consider the following information.



* Image and version updates: Worker node updates, such as security patches to the image or Kubernetes versions, are provided by IBM for you. However, you choose when to apply the updates to the worker nodes. For more information, see [Updating clusters, worker nodes, and cluster components](https://cloud.ibm.com/docs/containers?topic=containers-update).
* Temporary modifications: If you log in to a pod or use some other process to modify a worker node setting, the modifications are temporary. Worker node lifecycle operations, such as autorecovery, reloading, updating, or replacing a worker node, change any modifications back to the default settings.
* Persistent modifications: For modifications to persist across worker node lifecycle operations, create a daemon set that uses an init container. For more information, see [Modifying default worker node settings to optimize performance](https://cloud.ibm.com/docs/containers?topic=containers-kernelworker).



Modifications to the operating system are not supported. If you modify the default settings, you are responsible for debugging and resolving the issues that might occur.





 Hardware changes
Microservices are popular because they allow an enterprise to organize their development teams around the services they deliver. This tutorial walks you through the steps of creating infrastructure for a IBM Cloud® Virtual Private Cloud (VPC) based microservice architecture. In this architecture, VPCs are connected to each other using the IBM Cloud® Transit Gateway. A set of shared microservices is accessed through host names registered in the IBM Cloud® DNS Services. Each VPC is managed by a separate team isolated by IBM Cloud® Identity and Access Management. Optionally a IBM Cloud® Load Balancer can be used to scale out the shared microservice.

Virtual Private Cloud (VPC) Managing your account, resources, and access

+2

Transit Gateway,DNS Services



* 2 hours
* 2023-05-18



[Deploy an app on Kubernetes](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-tutorial-cd-kubernetes)Deploy an app on Kubernetes

In this tutorial, you learn how to create an open toolchain by using different deployment strategies. You also learn how toolchains are implemented in the IBM Cloud® Continuous Delivery service and how to develop and deploy a simple web application (app) by using toolchains.

Creating apps Red Hat OpenShift on IBM Cloud

+2

Kubernetes service,Continuous Delivery



* 30 minutes
* 2022-10-27



[Deploy Kubernetes resources to multiple clusters by using IBM Cloud Satellite Config](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-tutorial-cd-only-satellite)Deploy Kubernetes resources to multiple clusters by using IBM Cloud Satellite Config

In this tutorial, you learn how to create an open toolchain by using IBM Cloud® Continuous Delivery and deploy your application (app) by using IBM Cloud Satellite. You also learn how toolchains are implemented in the Continuous Delivery service and how to deploy a simple web app by using a Continuous Delivery-only toolchain template.

Satellite Creating apps

+3
By extending the Kubernetes API with the [External Secrets Operator](https://external-secrets.io/latest/) open source project, your team is able to use IBM Cloud Secrets Manager to securely add secrets to Kubernetes.

This scenario features a third-party tool that can impact the compliance readiness of workloads that run in your Kubernetes cluster. If you add a community or third-party tool, keep in mind that you are responsible for maintaining the compliance of your apps and working with the appropriate provider to troubleshoot any issues. For more information, see [Your responsibilities with using IBM Cloud Kubernetes Service](https://cloud.ibm.com/docs/containers?topic=containers-responsibilities_iks).





 Example architecture and tutorials 

Zoom

![The diagram shows the technologies and flows that make up this specific implementation pattern.](https://cloud.ibm.com/docs-content/v1/content/991f60ddbe3ab0a9aa69481a07a0a73b359fa329/secrets-manager/images/iks-sm-architecture.svg)

Figure 1. Example architecture

Ready to start building a proof of concept? For more information about this pattern, check out the tutorial to help you get started.

[![This image is a visual link to the tutorial for securing Kubernetes secrets](https://cloud.ibm.com/docs-content/v1/content/991f60ddbe3ab0a9aa69481a07a0a73b359fa329/secrets-manager/images/go-to-tutorial.svg)](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-tutorial-kubernetes-secrets)
This tutorial walks you through the process of moving a VM based app to a Kubernetes cluster by using Kubernetes Service. Kubernetes Service delivers powerful tools by combining container and Kubernetes technologies, an intuitive user experience, and built-in security and isolation to automate the deployment, operation, scaling, and monitoring of containerized apps in a cluster of compute hosts.

Kubernetes service



* 2 hours
* 2023-06-22



[Using Terraform on IBM Cloud to manage your own Red Hat OpenShift Container Platform on IBM Cloud classic infrastructure](https://cloud.ibm.com/docs/ibm-cloud-provider-for-terraform?topic=ibm-cloud-provider-for-terraform-redhat)Using Terraform on IBM Cloud to manage your own Red Hat OpenShift Container Platform on IBM Cloud classic infrastructure

Use this tutorial to create your own highly available Red Hat® OpenShift Container Platform 3.11 environment on IBM® Cloud classic infrastructure by using Terraform on IBM Cloud.

Red Hat OpenShift on IBM Cloud Terraform on IBM Cloud



* 3 hours
* 2023-03-07



[Example context-based restrictions scenarios](https://cloud.ibm.com/docs/openshift?topic=openshift-cbr-tutorial)Example context-based restrictions scenarios

With context-based restrictions, account owners and administrators can define and enforce access restrictions for IBM Cloud® resources, based on the context of access requests. Access to Red Hat OpenShift on IBM Cloud resources can be controlled with context-based restrictions and identity and access management policies. For more information, see Protecting Red Hat OpenShift on IBM Cloud resources with context-based restrictions.

Red Hat OpenShift on IBM Cloud



* 30 minutes
* 2023-02-21



[Using Calico network policies to control traffic on Classic clusters](https://cloud.ibm.com/docs/openshift?topic=openshift-policy_tutorial)Using Calico network policies to control traffic on Classic clusters

Learn how to use Calico policies to allow network traffic from and to certain IP addresses.

Red Hat OpenShift on IBM Cloud



* 60 minutes
What are the best practices for using webhooks? 

Keep in mind the following best practices and considerations when you configure a webhook.



* Create [replica pods](https://cloud.ibm.com/docs/containers?topic=containers-appreplicaset) for the webhook so that if one pod goes down, the webhook can still process requests from your resources. Spread the replica pods across zones, if possible.
* Set an appropriate failurePolicy option, such as whether your webhook fails or ignores connection failures or timeouts. You might set the failurePolicy to Ignore if you want your webhook to ignore connection errors an timeouts. Note that this does not change how the apiserver behaves if the webhook rejects a request.
* Review the timeoutSeconds interval. Older webhooks that use the v1beta1.admissionregistration.k8s.io API have a default timeout of 30 seconds. The v1 API uses a default of 10 seconds. If the webhook failure policy is Ignore and the current timeoutSeconds is 30, consider reducing the timeout to 10 seconds. For OpenShift clusters, control plane components often have their own timeout of 13 seconds.
* Set appropriate CPU and memory [resource requests and limits](https://cloud.ibm.com/docs/containers?topic=containers-appresourcereq) for your webhook.
* Add [liveness and readiness probes](https://cloud.ibm.com/docs/openshift?topic=openshift-openshift_appsprobe) to help make sure your webhook container is running and ready to serve requests.
* Set pod [anti-affinity scheduling rules](https://cloud.ibm.com/docs/openshift?topic=openshift-openshift_appsaffinity) to prefer that your webhook pods run on different worker nodes and zones when possible. You might use [pod topology](https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/) instead.
Understanding access control for clusters 

Learn how you can set up access control for your IBM Cloud® Kubernetes Service clusters by using various types of access control, roles, and policies.



 Access control checklist 

Use the following checklist to configure user access to your IBM Cloud Kubernetes Service cluster.



 IBM Cloud access control 

Your clusters use IBM Cloud Identity and Access Management (IAM) as the identity provider to control access to the cluster.



1. [Understand how roles, users, and resources in your account](https://cloud.ibm.com/docs/containers?topic=containers-access-overviewaccess_policies) can be managed.
2. [Set the API key](https://cloud.ibm.com/docs/containers?topic=containers-access-overviewapi_key) for all the regions and resource groups that you want to create clusters in.
3. Invite users to your account and [assign them IBM Cloud IAM roles](https://cloud.ibm.com/docs/containers?topic=containers-userschecking-perms) for the service (containers-kubernetes in the API or CLI, and Kubernetes Service in the console).

Do not assign IBM Cloud IAM platform access roles at the same time as a service access role. You must assign platform and service access roles separately.
4. To allow users to bind services to the cluster or to view logs that are forwarded from cluster logging configurations, [grant users Cloud Foundry roles](https://cloud.ibm.com/docs/account?topic=account-mngcf) for the org and space that the services are deployed to or where logs are collected.
5. If you use Kubernetes namespaces to isolate resources within the cluster, grant access to namespaces by [assigning users IBM Cloud IAM service access roles for the namespaces](https://cloud.ibm.com/docs/containers?topic=containers-userschecking-perms).
6.
[Assigning cluster access by using Terraform for IBM Cloud Kubernetes Service](https://cloud.ibm.com/docs/containers?topic=containers-terraform-setupterraform-setup)



* [Creating a Kubernetes Service cluster by using Terraform](https://cloud.ibm.com/docs/containers?topic=containers-terraform-setupterraform-cluster-create)
* [Assigning IAM user access to Kubernetes Service clusters](https://cloud.ibm.com/docs/containers?topic=containers-terraform-setupterraform-cluster-IAM)







 Securing cluster workloads 

[Protecting sensitive information in your cluster](https://cloud.ibm.com/docs/containers?topic=containers-encryptionencryption)



* [Overview of cluster encryption](https://cloud.ibm.com/docs/containers?topic=containers-encryptionencrypt_ov)
* [Understanding Key Management Service (KMS) providers](https://cloud.ibm.com/docs/containers?topic=containers-encryptionkms)



* [Available KMS providers](https://cloud.ibm.com/docs/containers?topic=containers-encryptionkms-providers)
* [Controlling encryption](https://cloud.ibm.com/docs/containers?topic=containers-encryptionkms-encrypt-control)
* [Features and limitations of KMS providers](https://cloud.ibm.com/docs/containers?topic=containers-encryptionkms-keyprotect-features)



* [Encrypting the Kubernetes secrets by using a KMS provider](https://cloud.ibm.com/docs/containers?topic=containers-encryptionkeyprotect)



* [Prerequisites](https://cloud.ibm.com/docs/containers?topic=containers-encryptionkms_prereqs)
For more information about this new version of the IBM Cloud CLI plug-in, see [Big changes are coming to the IBM Cloud Kubernetes Service CLI plugin to change your experience for the better](https://www.ibm.com/cloud/blog/announcements/boost-your-productivity-with-a-new-cli-experience-for-the-ibm-cloud-kubernetes-service). To maintain compatibility with the current IBM Cloud Kubernetes Service runtimes after the new version 1.0 is available, Continuous Delivery will update the current base image for the Delivery Pipeline to include this version. For production workloads, set any of your pipelines that are using the current base image to instead use version 2.6 until you can update your scripts to work with the new version.

You can also use [custom Docker images](https://cloud.ibm.com/docs/services/ContinuousDelivery?topic=ContinuousDelivery-custom_docker_images) to control both the tools and which versions of those tools are used to build and deploy applications. However, this method requires that you are familiar with Docker and you must maintain and update the image that you create.

On 20 November 2020, Dockerhub introduced rate-limiting on anonymous image pulls. This change might impact users that are running jobs by using Dockerhub-hosted custom images.

Pipeline base images are hosted in a global IBM Cloud Container Registry namespace. To list these images, run the ibmcloud cr images --restrict continuous-delivery command when you target the global IBM Cloud Container Registry.



 Specifying the image version 



1. On the Pipeline page, click Actions... to access the list of options.
2. Click Configure Pipeline.
3. In the Image version tab, select either the Experimental: RedHat UBI or the Ubuntu image type. Then, based on the selected image type, select the default image version to use for all jobs in your pipeline. You can also customize this setting for each job in each stage of your pipeline.



Zoom

!
+2

Kubernetes service,Continuous Delivery



* 30 minutes
* 2022-10-27



[Deploy Kubernetes resources to multiple clusters by using IBM Cloud Satellite Config](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-tutorial-cd-only-satellite)Deploy Kubernetes resources to multiple clusters by using IBM Cloud Satellite Config

In this tutorial, you learn how to create an open toolchain by using IBM Cloud® Continuous Delivery and deploy your application (app) by using IBM Cloud Satellite. You also learn how toolchains are implemented in the Continuous Delivery service and how to deploy a simple web app by using a Continuous Delivery-only toolchain template.

Satellite Creating apps

+3

Red Hat OpenShift on IBM Cloud,Kubernetes service,Continuous Delivery



* 30 minutes
* 2022-06-29



[Develop and deploy an app by using IBM Cloud Satellite](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-tutorial-cd-satellite)Develop and deploy an app by using IBM Cloud Satellite

In this tutorial, you learn how to create an open toolchain by using IBM Cloud® Continuous Delivery and deploy your app on Satellite. You also learn how toolchains are implemented in the Continuous Delivery service and how to develop and deploy a simple web application (app) by using toolchains.

Satellite Creating apps

+3

Red Hat OpenShift on IBM Cloud,Kubernetes service,Continuous Delivery



* 30 minutes
* 2022-10-06



[Develop and deploy an app on Virtual Private Cloud by using deployment strategies](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-tutorial-cd-vpc)Develop and deploy an app on Virtual Private Cloud by using deployment strategies

In this tutorial, you learn how to create an open toolchain by using different deployment strategies. You also learn how toolchains are implemented in the IBM Cloud® Continuous Delivery service and how to develop and deploy a simple web application (app) by using toolchains.
Note: If you don't use the account owner's credentials, [ensure that the user whose credentials you use has the correct permissions](https://cloud.ibm.com/docs/containers?topic=containers-access-credsowner_permissions).
2. In the API Keys section, find or create a classic infrastructure API key.
3. Use the infrastructure API key to set the infrastructure API credentials for IBM Cloud Kubernetes Service. Repeat this command for each region where you create clusters.

ibmcloud ks credential set classic --infrastructure-username <infrastructure_API_username> --infrastructure-api-key <infrastructure_API_authentication_key> --region <region>
4. Verify that the correct credentials are set.

ibmcloud ks credential get --region <region>

Example output

Infrastructure credentials for user name user@email.com set for resource group default.
5. To ensure that existing clusters use the updated infrastructure API credentials, run ibmcloud ks api-key reset --region <region> in each region where you have clusters.