deis / builder

Git server and application builder for Deis Workflow
https://deis.com
MIT License
40 stars 41 forks source link

git pushes never finish #39

Closed arschles closed 8 years ago

arschles commented 8 years ago

Here's what a git push looks like:

core@micro-kube ~/example-go $ git push deis master
The authenticity of host '[10.3.0.197]:2222 ([10.3.0.197]:2222)' can't be established.
RSA key fingerprint is 85:94:7f:63:f6:53:0c:15:86:f3:50:1d:60:f0:32:27.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[10.3.0.197]:2222' (RSA) to the list of known hosts.
Counting objects: 165, done.
Compressing objects: 100% (151/151), done.
Writing objects: 100% (165/165), 3.02 MiB | 11.00 KiB/s, done.
Total 165 (delta 81), reused 0 (delta 0)
mc: Configuration written to [/var/minio-conf/config.json]. Please update your access credentials.
mc: Successfully created ‘/var/minio-conf/share’.
mc: Initialized share uploads ‘/var/minio-conf/share/uploads.json’ file.
mc: Initialized share downloads ‘/var/minio-conf/share/downloads.json’ file.
Added host ‘http://10.3.0.29:9000’ successfully.
Bucket created successfully ‘http://10.3.0.29:9000/git’.
‘luxury-gemstone.tar.gz’ -> ‘http://10.3.0.29:9000/git/home/luxury-gemstone:git-2783d643/tar’
Total: 2.97 MB, Transferred: 2.97 MB, Speed: 22.75 MB/s
stored tarfile in http://10.3.0.29:9000/git/home/luxury-gemstone:git-2783d643/tar
pod "deis-slugbuilder" created
no file
no file
no file

The issue is that the deis-slugbuilder pod is created in the default namespace, but the entire rest of the cluster runs in the deis namespace (when installed by helm) so it can't find the the minio-user secret it needs to download the tarball to build (k is an alias for kubectl):

ENG000656:builder aaronschlesinger$ k describe pod deis-slugbuilder
Name:               deis-slugbuilder
Namespace:          default
Image(s):           quay.io/deisci/slugbuilder:v2-alpha
Node:               172.17.8.100/172.17.8.100
Start Time:         Tue, 15 Dec 2015 09:16:15 -0800
Labels:             heritage=deis,version=v2-alpha
Status:             Pending
Reason:             
Message:            
IP:             
Replication Controllers:    <none>
Containers:
  deis-slugbuilder:
    Container ID:   
    Image:      quay.io/deisci/slugbuilder:v2-alpha
    Image ID:       
    State:      Waiting
      Reason:       ImageNotReady
    Ready:      False
    Restart Count:  0
    Environment Variables:
      DEBUG:    1
      TAR_URL:  http://10.3.0.29:9000/git/home/luxury-gemstone:git-2783d643/tar
      put_url:  http://10.3.0.29:9000/git/home/luxury-gemstone:git-2783d643/push
Conditions:
  Type      Status
  Ready     False 
Volumes:
  minio-user:
    Type:   Secret (a secret that should populate this volume)
    SecretName: minio-user
  default-token-uy1lp:
    Type:   Secret (a secret that should populate this volume)
    SecretName: default-token-uy1lp
Events:
  FirstSeen LastSeen    Count   From            SubobjectPath   Reason      Message
  ─────────   ────────    ───── ────            ───────────── ──────      ───────
  57s       57s     1   {scheduler }                Scheduled   Successfully assigned deis-slugbuilder to 172.17.8.100
  57s       9s      6   {kubelet 172.17.8.100}          FailedMount Unable to mount volumes for pod "deis-slugbuilder_default": secrets "minio-user" not found
  57s       9s      6   {kubelet 172.17.8.100}          FailedSync  Error syncing pod, skipping: secrets "minio-user" not found

The best solution should be to have deis-builder run deis-slugbuilder in the same namespace that it's running in, regardless of what that namespace is. That will involved somehow having deis-builder detect its namespace.