This Operator allows users to spin up Open Enterprise Spinnaker (OES) to manage deployments etc., using Openshift CRD’s. With the help of Spinnaker Services Operator, users will have the convenience and confidence of a simplified approach to execute CI/CD process with high velocity and quality deployments in all environments.

What is operator?

  • Operatorhub is a home for the kubernetes community to share software from multiple sources globally.
  • From OpsMx, we have contributed Spinnaker Operator. Spinnaker is a multi-cloud Continuous delivery platform to perform software releases with high velocity and confidence.
  • Using Spinnaker, end-users will be able to create deployment pipelines that run integration and system tests, spin up and down server groups, and monitor your rollouts.

What are the Prerequisites to download an Operator?

  • It’s mandatory to have system setup with kubernetes cluster/openshift cluster.
  • kubectl Server and Client version should be in sync.
  • Sizing of the k8s and Openshift server to be minimum of 4cores and 16gb RAM.
  • Operator Lifecycle Manager(OLM), is mandatory. This a tool which helps to manage the Operators running on the Cluster. Execute the below command to setup OLM.
    kubectl create -f https://raw.githubusercontent.com/operator-framework/operator-lifecycle-manager/master/deploy/upstream/quickstart/olm.yaml
  • Note: OLM Installation is already available on OpenShift and OKD. Any other cluster apart from OC and OKD needs OLM Installation.

Step by Step Instructions to Setup Operator

  • From OpsMx, we have contributed a simplified image which brings up the Spinnaker services.
  • To download the Operator and bring access Spinnaker, execute the steps available here
  • On the OpsMxSpinnaker Operator page, there is a Install section. Click on that to get the command for Installation. Execute the command as it provided in the document.
  • Upon, successful execution of the command. Copy the YAML content, available by clicking at the view YAML example. Create a file with any naming as per the requirement.
  • Now, execute the below command to ensure the YAML is getting deployed to your cluster.
    • kubectl create -f <FileName> -n operators
  • By doing the above you should have all the containers deployed, which is required to have Spinnaker.

Steps to Provide Spinnaker External Access

  • In this section, we will through the process to open Gate and Deck for external access. To do this for a Local environment, we need to hook into the custom service settings feature of Halyard.
  • As a part of this, we first need to specify the host in the both deck.yml and gate.yml in our default halyard deployment.
  • Navigate to the halyard pod and execute the below command to enable host settings

echo “host:” | tee \
~/.hal/default/service-settings/gate.yml \

  • Now exit from the pods to make changes to the gate and deck ports.
  • Execute the below command to list the spinnaker services running

kubectl get svc -n operators

  • From the output received by executing the above command, execute the below to edit the ports of gate and deck services.
    • kubectl edit svc spin-deck -n operators
    • kubectl edit svc spin-deck -n operators
  • Note: When the editor is open for the deck & gate change the type: from “ClusterIP” to “NodePort”

  • After making changes to the gate and deck service ports, execute the below commands to ensure, Gate and Deck are now listening for all connections, and the security groups are permitting access to newly generated NodePort.

hal config security ui edit \
–override-base-url http://spinnaker.mydomain.org:NodePort

hal config security api edit \
–override-base-url http://spinnaker.mydomain.org:NodePort

  • Now restart Spinnaker, to make sure all the above changes reflecting to access the Spinnaker Console.
    • hal deploy apply

Refer to the below video, for a detailed walkthrough of the Spinnaker Operator Setup


  • In case if you notice Spinnaker Services are not started or hal deploy apply is not bringing up the services.
  • Compare the kubectl version client/server, in the pod. In case of any differences observed, ensure to sync up the version according to the server.

If you are interested in learning more or download the operator, visit operatorhub.io.

If you need assistance, please reach us out at hello@opsmx.com.