arcalot / arcaflow-engine-deployer-kubernetes Goto Github PK
View Code? Open in Web Editor NEWKubernetes-based deployer for Arcaflow.
License: Apache License 2.0
Kubernetes-based deployer for Arcaflow.
License: Apache License 2.0
SecurityContext to be exposed from the schema both at Pod and container level.
Run kraken containers in openshift with security policies enabled
Add any other context you would like to include here.
Currently the affinity
feature of the k8s API is not supported in the spec
parameters for a workflow plugin. This is a critical feature for ensuring pods are co-located or explicitly avoid co-location on the same nodes.
2022-11-22T10:51:15Z info Starting step metadata...
2022-11-22T10:51:15Z error Workflow execution failed (failed to unserialize deployer config for step metadata (Validation failed for 'pod' -> 'spec': Invalid parameter 'affinity', expected one of: initContainers, containers, pluginContainer, volumes))
exit status 1
When scheduling a metadata or metrics collection plugin alongside a workload plugin, it is critical that these plugins run on the same nodes in the cluster.
Sample workflow snippet:
metadata:
plugin: quay.io/arcalot/arcaflow-plugin-metadata:latest
deploy:
type: kubernetes
connection: !expr $.steps.kubeconfig.outputs.success.connection
pod:
metadata:
namespace: default
labels:
arcaflow: metadata
spec:
pluginContainer:
imagePullPolicy: Always
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: arcaflow
operator: In
values:
- uperf-client
input: {}
We have an indirect dependency on a Go package named mergo
. This package was updated from v0.3.6
to v1.0.0
recently, and the Renovate bot proposes that we update our go.mod
file to match.
Unfortunately, as part of the update to v1.0.0
, the package path was changed to use a new vanity hostname. As a result, when the bot updates our go.mod
file, the path to the package in our requirements does not match the path in our direct dependency's requirement, and we get an error from go get
, which, among other things, makes the bot upset.
The proper solution is, I presume, for our dependency to update their dependency to the v1.0.0
version so that the pathing problem is removed (but, this does not seem to be forthcoming). The interim solution is to manually maintain our indirect dependency at v0.3.16
, which is functionally equivalent to v1.0.0
but which is still available from the old path.
However, every week, when the bot runs, it proposes updating to v1.0.0
again. And, because of the process failure, the bot refuses to run again while the PR is open, and so we are exposed in terms of missing other updates.
Other than simply closing the PR each week (after checking that it's not proposing to update anything other than mergo
and its dependencies!), the only option would seem to be adding to the local bot configuration a matcher for mergo
which says to ignore that particular upgrade. (But, I'm not sure exactly how to do that, and we would presumably need something to remind us to remove that configuration again, once our dependency updates their dependency.)
So, for now, I'm just going to close the PR. But, that's only going to help us until next week.
current labelValue validation regex prevents the use of legit label values like master-0
. Has been reported by a user that was trying to use a nodeSelector like kubernetes.io/hostname: mimmo-0
that is pretty common.
set a dash separated label value like master-0
Add any other context about the problem here.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.