Skip to content

IBM/crossplane-provider-ibm-cloud

Repository files navigation

provider-ibm-cloud

Overview

provider-ibm-cloud is the Crossplane infrastructure provider for IBM Cloud. The provider that is built from the source code in this repository can be installed into a Crossplane control plane and adds the following new functionality:

  • Custom Resource Definitions (CRDs) that model IBM Cloud infrastructure and services (e.g. Resource Controller, IAM, etc.)
  • Controllers to provision these resources in IBM Cloud based on the users desired state captured in CRDs they create.
  • Implementations of Crossplane's portable resource abstractions, enabling IBM Cloud resources to fulfill a user's general need for cloud services.

Getting Started and Documentation

For getting started guides, installation, deployment, and administration, see our Documentation.

To use the IBM Cloud Provider you'll need an IBM Cloud account. You may sign up for a free IBM Cloud account. You'll need also an IBM Cloud CLI which needs to be installed and configured. Make sure you have a Kubernetes cluster and installed a Self-Hosted Crossplane, then:

Install IBM Cloud Provider

kubectl crossplane install provider crossplane/provider-ibm-cloud:alpha

Generate IBM Cloud API Key

Using an IBM Cloud account with permissions to manage IBM Cloud Services:

if [[ -z "${IBMCLOUD_API_KEY}" ]]; then
  echo "*** Generating new APIKey"
  IBMCLOUD_API_KEY=$(ibmcloud iam api-key-create provider-ibm-cloud-key -d "Key for Crossplane Provider IBM Cloud" | grep "API Key" | awk '{ print $3 }')
fi

Create a Provider Secret

kubectl create secret generic provider-ibm-cloud-secret --from-literal=credentials=${IBMCLOUD_API_KEY} -n crossplane-system

Configure the Provider

We will create the following ProviderConfig object to configure credentials for IBM Cloud Provider:

cat <<EOF | kubectl apply -f -
apiVersion: ibmcloud.crossplane.io/v1beta1
kind: ProviderConfig
metadata:
  name: ibm-cloud
spec:
  credentials:
    source: Secret
    secretRef:
      namespace: crossplane-system
      name: provider-ibm-cloud-secret
      key: credentials
  region: us-south
EOF

Next Steps

Now that you have the IBM Cloud provider configured, you can provision infrastructure. See examples for the IBM Cloud Provider.

Contributing

provider-ibm-cloud is a community driven project and we welcome contributions. See the Crossplane Contributing guidelines to get started.

Report a Bug

For filing bugs, suggesting improvements, or requesting new features, please open an issue.

Contact

Please use the following to reach members of the community:

Roadmap

provider-ibm-cloud goals and milestones will be tracked in the Crossplane repository. More information can be found in ROADMAP.md.

Governance and Owners

provider-ibm-cloud is run according to the same Governance and Ownership structure as the core Crossplane project.

Code of Conduct

provider-ibm-cloud adheres to the same Code of Conduct as the core Crossplane project.

Licensing

provider-ibm-cloud is under the Apache 2.0 license.