Install Kubeform Community Edition

Kubeform comes in 2 editions: Community Edition and Enterprise Edition. Community Edition only manages Kubeform custom resources in the demo Kubernetes namespace. Enterprise Edition can be used to manage Kubeform custom resources in any Kubernetes namespace. A full features comparison between the Kubeform Community edition and Enterprise edition can be found here.

To use the Kubeform Community edition, you can grab 1 year free license from here. After that, you can issue another license for one more year. Typically we release a new version of the operator at least quarterly. So, you can just grab a new license every time you upgrade the operator.

Get a License

In this section, we are going to show you how you can get a 1 year free license for the Kubeform Community edition. You can get a license for your Kubernetes cluster by going through the following steps:

  • At first, go to AppsCode License Server and fill-up the form. It will ask for your Name, Email, the product you want to install, and your cluster ID (UID of the kube-system namespace).

  • Provide your name and email address. You can provide your personal or work email address.

  • Then, select Kubeform Community Edition in the product field.

  • Now, provide your cluster-ID. You can get your cluster ID easily by running the following command:

    $ kubectl get ns kube-system -o=jsonpath='{.metadata.uid}'
    
  • Then, you have to agree with the terms and conditions. We recommend reading it before checking the box.

  • Now, you can submit the form. After you submit the form, the AppsCode License server will send an email to the provided email address with a link to your license file.

  • Navigate to the provided link and save the license into a file. Here, we save the license to a license.txt file.

Here is a screenshot of the license form.

Kubeform Backend Overview
Fig: Kubeform License Form

You can create licenses for as many clusters as you want. You can upgrade your license any time without re-installing Kubeform by following the upgrading guide from here.

Kubeform licensing process has been designed to work with CI/CD workflow. You can automatically obtain a license from your CI/CD pipeline by following the guide from here.

Install

Kubeform operator can be installed as a Helm chart or simply as Kubernetes manifests.

Using Helm 3

Kubeform can be installed via Helm using the chart from AppsCode Charts Repository. To install, follow the steps below:

$ helm repo add appscode https://charts.appscode.com/stable/
$ helm repo update
$ helm search repo appscode/kubeform --version v2022.05.11
NAME                                                CHART VERSION APP VERSION DESCRIPTION
appscode/kubeform-provider-alicloud                 v2022.05.11    v0.5.0       Kubeform Provider Alicloud Controller by AppsCode
appscode/kubeform-provider-aws                      v2022.05.11    v0.5.0      Kubeform Provider Aws Controller by AppsCode
appscode/kubeform-provider-azurerm                  v2022.05.11    v0.5.0      Kubeform Provider Azurerm Controller by AppsCode
appscode/kubeform-provider-civo                     v2022.05.11    v0.5.0       Kubeform Provider Civo Controller by AppsCode
appscode/kubeform-provider-datadog                  v2022.05.11    v0.5.0      Kubeform Provider Datadog Controller by AppsCode
appscode/kubeform-provider-digitalocean             v2022.05.11    v0.5.0       Kubeform Provider Digitalocean Controller by Ap...
appscode/kubeform-provider-dynatrace                v2022.05.11    v0.5.0      Kubeform Provider Dynatrace Controller by AppsCode
appscode/kubeform-provider-ec                       v2022.05.11    v0.5.0       Kubeform Provider Ec Controller by AppsCode
appscode/kubeform-provider-equinixmetal             v2022.05.11    v0.5.0       Kubeform Provider Equinixmetal Controller by Ap...
appscode/kubeform-provider-google                   v2022.05.11    v0.5.0       Kubeform Provider Google Controller by AppsCode
appscode/kubeform-provider-grafana                  v2022.05.11    v0.5.0      Kubeform Provider Grafana Controller by AppsCode
appscode/kubeform-provider-hcloud                   v2022.05.11    v0.5.0       Kubeform Provider Hcloud Controller by AppsCode
appscode/kubeform-provider-ibm                      v2022.05.11    v0.5.0      Kubeform Provider Ibm Controller by AppsCode
appscode/kubeform-provider-linode                   v2022.05.11    v0.5.0       Kubeform Provider Linode Controller by AppsCode
appscode/kubeform-provider-mongodbatlas             v2022.05.11    v0.5.0       Kubeform Provider Mongodbatlas Controller by Ap...
appscode/kubeform-provider-newrelic                 v2022.05.11    v0.5.0       Kubeform Provider Newrelic Controller by AppsCode
appscode/kubeform-provider-ovh                      v2022.05.11    v0.5.0      Kubeform Provider Ovh Controller by AppsCode
appscode/kubeform-provider-pagerduty                v2022.05.11    v0.5.0      Kubeform Provider Pagerduty Controller by AppsCode
appscode/kubeform-provider-rediscloud               v2022.05.11    v0.5.0       Kubeform Provider Rediscloud Controller by Apps...
appscode/kubeform-provider-upcloud                  v2022.05.11    v0.5.0      Kubeform Provider Upcloud Controller by AppsCode
appscode/kubeform-provider-vsphere                  v2022.05.11    v0.5.0      Kubeform Provider Vsphere Controller by AppsCode
appscode/kubeform-provider-vultr                    v2022.05.11    v0.5.0      Kubeform Provider Vultr Controller by AppsCode
appscode/kubeform-provider-wavefront                v2022.05.11    v0.5.0      Kubeform Provider Wavefront Controller by AppsCode

$ helm install kubeform-provider-*** appscode/kubeform-provider-*** \
  --version v2022.05.11 \
  --namespace kubeform --create-namespace \
  --set-file kubeform-provider.license=/path/to/the/license.txt

To see the detailed configuration options, visit here.

Note: For installing Kubeform Module use below command:

$ helm install kubeform-module appscode/kubeform-module \
  --version v2022.05.11 \
  --namespace kubeform --create-namespace \
  --set-file license=/path/to/the/license.txt

To see the detailed configuration options, visit here.

Using YAML

If you prefer to not use Helm, you can generate YAMLs from Kubeform chart and deploy using kubectl. Here we are going to show the prodecure using Helm 3.

$ helm repo add appscode https://charts.appscode.com/stable/
$ helm repo update
$ helm search repo appscode/kubeform --version v2022.05.11
NAME                                                CHART VERSION APP VERSION DESCRIPTION                                       
appscode/kubeform-provider-aws                      v2022.05.11    v0.5.0  Kubeform Provider Aws Controller by AppsCode      
appscode/kubeform-provider-azurerm                  v2022.05.11    v0.5.0  Kubeform Provider Azurerm Controller by AppsCode  
appscode/kubeform-provider-digitalocean             v2022.05.11    v0.5.0 Kubeform Provider Digitalocean Controller by Ap...
appscode/kubeform-provider-equinixmetal             v2022.05.11    v0.5.0 Kubeform Provider Equinix Metal Controller by Ap...
appscode/kubeform-provider-google                   v2022.05.11    v0.5.0 Kubeform Provider Google Controller by AppsCode   
appscode/kubeform-provider-linode                   v2022.05.11    v0.5.0 Kubeform Provider Linode Controller by AppsCode   

$ helm template kubeform-provider-*** appscode/kubeform-provider-*** \
  --version v2022.05.11 \
  --namespace kubeform --create-namespace \
  --set-file kubeform-provider.license=/path/to/the/license.txt \
  --set kubeform-provider.cleaner.skip=true | kubectl apply -f -

To see the detailed configuration options, visit here.

Note: For installing Kubeform Module use below command:

$ helm template kubeform-module appscode/kubeform-module \
  --version v2022.05.11 \
  --namespace kubeform --create-namespace \
  --set-file license=/path/to/the/license.txt \
  --set cleaner.skip=true | kubectl apply -f -

To see the detailed configuration options, visit here.

Verify installation

To check if Kubeform operator pods have started, run the following command:

$ kubectl get pods --all-namespaces -l app.kubernetes.io/name=kubeform-provider --watch

NAMESPACE   NAME                                             READY   STATUS    RESTARTS   AGE
kubeform    kubeform-provider-equinixmetal-8f7bddf64-sxtrr   1/1     Running   0          12m

Once the operator pod is running, you can cancel the above command by typing Ctrl+C.