Skip to content

Jsonnet library specifically for Spinnaker

License

Notifications You must be signed in to change notification settings

spinnaker/sponnet

sponnet

A Jsonnet library specifically for Spinnaker.

Example

local sponnet = import 'pipeline.libsonnet';

local parameters = [
  {
    name: "image_tag",
    description: "The docker image tag to deploy",
    required: true,
  }
];

local patchKubernetesDeployment = sponnet.stages
    .patchManifest("Update deployment")
    .withAccount("my-k8s-cluster")
    .withApplication("my-app")
    .withNamespace("default")
    .withManifestName("deployment", "my-app")
    .withPatchBody([
      {
        "spec": {
          "template": {
            "spec": {
              "containers": [
                {
                  "image": "my-app-docker-image:${parameters.image_tag}",
                  "name": "app"
                }
              ]
            }
          }
        }
      }
    ]);

sponnet.pipeline()
.withParameters(parameters)
.withStages(patchKubernetesDeployment)

More examples can be found in demo

Can also be combined with a Jsonnet Terraform provider to allow the management of Spinnaker resources using Terraform.