1

I'm looking at: CircleCI Orb for kubernetes

Whats the point of this? Whats the benefit of an orb which is a CircleCI specific feature rather than say a bash function/script (which is more interoperable/common)?

Seems like unnecessary lockin, but maybe I'm just being naive here?

1

Let me answer each your question in parts.

What the point is?

As per Orbs Introduction:

orbs are shareable packages of configuration elements, including jobs, commands, and executors. CircleCI provides certified orbs, along with 3rd-party orbs authored by CircleCI partners

The advantages of this approach are that an authorized package of jobs, commands, and executors is offered.

Assuming hundreds of orbs, it looks like a community-approved plugin/addon ecosystem. E.g. Ansible roles or Jenkins plugins or Wordpress plugins

orbs vs shell functions/script

Since orb packages:

then it can hardly be replaced by a simple combinations of shell commands/functions.

Seems like unnecessary lockin?

As for lock-in concerns: you are right.

It looks like lock-in. And it is lock-in.

But as I know, there isn't any portable solution than can be easily migrated from one CI/CD system to another. E.g. try to convert .gitlab-ci.yml to travis.yml.

But lock-in's, as usual, tend to give you an advantage in speed or ease of deployment.

Portability

Since there are four executor types (docker, machine, windows and macos), it gives you more portable and cross-platform approach.

2
  • 1
    Seems like still a majority of 'orbs' could be instead using bash functions - and only use orbs where needed. Also I don't think the "authorized" is an advantage here - could easily just be a git repo in which case you get the same set of advantage, in fact I think this is a disadvantage as it's centralized. Apr 29 '20 at 9:19
  • You are right. I suppose, importance of "authorizing" depends on CTO's opinions.
    – Yasen
    Apr 30 '20 at 8:25
0

orbs can help you saving a lot of time and from lots of configurations hassles in circle ci configuration. orbs provides extra functionality in your build pipeline with its pre-configured properties.

suppose, you want to copy your build artifact to s3 bucket from circle build environment. to achieve that goal without orbs, you need to install awscli and then set environment variables for iam access key id, secret access key, region. but with orbs you can import the s3 copy functionality in build pipeline and provide iam key pairs and region value into that orb function. thus it helps you to use pre-existing templates with certain functionalities in build environment. same goes to k8s deployment by using kubectl from k8s orb without installing kubectl in circle pipeline.

2
  • You have made no mention of the comparison to using bash for this. Jun 19 '20 at 10:16
  • using of bash was meant to install and configure awscli comparing to s3 orb. using various combination of certified orbs can also save time by not requiring bash functions.
    – chaks
    Jun 19 '20 at 14:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.