Skip to content

Add kueue component #6358

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 18 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: cert-manager
spec:
generators:
- merge:
mergeKeys:
- nameNormalized
generators:
- clusters:
values:
sourceRoot: components/cert-manager
environment: staging
# This app must have cluster specific configurations.
# empty-base is an overlay that just has the namespace resource.
# This allows to gradually deploy the new UI to all the clusters.
clusterDir: empty-base
- list:
elements:
- nameNormalized: stone-stg-rh01
values.clusterDir: stone-stg-rh01
- nameNormalized: stone-stage-p01
values.clusterDir: stone-stage-p01
- nameNormalized: stone-prd-rh01
values.clusterDir: stone-prd-rh01
- nameNormalized: kflux-prd-rh02
values.clusterDir: kflux-prd-rh02
- nameNormalized: stone-prod-p01
values.clusterDir: stone-prod-p01
- nameNormalized: stone-prod-p02
values.clusterDir: stone-prod-p02
- nameNormalized: kflux-ocp-p01
values.clusterDir: kflux-ocp-p01
- nameNormalized: kflux-prd-rh03
values.clusterDir: kflux-prd-rh03
template:
metadata:
name: cert-manager-{{nameNormalized}}
spec:
project: default
source:
path: '{{values.sourceRoot}}/{{values.environment}}/{{values.clusterDir}}'
repoURL: https://github.com/redhat-appstudio/infra-deployments.git
targetRevision: main
destination:
namespace: cert-manager-operator
server: '{{server}}'
syncPolicy:
automated:
prune: true
selfHeal: false
syncOptions:
- CreateNamespace=true
retry:
limit: -1
backoff:
duration: 10s
factor: 2
maxDuration: 3m
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- cert-manager.yaml
components:
- ../../../../k-components/deploy-to-member-cluster-merge-generator
59 changes: 59 additions & 0 deletions argo-cd-apps/base/member/infra-deployments/kueue/kueue.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: kueue
spec:
generators:
- merge:
mergeKeys:
- nameNormalized
generators:
- clusters:
values:
sourceRoot: components/kueue
environment: staging
# This app must have cluster specific configurations.
# empty-base is an overlay that just has the namespace resource.
# This allows to gradually deploy to all the clusters.
clusterDir: empty-base
- list:
elements:
- nameNormalized: stone-stg-rh01
values.clusterDir: stone-stg-rh01
- nameNormalized: stone-stage-p01
values.clusterDir: stone-stage-p01
- nameNormalized: stone-prd-rh01
values.clusterDir: stone-prd-rh01
- nameNormalized: kflux-prd-rh02
values.clusterDir: kflux-prd-rh02
- nameNormalized: stone-prod-p01
values.clusterDir: stone-prod-p01
- nameNormalized: stone-prod-p02
values.clusterDir: stone-prod-p02
- nameNormalized: kflux-ocp-p01
values.clusterDir: kflux-ocp-p01
- nameNormalized: kflux-prd-rh03
values.clusterDir: kflux-prd-rh03
template:
metadata:
name: kueue-{{nameNormalized}}
spec:
project: default
source:
path: '{{values.sourceRoot}}/{{values.environment}}/{{values.clusterDir}}'
repoURL: https://github.com/redhat-appstudio/infra-deployments.git
targetRevision: main
destination:
server: '{{server}}'
syncPolicy:
automated:
prune: true
selfHeal: false
syncOptions:
- CreateNamespace=false
retry:
limit: -1
backoff:
duration: 10s
factor: 2
maxDuration: 3m
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- kueue.yaml
components:
- ../../../../k-components/deploy-to-member-cluster-merge-generator
2 changes: 2 additions & 0 deletions argo-cd-apps/base/member/infra-deployments/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,7 @@ resources:
- kyverno
- namespace-lister
- pulp-access-controller
- cert-manager
- kueue
components:
- ../../../k-components/inject-infra-deployments-repo-details
10 changes: 10 additions & 0 deletions argo-cd-apps/overlays/development/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -194,3 +194,13 @@ patches:
kind: ApplicationSet
version: v1alpha1
name: etcd-shield
- path: development-overlay-patch.yaml
target:
kind: ApplicationSet
version: v1alpha1
name: cert-manager
- path: development-overlay-patch.yaml
target:
kind: ApplicationSet
version: v1alpha1
name: kueue
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,15 @@ kind: ApplicationSet
metadata:
name: pulp-access-controller
$patch: delete
---
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: cert-manager
$patch: delete
---
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: kueue
$patch: delete
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,15 @@ kind: ApplicationSet
metadata:
name: tempo
$patch: delete
---
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: cert-manager
$patch: delete
---
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: kueue
$patch: delete
6 changes: 6 additions & 0 deletions components/cert-manager/development/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- operator.yaml

namespace: cert-manager-operator
22 changes: 22 additions & 0 deletions components/cert-manager/development/operator.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
name: openshift-cert-manager-operator
annotations:
argocd.argoproj.io/sync-wave: "-2"
spec:
upgradeStrategy: Default
---
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: openshift-cert-manager-operator
annotations:
argocd.argoproj.io/sync-wave: "-1"
spec:
channel: stable-v1
name: openshift-cert-manager-operator
source: redhat-operators
sourceNamespace: openshift-marketplace
installPlanApproval: Automatic
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/konflux-ci/kueue-external-admission/config/default?ref=96beaf5c2e564560ebe469ffc16cca5220c14e82
- monitoring.yaml

images:
- name: example.com/alert-manager-kueue-admission
newName: quay.io/konflux-ci/kueue-external-admission
newTag: 96beaf5c2e564560ebe469ffc16cca5220c14e82

namespace: kueue-external-admission

# ensure that installation starts after the installation of kueue complete
commonAnnotations:
argocd.argoproj.io/sync-wave: "10"

patches:
- target:
group: ""
version: v1
kind: ConfigMap
name: config
patch: |-
- op: replace
path: /data/shouldAdmit
value: "true"
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: metrics-reader
---
apiVersion: v1
kind: Secret
metadata:
name: metrics-reader
annotations:
kubernetes.io/service-account.name: metrics-reader
type: kubernetes.io/service-account-token
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: prometheus-kueue-external-admission-metrics-reader
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: alert-mgr-kueue-admission-metrics-reader
subjects:
- kind: ServiceAccount
name: metrics-reader
namespace: kueue-external-admission
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: kueue-external-admission
spec:
endpoints:
- path: /metrics
interval: 15s
port: https
scheme: https
bearerTokenSecret:
name: "metrics-reader"
key: token
tlsConfig:
insecureSkipVerify: true
selector:
matchLabels:
control-plane: controller-manager
21 changes: 21 additions & 0 deletions components/kueue/development/kueue/kueue.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
apiVersion: operator.openshift.io/v1alpha1
kind: Kueue
metadata:
labels:
app.kubernetes.io/name: kueue-operator
annotations:
argocd.argoproj.io/sync-wave: "1"
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
name: cluster
namespace: openshift-kueue-operator
spec:
managementState: Managed
config:
integrations:
frameworks: # The operator requires at lest one framework to be enabled
- BatchJob
externalFrameworks:
- group: tekton.dev
version: v1
resource: pipelineruns
7 changes: 7 additions & 0 deletions components/kueue/development/kueue/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- operator.yaml
- kueue.yaml
namespace: openshift-kueue-operator
Loading