profile
viewpoint
Anand Gaitonde XenoPhex @cloudfoundry @vmware @pivotal Berkeley, CA Cloud Foundry Developer @ VMware (formerly Pivotal)

maximilien/i18n4go 263

i18n tooling for Golang

goodmustache/palm_civet 1

Human-readable byte formatter

bosh-io/stemcells-windows-index 0

Stemcell index produced by BOSH Windows team

cloudfoundry-incubator/cli-sapi 0

The official command line client for Cloud Foundry

XenoPhex/docs-cf-admin 0

A place to put documentation about how to operate your Cloud Foundry deployment using the command line tools bosh and cf

push eventcloudfoundry/uaa

Peter Chen

commit sha b6a60a742864f013feff98866f714887c56c7391

add logging to output all IDPs at test time

view details

push time in 7 minutes

push eventconcourse/concourse

Aidan Oldershaw

commit sha 805fb859db192d6ef4394e68a80289bd1b1dc114

containerd: behaviour: return exe not found error concourse/concourse#6098 doesn't work for containerd because our runtime doesn't try to detect exe not found errors. This was copied from gdn: https://github.com/cloudfoundry/guardian/blob/3da697a62154c6d1f797aede3a0fb23f2297e6cd/rundmc/runcontainerd/runcontainerd.go#L201-L221 Also, use fake iptables in the network test so I can run it on mac Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>

view details

Aidan Oldershaw

commit sha 7908bc73aaf6822d2cb8582a82b2a574a0c1d36e

testflight: add coverage for default shell fallback It's a feature that requires cooperation between worker, ATC, and fly, and is an easy thing to miss without higher-level coverage. Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>

view details

Aidan Oldershaw

commit sha 9104ed6a18089ebb7349a2e9b509e661f0bb4ff1

containerd: behaviour: fix exe not found check Should be bound to proc.Start rather than task.Exec, which doesn't execute the process Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>

view details

Aidan Oldershaw

commit sha 0b4a952e1f6f3a4871d56ea5f54a45ae84d65a53

Merge pull request #6304 from concourse/sh-fallback-containerd `fly intercept` falls back to `sh` when `bash` is missing (containerd runtime)

view details

push time in 27 minutes

delete branch concourse/concourse

delete branch : sh-fallback-containerd

delete time in 27 minutes

PR merged concourse/concourse

`fly intercept` falls back to `sh` when `bash` is missing (containerd runtime) bug misc

<!-- Hi there! Thanks for submitting a pull request to Concourse!

The title of your pull request will be used to generate the release notes. Please provide a brief sentence that describes the PR, using the imperative mood. Please refrain from adding prefixes like 'feature:', and don't include a period at the end.

Examples: "Add feature to doohickey", "Fix panic during spline reticulation"

We will edit the title if needed so don't worry about getting it perfect!

To help us review your PR, please fill in the following information. -->

What does this PR accomplish?

<!-- Choose all that apply. Also, mention the linked issue here. This will magically close the issue once the PR is merged. --> Bug Fix | Feature | Documentation

#6098 changed the behaviour of fly intercept to fallback to sh as the default command if the container doesn't have bash. However, this requires cooperation with the runtime to return a specific garden error, which containerd did not follow.

Changes proposed by this PR:

<!-- Tell the reviewer What changed, Why, and How were you able to accomplish that? -->

  • Return a garden.ExecutableNotFoundError when the executable is not found (logic copied from Guardian)
  • Add testflight coverage

Notes to reviewer:

<!-- Leave a message to whoever is going to review this PR. Mainly, pointers to review the PR, and how they can test it. -->

Contributor Checklist

<!-- Most of the PRs should have the following added to them, this doesn't apply to all PRs, so it is helpful to tell us what you did. -->

Reviewer Checklist

<!-- This section is intended for the reviewers only, to track review progress. -->

  • [ ] Code reviewed
  • [ ] Tests reviewed
  • [ ] Documentation reviewed
  • [ ] Release notes reviewed
  • [ ] PR acceptance performed
  • [ ] New config flags added? Ensure that they are added to the BOSH and Helm packaging; otherwise, ignored for the integration tests (for example, if they are Garden configs that are not displayed in the --help text).
+128 -11

0 comment

5 changed files

aoldershaw

pr closed time in 27 minutes

push eventcloudfoundry/cloud_controller_ng

Jenna Goldstrich

commit sha fd8d71cb7334787964fb97de8d1fe6058464d085

Fix org creation unit tests [#175042021] Co-authored-by: Jenna Goldstrich <jgoldstrich@pivotal.io> Co-authored-by: Carson Long <lcarson@vmware.com>

view details

push time in an hour

pull request commentconcourse/concourse

Speed up database queries by adding a `job_id` column to build image resource caches table and adding an index for ordering builds of a job

Whenever we create a new build for a check, it will delete any past builds created for that resource check and this will cascade to deleting the build_image_resource_cache for that build.

Ah, right - that makes me feel better about it!

If you are fine with it, I think it would really help with the performance of the query

It's fine with me - it seems like any alternatives also have their downsides, and I don't think a little denormalization is so scary in this particular case, given that the denormalized state is effectively immutable and the build_image_resource_caches table shouldn't ever be so massive. So I think the benefits outweigh the risks

clarafu

comment created time in 5 hours

push eventconcourse/concourse

Aidan Oldershaw

commit sha d606a5c71b5524987184c31bdad65d709283cf20

fly: set-pipeline prints pipeline name + instance vars When testing instanced pipelines, someone accidentally tried to multiple instance vars in a single flag, e.g. ``` fly sp ... -i foo=123,bar=456 ``` which actually results in the following instance vars: ``` foo: "123,bar=456" ``` This commit prints the pipeline name and pipeline instance vars to stdout before prompting the user to confirm so they know what they're setting is correct. Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>

view details

Aidan Oldershaw

commit sha 4bb6ddc1e219f8849eda68b59039978efce755d1

Merge pull request #6300 from concourse/set-pipeline-info `fly set-pipeline` prints pipeline name and instance vars

view details

push time in 5 hours

delete branch concourse/concourse

delete branch : set-pipeline-info

delete time in 5 hours

PR merged concourse/concourse

`fly set-pipeline` prints pipeline name and instance vars enhancement

<!-- Hi there! Thanks for submitting a pull request to Concourse!

The title of your pull request will be used to generate the release notes. Please provide a brief sentence that describes the PR, using the imperative mood. Please refrain from adding prefixes like 'feature:', and don't include a period at the end.

Examples: "Add feature to doohickey", "Fix panic during spline reticulation"

We will edit the title if needed so don't worry about getting it perfect!

To help us review your PR, please fill in the following information. -->

What does this PR accomplish?

<!-- Choose all that apply. Also, mention the linked issue here. This will magically close the issue once the PR is merged. --> Bug Fix | Feature | Documentation

To reduce the risk of users making mistakes when setting pipelines, fly set-pipeline prints:

$ fly -t dev sp -p some-pipeline -c pipeline.yml
... (diff)

pipeline name: some-pipeline

apply configuration? [yN]:

When there are instance vars set, it also prints those:

$ fly -t dev sp -p some-pipeline -c pipeline.yml -i foo=123 -i bar=456
... (diff)

pipeline name: some-pipeline
pipeline instance vars:
  foo: 123
  bar: 456

apply configuration? [yN]:

Changes proposed by this PR:

<!-- Tell the reviewer What changed, Why, and How were you able to accomplish that? -->

  • Print info prompt before confirming with the user

Notes to reviewer:

<!-- Leave a message to whoever is going to review this PR. Mainly, pointers to review the PR, and how they can test it. -->

Contributor Checklist

<!-- Most of the PRs should have the following added to them, this doesn't apply to all PRs, so it is helpful to tell us what you did. -->

Reviewer Checklist

<!-- This section is intended for the reviewers only, to track review progress. -->

  • [ ] Code reviewed
  • [ ] Tests reviewed
  • [ ] Documentation reviewed
  • [ ] Release notes reviewed
  • [ ] PR acceptance performed
  • [ ] New config flags added? Ensure that they are added to the BOSH and Helm packaging; otherwise, ignored for the integration tests (for example, if they are Garden configs that are not displayed in the --help text).
+46 -2

0 comment

2 changed files

aoldershaw

pr closed time in 5 hours

Pull request review commentconcourse/concourse

Group instanced pipelines on UI

 urlUpdate : Routes.Route -> Model -> ( Model, List Effect ) urlUpdate route model =     let         ( newSubmodel, subEffects ) =-            if route == model.route then+            if route == model.session.route then                 ( model.subModel, [] )              else if routeMatchesModel route model then                 SubPage.urlUpdate-                    { from = model.route+                    { from = model.session.route                     , to = route                     }                     ( model.subModel, [] )              else                 SubPage.init model.session route++        oldSession =+            model.session++        newSession =+            { oldSession | route = route }

Two good catches, thanks! Fixed

aoldershaw

comment created time in 5 hours

PR opened concourse/concourse

fly: structure: avoid recompiling in tests

Changes proposed by this PR:

Rather than re-compiling fly with the version var overridden, allow faking out the client version via an env var. This speeds up the fly integration suite (11m48s -> 6m18s) and should reduce timeout flakiness in CI on the Windows/Darwin workers.

Contributor Checklist

<!-- Most of the PRs should have the following added to them, this doesn't apply to all PRs, so it is helpful to tell us what you did. -->

Reviewer Checklist

<!-- This section is intended for the reviewers only, to track review progress. -->

  • [ ] Code reviewed
  • [ ] Tests reviewed
  • [ ] Documentation reviewed
  • [ ] Release notes reviewed
  • [ ] PR acceptance performed
  • [ ] New config flags added? Ensure that they are added to the BOSH and Helm packaging; otherwise, ignored for the integration tests (for example, if they are Garden configs that are not displayed in the --help text).
+76 -55

0 comment

6 changed files

pr created time in 5 hours

issue openedconcourse/s3-resource

Skip download but still get file metadata.

It seems if the skip_download flag is used. And you use the get resource, you do not get the metadata for the file. This could be useful as in my case i want to put an object to s3 in a previous step but want to use the metadata (url) of the file in a later step.

created time in 5 hours

issue openedconcourse/concourse

Pull Windows worker terraform config into Greenpeace

I set this up as a one-off for now, but it should be pulled into Greenpeace:

https://github.com/concourse/ci/tree/master/deployments/windows-worker

We'll probably want to parameterize the URL of the concourse.zip that it downloads and figure out when it should be deployed/updated. Maybe every time we ship? Maybe we should have a job to ship from master too, for when the worker version bumps?

note: @xtremerui noticed that if you ever RDP into the machine, Chocolatey stops working. So watch out for that. :laugh:

created time in 5 hours

push eventconcourse/concourse

Aidan Oldershaw

commit sha 0b274f3cf1e429fbc15d3b0756d506c1bd4b4e80

web: behaviour: fix "no instance vars" header padding Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>

view details

Aidan Oldershaw

commit sha 94af3c750b0ccc28931054605a81fc0972e6c2e3

web: behaviour: clear hover on route change This way, tooltips won't persist on page navigation if you don't hover anything else Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>

view details

push time in 5 hours

Pull request review commentconcourse/docker-image-resource

Added docker_config_json parameter

 LOG_FILE=${LOG_FILE:-/tmp/docker.log} SKIP_PRIVILEGED=${SKIP_PRIVILEGED:-false} STARTUP_TIMEOUT=${STARTUP_TIMEOUT:-120} +# Otherwise we get "certificate relies on legacy Common Name field"+export GODEBUG="x509ignoreCN=0"

In what user case that you need this env var? Are you seeing the error when check/in/out?

From what I understand in this resource, only the check cmd is using Go, so in/out that uses bash script should not be affected?

markround

comment created time in 6 hours

pull request commentconcourse/concourse

Speed up database queries by adding a `job_id` column to build image resource caches table and adding an index for ordering builds of a job

@aoldershaw That's a really good point! I think right now build_image_resource_caches for check builds created for resources and resource types are most likely always being deleted during the cascade delete of the build. Whenever we create a new build for a check, it will delete any past builds created for that resource check and this will cascade to deleting the build_image_resource_cache for that build. So the gc for build_image_resource_caches or the build finishing delete query should only be for builds created by a job.

I think Jamie was mostly concerned with how far we want to go with the denormalizing things for performance reasons and if we could find another way that didn't involve denormalizing. The current way the database is modelled is very much normalized, and I kind of broke that when I added the successful_build_outputs table in order to improve performance. 😅 I think it might just be something we have to get aligned with, since previously we always followed the normalized database model. I also think its fine if we want to denormalize the database in order to improve performance, as long as it makes sense and doesn't cause problems with database disk usage.

If you are fine with it, I think it would really help with the performance of the query. I've tried many different things to try to have the same result as just adding the job_id to the table, but nothing really worked because it will always need to do a join to the builds table in order to fetch the job_id. I thought about maybe partitioning the builds table by job_id, which might help with the speed of querying to the builds but that would be a huge change (and Im still not sure if I want to go that route because it does have it's tradeoffs). One minor weird thing is that if we do denormalize the job_id, now that we have builds that are tied to resource_id or resource_type_id, there will be plenty of rows in the build_image_resource_caches table that won't have the job_id column filled out. That being said, this is also the same as before when we can have one-off builds which also wouldn't have their job_id column set.

clarafu

comment created time in 6 hours

pull request commentconcourse/concourse

Group instanced pipelines on UI

If we don't want to display the instance group name in the top header, maybe it could be within the filter search bar? That way there is indication that this is just a filtered search of the dashboard?

Yup, the plan is for clicking the instance group to apply a filter like this:

review

which implies improvements to filtering (chip creation + multiple filters), which is extra work that I think is better left for a follow up PR. p.s. that's just a crappy mockup I made quickly, but Matthew made a nicer one somewhere on Figma I believe

aoldershaw

comment created time in 6 hours

issue commentcloudfoundry/bosh-acceptance-tests

ubuntu bionic running bats got an error: no implicit conversion of nil into String

Hi @beyhan , this is my concourse ci yml : https://github.com/cloudfoundry-incubator/bosh-alicloud-light-stemcell-builder/blob/master/ci/pipeline.yml and please have a check.

xiaozhu36

comment created time in 6 hours

Pull request review commentconcourse/docker-image-resource

Added docker_config_json parameter

 start_docker \ 	"${max_concurrent_uploads}" \ 	"$insecure_registries" \ 	"$registry_mirror"-log_in "$username" "$password" "$registry"+  +if [ -z "$docker_config_json" ]; then+  log_in "$username" "$password" "$registry"+else+  docker_config_json_to_file "$docker_config_json"+fi

Could you add an out test to cover this feature?

markround

comment created time in 6 hours

Pull request review commentconcourse/docker-image-resource

Added docker_config_json parameter

 Note: docker registry must be [v2](https://docs.docker.com/registry/spec/api/). * `aws_access_key_id`: *Optional.* AWS access key to use for acquiring ECR   credentials. +* `docker_config_json` : *Optional.* The raw `config.json` file used for authenticating with Docker registries. If specified, `username` and `password` parameters will be ignored. You may find this useful if you need to be authenticated against multiple registries (e.g. pushing to a private registry, but you also also need to pull authenticate to pull images from Docker Hub without being rate-limited).
* `docker_config_json` : *Optional.* The raw `config.json` file used for authenticating with Docker registries. If specified, `username` and `password` parameters will be ignored. You may find this useful if you need to be authenticated against multiple registries (e.g. pushing to a private registry, but you also need to pull authenticate to pull images from Docker Hub without being rate-limited).
markround

comment created time in 6 hours

Pull request review commentconcourse/concourse

feat(atc): support chained container placement strategies.

 func (strategy *LimitActiveTasksPlacementStrategy) Choose(logger lager.Logger, w 		} 	} -	leastBusyWorkers := workersByWork[minActiveTasks]-	if len(leastBusyWorkers) < 1 {-		return nil, nil-	}-	return leastBusyWorkers[strategy.rand.Intn(len(leastBusyWorkers))], nil+	return workersByWork[minActiveTasks], nil } -func (strategy *LimitActiveTasksPlacementStrategy) ModifiesActiveTasks() bool {+func (strategy *LimitActiveTasksPlacementStrategyNode) ModifiesActiveTasks() bool { 	return true } -type RandomPlacementStrategy struct {+type RandomPlacementStrategyNode struct { 	rand *rand.Rand } -func NewRandomPlacementStrategy() ContainerPlacementStrategy {-	return &RandomPlacementStrategy{+func newRandomPlacementStrategyNode() ContainerPlacementStrategyChainNode {+	return &RandomPlacementStrategyNode{ 		rand: rand.New(rand.NewSource(time.Now().UnixNano())), 	} } -func (strategy *RandomPlacementStrategy) Choose(logger lager.Logger, workers []Worker, spec ContainerSpec) (Worker, error) {-	return workers[strategy.rand.Intn(len(workers))], nil+func (strategy *RandomPlacementStrategyNode) Choose(logger lager.Logger, workers []Worker, spec ContainerSpec) ([]Worker, error) {+	return []Worker{workers[strategy.rand.Intn(len(workers))]}, nil

Perhaps this should return all workers and let containerPlacementStrategy.Choose() deal with selecting at random.

Though there's no good reason to do it, if you specified CONCOURSE_CONTAINER_PLACEMENT_STRATEGY= random,volume-locality, the volume-locality strategy would have no effect, since we already filtered the list down to a single worker.

So, random is in a bit of a weird spot. It might be more valuable to view these as XYZPlacementStrategyNodes as filters - in which case, RandomPlacementStrategyNode is really an IdentityFilter or something like that - i.e. it just returns the full list of workers that it's provided.

evanchaoli

comment created time in 6 hours

Pull request review commentconcourse/concourse

feat(atc): support chained container placement strategies.

 func (strategy *VolumeLocalityPlacementStrategy) Choose(logger lager.Logger, wor 		} 	} -	highestLocalityWorkers := workersByCount[highestCount]--	return highestLocalityWorkers[strategy.rand.Intn(len(highestLocalityWorkers))], nil+	return workersByCount[highestCount], nil } -func (strategy *VolumeLocalityPlacementStrategy) ModifiesActiveTasks() bool {+func (strategy *VolumeLocalityPlacementStrategyNode) ModifiesActiveTasks() bool { 	return false } -type FewestBuildContainersPlacementStrategy struct {+type FewestBuildContainersPlacementStrategyNode struct { 	rand *rand.Rand

Looks like we can get rid of rand here, as well as in LimitActiveTasksPlacementStrategyNode and possibly RandomPlacementStrategyNode (see my comment there)

evanchaoli

comment created time in 6 hours

pull request commentconcourse/concourse

Group instanced pipelines on UI

Ah, good point - I hadn't really thought of that. Perhaps fly rename-pipeline could work the same way fly order-pipelines works as of 0e68698 (i.e. it takes a pipeline name rather than a pipeline ref)? Though, that would mean you can't move a pipeline instance between instance groups - not sure if that's a common use-case, though.

Ya I think it would make sense for it to work the same way as fly order-pipelines with using a pipeline name. I thought about it not being able to move a pipeline instance between groups but I thought that it might be weird being able to do that anyways because the instance vars should be tied to things set in the pipeline, and if you want to change those var values then it should produce a whole new instance instead of keeping the history of the builds produced by the old vars.

This was a deliberate decision after some discussion with @matthewpereira a while back, but I don't remember 100% why (removed in e08105e). I think it's at least in part related to #5921 (comment) - if viewing an instance group is a special case of filtering, we're still conceptually on the dashboard. That said, it's not obvious currently that it is a special case of filtering yet, so idk

I see, I think I wanted to make that suggestion because when I was playing around with instance groups I found myself getting lost sometimes. Usually it was when I was clicking a lot between the dashboard and instance groups, since the pages are widely the same and there is nothing that is indicating whether I am looking at the full dashboard or just the instance group view (other than the fact that it only shows the instances within that group). If we don't want to display the instance group name in the top header, maybe it could be within the filter search bar? That way there is indication that this is just a filtered search of the dashboard? This is just one option though, I would also be fine keeping it the way it is now too. 😁

aoldershaw

comment created time in 6 hours

pull request commentconcourse/concourse

containerd: Implement `Container.Info()` for exposing a container's IP address

@muntac converted this to a draft, actually - this isolated feature is "complete", but there's an open question in the linked RFC about the best way to approach networking for services. If we choose to take a different route, there's no real reason to add this to the codebase

aoldershaw

comment created time in 7 hours

push eventconcourse/concourse

Muntasir Chowdhury

commit sha 6f7c91f520f00511910c6668998515aca16136f6

add install step to web ui instructions Signed-off-by: Muntasir Chowdhury <mchowdhury@pivotal.io>

view details

Scott Foerster

commit sha 344e85e7e8de05fea98f232249bffbdfe0b38473

Merge pull request #6313 from concourse/update-web-ui-instructions add yarn install step to web ui instructions

view details

push time in 7 hours

delete branch concourse/concourse

delete branch : update-web-ui-instructions

delete time in 7 hours

PR merged concourse/concourse

add yarn install step to web ui instructions

<!-- Hi there! Thanks for submitting a pull request to Concourse!

The title of your pull request will be used to generate the release notes. Please provide a brief sentence that describes the PR, using the imperative mood. Please refrain from adding prefixes like 'feature:', and don't include a period at the end.

Examples: "Add feature to doohickey", "Fix panic during spline reticulation"

We will edit the title if needed so don't worry about getting it perfect!

To help us review your PR, please fill in the following information. -->

What does this PR accomplish?

<!-- Choose all that apply. Also, mention the linked issue here. This will magically close the issue once the PR is merged. --> Documentation

If someone is not familiar with yarn they may get stuck at the error shown when we try to simply yarn build first:

$ yarn run build-less && yarn run build-elm && yarn run build-js
$ lessc web/assets/css/main.less web/public/main.out.css && cleancss -o web/public/main.css web/public/main.out.css && rm web/public/main.out.css
/bin/sh: cleancss: command not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Changes proposed by this PR:

<!-- Tell the reviewer What changed, Why, and How were you able to accomplish that? --> Adds the yarn install step to the section about building the web UI.

Notes to reviewer:

<!-- Leave a message to whoever is going to review this PR. Mainly, pointers to review the PR, and how they can test it. -->

Contributor Checklist

<!-- Most of the PRs should have the following added to them, this doesn't apply to all PRs, so it is helpful to tell us what you did. -->

Reviewer Checklist

<!-- This section is intended for the reviewers only, to track review progress. -->

  • [ ] Code reviewed
  • [ ] Tests reviewed
  • [ ] Documentation reviewed
  • [ ] Release notes reviewed
  • [ ] PR acceptance performed
  • [ ] New config flags added? Ensure that they are added to the BOSH and Helm packaging; otherwise, ignored for the integration tests (for example, if they are Garden configs that are not displayed in the --help text).
+1 -0

0 comment

1 changed file

muntac

pr closed time in 7 hours

PR opened concourse/git-resource

Add private_key_user config

Add private_key_user as a configuration property which adds a user to the ssh configuration when using private_key.

This is a resubmit of the changes in #300

+42 -0

0 comment

4 changed files

pr created time in 7 hours

pull request commentcloudfoundry-attic/jibber_jabber

Travis-ci: added support for ppc64le

@lvarvel waiting for your response for merging ppc64le. Thanks!

dthadi3

comment created time in 8 hours

pull request commentconcourse/docker-image-resource

Added docker_config_json parameter

@xtremerui The registry-image-resource doesn't really work for me, as it doesn't deal with building containers using public base images. Which is where I was being badly bitten by Docker Hub's rate-limiting when not authenticating as I'm behind CGNAT and presumably sharing my public IP with 100s/1000s of other users.

I could I guess hook registry-image up to the oci-build resource but that's somewhat in flux at the moment and doesn't really offer anything at the moment over this resource as far as I can see (e.g. it still requires privileged: true, although I think that's planned to change in the future).

I understand the hesitation to merge given the config file being written to disk, but then as far as I understand it, that's still what happens with the "docker login" approach. Although I agree it's not best practice to leave credentials floating around on disk.

I'm fine with whatever you choose to do though :)

The fact that this PR exists and is linked in the associated issue is enough for me, hopefully it'll help someone else with a workaround in the worst-case scenario.

markround

comment created time in 9 hours

more