e2e: Install Flux on OpenShift

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
pull/4729/head
Stefan Prodan 9 months ago
parent 2dfb536600
commit b3a29b56bb
No known key found for this signature in database
GPG Key ID: 3299AEB0E4085BAF

@ -39,13 +39,18 @@ jobs:
kubernetes-version: "4.15.0-okd" kubernetes-version: "4.15.0-okd"
ttl: 20m ttl: 20m
cluster-name: "${{ steps.prep.outputs.cluster }}" cluster-name: "${{ steps.prep.outputs.cluster }}"
- name: Run flux check - name: Setup kubeconfig
run: | run: |
echo "${{ steps.create-cluster.outputs.cluster-kubeconfig }}" > kubeconfig.yaml echo "${{ steps.create-cluster.outputs.cluster-kubeconfig }}" > kubeconfig.yaml
./bin/flux check --kubeconfig=kubeconfig.yaml - name: Install Flux
- name: Apply openshift prerequisites
run: | run: |
kubectl apply -k ./manifests/openshift --kubeconfig=kubeconfig.yaml ./bin/flux install --manifests ./manifests/openshift/ --kubeconfig=kubeconfig.yaml
- name: Debug
run: |
kubectl -n flux-system get all --kubeconfig=kubeconfig.yaml
kubectl -n flux-system describe pods --kubeconfig=kubeconfig.yaml
kubectl -n flux-system logs deploy/source-controller --kubeconfig=kubeconfig.yaml
kubectl -n flux-system logs deploy/kustomize-controller --kubeconfig=kubeconfig.yaml
- name: Remove cluster - name: Remove cluster
if: ${{ always() }} if: ${{ always() }}
uses: replicatedhq/replicated-actions/remove-cluster@v1 uses: replicatedhq/replicated-actions/remove-cluster@v1

@ -1,4 +1,48 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: flux-system
resources: resources:
- rbac.yaml - namespace.yaml
- scc.yaml
- ../bases/source-controller
- ../bases/kustomize-controller
- ../bases/notification-controller
- ../bases/helm-controller
- ../bases/image-reflector-controller
- ../bases/image-automation-controller
- ../rbac
- ../policies
transformers:
- labels.yaml
images:
- name: fluxcd/source-controller
newName: ghcr.io/fluxcd/source-controller
- name: fluxcd/kustomize-controller
newName: ghcr.io/fluxcd/kustomize-controller
- name: fluxcd/helm-controller
newName: ghcr.io/fluxcd/helm-controller
- name: fluxcd/notification-controller
newName: ghcr.io/fluxcd/notification-controller
- name: fluxcd/image-reflector-controller
newName: ghcr.io/fluxcd/image-reflector-controller
- name: fluxcd/image-automation-controller
newName: ghcr.io/fluxcd/image-automation-controller
patches:
- patch: |
apiVersion: apps/v1
kind: Deployment
metadata:
name: all
spec:
template:
spec:
securityContext:
$patch: delete
containers:
- name: manager
securityContext:
runAsUser: 65534
seccompProfile:
$patch: delete
target:
kind: Deployment

@ -0,0 +1,10 @@
apiVersion: builtin
kind: LabelTransformer
metadata:
name: labels
labels:
app.kubernetes.io/part-of: flux
app.kubernetes.io/instance: flux-system
fieldSpecs:
- path: metadata/labels
create: true

@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: flux-system

@ -1,68 +0,0 @@
apiVersion: v1
kind: List
items:
- apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: flux-scc
rules:
- apiGroups:
- security.openshift.io
resources:
- securitycontextconstraints
resourceNames:
- nonroot
verbs:
- use
- apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: flux-scc-source-controller
namespace: flux-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: flux-scc
subjects:
- kind: ServiceAccount
name: source-controller
namespace: flux-system
- apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: flux-scc-kustomize-controller
namespace: flux-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: flux-scc
subjects:
- kind: ServiceAccount
name: kustomize-controller
namespace: flux-system
- apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: flux-scc-helm-controller
namespace: flux-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: flux-scc
subjects:
- kind: ServiceAccount
name: helm-controller
namespace: flux-system
- apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: flux-scc-notification-controller
namespace: flux-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: flux-scc
subjects:
- kind: ServiceAccount
name: notification-controller
namespace: flux-system

@ -0,0 +1,42 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: flux-scc
rules:
- apiGroups:
- security.openshift.io
resources:
- securitycontextconstraints
resourceNames:
- nonroot
verbs:
- use
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: flux-scc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: flux-scc
subjects:
- kind: ServiceAccount
name: source-controller
namespace: flux-system
- kind: ServiceAccount
name: kustomize-controller
namespace: flux-system
- kind: ServiceAccount
name: helm-controller
namespace: flux-system
- kind: ServiceAccount
name: notification-controller
namespace: flux-system
- kind: ServiceAccount
name: image-reflector-controller
namespace: flux-system
- kind: ServiceAccount
name: image-automation-controller
namespace: flux-system
Loading…
Cancel
Save