• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

armory/spinnaker-operator: Open Source Spinnaker Kubernetes Operator source code

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

armory/spinnaker-operator

开源软件地址(OpenSource Url):

https://github.com/armory/spinnaker-operator

开源编程语言(OpenSource Language):

Go 97.1%

开源软件介绍(OpenSource Introduction):

Coverage Status

Spinnaker Operator for Kubernetes

The Spinnaker Operator is a Kubernetes operator to deploy and manage Spinnaker using familiar tools. We're sharing it to let the community evaluate it and provide feedback. Please let us know what would make your life easier when installing Spinnaker! You can use GitHub issues for the time being.

Benefits of Operator

  • Stop using Halyard commands: just kubectl apply your Spinnaker configuration. This includes support for local files.
  • Expose Spinnaker to the outside world (via LoadBalancer). You can still disable that behavior if you prefer to manage ingresses and LBs yourself.
  • Deploy any version of Spinnaker. Operator is not tied to a particular version of Spinnaker.
  • Keep secrets separate from your config. Store your config in git and have an easy Gitops workflow.
  • Validate your configuration before applying it (by using kubernetes's webhook validation).
  • Store Spinnaker secrets in Kubernetes secrets.
  • Patch versions, accounts or any setting with kustomize.
  • Monitor the health of Spinnaker through kubectl.
  • Store kubeconfig inline, in Kubernetes secrets, in S3, or GCS.
  • Define Kubernetes accounts in SpinnakerAccount objects [experimental]
  • Total control over generated manifests with inline kustomization

Requirements

The validating admission controller requires:

  • Kubernetes server v1.13+
  • Admission controllers enabled (-enable-admission-plugins)
  • ValidatingAdmissionWebhook enabled in the kube-apiserver (should be the default)

Note: If you can't use the validation webhook, pass the --disable-admission-controller to the operator (like in deploy/operator/basic/deployment.yaml).

Quick Start

This is a high-level view of the commands you need to run for those who want to jump right in. More explanation can be found in the sections after this one.

# Pick a release from https://github.com/armory/spinnaker-operator/releases (or clone the repo and use the master branch for the latest development work)
$ mkdir -p spinnaker-operator && cd spinnaker-operator
$ bash -c 'curl -L https://github.com/armory/spinnaker-operator/releases/latest/download/manifests.tgz | tar -xz'
 
# Install or update CRDs cluster wide
$ kubectl apply -f deploy/crds/

# Install operator in namespace spinnaker-operator, see below if you want a different namespace
$ kubectl create ns spinnaker-operator
$ kubectl -n spinnaker-operator apply -f deploy/operator/cluster

# Update deploy/spinnaker/basic/spinnakerservice.yml to change Spinnaker's persistence bucket name to a unique name (persistentStorage.s3.bucket value)

# Install Spinnaker in "spinnaker" namespace
$ kubectl create ns spinnaker
$ kubectl -n spinnaker apply -f deploy/spinnaker/basic

# Watch the install progress, check out the pods being created too!
$ kubectl -n spinnaker get spinsvc spinnaker -w

See managing Spinnnaker

Accounts CRD (experimental)

The Spinnaker Operator introduces a new CRD for Spinnaker accounts. A SpinnakerAccount is defined in an object -- separate from the main Spinnaker config -- so creation and maintenance can easily be automated.

The long term goal is to support all accounts (providers, CI, notifications, ...), but the first implementation deals with Kubernetes accounts.

Account type Status
Kubernetes alpha

Read more at Spinnaker accounts.

Operator Installation (detailed)

Download CRDs and example manifests from the latest stable release. CRD and examples on master are unstable and subject to change, but feedback is greatly appreciated.

Step 1: Install CRDs

First, we'll install the SpinnakerService and SpinnakerAccount CRDs:

$ mkdir -p spinnaker-operator && cd spinnaker-operator
$ tar -xvf manifests.tgz .
$ kubectl apply -f deploy/crds/

Note: SpinnakerAccount CRD is optional.

Step 2: Install Operator

There are two modes for the operator:

  • Basic mode installs Spinnaker in a single namespace without validating admission webhook.
  • Cluster mode works across namespaces and requires a ClusterRole to perform validation.

The main difference between the two modes is that basic only requires a Role (vs a ClusterRole) and has no validating webhook.

Once installed, you should see a new deployment representing the operator. The operator watches for changes to the SpinnakerService objects. You can check on the status of the operator using kubectl.

Basic install (no validating webhook)

To install Operator run:

$ kubectl apply -n <namespace> -f deploy/operator/basic

namespace is the namespace where you want the operator to live and deploy to.

Cluster install

To install Operator:

  1. Decide what namespace you want to use for Operator and create that namespace. We suggest spinnaker-operator.
  2. If you pick a different namespace than spinnaker-operator, edit the namespace in deploy/operator/cluster/role_binding.yml.
  3. Run:
$ kubectl apply -n spinnaker-operator -f deploy/operator/cluster

If you use a namespace other than spinnaker-operator, replace spinnaker-operator with your namespace.

Spinnaker Installation

Once you've installed CRDs and Operator, check out examples in deploy/spinnaker/. Below, the spinnaker-namespace parameter refers to the namespace where you want to install Spinnaker. It is likely different from the operator's namespace.

Example 1: Basic Install

In deploy/spinnaker/basic/spinnakerservice.yml, change the config.persistentStorage section to point to an S3 bucket you own or use a different persistent storage. Also make sure to update the Spinnaker version to the desired version.

$ kubectl create ns <spinnaker-namespace>
$ kubectl -n <spinnaker-namespace> apply -f deploy/spinnaker/basic/spinnakerservice.yml

This configuration does not contain any connected accounts, just a persistent storage.

Example 2: Install with all parameters

You'll find a more complete example under deploy/spinnaker/complete/spinnakerservice.yml with all parameters available.

Example 3: Using Kustomize

Set your own values in deploy/spinnaker/kustomize/kustomization.yml, then:

$ kubectl create ns <spinnaker-namespace>
$ kustomize build deploy/spinnaker/kustomize/ | kubectl -n <spinnaker-namespace> apply -f -

Install Spinnaker plugins

See the Armory Operator Plugins reference and the pf4jStagePlugin Deployment Using the Armory Operator guide.

Migrate from Halyard to Operator

See how to migrate from Halyard to Spinnaker Operator.

SpinnakerService options

See all SpinnakerService options.

Uninstalling the operator

See this section.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
m3db/m3db-operator: Kubernetes operator for M3DB发布时间:2022-08-13
下一篇:
mjhea0/efk-kubernetes: logging in kubernetes发布时间:2022-08-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap