IBM Cloud Basics

IBM Cloud CLI & Setup

# Install IBM Cloud CLI
# For MacOS:
curl -fsSL https://clis.cloud.ibm.com/install/osx | sh

# For Linux:
curl -fsSL https://clis.cloud.ibm.com/install/linux | sh

# For Windows (using Chocolatey):
choco install ibmcloud-cli

# Login to IBM Cloud
ibmcloud login
ibmcloud login --sso
ibmcloud login -a https://cloud.ibm.com -r us-south -g default

# Target resources
ibmcloud target --cf
ibmcloud target -r us-south
ibmcloud target -g default

# Install plugins
ibmcloud plugin install cloud-functions
ibmcloud plugin install container-service
ibmcloud plugin install container-registry
ibmcloud plugin install schematics
ibmcloud plugin update --all

# Basic CLI commands
ibmcloud config
ibmcloud info
ibmcloud regions
ibmcloud api https://api.cloud.ibm.com
ibmcloud cf help

# Resource groups
ibmcloud resource groups
ibmcloud resource group-create my-resource-group
ibmcloud resource group my-resource-group
ibmcloud target -g my-resource-group

Account & Billing Management

# Account management
ibmcloud account orgs
ibmcloud account org ORG_NAME
ibmcloud account spaces
ibmcloud account space SPACE_NAME
ibmcloud account create --owner user@example.com --country US

# User management
ibmcloud account users
ibmcloud account user-invite user@example.com
ibmcloud account user-remove user@example.com

# Billing and usage
ibmcloud billing account-usage [-start-date YYYY-MM] [-end-date YYYY-MM]
ibmcloud billing orders [--limit LIMIT]
ibmcloud billing resource-instance-usage RESOURCE_INSTANCE_ID [--output FORMAT]

# Resource management
ibmcloud resource search "name:my-instance"
ibmcloud resource service-instances --service-name cloud-object-storage
ibmcloud resource service-instance my-service-instance
ibmcloud resource service-instance-create my-instance cloud-object-storage standard us-south
ibmcloud resource service-instance-delete my-instance
ibmcloud resource service-keys --instance-name my-instance
ibmcloud resource service-key-create my-key Writer --instance-name my-instance
ibmcloud resource service-key-delete my-key

# API keys
ibmcloud iam api-keys
ibmcloud iam api-key-create MyKey -d "Description of my key" --file key_file.json
ibmcloud iam api-key-delete API_KEY_UUID
ibmcloud iam api-key-update API_KEY_UUID -n "New name"

Compute Services

Kubernetes Service (IKS)

# Cluster management
ibmcloud ks clusters
ibmcloud ks cluster create classic --name my-cluster --zone dal10 --flavor b3c.4x16 --workers 3
ibmcloud ks cluster get --cluster my-cluster
ibmcloud ks cluster config --cluster my-cluster
ibmcloud ks cluster pull-secret apply --cluster my-cluster
ibmcloud ks cluster rm --cluster my-cluster

# Worker nodes
ibmcloud ks workers --cluster my-cluster
ibmcloud ks worker add --cluster my-cluster --workers 3
ibmcloud ks worker reboot --cluster my-cluster --worker WORKER_ID
ibmcloud ks worker replace --cluster my-cluster --worker WORKER_ID
ibmcloud ks worker rm --cluster my-cluster --worker WORKER_ID

# Zones and regions
ibmcloud ks zones
ibmcloud ks region get
ibmcloud ks region set --region us-south

# Ingress and networking
ibmcloud ks alb ls --cluster my-cluster
ibmcloud ks nlb-dns ls --cluster my-cluster
ibmcloud ks ingress secret ls --cluster my-cluster

# Add-ons
ibmcloud ks cluster addon enable --cluster my-cluster --addon istio
ibmcloud ks cluster addon ls --cluster my-cluster
ibmcloud ks cluster addon disable --cluster my-cluster --addon istio

# Storage
ibmcloud ks storage classes
ibmcloud ks volume attach --cluster my-cluster --volume VOLUME_ID --worker WORKER_ID
ibmcloud ks volume ls --cluster my-cluster

# Using kubectl with IKS
kubectl get nodes
kubectl get pods -n kube-system
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=LoadBalancer

Cloud Foundry & Functions

# Cloud Foundry apps
ibmcloud cf apps
ibmcloud cf push my-app -p path/to/app -b python_buildpack
ibmcloud cf app my-app
ibmcloud cf delete my-app
ibmcloud cf logs my-app --recent
ibmcloud cf scale my-app -i 3 -m 512M

# Services and marketplace
ibmcloud cf marketplace
ibmcloud cf create-service cloudantNoSQLDB Lite my-cloudant
ibmcloud cf services
ibmcloud cf service my-cloudant
ibmcloud cf bind-service my-app my-cloudant
ibmcloud cf unbind-service my-app my-cloudant
ibmcloud cf delete-service my-cloudant

# IBM Cloud Functions (OpenWhisk)
ibmcloud fn property set --apihost us-south.functions.cloud.ibm.com
ibmcloud fn list
ibmcloud fn action create my-action action.js
ibmcloud fn action invoke my-action --param name World
ibmcloud fn action update my-action action.js
ibmcloud fn action delete my-action

# Functions with parameters
ibmcloud fn action create greeting --param name World greeting.js
ibmcloud fn action invoke greeting --result
ibmcloud fn action invoke greeting --param name "IBM Cloud"

# Packages and triggers
ibmcloud fn package create my-package
ibmcloud fn package list
ibmcloud fn trigger create my-trigger
ibmcloud fn rule create my-rule my-trigger my-action

# Namespaces
ibmcloud fn namespace list
ibmcloud fn property set --namespace MY_NAMESPACE
ibmcloud fn property get --namespace

Virtual Servers & Code Engine

# Virtual Server Instances (VSI)
ibmcloud is instances
ibmcloud is instance-create my-vsi rhel-7 us-south-1 bx2-2x8 --image ID --vpc ID --subnet ID --key-keys ID
ibmcloud is instance my-vsi
ibmcloud is instance-delete my-vsi
ibmcloud is instance-network-interface-floating-ip-add my-vsi INTERFACE_ID FLOATING_IP_ID

# VPC and subnets
ibmcloud is vpcs
ibmcloud is vpc-create my-vpc
ibmcloud is vpc-delete my-vpc
ibmcloud is subnets
ibmcloud is subnet-create my-subnet my-vpc us-south-1 --ipv4-cidr-block 10.240.0.0/24

# Security groups
ibmcloud is security-groups
ibmcloud is security-group-create my-sg my-vpc
ibmcloud is security-group-rule-add my-sg inbound tcp --port-min 80 --port-max 80
ibmcloud is security-group-rule-add my-sg inbound tcp --port-min 443 --port-max 443
ibmcloud is security-group-rule-add my-sg inbound icmp --icmp-type 8 --icmp-code 0

# IBM Cloud Code Engine
ibmcloud ce project create --name my-project
ibmcloud ce project select --name my-project
ibmcloud ce app create --name my-app --image icr.io/codeengine/hello
ibmcloud ce app get --name my-app
ibmcloud ce app update --name my-app --image icr.io/codeengine/hello:latest
ibmcloud ce app delete --name my-app
ibmcloud ce job create --name my-job --image icr.io/codeengine/job
ibmcloud ce job run --name my-job
ibmcloud ce job runs --name my-job
ibmcloud ce build create --name my-build --source https://github.com/IBM/example --size small
ibmcloud ce build run --name my-build
ibmcloud ce build logs --name my-build
ibmcloud ce registry create --name my-registry --server us.icr.io --username iamapikey --password API_KEY

Storage Services

# Cloud Object Storage (COS)
ibmcloud resource service-instance-create my-cos cloud-object-storage standard global
ibmcloud cos config list
ibmcloud cos config crn --crn CRN
ibmcloud cos buckets
ibmcloud cos bucket-create --bucket my-bucket --ibm-service-instance-id ID --region us-south
ibmcloud cos bucket-head --bucket my-bucket --region us-south
ibmcloud cos objects --bucket my-bucket --region us-south
ibmcloud cos object-get --bucket my-bucket --key object.txt --region us-south object.txt
ibmcloud cos object-put --bucket my-bucket --key object.txt --body object.txt --region us-south
ibmcloud cos object-delete --bucket my-bucket --key object.txt --region us-south

# Block Storage
ibmcloud is volumes
ibmcloud is volume-create my-volume us-south-1 --iops 1000 --capacity 100
ibmcloud is volume-attach my-volume --instance my-vsi
ibmcloud is volume-detach my-volume --instance my-vsi
ibmcloud is volume-delete my-volume

# File Storage
ibmcloud is share-create my-share us-south-1 --size 1000 --profile tiered
ibmcloud is shares
ibmcloud is share-delete my-share

# Databases
ibmcloud resource service-instance-create my-db databases-for-postgresql standard us-south
ibmcloud cdb deployment-create --name my-postgres --version 13 --adminpassword password --members 3 --storage 5 --cpu 3 --memory 15
ibmcloud cdb deployment-connections my-postgres
ibmcloud cdb deployment-config my-postgres
ibmcloud cdb deployment-delete my-postgres

# Cloudant (NoSQL)
ibmcloud resource service-instance-create my-cloudant cloudantnosqldb lite us-south
ibmcloud cloudant databases -i my-cloudant
ibmcloud cloudant database-create my-db -i my-cloudant
ibmcloud cloudant database-delete my-db -i my-cloudant
ibmcloud cloudant database-document-create my-db '{"_id": "doc1", "name": "John"}' -i my-cloudant

AI & Data Services

Watson Services

# Watson Assistant
ibmcloud resource service-instance-create my-assistant conversation free us-south
ibmcloud watson assistant list
ibmcloud watson assistant create --name "My Assistant"
ibmcloud watson assistant delete --assistant-id ASSISTANT_ID

# Watson Language Translator
ibmcloud resource service-instance-create my-translator language-translator lite us-south
ibmcloud watson language-translator list-models
ibmcloud watson language-translator translate --text "Hello world" --model-id en-es
ibmcloud watson language-translator identify --text "Hola mundo"

# Watson Natural Language Understanding
ibmcloud resource service-instance-create my-nlu natural-language-understanding lite us-south
ibmcloud watson natural-language-understanding analyze --text "IBM is an American multinational technology company" --features categories,concepts,entities
ibmcloud watson natural-language-understanding analyze-url --url https://www.ibm.com --features categories,concepts

# Watson Speech to Text
ibmcloud resource service-instance-create my-stt speech-to-text lite us-south
ibmcloud watson speech-to-text recognize --audio audio-file.wav
ibmcloud watson speech-to-text list-models

# Watson Text to Speech
ibmcloud resource service-instance-create my-tts text-to-speech lite us-south
ibmcloud watson text-to-speech synthesize --text "Hello world" --accept audio/wav --output hello.wav
ibmcloud watson text-to-speech list-voices

# Watson Visual Recognition
ibmcloud resource service-instance-create my-vr visual-recognition lite us-south
ibmcloud watson visual-recognition classify --images-file image.jpg
ibmcloud watson visual-recognition detect-faces --images-file face.jpg

# Watson Machine Learning
ibmcloud resource service-instance-create my-wml pm-20 lite us-south
ibmcloud watson-ml store model-create --type scikit-learn-0.20 --name my-model --runtime scikit-learn-0.20-py3 --file model.pkl
ibmcloud watson-ml store model-list
ibmcloud watson-ml score model-score --model-id MODEL_ID --deployment-id DEPLOYMENT_ID --input '{"fields": ["AGE", "SEX"], "values": [[30, "F"]]}'

Data & Analytics

# Db2 Warehouse
ibmcloud resource service-instance-create my-db2 db2wh flex-one us-south
ibmcloud resource service-key-create my-db2-key Manager --instance-name my-db2
ibmcloud cdb deployment-create --name my-db2 --version 11.5 --adminpassword password --members 1 --storage 100 --cpu 4 --memory 16

# Cloud Pak for Data
ibmcloud cpd service-instance-create my-cpd --zone us-south-1 --version 4.0.0
ibmcloud cpd service-instance-list
ibmcloud cpd service-instance-get my-cpd

# Analytics Engine
ibmcloud resource service-instance-create my-ae ibmanalyticsengine standard us-south
ibmcloud ae clusters
ibmcloud ae cluster-create --name my-cluster --version 3.2 --hardware-profile-size Small --num-compute-nodes 3 --software-package-name ambari
ibmcloud ae cluster-get --cluster-id CLUSTER_ID
ibmcloud ae cluster-resize --cluster-id CLUSTER_ID --num-compute-nodes 5

# SQL Query
ibmcloud resource service-instance-create my-sql-query sql-query lite us-south
ibmcloud sql query execute "SELECT * FROM cos://us-south/my-bucket/my-file.parquet STORED AS PARQUET"
ibmcloud sql query jobs
ibmcloud sql query job JOB_ID

# DataStage
ibmcloud resource service-instance-create my-datastage datastage-entry us-south
ibmcloud datastage connections
ibmcloud datastage connection-create --name my-connection --type db2 --properties '{"database": "my_db", "username": "user", "password": "pass"}'
ibmcloud datastage flows
ibmcloud datastage flow-run --name my-flow

# Streaming Analytics
ibmcloud resource service-instance-create my-streaming streaming-analytics lite us-south
ibmcloud streaming service-credentials my-streaming
ibmcloud streaming jobs
ibmcloud streaming job-submit --file my-job.spl
ibmcloud streaming job-status JOB_ID

Security & Networking

IAM & Security

# Identity and Access Management
ibmcloud iam users
ibmcloud iam user-policies user@example.com
ibmcloud iam user-policy-create user@example.com --roles Viewer --service-name cloud-object-storage
ibmcloud iam user-policy-delete USER_ID POLICY_ID

# Service IDs
ibmcloud iam service-ids
ibmcloud iam service-id-create my-service-id -d "My service ID"
ibmcloud iam service-id-delete SERVICE_ID
ibmcloud iam service-id-policies SERVICE_ID
ibmcloud iam service-id-policy-create SERVICE_ID --roles Writer --service-name cloud-object-storage

# Access groups
ibmcloud iam access-groups
ibmcloud iam access-group-create my-access-group
ibmcloud iam access-group-users my-access-group
ibmcloud iam access-group-user-add user@example.com my-access-group
ibmcloud iam access-group-policies my-access-group
ibmcloud iam access-group-policy-create my-access-group --roles Administrator --service-name cloud-object-storage

# API keys
ibmcloud iam api-keys
ibmcloud iam api-key-create my-api-key -d "My API key"
ibmcloud iam api-key-delete API_KEY_UUID
ibmcloud iam api-key-update API_KEY_UUID -n "New name"

# Authorization policies
ibmcloud iam authorization-policies
ibmcloud iam authorization-policy-create cloud-object-storage cloud-object-storage --source-service-instance-name my-instance --target-service-instance-name my-target-instance --roles Reader

# Security and Compliance Center
ibmcloud scc provider-instances
ibmcloud scc provider-instance-create --name my-instance --provider cloud-object-storage --attributes '{"bucket": "my-bucket"}'
ibmcloud scc scans
ibmcloud scc scan-run --provider-instance-id INSTANCE_ID
ibmcloud scc scan-results SCAN_ID

Networking Services

# Direct Link
ibmcloud dl gateways
ibmcloud dl gateway-create --name my-gateway --speed 1000 --type connect --port-id PORT_ID
ibmcloud dl gateway-delete my-gateway
ibmcloud dl locations
ibmcloud dl offering-type locations --offering-type dedicated

# Transit Gateway
ibmcloud tg gateways
ibmcloud tg gateway-create --name my-tg --location us-south
ibmcloud tg gateway-delete my-tg
ibmcloud tg connections --gateway my-tg
ibmcloud tg connection-create --gateway my-tg --name my-connection --network-type vpc --network-id VPC_ID

# DNS Services
ibmcloud dns instances
ibmcloud dns instance-create --name my-dns --resource-group-id GROUP_ID
ibmcloud dns zones --instance INSTANCE_ID
ibmcloud dns zone-create --instance INSTANCE_ID --name example.com --description "My domain"
ibmcloud dns resource-records --instance INSTANCE_ID --zone ZONE_ID
ibmcloud dns resource-record-create --instance INSTANCE_ID --zone ZONE_ID --type A --name www --data "1.2.3.4"

# Load Balancer
ibmcloud is load-balancers
ibmcloud is load-balancer-create my-lb --subnet SUBNET_ID --family application
ibmcloud is load-balancer-listeners my-lb
ibmcloud is load-balancer-listener-create my-lb --port 80 --protocol http --default-pool POOL_ID
ibmcloud is load-balancer-pools my-lb
ibmcloud is load-balancer-pool-create my-lb --algorithm round_robin --protocol http --health-delay 5 --health-retries 2 --health-timeout 2 --health-type http
ibmcloud is load-balancer-pool-member-add my-lb POOL_ID --port 80 --target INSTANCE_ID:NIC_ID

# Certificate Manager
ibmcloud resource service-instance-create my-certs cloudcerts free us-south
ibmcloud cert-manager certificates
ibmcloud cert-manager certificate-order --name my-cert --domains example.com --dns-provider classic-infrastructure
ibmcloud cert-manager certificate-get CERT_ID
ibmcloud cert-manager certificate-delete CERT_ID

DevOps & Automation

Toolchain & CI/CD

# Toolchains
ibmcloud dev toolchain-list
ibmcloud dev toolchain-create --name my-toolchain --template https://github.com/open-toolchain/simple-toolchain
ibmcloud dev toolchain-delete my-toolchain
ibmcloud dev toolchain-get my-toolchain

# Tool integrations
ibmcloud dev tool-integration-list --toolchain my-toolchain
ibmcloud dev tool-integration-create --toolchain my-toolchain --type github --parameters '{"repo_url": "https://github.com/my/repo"}'
ibmcloud dev tool-integration-update --toolchain my-toolchain --tool-integration-id INTEGRATION_ID --parameters '{"repo_url": "https://github.com/my/new-repo"}'

# Continuous Delivery
ibmcloud dev pipeline-list --toolchain my-toolchain
ibmcloud dev pipeline-get --toolchain my-toolchain --pipeline-id PIPELINE_ID
ibmcloud dev pipeline-run --toolchain my-toolchain --pipeline-id PIPELINE_ID
ibmcloud dev pipeline-log --toolchain my-toolchain --pipeline-id PIPELINE_ID --job-id JOB_ID

# Terraform with IBM Cloud Schematics
ibmcloud schematics workspace list
ibmcloud schematics workspace create --file workspace.json
ibmcloud schematics workspace get --id WORKSPACE_ID
ibmcloud schematics plan --id WORKSPACE_ID
ibmcloud schematics apply --id WORKSPACE_ID
ibmcloud schematics destroy --id WORKSPACE_ID
ibmcloud schematics state list --id WORKSPACE_ID
ibmcloud schematics state pull --id WORKSPACE_ID

# Activity Tracker
ibmcloud resource service-instance-create my-at activitytracker lite us-south
ibmcloud at status
ibmcloud at config
ibmcloud at tail -f
ibmcloud at search 'START:-5MINUTES'
ibmcloud at delete --from 2021-01-01 --to 2021-12-31

Monitoring & Logging

# Log Analysis
ibmcloud resource service-instance-create my-logs logdna lite us-south
ibmcloud logging agent-status
ibmcloud logging agent-deploy --cluster my-cluster
ibmcloud logging agent-remove --cluster my-cluster
ibmcloud logging log-tail --type container
ibmcloud logging search 'ERROR' --size 10
ibmcloud logging export --log-type container --start-time 2021-01-01 --end-time 2021-01-02 --output my-logs.json

# Monitoring
ibmcloud resource service-instance-create my-monitoring sysdig-monitoring lite us-south
ibmcloud monitoring agent-status --cluster my-cluster
ibmcloud monitoring agent-deploy --cluster my-cluster
ibmcloud monitoring agent-remove --cluster my-cluster
ibmcloud monitoring dashboard-list
ibmcloud monitoring dashboard-get DASHBOARD_ID
ibmcloud monitoring alert-list
ibmcloud monitoring alert-create --name "High CPU" --condition 'cpu.used.percent > 90' --severity critical
ibmcloud monitoring alert-delete ALERT_ID

# Event Streams
ibmcloud resource service-instance-create my-kafka eventstreams standard us-south
ibmcloud event-streams topics --instance my-kafka
ibmcloud event-streams topic-create my-topic --partitions 3 --retention-hours 24 --instance my-kafka
ibmcloud event-streams topic-delete my-topic --instance my-kafka
ibmcloud event-streams topic-produce my-topic --value "Hello World" --instance my-kafka
ibmcloud event-streams topic-consume my-topic --from-beginning --instance my-kafka

# App Configuration
ibmcloud resource service-instance-create my-app-config appconfiguration lite us-south
ibmcloud app-config list --instance my-app-config
ibmcloud app-config feature-create --name dark-mode --type BOOLEAN --value true --instance my-app-config
ibmcloud app-config feature-get dark-mode --instance my-app-config
ibmcloud app-config feature-update dark-mode --value false --instance my-app-config
ibmcloud app-config segment-create --name premium-users --rules 'email contains "@company.com"' --instance my-app-config
ibmcloud app-config segment-target premium-users dark-mode --value true --instance my-app-config