The following artifacts could not be bound...different than the other one - Fixed


#1

Hi,

Figured out my 404 problems so I thought I’d edit the post to help me with my other problem.

Need some help troubleshooting the inability to bind artifacts. I’ve looked at the other post, the github issue and still don’t really know what else to do in order to troubleshoot.

Will definitely post logs, configs, screenshots, anything that’s needed…I just need a helping hand with artifacts. I’m still a little shaky on the concept but I do understand that

  1. You add an artifact
  2. Spinnaker will deploy a “modified” version that binds your deployment “artifacts” together, which in my case is a container, and configmap.

Tony


#2

I guess I could add some more information.

What I want to do is reduce the amount of steps it requires to setup a deployment pipeline.

Currently, we rely heavily on environment variables, and some of my apps have 10s of variables. I don’t want to use Vault or anything so we basically defined each env variable in a secret (per environment), and then using the V1 Provider, add all of those secrets. PITA!

I wanted to use a Github hosted deployment manifest, config map (configmapref in the deployment manifest), and docker images hosted on Docker Hub.

I can get the manifest read from github, and deployed if I don’t bind anything but as soon as I do, it barfs.

Thanks for all your help!


#3

How are you deploying the manifest exactly? This is with the v2 provider, correct?


#4

Steve, how’s it going? Good I hope.

Thanks for jumping in on this one. I’m using the v2 provider, my manifest is in github. FYI, I’m using the “Start Manual Execution” button.

I have my configmap, deployment manifest and docker image all setup as artifacts.

I’m not sure if this is correct but this is how it breaks. As soon as I remove the 2 required artifacts below, I can deploy but none of the “settings” take place, meaning the container tag isn’t tied to the container and nothing is “versioned” together.

Thanks!

Tony


#5

One other tidbit, that might throw a wrench into the mix, I’m using istio with auto-sidecar injection. Not sure if that will impact this or not. I haven’t really found anything that says it won’t work, as most people are interested in traffic shaping and some other more advanced features well I’m just looking for a bundled deployment.


#6

Hey @tonychong – you probably don’t want to list the manifest as an artifact to bind inside the deployed manifest (the very bottom list item in Req. Artifacts To Bind). See the docs here: https://www.spinnaker.io/reference/artifacts/in-kubernetes-v2/#binding-artifacts-in-manifests


#7

Thanks @lwander I’ve must’ve read that doc 20 times and I don’t know what I’m missing. I guess my question is I have no idea how the job should be setup end to end.

I believe I understand all the concepts of what should happen, but not sure how to configure the job. Something high level would be extremely helpful.

Thanks again!

Tony


#8

I think the confusion is coming in from the fact that you want to bind the configmap when in fact you are asking spinnaker to bind a github file. Until the configmap is deployed, Spinnaker doesn’t know it’s a configmap, it just knows it’s a file in github.

If you deploy the configmap in a prior stage, you can reference it in the “req. artifacts to bind” section.


#9

@lwander Thanks for that tip. I got this working but not sure if this correct:

I also stopped trying to bind artifacts. I don’t know what my obsession with that is. By unchecking all of those bind options, this creates a configmap-v000 and adds it to the deployment manifest. Thanks alot for the advice!


#10

If you (or anyone reading) is curious how to bind the artifacts:

In the “Deploy Configmap” stage, add the configmap as an expected artifact in the “produces artifacts” section. This will only succeed if this stage produces that artifact.

In the following stage, you can then reference that configmap resource rather than the github resource, since it’s the actual configmap (not the github file) that’s being bound.