Prepare kartotherian for blubber by creating the blubberfile that would eventually be used to create the Dockerfile.
This should be done at the package repository https://gerrit.wikimedia.org/r/admin/projects/maps/kartotherian/package
Prepare kartotherian for blubber by creating the blubberfile that would eventually be used to create the Dockerfile.
This should be done at the package repository https://gerrit.wikimedia.org/r/admin/projects/maps/kartotherian/package
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Open | None | T198901 Migrate production services to kubernetes using the pipeline | |||
Open | None | T321959 Tech Wishes - Maps service infrastructure deprecations | |||
Open | None | T216826 Move Kartotherian to Kubernetes | |||
Resolved | • Mathew.onipe | T223275 Create blubberfile for deploying kartotherian into docker environment. | |||
Invalid | None | T231009 Make jobprocessor's test not depend on external files |
Change 510456 had a related patch set uploaded (by Mathew.onipe; owner: Mathew.onipe):
[maps/kartotherian/package@master] add .pipeline/blubber.yaml
To run the pipeline, we need a CI configuration change in integration/config.git which would look like:
diff --git a/zuul/layout.yaml b/zuul/layout.yaml index 44c8e843..a14f9368 100644 --- a/zuul/layout.yaml +++ b/zuul/layout.yaml @@ -1522,6 +1522,11 @@ projects: experimental: - kartotherian-deploy-npm-node-6-docker + - name: maps/kartotherian/package + template: + - name: service-pipeline-test + - name: service-pipeline-test-and-publish + - name: maps/tilerator test: - noop
It seems developers are willing to use maps/kartotherian/package.git it is unclear to me what that repository is about. It seems to fetch the code from npmjs.org??? It seems to me the pipeline file should instead by in the source repo maps/kartotherian, and that would take care of running tests and ultimately publish the Docker image.
Anyway, I lack most of the context anyway, but @dduvall and @thcipriani would be able to provide guidance
@hashar and @Mathew.onipe, kartotherian is considered a third-party and is supposed to have its own community. The packaging adds it and possible specific code to attend wmf needs
If we need the CI to read the source repo, we might need to have a specific WMF fork of kartotherian/tilerator under WMF, we do have a task for that (T177008) conflicted with the will of kartotherian being a separate project with its own community.
Change 510635 had a related patch set uploaded (by Mathew.onipe; owner: Mathew.onipe):
[integration/config@master] enable maps/kartotherian/package in CI
Change 510635 merged by jenkins-bot:
[integration/config@master] enable maps/kartotherian/package in CI
I have deployed the change so that the blubber/pipeline magic is now enabled on the repository maps/kartotherian/package.
I can't tell though whether it is suitable for production deployment later on. For most services we just use the actual source repository (eg mediawiki/services/mathoid) and I would rather have Kartotherian to follow the same model for sake of simplicity/coherency between the various MediaWiki services we have. But maybe there are some unique use cases that would prevent it.
Anyway, you should at least be able to trigger the blubber/pipeline and progress from there. If the workflow is not suiting production needs, we can just adjust it later on :]
Sorry to come to this late, but I don't think it makes sense to Kubernetize the package repo(s). Their only purpose is to provide a layer of indirection for including Wikimedia-specific dependencies when building deploy repo commits; see T162241 (and particularly T162241#3711873) for background. (In particular, they were introduced to handle dependencies for the Wikimedia map style update work that was ultimately postponed indefinitely.) It certainly wouldn't make sense to deploy a package repo to production.
IMO this is a good opportunity to retire the rather cumbersome package repo setup and streamline maps services deployment. Is there anything we're doing now that couldn't be done in a blubberfile in the main repo?
Here's what I think the potentially tricky/unusual bits are:
Actually, looks like the npm build step definition just points at package.json, so this shouldn't be difficult either.
We can use the main repo instead of using the package repo. It will align better with other docker related project at WMF.
I don't think mono repo works well with our deployment pipeline. Have more than one .pipeline/blubber.yaml will most likely bring more troubles and that's if its possible
I believe there's a way we can make the monorepo work with a single pipeline. Since both tilerator and kartotherian share a lot modules together, we can include a flag in helm chart to run or not run tilerator. This is ugly, I know. They should run in different containers.
To memorialize our convo in standup:
Looking forward to discussing further with @MSantos and @Gehel next week. @Mathew.onipe Feel free to correct or expand on my notes above. Thanks!
Change 523743 had a related patch set uploaded (by MSantos; owner: MSantos):
[mediawiki/services/kartotherian@master] Prepare packages for CI
It seems to be fixed now, see T210267#4874631.
The current strategy is to have one single repo and configuring the pipeline for kartotherian and tilerator for it.
The main reason is to keep the development environment easier to use and create consistency across all the packages we need to maintain.
Change 523743 merged by jenkins-bot:
[mediawiki/services/kartotherian@master] Prepare packages for CI
Change 530330 had a related patch set uploaded (by Mathew.onipe; owner: Mathew.onipe):
[integration/config@master] maps: enable pipeline build for kartotherian.
Change 530330 merged by jenkins-bot:
[integration/config@master] maps: enable pipeline build for kartotherian.
Mentioned in SAL (#wikimedia-releng) [2019-08-15T09:05:46Z] <James_F> Zuul: Kartotherian pipeline enablement T223275
Is https://gerrit.wikimedia.org/r/c/maps/kartotherian/package/+/510456 meant to be in mediawiki/services/kartotherian instead?
Change 530389 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[mediawiki/services/kartotherian@master] add .pipeline/blubber.yaml
Change 530390 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[mediawiki/services/kartotherian@master] add .pipeline/blubber.yaml
Change 530389 abandoned by Jforrester:
add .pipeline/blubber.yaml
Reason:
Too confusing.
Change 530836 had a related patch set uploaded (by Mathew.onipe; owner: Mathew.onipe):
[mediawiki/services/kartotherian@master] (WIP) prepare pipeline for deployment
Change 510456 abandoned by Jforrester:
add .pipeline/blubber.yaml
Reason:
We're moving away from this repo.
Change 531134 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[integration/config@master] layout: [kartotherian] Disable pipeline on gate as it doesn't pass
Change 531134 merged by jenkins-bot:
[integration/config@master] layout: [kartotherian] Disable pipeline on gate as it doesn't pass
Mentioned in SAL (#wikimedia-releng) [2019-08-20T09:39:08Z] <James_F> Zuul: [kartotherian] Disable pipeline on gate as it doesn't pass T223275
Change 534033 had a related patch set uploaded (by Mathew.onipe; owner: Mathew.onipe):
[integration/config@master] layout: [kartotherian] enable pipeline on gate
Change 530836 merged by jenkins-bot:
[mediawiki/services/kartotherian@master] Prepare pipeline for deployment
Change 534178 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[integration/config@master] layout: [mediawiki/services/kartotherian] Enable the publish pipeline now this works
Change 534178 merged by jenkins-bot:
[integration/config@master] layout: [mediawiki/services/kartotherian] Enable the publish pipeline now this works
Mentioned in SAL (#wikimedia-releng) [2019-09-03T15:57:25Z] <James_F> Zuul: Enable the publish pipeline for mediawiki/services/kartotherian T223275
Change 534033 abandoned by Jforrester:
layout: [kartotherian] enable pipeline on gate
Reason:
Oh, oops, just done in I216ba3a00.