Giter Site home page Giter Site logo

jenkins-x / jx Goto Github PK

View Code? Open in Web Editor NEW
4.5K 119.0 783.0 61.05 MB

Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton

Home Page: https://jenkins-x.io/

License: Apache License 2.0

Makefile 6.02% Go 85.39% Shell 7.43% Dockerfile 0.36% Mustache 0.80%
kubernetes cicd continuous-integration continuous-delivery accelerator openshift gitops environments pipeline devops

jx's Introduction

Jenkins X CLI

Documentation Go Report Card Releases LICENSE Slack Status codecov

jx is the modular command line CLI for Jenkins X 3.x

Commands

See the jx command reference

Issues

To track issues in this repository and all the related Plugins use these links:

Plugins

You can browse the documentation for all of the jx plugins at:

Components

Libraries

These are the modular libraries which have been refactored out of the main jenkins-x/jx repository as part of the modularisation enhancement process

jx's People

Contributors

a-roberts avatar abayer avatar agentgonzo avatar amuniz avatar angoothachap avatar ankitm123 avatar cagiti avatar carlossg avatar ccojocar avatar fiunchinho avatar garethjevans avatar hekonsek avatar hferentschik avatar i0n avatar jenkins-x-bot avatar jenkins-x-bot-test avatar jstrachan avatar jtnord avatar macox avatar markawm avatar mikecirioli avatar mrageh avatar msvticket avatar pmuir avatar polothy avatar pow-devops2020 avatar rajdavies avatar rawlingsj avatar warrenbailey avatar wbrefvem avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jx's Issues

Add command: install

Install or upgrade a JX in the current namespace

Which would clone & do the helm install/update.

We could get clever and check if the ‘init’ command is required and run that?

Also if no kubectl context we could prompt the user to create a kube cluster.

Should use this (unless in batch mode)
https://github.com/AlecAivazis/survey

To let the user know the cluster / context / namespace to be installed.

In one click can accept the defaults or use the completion to switch contexts or enter a new namespace

Add command: open

Like the ‘gofabric8 service’ command to let a use open a service URL (via annotation or

If no args are specified we could just list the urls (same as ‘get url’?)

Might be nice to add an alias ‘jx create console’ for ‘jx open Jenkins’?

how to view apps / versions / environment versions etc

right now we have a way to view the pipelines in jenkins:

jx get pipeline

and a way to view the versions + pods of each app in each environment:

jx get version

but no way to just list the apps folks are working on (maybe with their latest version + date?).

Also there's no way to view all the versions of an app.

So maybe jx get app should show a list of apps and their version?

Maybe then jx get version foo would list the versions of app foo?

add command: jx trigger nameOfPipeline

it would be nice to have a command line that can be used to trigger a pipeline build on the current jenkins.

Something like...

$ jx trigger foo
Pipeline foo has started

Maybe if no pipeline name is specified and there are > 1 pipelines then we could show a combo box list of options to select using the survey stuff - like this code: https://github.com/jstrachan/jx/blob/033629a9e2c565fb887b61f2d9305479abf44a06/pkg/auth/config.go#L175-L184

e.g.

$ jx trigger 
Please select the pipeline to trigger
-> [x]: pipeline1
   [ ]: pipeline2
   [ ]: pipeline3

`jx` does not discover some github orgs I could create repos into

Why doesn't jx create environment propose me the cloudbeers github org?

$ jx create environment
? Name: production
? Label: Production
? Namespace: ecommerce-production
? Cluster URL:
? Promotion Strategy: Auto
? Would you like to use GitOps to manage this environment? : Yes
? Would you like to create a new Git repository to store this Environments source code? : Yes
Using git provider GitHub at github.com
? Do you wish to use cyrille-leclerc as the git user name? Yes


About to create a repository on server github.com with user cyrille-leclerc
? Which organisation do you want to use?
  CloudBees-community
❯ cyrille-leclerc
  jmxtrans

add command: get run

to be able to list all the current pipeline runs in the jenkins server.

So kinda like the jx get pipeline command but listing the jobs in the current jenkins server.

Might be nice to list different things like:

  • list runs for a given pipeline name
  • list active pipeline runs
  • list last / failed runs?

`jx promote` should verify the version exists

to avoid either trying to use helm with a version that does not exist or generating a PR against a GitOps environment.

e.g. it could use helm search and check the app + version exist (maybe doing a helm update first to ensure the latest repo indices are used).

This would catch typeos on the app name and/or version

[jx create] exposecontroller - failed to create new strategy: failed to create auto expose strategy: failed to get a domain: no node ExternalIP or LegacyHostIP found

Pipeline created by jx create spring -d web -d actuator fails

https://gist.github.com/cyrille-leclerc/0ca6f0afe349fc7258b2c2f056d06439

 helm install . --namespace staging --name example-release
NAME:   example-release
LAST DEPLOYED: Thu Feb  1 09:13:20 2018
NAMESPACE: staging
STATUS: DEPLOYED

RESOURCES:
==> v1beta1/Deployment
NAME                                 DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
example-release-demo-spring-web-app  1        1        1           0          0s

==> v1/Pod(related)
NAME                                                  READY  STATUS             RESTARTS  AGE
example-release-demo-spring-web-app-7ccf9894d7-lf794  0/1    ContainerCreating  0         0s

==> v1/Service
NAME                                 TYPE       CLUSTER-IP      EXTERNAL-IP  PORT(S)  AGE
example-release-demo-spring-web-app  ClusterIP  10.102.138.214  <none>       80/TCP   0s


NOTES:

Get the application URL by running these commands:

kubectl get ingress example-release-demo-spring-web-app

[Pipeline] sh
[demo-spring-web-app] Running shell script
+ exposecontroller --namespace staging --http
I0201 09:13:22.416755     504 exposecontroller.go:58] Using build: '2.3.34'
I0201 09:13:22.444624     504 config.go:20] No /etc/exposecontroller/config.yml file found.  Will try to figure out defaults
I0201 09:13:22.444735     504 exposecontroller.go:145] Running in : `staging`
I0201 09:13:22.447659     504 auto.go:32] Using exposer strategy: ingress
F0201 09:13:22.450798     504 exposecontroller.go:148] failed to create new strategy: failed to create auto expose strategy: failed to get a domain: no node ExternalIP or LegacyHostIP found

[jx import] Makefile missing when using `jx import`

jx importdoes not create the Makefile charts/<MY_APP>/Makefile.

See cloudbeers/draft-spring-boot-app@90e95e2

See https://gist.github.com/cyrille-leclerc/f82afdd129b4516e6f84e0e7a4e5a860

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.388 s
[INFO] Finished at: 2018-02-01T09:20:19+00:00
[INFO] Final Memory: 17M/25M
[INFO] ------------------------------------------------------------------------
[Pipeline] }
[Pipeline] // container
[Pipeline] dir
Running in /home/jenkins/workspace/raft-spring-boot-app_master-UYE7LYZTRFK2QPXLTMX2XRNZQF2OAOQU5YJA6IJXVYDFB3ZANCRQ/charts/draft-spring-boot-app
[Pipeline] {
[Pipeline] container
[Pipeline] {
[Pipeline] sh
[draft-spring-boot-app] Running shell script
+ make tag
make: *** No rule to make target `tag'.  Stop.
[Pipeline] }
[Pipeline] // container
[Pipeline] }
[Pipeline] // dir
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Deploy Staging)
Stage 'Deploy Staging' skipped due to earlier failure(s)

`minikube startup` hangs on "Starting VM..."

Problem Description

minikube start hangs on "Starting VM...".

When adding verbose logs, minikube start -v=10 hangs on Error dialing TCP: dial tcp 192.168.64.7:22: getsockopt: operation timed out.

See detailed logs below.

Workaround

  • Kill the minikube start command
  • Verify that there are multiple entries name=minikube in /private/var/db/dhcpd_leases`
  • Backup dhcpd_leases: sudo cp /private/var/db/dhcpd_leases /private/var/db/dhcpd_leases.save
  • Edit dhcpd_leases and delete all the name=minikube entries except the last entry (maybe all the entries can be deleted)
  • Start minikube: minikube start -v=10
  • If startup fails with Temporary Error: Could not find an IP address for *:*:*:*:*:*, then follow workaround https://github.com/jenkins-x/jx#minkube-and-hyperkit-could-not-find-an-ip-address
  • Verify that Kubernetes successfully started up with minikube status

minikube start hang detailed logs

$ minikube start -v=10

Aliases:
map[string]string{}
Override:
map[string]interface {}{"v":"10"}
PFlags:
map[string]viper.FlagValue{"bootstrapper":viper.pflagValue{flag:(*pflag.Flag)(0xc420164780)}, "feature-gates":viper.pflagValue{flag:(*pflag.Flag)(0xc420211040)}, "memory":viper.pflagValue{flag:(*pflag.Flag)(0xc4202103c0)}, "cache-images":viper.pflagValue{flag:(*pflag.Flag)(0xc4202110e0)}, "disable-driver-mounts":viper.pflagValue{flag:(*pflag.Flag)(0xc420210140)}, "extra-config":viper.pflagValue{flag:(*pflag.Flag)(0xc420211180)}, "xhyve-disk-driver":viper.pflagValue{flag:(*pflag.Flag)(0xc420210780)}, "mount-string":viper.pflagValue{flag:(*pflag.Flag)(0xc4202100a0)}, "profile":viper.pflagValue{flag:(*pflag.Flag)(0xc420164320)}, "cpus":viper.pflagValue{flag:(*pflag.Flag)(0xc420210460)}, "disk-size":viper.pflagValue{flag:(*pflag.Flag)(0xc420210500)}, "iso-url":viper.pflagValue{flag:(*pflag.Flag)(0xc4202101e0)}, "kubernetes-version":viper.pflagValue{flag:(*pflag.Flag)(0xc420210e60)}, "mount":viper.pflagValue{flag:(*pflag.Flag)(0xc4200b3b80)}, "network-plugin":viper.pflagValue{flag:(*pflag.Flag)(0xc420210fa0)}, "nfs-share":viper.pflagValue{flag:(*pflag.Flag)(0xc420210820)}, "docker-env":viper.pflagValue{flag:(*pflag.Flag)(0xc420210960)}, "docker-opt":viper.pflagValue{flag:(*pflag.Flag)(0xc420210a00)}, "host-only-cidr":viper.pflagValue{flag:(*pflag.Flag)(0xc4202105a0)}, "insecure-registry":viper.pflagValue{flag:(*pflag.Flag)(0xc420210d20)}, "kvm-network":viper.pflagValue{flag:(*pflag.Flag)(0xc4202106e0)}, "nfs-shares-root":viper.pflagValue{flag:(*pflag.Flag)(0xc4202108c0)}, "registry-mirror":viper.pflagValue{flag:(*pflag.Flag)(0xc420210dc0)}, "apiserver-names":viper.pflagValue{flag:(*pflag.Flag)(0xc420210b40)}, "dns-domain":viper.pflagValue{flag:(*pflag.Flag)(0xc420210c80)}, "hyperv-virtual-switch":viper.pflagValue{flag:(*pflag.Flag)(0xc420210640)}, "keep-context":viper.pflagValue{flag:(*pflag.Flag)(0xc4200b2aa0)}, "vm-driver":viper.pflagValue{flag:(*pflag.Flag)(0xc420210320)}, "apiserver-ips":viper.pflagValue{flag:(*pflag.Flag)(0xc420210be0)}, "apiserver-name":viper.pflagValue{flag:(*pflag.Flag)(0xc420210aa0)}, "container-runtime":viper.pflagValue{flag:(*pflag.Flag)(0xc420210f00)}}
Env:
map[string]string{}
Key/Value Store:
map[string]interface {}{}
Config:
map[string]interface {}{"ingress":true}
Defaults:
map[string]interface {}{"log_dir":"", "wantupdatenotification":true, "reminderwaitperiodinhours":24, "wantreporterror":false, "v":"0", "alsologtostderr":"false", "wantreporterrorprompt":true, "wantkubectldownloadmsg":true, "wantnonedriverwarning":true, "showdriverdeprecationnotification":true}
Starting local Kubernetes v1.9.0 cluster...
Starting VM...
Found binary path at /usr/local/bin/docker-machine-driver-hyperkit
Launching plugin server for driver hyperkit
Plugin server listening at address 127.0.0.1:60298
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
(minikube) Calling .GetState
(minikube) Calling .Start
(minikube) Using UUID 029e61c2-072c-11e8-9058-784f4386325d
(minikube) Generated MAC 3e:31:91:e5:fa:f9
(minikube) Starting with cmdline: loglevel=3 user=docker console=ttyS0 console=tty0 noembed nomodeset norestore waitusb=10 systemd.legacy_systemd_cgroup_controller=yes base host=minikube
(minikube) Calling .GetConfigRaw
(minikube) Calling .DriverName
Waiting for SSH to be available...
Getting to WaitForSSH function...
(minikube) Calling .GetSSHHostname
(minikube) Calling .GetSSHPort
(minikube) Calling .GetSSHKeyPath
(minikube) Calling .GetSSHKeyPath
(minikube) Calling .GetSSHUsername
Using SSH client type: native
&{{{<nil> 0 [] [] []} docker [0x1437850] 0x1437800  [] 0s} 192.168.64.7 22 <nil> <nil>}
About to run SSH command:
exit 0
Error dialing TCP: dial tcp 192.168.64.7:22: getsockopt: operation timed out

Sample /private/var/db/dhcpd_leases with duplicate name=minikube entries

{
	name=minikube
	ip_address=192.168.64.7
	hw_address=1,3e:31:91:e5:fa:f9
	identifier=1,3e:31:91:e5:fa:f9
	lease=0x5a759bb8
}
{
	name=minikube
	ip_address=192.168.64.6
	hw_address=1,a:ed:cc:a3:ec:23
	identifier=1,a:ed:cc:a3:ec:23
	lease=0x5a73595b
}
{
	name=minikube
	ip_address=192.168.64.5
	hw_address=1,b2:28:de:4d:c4:81
	identifier=1,b2:28:de:4d:c4:81
	lease=0x5a73483d
}
{
	name=minikube
	ip_address=192.168.64.4
	hw_address=1,1a:14:23:fa:30:4f
	identifier=1,1a:14:23:fa:30:4f
	lease=0x5a72e150
}
{
	name=minikube
	ip_address=192.168.64.3
	hw_address=1,f6:77:5:d1:af:31
	identifier=1,f6:77:5:d1:af:31
	lease=0x5a7247f9
}
{
	name=minikube
	ip_address=192.168.64.2
	hw_address=1,1e:18:2b:6:2e:e7
	identifier=1,1e:18:2b:6:2e:e7
	lease=0x5a722f5e
}

jx logs to be able to tail a pipeline run log?

we have a command jx logs foo where foo is the name of a Deployment and it tails the log.

It would be nice to have a similar command to tail the logs of a jenkins job run.

I wonder if we should reuse logs but allow a prefix on a name? e.g.

# tail the logs of a deployment
jx logs foo

# tail the logs of a build run
jx logs pipeline/foo
jx logs pipeline#4

`jx create spring` and `jx import` assume that the "staging" environment exists

jx create spring and jx import assume that the "staging" environment exists but it's not always the case, at least if "create team" has not been invoked

https://github.com/jenkins-x/jx/blob/v1.0.34/pkg/jx/cmd/import.go#L97

...
stage('Deploy Staging') {
      steps {
        dir ('./charts/%s') {
          container('maven') {
            sh 'make release'
            sh 'helm install . --namespace staging --name example-release'
            sh 'exposecontroller --namespace staging --http' // until we switch to git environments where helm hooks will expose services
          }
        }
      }
    }
...

pipeline failure "Could not find artifact org.springframework.boot:spring-boot-starter-parent:pom:2.0.0.RC1"

Problem

By default, JenkinsX's built-in Nexus repository only mirrors Maven Central. When building spring boot applications, we need https://repo.spring.io/milestone and https://repo.spring.io/snapshot.

https://gist.github.com/cyrille-leclerc/f09adbab099a71656d6f751cfc099d4d

Workaround

Update Nexus config and declare mirrors for https://repo.spring.io/milestone and https://repo.spring.io/snapshot .

Error message

Error in the pipeline build logs

Picked up _JAVA_OPTIONS: -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Dsun.zip.disableMemoryMapping=true -XX:+UseParallelGC -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Xms10m -Xmx192m
[INFO] Scanning for projects...
[INFO] Downloading: http://jenkins-x-sonatype-nexus:8081/repository/maven-public/org/springframework/boot/spring-boot-starter-parent/2.0.0.RC1/spring-boot-starter-parent-2.0.0.RC1.pom
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for com.cloudbees.test.kubernetes.draft:draft-spring-boot-app:0.0.1-SNAPSHOT: Could not find artifact org.springframework.boot:spring-boot-starter-parent:pom:2.0.0.RC1 in nexus (http://jenkins-x-sonatype-nexus:8081/repository/maven-public/) and 'parent.relativePath' points at no local POM @ line 14, column 10
 @ 
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project com.cloudbees.test.kubernetes.draft:draft-spring-boot-app:0.0.1-SNAPSHOT (/home/jenkins/workspace/raft-spring-boot-app_master-UYE7LYZTRFK2QPXLTMX2XRNZQF2OAOQU5YJA6IJXVYDFB3ZANCRQ/pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM for com.cloudbees.test.kubernetes.draft:draft-spring-boot-app:0.0.1-SNAPSHOT: Could not find artifact org.springframework.boot:spring-boot-starter-parent:pom:2.0.0.RC1 in nexus (http://jenkins-x-sonatype-nexus:8081/repository/maven-public/) and 'parent.relativePath' points at no local POM @ line 14, column 10 -> [Help 2]

add a command to upgrade kubectl/draft/helm

it would be nice to be able to auto upgrade jx and the associated tools (kubectl, helm, draft and maybe minikube too).

It could maybe list all the versions of the main tools including jx and let the user pick which ones to upgrade (defaulting to them all?)

jx install cannot find tiller when installing on Minkube or Docker for Mac

Ive installed Docker for Mac CD version 18.02.0-ce-rc2-mac51 (22446) and started Kubernetes from it.

pounder:~ jdumay$ jx install
Lets set up a git username and API token to be able to perform CI / CD

? Do you wish to use i386 as the GitHub username for CI/CD pipelines: Yes
Cloning the Jenkins X cloud environments repo to /Users/jdumay/.jenkins-x/cloud-environments
Counting objects: 200, done.
Compressing objects: 100% (42/42), done.
Total 200 (delta 31), reused 53 (delta 22), pack-reused 136
helm repo add jenkins-x http://chartmuseum.build.cd.jenkins-x.io
"jenkins-x" has been added to your repositories
rm -rf secrets.yaml.dec
helm repo add jenkins-x http://chartmuseum.build.cd.jenkins-x.io
"jenkins-x" has been added to your repositories
helm repo update
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "jenkins-x" chart repository
...Successfully got an update from the "incubator" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈ Happy Helming!⎈ 
helm install jenkins-x/jenkins-x-platform --name jenkins-x -f ./myvalues.yaml -f ./secrets.yaml --version 0.0.43 
Error: could not find tiller
make: *** [install] Error 1
Error: Command failed  make install
error: exit status 2
pounder:~ jdumay$ which tiller
/usr/local/bin/tiller

For reference I have the following installed via brew

pounder:~ jdumay$ brew list
docker-machine	gettext		icu4c		kubernetes-cli	libev		watch
draft		git		jx		kubernetes-helm	node

add jx delete env

which if a name is specified its deleted.

Maybe if no names are specified we could view a selection list where folks can pick which environments to delete?

Folks could also use --all to delete all environments like kubectl delete foo

Add a `jx reset` command

This would be a preferred option to minikube delete when working locally as docker images will remain cached in the VM, therefore providing a quicker "start from scratch" experience.

This command should:

helm del --purge jenkins-x
rm -rf ~/.jx
rm -rf ~/.jenkins-x # <-- actually this needs to be moved to ~/.jx instead

Perhaps an extra flag could indicate to remove ALL parts that include draft and tiller, e.g.

helm del --purge draft
rm -rf ~/.draft
helm reset

Anything else that needs to be cleaned up?

'User name' unspecified during create cluster

During jx create cluster minikube, the following prompt is issued:

To be able to create a repository on GitHub we need an API Token
Please click this URL https://github.com/settings/tokens/new?scopes=repo,read:user,user:email,write:repo_hook

Then COPY the token and enter in into the form below:

? User name:

No clarification is given as to which 'User name' specifically is required to be entered.

The Docker registry should support authentication

The pipeline to deploy to the Docker Registry does not seem to support authentication of the docker push.

We need to support a "Bring Your Own Docker Registry" model with authentication.

https://github.com/jenkins-x/jx/blob/v1.0.34/pkg/jx/cmd/import.go#L86

        container('maven') {
          sh 'mvn clean deploy'
          sh "docker build -f Dockerfile.release -t $JENKINS_X_DOCKER_REGISTRY_SERVICE_HOST:$JENKINS_X_DOCKER_REGISTRY_SERVICE_PORT/$ORG/$APP_NAME:\$(cat VERSION) ."
          sh "docker push $JENKINS_X_DOCKER_REGISTRY_SERVICE_HOST:$JENKINS_X_DOCKER_REGISTRY_SERVICE_PORT/$ORG/$APP_NAME:\$(cat VERSION)"
        }

Add command: init

To check for all the typical programs on the PATH like kubectl, draft, helm and for those that are missing install them.

On macOS we should default to using brew to install them (maybe installing brew too if it’s not installed?)

Then we should setup helm & draft with jx repos

Add command: create cluster

Which if no arg specified for kind should prompt for kind: minikube, aks, eks, gke

Once the cluster is up run the ‘install’ command

improve `jx get pipeline` to display nicer information

so its a bit more like the jenkins console in terms of:

  • display last Run number, status and duration
  • dealing with Folders and Pipelines in folders
  • dealing with MultiBranchProject jobs with branches + PRs
  • view if a pipeline is being built and the run number if its building along with success/fail/elapsed time

add: jx create cluster eks

lets create a jx create cluster eks command that spins up an EKS cluster on AWS and then installs Jenkins X

"jx create cluster minikube" fails on mac with git 2.16.1

Error description

jx create cluster minikube fails on MacOSX with

See https://gist.github.com/cyrille-leclerc/175fa79ea2055a588c7b41d1f4fc1f2f

...

Installing pack repo from https://github.com/jenkins-x/draft-repo
Error: Unable to update checked out version: exit status 128
Error: exit status 1
Error: Command failed  draft pack-repo add https://github.com/jenkins-x/draft-repo
draft init failed: exit status 1

.draft folder content: https://gist.github.com/cyrille-leclerc/175fa79ea2055a588c7b41d1f4fc1f2f#file-1-tree-dot-draft-log

Environment

# https://github.com/jenkins-x/jx/releases/tag/v1.0.26
sha1sum jx
f5b520268870c5e639063bfde1fbf3fc7a3c040a  jx
draft version
Client: &version.Version{SemVer:"v0.9.0", GitCommit:"6a6b387d84cc7530b45bfff704bd1d71e36082ed", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v0.9.0", GitCommit:"6a6b387d84cc7530b45bfff704bd1d71e36082ed", GitTreeState:"clean"}
helm version
Client: &version.Version{SemVer:"v2.8.0", GitCommit:"14af25f1de6832228539259b821949d20069a222", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.8.0", GitCommit:"14af25f1de6832228539259b821949d20069a222", GitTreeState:"clean"}
kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.2", GitCommit:"5fa2db2bd46ac79e5e00a4e6ed24191080aa463b", GitTreeState:"clean", BuildDate:"2018-01-18T21:12:46Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"", Minor:"", GitVersion:"v1.9.0", GitCommit:"925c127ec6b946659ad0fd596fa959be43f0cc05", GitTreeState:"clean", BuildDate:"2018-01-26T19:04:38Z", GoVersion:"go1.9.1", Compiler:"gc", Platform:"linux/amd64"}
minikube version
minikube version: v0.25.0

jx create spring -d web -d actuator fails to init the git repo and complete

If I run the command in the subject, I get:

Error: could not load /Users/michaelneale/.draft/packs/github.com/jenkins-x/draft-repo/packs/java: lstat /Users/michaelneale/.draft/packs/github.com/jenkins-x/draft-repo/packs/java/charts/: no such file or directory
WARNING: Failed to run draft create in /Users/michaelneale/projects/paas/jenkins-x/gke-playing/demo due to exit status 1fatal: Not a git repository (or any of the parent directories): .git

[jx open] misleading help: service is `jenkins-x-sonatype-nexus`, not `jx-sonatype-nexus`

jx help open mentions a jx-sonatype-nexus service that does not exist, the service is jenkins-x-sonatype-nexus (aka nexus).

$ jx help open
Opens a named service in the browser.

You can use the '--url' argument to just display the URL without opening it

Usage:
  jx open [flags]

Examples:
  # Open the Nexus console in a browser
  jx open jx-sonatype-nexus

  # Print the Nexus console URL but do not open a browser
  jx open jx-sonatype-nexus -u

  # List all the service URLs
  jx open

Flags:
  -u, --url   Only displays and the URL and does not open the browser
$ jx open jx-sonatype-nexus
error: Could not find URL for service jx-sonatype-nexus in namespace default
$ jx open
Name                           URL
jenkins                        http://jenkins.default.192.168.64.7.nip.io
jenkins-x-chartmuseum          http://chartmuseum.default.192.168.64.7.nip.io
jenkins-x-docker-registry      http://docker-registry.default.192.168.64.7.nip.io
jenkins-x-kubernetes-dashboard http://kubernetes-dashboard.default.192.168.64.7.nip.io
jenkins-x-monocular-api        http://monocular.default.192.168.64.7.nip.io
jenkins-x-monocular-ui         http://monocular.default.192.168.64.7.nip.io
jenkins-x-sonatype-nexus       http://sonatype-nexus.default.192.168.64.7.nip.io

'jx create cluster minikube' should have an option for the switch.

On windows using hyper-v you likely already have some switches.

picking an arbitrary one is generally doomed to failure so the minukube option to specify the switch should be exposed.

workaround is to create the minikube with the arguments you need and then run jx install

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.