Compare commits

..
Author SHA1 Message Date
Miguel Angel Ajo f8dc2dc5d1 Enable globalnet E2E matrix
Signed-off-by: Miguel Angel Ajo <majopela@redhat.com>
2021-02-24 14:39:49 +01:00
Miguel Angel Ajo d7b3ab6204 Add globalCidr mappings to the submariner template
also includes the questions.yaml which is UI.

Signed-off-by: Miguel Angel Ajo <majopela@redhat.com>
2021-02-24 14:29:16 +01:00
Steve MattarandMiguel Angel Ajo Pelayo cce1bf6494 fix(crd): add the missing service discovery crd
Signed-off-by: Steve Mattar <smattar@redhat.com>
2021-02-24 12:45:03 +01:00
Steve MattarandMiguel Angel Ajo Pelayo 83177c8083 fix(crd): add the broker crd
Signed-off-by: Steve Mattar <smattar@redhat.com>
2021-02-24 12:45:03 +01:00
Steve MattarandGitHub 7f2d832e6f fix(rbac): sa and rbac definitions (#117)
Sync the SA and RBAC definitions with what we have in submariner-operator.

Signed-off-by: Steve Mattar <smattar@redhat.com>
2021-02-23 16:08:55 +01:00
Daniel FarrellandStephen Kitt c1177daa36 Use shared GHAs from Shipyard
Run the E2E tests using Submariner's custom GitHub Actions.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-02-08 09:47:58 +01:00
Stephen KittandThomas Pantelis af9332cb53 Track the devel branch for release
Signed-off-by: Stephen Kitt <skitt@redhat.com>
2021-02-05 08:23:55 -05:00
Daniel FarrellandDaniel Farrell ad064a97b2 Add git commit message linting
As implemented and configured in other Submariner repos.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-02-02 08:49:25 -06:00
Daniel FarrellandStephen Kitt 8754508eb0 Add .dapper and .shflags to gitignore
Both are generated by our standard make commands, both are ignored in
other Submariner repos.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-02-02 14:02:52 +01:00
Daniel FarrellandThomas Pantelis 472ad44a87 Use markdownlint from Shipyard
Instead of an external GitHub action, use the same markdownlint make
target from Shipyard that we use in other repos.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-02-01 16:42:35 -05:00
Stephen KittandThomas Pantelis 0d566a4104 Use the PR base branch as reference when linting
To determine the changed files, the Markdown linter needs to know the
base branch; instead of using the default everywhere, use the base
branch set in the PR.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2021-01-21 09:49:13 -05:00
Aswin SuryanarayananandGitHub 83aeade0cc Add a cluster role for submariner-engine serivce-account
The submainer-engine now access the node object as part
of golbalnet-healthcheck support and the required roles are
added

Signed-off-by: Aswin Surayanarayanan <asuryana@redhat.com>
2021-01-14 10:33:21 +01:00
Sridhar GaddamandStephen Kitt 69a435efb3 Update GatewayEngine Pod env with the host nodeName
Related to: https://github.com/submariner-io/submariner/issues/1068
Signed-Off-by: Sridhar Gaddam <sgaddam@redhat.com>
2021-01-12 11:11:34 +01:00
Sridhar GaddamandStephen Kitt 54b9fab7f0 Fix broken globalnet helm jobs
Signed-Off-by: Sridhar Gaddam <sgaddam@redhat.com>
2021-01-04 09:09:39 +01:00
Sridhar GaddamandStephen Kitt 9946eeb071 Update Globalnet Pod env with the host nodeName
Related to: https://github.com/submariner-io/submariner/issues/970

Signed-Off-by: Sridhar Gaddam <sgaddam@redhat.com>
2020-12-24 14:06:14 +01:00
Daniel FarrellandStephen Kitt 6edd0a2f10 Fix all broken links
Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2020-12-17 15:44:34 +01:00
Daniel FarrellandStephen Kitt 701ad09f63 Fix periodic broken link test issue reporting
Use new GHA for reporting issues when broken links are detected. This
logic was verified to work by the frequently-run flaky test finder.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2020-12-17 15:10:59 +01:00
Stephen KittandThomas Pantelis 8a670ad49d Set the serviceDiscoveryEnabled flag
This allows the e2e tests to complete successfully.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2020-12-17 08:21:41 -05:00
Stephen KittandThomas Pantelis 59bc056f99 Update the instructions for Helm v3
With v3, we no longer need to initialise Helm or even provide a local
repository; the charts can be installed directly. We now support make
deploy and make e2e too, document that.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2020-12-09 13:07:07 -05:00
Daniel FarrellandStephen Kitt 433ff8347e Set cable driver flag passed from Shipyard
Relates-to: submariner-io/shipyard#364
Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2020-12-09 15:26:10 +01:00
26 changed files with 1491 additions and 287 deletions
+2 -8
View File
@@ -1,8 +1,2 @@
--- Periodic link aliveness CI detected a broken link. Please see the [periodic job
name: Broken link detected by CI results](https://github.com/submariner-io/submariner-charts/actions?query=workflow%3APeriodic) for details.
labels: bug
---
<!-- Used by automation to raise an Issue when the periodic link aliveness tests detect a broken link. -->
Periodic link aliveness CI detected a broken link. Please see the job results for details.
+6 -13
View File
@@ -11,24 +11,17 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
matrix:
globalnet: ['', 'globalnet']
steps: steps:
- name: Check out the repository - name: Check out the repository
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Reclaim free space
run: |
sudo swapoff -a
sudo rm -f /swapfile
df -h
free -h
- name: Run E2E deployment and tests - name: Run E2E deployment and tests
run: | uses: submariner-io/shipyard/gh-actions/e2e@devel
make e2e with:
globalnet: ${{ matrix.globalnet }}
- name: Post mortem - name: Post mortem
if: failure() if: failure()
run: | uses: submariner-io/shipyard/gh-actions/post-mortem@devel
df -h
free -h
make post-mortem
+13 -4
View File
@@ -19,6 +19,17 @@ jobs:
with: with:
commits: ${{ steps.get-pr-commits.outputs.commits }} commits: ${{ steps.get-pr-commits.outputs.commits }}
gitlint:
name: Commit Message(s)
runs-on: ubuntu-latest
steps:
- name: Check out the repository
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Run gitlint
run: make gitlint
markdown-link-check: markdown-link-check:
name: Markdown Links (modified files) name: Markdown Links (modified files)
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -31,6 +42,7 @@ jobs:
with: with:
config-file: ".markdownlinkcheck.json" config-file: ".markdownlinkcheck.json"
check-modified-files-only: "yes" check-modified-files-only: "yes"
base-branch: ${{ github.base_ref }}
markdownlint: markdownlint:
name: Markdown name: Markdown
@@ -39,10 +51,7 @@ jobs:
- name: Check out the repository - name: Check out the repository
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Run markdownlint - name: Run markdownlint
uses: nosborn/github-action-markdown-cli@v1.1.1 run: make markdownlint
with:
files: .
config_file: ".markdownlint.yml"
yaml-lint: yaml-lint:
name: YAML name: YAML
+4 -4
View File
@@ -20,8 +20,8 @@ jobs:
- name: Raise an Issue to report broken links - name: Raise an Issue to report broken links
if: ${{ failure() }} if: ${{ failure() }}
uses: JasonEtco/create-an-issue@v2 uses: peter-evans/create-issue-from-file@v2.3.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
filename: .github/ISSUE_TEMPLATE/broken-link.md title: Broken link detected by CI
content-filepath: .github/ISSUE_TEMPLATE/broken-link.md
labels: automated, broken link
+1 -1
View File
@@ -4,7 +4,7 @@ name: Release Charts
on: on:
push: push:
branches: branches:
- master - devel
jobs: jobs:
release: release:
+3 -1
View File
@@ -1,2 +1,4 @@
.dapper
.idea .idea
*.tgz .shflags
*.tgz
+9
View File
@@ -0,0 +1,9 @@
[general]
# body-is-missing: Allow commit messages with only a title
# body-min-length: Allow short body lines, like "Relates-to: #issue"
ignore=body-is-missing,body-min-length
[ignore-by-body]
# Dependabot doesn't follow our conventions, unfortunately
regex=^Signed-off-by: dependabot\[bot\](.*)
ignore=all
+1 -1
View File
@@ -1,3 +1,3 @@
# Code of Conduct # Code of Conduct
Please see the [Code of Conduct docs on Submariner's website](https://submariner.io/contributing/code-of-conduct/). Please see the [Code of Conduct docs on Submariner's website](https://submariner.io/community/code-of-conduct/).
+1 -1
View File
@@ -1,3 +1,3 @@
# Contributing # Contributing
Please see the [Contributing docs on Submariner's website](https://submariner.io/for_developers/). Please see the [Development docs on Submariner's website](https://submariner.io/development/).
+18 -78
View File
@@ -2,12 +2,12 @@
Please see the [Helm docs on Submariner's website](https://submariner.io/operations/deployment/helm/). Please see the [Helm docs on Submariner's website](https://submariner.io/operations/deployment/helm/).
## Dev workflow ## Development workflow
### Prerequisites ### Prerequisites
- [helm] - [Helm] v3
- [docker] or [podman] - [Docker] or [Podman]
### Create a fork and checkout ### Create a fork and checkout
@@ -21,96 +21,36 @@ cd submariner-charts
git checkout -b new-feature git checkout -b new-feature
``` ```
Now you can modify the helm charts according to your needs. Now you can modify the Helm charts according to your needs.
### Serve the modified charts
Before serving the modified charts, the charts must be packaged for local usage.
```bash
helm package ./submariner
helm package ./submariner-k8s-broker
```
Note: if you just installed helm, you have to init the helm, by running
```bash
helm init --client-only
```
Serve the packaged charts through a local helm repository:
<!-- markdownlint-disable line-length -->
```bash
docker run -d --rm --name helm-repo -p 8080:8080 -v $PWD:/charts -e DEBUG=true -e STORAGE=local -e STORAGE_LOCAL_ROOTDIR=/charts chartmuseum/chartmuseum
```
or
```bash
sudo podman run -d --rm --name helm-repo -p 8080:8080 -v $PWD:/charts -e DEBUG=true -e STORAGE=local -e STORAGE_LOCAL_ROOTDIR=/charts chartmuseum/chartmuseum
```
<!-- markdownlint-enable line-length -->
Get the container internal ip:
```bash
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' helm-repo
```
The local container will serve the charts locally on port 8080.
Get logs for the container:
```bash
docker logs -f helm-repo
```
### Use the modified charts ### Use the modified charts
Init helm Locally-modified charts can be installed using `helm install`,
referring to the local path; for example:
```bash ```bash
helm init --client-only helm install submariner-k8s-broker ./submariner-k8s-broker ...
``` ```
Add your local repository to helm In the base directory of this repository, a local deployment using the
local charts can be obtained by running the following command:
```bash ```bash
internal_ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' helm-repo) make deploy
helm repo add test-repo http://$internal_ip:8080
``` ```
List the repos: This will start two kind clusters and deploy Submariner using the
Broker and Operator charts.
```bash ```bash
helm repo list make e2e
``` ```
You should be able to see test-repo in the list will run the end-to-end test suite used to validate that Submariner is
working correctly.
Search the new repo for submariner charts:
```bash
helm search -l test-repo
```
### Modify submariner e2e tests helm deployment script to use your local test-repo
You can test your helm-charts with e2e tests from the [shipyard](https://github.com/submariner-io/shipyard) repository.
In the file `scripts/shared/lib/deploy_helm` change the line from:
```bash
helm repo add submariner-latest https://submariner-io.github.io/submariner-charts/charts
```
to
```bash
internal_ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' helm-repo)
helm repo add submariner-latest http://$internal_ip:8080
```
<!--links--> <!--links-->
[helm]: https://helm.sh/docs/using_helm/#installing-helm [Helm]: https://helm.sh/docs/using_helm/#installing-helm
[docker]: https://docs.docker.com/install/ [Docker]: https://docs.docker.com/install/
[podman]: https://podman.io/getting-started/installation [Podman]: https://podman.io/getting-started/installation
[Create a fork]: https://help.github.com/en/articles/fork-a-repo [Create a fork]: https://help.github.com/en/articles/fork-a-repo
+1
View File
@@ -51,6 +51,7 @@ function helm_install_subm() {
--set broker.token="${submariner_broker_token}" \ --set broker.token="${submariner_broker_token}" \
--set broker.namespace="${SUBMARINER_BROKER_NS}" \ --set broker.namespace="${SUBMARINER_BROKER_NS}" \
--set broker.ca="${submariner_broker_ca}" \ --set broker.ca="${submariner_broker_ca}" \
--set submariner.cableDriver="${cable_driver}" \
--set submariner.clusterId="${cluster}" \ --set submariner.clusterId="${cluster}" \
--set submariner.clusterCidr="${cluster_CIDRs[$cluster]}" \ --set submariner.clusterCidr="${cluster_CIDRs[$cluster]}" \
--set submariner.serviceCidr="${service_CIDRs[$cluster]}" \ --set submariner.serviceCidr="${service_CIDRs[$cluster]}" \
+155
View File
@@ -720,3 +720,158 @@ status:
plural: "" plural: ""
conditions: [] conditions: []
storedVersions: [] storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: servicediscoveries.submariner.io
spec:
group: submariner.io
names:
kind: ServiceDiscovery
listKind: ServiceDiscoveryList
plural: servicediscoveries
singular: servicediscovery
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: ServiceDiscovery is the Schema for the servicediscoveries API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: ServiceDiscoverySpec defines the desired state of ServiceDiscovery
properties:
brokerK8sApiServer:
type: string
brokerK8sApiServerToken:
type: string
brokerK8sCA:
type: string
brokerK8sRemoteNamespace:
type: string
clusterID:
type: string
customDomains:
items:
type: string
type: array
x-kubernetes-list-type: set
debug:
type: boolean
globalnetEnabled:
type: boolean
imageOverrides:
additionalProperties:
type: string
type: object
namespace:
type: string
repository:
type: string
version:
type: string
required:
- brokerK8sApiServer
- brokerK8sApiServerToken
- brokerK8sCA
- brokerK8sRemoteNamespace
- clusterID
- debug
- namespace
type: object
status:
description: ServiceDiscoveryStatus defines the observed state of ServiceDiscovery
type: object
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: brokers.submariner.io
spec:
group: submariner.io
names:
kind: Broker
listKind: BrokerList
plural: brokers
singular: broker
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: Broker is the Schema for the brokers API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: BrokerSpec defines the desired state of Broker
properties:
components:
items:
type: string
type: array
defaultCustomDomains:
items:
type: string
type: array
defaultGlobalnetClusterSize:
type: integer
globalnetCIDRRange:
type: string
globalnetEnabled:
type: boolean
type: object
status:
description: BrokerStatus defines the observed state of Broker
type: object
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
+7
View File
@@ -92,6 +92,13 @@ questions:
label: "Service CIDR" label: "Service CIDR"
group: "CIDR Configuration" group: "CIDR Configuration"
required: true required: true
- variable: submariner.globalCidr
default: ""
description: "Enter the globalnet CIDR (i.e. 169.254.1.0/24) for this cluster if using globalnet"
type: string
label: "Globalnet CIDR"
group: "CIDR Configuration"
required: false
- variable: submariner.natEnabled - variable: submariner.natEnabled
type: boolean type: boolean
default: false default: false
+19 -8
View File
@@ -47,7 +47,7 @@ Create the name of the submariner-engine service account to use
*/}} */}}
{{- define "submariner.engineServiceAccountName" -}} {{- define "submariner.engineServiceAccountName" -}}
{{- if .Values.serviceAccounts.engine.create -}} {{- if .Values.serviceAccounts.engine.create -}}
{{ default (printf "%s-engine" (include "submariner.fullname" .)) .Values.serviceAccounts.engine.name }} {{ default "submariner-engine" .Values.serviceAccounts.engine.name }}
{{- else -}} {{- else -}}
{{ default "default" .Values.serviceAccounts.engine.name }} {{ default "default" .Values.serviceAccounts.engine.name }}
{{- end -}} {{- end -}}
@@ -58,7 +58,7 @@ Create the name of the submariner-route-agent service account to use
*/}} */}}
{{- define "submariner.routeAgentServiceAccountName" -}} {{- define "submariner.routeAgentServiceAccountName" -}}
{{- if .Values.serviceAccounts.routeAgent.create -}} {{- if .Values.serviceAccounts.routeAgent.create -}}
{{ default (printf "%s-routeagent" (include "submariner.fullname" .)) .Values.serviceAccounts.routeAgent.name }} {{ default "submariner-routeagent" .Values.serviceAccounts.routeAgent.name }}
{{- else -}} {{- else -}}
{{ default "default" .Values.serviceAccounts.routeAgent.name }} {{ default "default" .Values.serviceAccounts.routeAgent.name }}
{{- end -}} {{- end -}}
@@ -69,20 +69,31 @@ Create the name of the submariner-globalnet service account to use
*/}} */}}
{{- define "submariner.globalnetServiceAccountName" -}} {{- define "submariner.globalnetServiceAccountName" -}}
{{- if .Values.serviceAccounts.globalnet.create -}} {{- if .Values.serviceAccounts.globalnet.create -}}
{{ default (printf "%s-globalnet" (include "submariner.fullname" .)) .Values.serviceAccounts.globalnet.name }} {{ default "submariner-globalnet" .Values.serviceAccounts.globalnet.name }}
{{- else -}} {{- else -}}
{{ default "default" .Values.serviceAccounts.globalnet.name }} {{ default "default" .Values.serviceAccounts.globalnet.name }}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{/* {{/*
Create the name of the submariner-lighthouse service account to use Create the name of the submariner-lighthouse-agent service account to use
*/}} */}}
{{- define "submariner.lighthouseServiceAccountName" -}} {{- define "submariner.lighthouseAgentServiceAccountName" -}}
{{- if .Values.submariner.serviceDiscovery -}} {{- if and (.Values.submariner.serviceDiscovery ) (.Values.serviceAccounts.lighthouseAgent.create) -}}
{{ default (printf "%s-lighthouse" (include "submariner.fullname" .)) .Values.serviceAccounts.lighthouse.name }} {{ default "submariner-lighthouse-agent" .Values.serviceAccounts.lighthouseAgent.name }}
{{- else -}} {{- else -}}
{{ default "default" .Values.serviceAccounts.lighthouse.name }} {{ default "default" .Values.serviceAccounts.lighthouseAgent.name }}
{{- end -}}
{{- end -}}
{{/*
Create the name of the submariner-lighthouse-coredns service account to use
*/}}
{{- define "submariner.lighthouseCoreDnsServiceAccountName" -}}
{{- if and (.Values.submariner.serviceDiscovery ) (.Values.serviceAccounts.lighthouseCoreDns.create) -}}
{{ default "submariner-lighthouse-coredns" .Values.serviceAccounts.lighthouseCoreDns.name }}
{{- else -}}
{{ default "default" .Values.serviceAccounts.lighthouseCoreDns.name }}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
+574 -63
View File
@@ -77,7 +77,7 @@ metadata:
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: {{ template "submariner.fullname" . }} name: {{ template "submariner.operatorServiceAccountName" . }}
roleRef: roleRef:
kind: Role kind: Role
name: {{ template "submariner.fullname" . }} name: {{ template "submariner.fullname" . }}
@@ -93,15 +93,75 @@ metadata:
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
rules: rules:
- apiGroups: [""] - apiGroups:
resources: ["configmaps"] - ""
verbs: ["create", "get", "list", "watch", "patch", "update"] resources:
- apiGroups: ["submariner.io"] - pods
resources: ["clusters", "endpoints", "gateways"] - services
verbs: ["create", "get", "list", "watch", "patch", "update", "delete"] - services/finalizers
- apiGroups: [""] - endpoints
resources: ["events"] - persistentvolumeclaims
verbs: ["create", "patch"] - events
- configmaps
- secrets
verbs:
- '*'
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- get
- create
- apiGroups:
- apps
resourceNames:
- submariner-operator
resources:
- deployments/finalizers
verbs:
- update
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- apiGroups:
- apps
resources:
- replicasets
verbs:
- get
- apiGroups:
- submariner.io
resources:
- '*'
- servicediscoveries
verbs:
- '*'
- apiGroups:
- lighthouse.submariner.io
resources:
- '*'
- serviceexports
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding kind: RoleBinding
@@ -118,7 +178,7 @@ roleRef:
name: {{ template "submariner.fullname" . }}:engine name: {{ template "submariner.fullname" . }}:engine
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: {{ template "submariner.operatorServiceAccountName" . }} name: {{ template "submariner.engineServiceAccountName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
@@ -131,12 +191,75 @@ metadata:
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
rules: rules:
- apiGroups: ["submariner.io"] - apiGroups:
resources: ["clusters", "endpoints", "gateways"] - ""
verbs: ["create", "get", "list", "watch", "patch", "update"] resources:
- apiGroups: [""] - pods
resources: ["pods"] - services
verbs: ["get", "watch", "list"] - services/finalizers
- endpoints
- persistentvolumeclaims
- events
- configmaps
- secrets
verbs:
- '*'
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- get
- create
- apiGroups:
- apps
resourceNames:
- submariner-operator
resources:
- deployments/finalizers
verbs:
- update
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- apiGroups:
- apps
resources:
- replicasets
verbs:
- get
- apiGroups:
- submariner.io
resources:
- '*'
- servicediscoveries
verbs:
- '*'
- apiGroups:
- lighthouse.submariner.io
resources:
- '*'
- serviceexports
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding kind: RoleBinding
@@ -153,9 +276,109 @@ roleRef:
name: {{ template "submariner.fullname" . }}:routeagent name: {{ template "submariner.fullname" . }}:routeagent
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: {{ template "submariner.operatorServiceAccountName" . }} name: {{ template "submariner.routeAgentServiceAccountName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
--- ---
{{- if ne .Values.submariner.globalCidr "" }}
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ template "submariner.fullname" . }}:globalnet
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
rules:
- apiGroups:
- ""
resources:
- pods
- services
- services/finalizers
- endpoints
- persistentvolumeclaims
- events
- configmaps
- secrets
verbs:
- '*'
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- get
- create
- apiGroups:
- apps
resourceNames:
- submariner-operator
resources:
- deployments/finalizers
verbs:
- update
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- apiGroups:
- apps
resources:
- replicasets
verbs:
- get
- apiGroups:
- submariner.io
resources:
- '*'
- servicediscoveries
verbs:
- '*'
- apiGroups:
- lighthouse.submariner.io
resources:
- '*'
- serviceexports
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ template "submariner.fullname" . }}:globalnet
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ template "submariner.fullname" . }}:globalnet
subjects:
- kind: ServiceAccount
name: {{ template "submariner.globalnetServiceAccountName" . }}
namespace: {{ .Release.Namespace }}
---
{{- end -}}
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
metadata: metadata:
@@ -169,24 +392,50 @@ rules:
# submariner-operator updates the config map of core-dns to forward requests to # submariner-operator updates the config map of core-dns to forward requests to
# clusterset.local to Lighthouse DNS, also looks at existing configmaps # clusterset.local to Lighthouse DNS, also looks at existing configmaps
# to figure out network settings # to figure out network settings
- apiGroups: [""] - apiGroups:
resources: ["configmaps"] - ""
verbs: ["get", "list", "watch", "update"] resources:
- apiGroups: ["apiextensions.k8s.io"] - configmaps
resources: ["customresourcedefinitions"] verbs:
verbs: ["get", "list", "create", "update", "delete"] - get
- apiGroups: [""] # pods and services are looked up to figure out network settings - list
resources: ["pods", "services"] - watch
verbs: ["get", "list", "watch"] - update
- apiGroups: ["operator.openshift.io"] - apiGroups:
resources: ["dnses"] - apiextensions.k8s.io
verbs: ["get", "list", "watch", "update"] resources:
- apiGroups: ["config.openshift.io"] - customresourcedefinitions
resources: ["networks"] verbs:
verbs: ["get", "list"] - get
- apiGroups: ["multicluster.x-k8s.io"] - list
resources: ["*"] - create
verbs: ["create", "get", "list", "watch", "update", "delete"] - update
- delete
- apiGroups: # pods and services are looked up to figure out network settings
- ""
resources:
- pods
- services
verbs:
- get
- list
- watch
- apiGroups:
- operator.openshift.io
resources:
- dnses
verbs:
- get
- list
- watch
- update
- apiGroups:
- config.openshift.io
resources:
- networks
verbs:
- get
- list
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
@@ -208,6 +457,91 @@ roleRef:
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
metadata:
name: {{ template "submariner.fullname" . }}:engine
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
rules:
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
- create
- update
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
- list
- create
- update
- delete
- apiGroups: # pods and services are looked up to figure out network settings
- ""
resources:
- pods
- services
- nodes
verbs:
- get
- list
- watch
- apiGroups:
- operator.openshift.io
resources:
- dnses
verbs:
- get
- list
- watch
- update
- apiGroups:
- config.openshift.io
resources:
- networks
verbs:
- get
- list
- apiGroups:
- submariner.io
resources:
- endpoints
- gateways
- clusters
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ template "submariner.fullname" . }}:engine
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ template "submariner.fullname" . }}:engine
subjects:
- kind: ServiceAccount
name: {{ template "submariner.engineServiceAccountName" . }}
namespace: {{ .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata: metadata:
name: {{ template "submariner.fullname" . }}:routeagent name: {{ template "submariner.fullname" . }}:routeagent
labels: labels:
@@ -216,9 +550,59 @@ metadata:
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
rules: rules:
- apiGroups: [""] - apiGroups:
resources: ["nodes"] - ""
verbs: ["get", "update"] resources:
- configmaps
verbs:
- get
- list
- watch
- update
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
- list
- create
- update
- delete
- apiGroups: # pods and services are looked up to figure out network settings
- ""
resources:
- pods
- services
verbs:
- get
- list
- watch
- apiGroups:
- operator.openshift.io
resources:
- dnses
verbs:
- get
- list
- watch
- update
- apiGroups:
- config.openshift.io
resources:
- networks
verbs:
- get
- list
- apiGroups:
- ""
verbs:
- get
- list
- watch
- update
resources:
- nodes
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
@@ -235,9 +619,10 @@ roleRef:
name: {{ template "submariner.fullname" . }}:routeagent name: {{ template "submariner.fullname" . }}:routeagent
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: {{ template "submariner.operatorServiceAccountName" . }} name: {{ template "submariner.routeAgentServiceAccountName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
--- ---
{{- if ne .Values.submariner.globalCidr "" }}
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
metadata: metadata:
@@ -248,13 +633,37 @@ metadata:
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
rules: rules:
- apiGroups: [""] - apiGroups:
resources: ["services", "namespaces", "pods", "nodes"] - ""
verbs: ["get", "list", "watch", "update"] resources:
- apiGroups: ["submariner.io"] - pods
resources: ["clusters", "endpoints", "gateways"] - services
verbs: ["get", "list", "watch"] - namespaces
- nodes
verbs:
- get
- list
- watch
- update
- apiGroups:
- submariner.io
resources:
- endpoints
- clusters
verbs:
- get
- list
- watch
- apiGroups:
- multicluster.x-k8s.io
resources:
- "serviceexports"
verbs:
- get
- list
- watch
--- ---
{{- end -}}
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
metadata: metadata:
@@ -270,37 +679,67 @@ roleRef:
name: {{ template "submariner.fullname" . }}:globalnet name: {{ template "submariner.fullname" . }}:globalnet
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: {{ template "submariner.operatorServiceAccountName" . }} name: {{ template "submariner.globalnetServiceAccountName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
--- ---
{{- if .Values.submariner.serviceDiscovery }} {{- if .Values.submariner.serviceDiscovery }}
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
metadata: metadata:
name: {{ template "submariner.fullname" . }}:lighthouse name: {{ template "submariner.fullname" . }}:lighthouse-agent
labels: labels:
heritage: {{ .Release.Service | quote }} heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }} release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
rules: rules:
- apiGroups: [""] - apiGroups:
resources: ["services", "namespaces", "configmaps", "endpoints"] - ""
verbs: ["get", "list", "watch", "update"] resources:
- apiGroups: ["discovery.k8s.io"] - services
resources: ["endpointslices"] - namespaces
verbs: ["create", "get", "list", "watch", "update", "delete"] - endpoints
- apiGroups: ["lighthouse.submariner.io"] verbs:
resources: ["*"] - get
verbs: ["create", "get", "list", "watch", "update", "delete"] - list
- apiGroups: ["submariner.io"] - watch
resources: ["gateways"] - update
verbs: ["get", "list", "watch"] - apiGroups:
- discovery.k8s.io
resources:
- endpointslices
verbs:
- create
- get
- list
- watch
- update
- delete
- deletecollection
- apiGroups:
- submariner.io
resources:
- "gateways"
verbs:
- get
- list
- watch
- apiGroups:
- multicluster.x-k8s.io
resources:
- "*"
verbs:
- create
- get
- list
- watch
- update
- delete
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
metadata: metadata:
name: {{ template "submariner.fullname" . }}:lighthouse name: {{ template "submariner.fullname" . }}:lighthouse-agent
labels: labels:
heritage: {{ .Release.Service | quote }} heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }} release: {{ .Release.Name | quote }}
@@ -309,10 +748,82 @@ metadata:
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole
name: {{ template "submariner.fullname" . }}:lighthouse name: {{ template "submariner.fullname" . }}:lighthouse-agent
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: {{ template "submariner.operatorServiceAccountName" . }} name: {{ template "submariner.lighthouseAgentServiceAccountName" . }}
namespace: {{ .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "submariner.fullname" . }}:lighthouse-coredns
rules:
- apiGroups:
- ""
resources:
- services
- namespaces
- endpoints
verbs:
- get
- list
- watch
- update
- apiGroups:
- discovery.k8s.io
resources:
- endpointslices
verbs:
- create
- get
- list
- watch
- update
- delete
- deletecollection
- apiGroups:
- lighthouse.submariner.io
resources:
- "*"
verbs:
- create
- get
- list
- watch
- update
- delete
- apiGroups:
- submariner.io
resources:
- "gateways"
verbs:
- get
- list
- watch
- apiGroups:
- multicluster.x-k8s.io
resources:
- "*"
verbs:
- create
- get
- list
- watch
- update
- delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ template "submariner.fullname" . }}:lighthouse-coredns
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ template "submariner.fullname" . }}:lighthouse-coredns
subjects:
- kind: ServiceAccount
name: {{ template "submariner.lighthouseCoreDnsServiceAccountName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
@@ -22,3 +22,5 @@ spec:
repository: {{ .Values.submariner.images.repository }} repository: {{ .Values.submariner.images.repository }}
version: {{ .Values.submariner.images.tag }} version: {{ .Values.submariner.images.tag }}
serviceCIDR: "{{ .Values.submariner.serviceCidr }}" serviceCIDR: "{{ .Values.submariner.serviceCidr }}"
globalCIDR: "{{ .Values.submariner.globalCidr }}"
serviceDiscoveryEnabled: {{ .Values.submariner.serviceDiscovery }}
+14 -2
View File
@@ -46,14 +46,26 @@ metadata:
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
{{- end }} {{- end }}
--- ---
{{- if .Values.serviceAccounts.lighthouse.create }} {{- if .Values.serviceAccounts.lighthouseAgent.create }}
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: {{ template "submariner.lighthouseServiceAccountName" . }} name: {{ template "submariner.lighthouseAgentServiceAccountName" . }}
labels: labels:
heritage: {{ .Release.Service | quote }} heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }} release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
{{- end }} {{- end }}
---
{{- if .Values.serviceAccounts.lighthouseCoreDns.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ template "submariner.lighthouseCoreDnsServiceAccountName" . }}
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
{{- end }}
+5 -2
View File
@@ -54,6 +54,9 @@ serviceAccounts:
globalnet: globalnet:
create: true create: true
name: "" name: ""
lighthouse: lighthouseAgent:
create: false create: true
name: ""
lighthouseCoreDns:
create: true
name: "" name: ""
+19 -8
View File
@@ -36,7 +36,7 @@ Create the name of the submariner-engine service account to use
*/}} */}}
{{- define "submariner.engineServiceAccountName" -}} {{- define "submariner.engineServiceAccountName" -}}
{{- if .Values.serviceAccounts.engine.create -}} {{- if .Values.serviceAccounts.engine.create -}}
{{ default (printf "%s-engine" (include "submariner.fullname" .)) .Values.serviceAccounts.engine.name }} {{ default "submariner-engine" .Values.serviceAccounts.engine.name }}
{{- else -}} {{- else -}}
{{ default "default" .Values.serviceAccounts.engine.name }} {{ default "default" .Values.serviceAccounts.engine.name }}
{{- end -}} {{- end -}}
@@ -47,7 +47,7 @@ Create the name of the submariner-route-agent service account to use
*/}} */}}
{{- define "submariner.routeAgentServiceAccountName" -}} {{- define "submariner.routeAgentServiceAccountName" -}}
{{- if .Values.serviceAccounts.routeAgent.create -}} {{- if .Values.serviceAccounts.routeAgent.create -}}
{{ default (printf "%s-routeagent" (include "submariner.fullname" .)) .Values.serviceAccounts.routeAgent.name }} {{ default "submariner-routeagent" .Values.serviceAccounts.routeAgent.name }}
{{- else -}} {{- else -}}
{{ default "default" .Values.serviceAccounts.routeAgent.name }} {{ default "default" .Values.serviceAccounts.routeAgent.name }}
{{- end -}} {{- end -}}
@@ -58,20 +58,31 @@ Create the name of the submariner-globalnet service account to use
*/}} */}}
{{- define "submariner.globalnetServiceAccountName" -}} {{- define "submariner.globalnetServiceAccountName" -}}
{{- if .Values.serviceAccounts.globalnet.create -}} {{- if .Values.serviceAccounts.globalnet.create -}}
{{ default (printf "%s-globalnet" (include "submariner.fullname" .)) .Values.serviceAccounts.globalnet.name }} {{ default "submariner-globalnet" .Values.serviceAccounts.globalnet.name }}
{{- else -}} {{- else -}}
{{ default "default" .Values.serviceAccounts.globalnet.name }} {{ default "default" .Values.serviceAccounts.globalnet.name }}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{/* {{/*
Create the name of the submariner-lighthouse service account to use Create the name of the submariner-lighthouse-agent service account to use
*/}} */}}
{{- define "submariner.lighthouseServiceAccountName" -}} {{- define "submariner.lighthouseAgentServiceAccountName" -}}
{{- if .Values.submariner.serviceDiscovery -}} {{- if and (.Values.submariner.serviceDiscovery ) (.Values.serviceAccounts.lighthouseAgent.create) -}}
{{ default (printf "%s-lighthouse" (include "submariner.fullname" .)) .Values.serviceAccounts.lighthouse.name }} {{ default "submariner-lighthouse-agent" .Values.serviceAccounts.lighthouseAgent.name }}
{{- else -}} {{- else -}}
{{ default "default" .Values.serviceAccounts.lighthouse.name }} {{ default "default" .Values.serviceAccounts.lighthouseAgent.name }}
{{- end -}}
{{- end -}}
{{/*
Create the name of the submariner-lighthouse-coredns service account to use
*/}}
{{- define "submariner.lighthouseCoreDnsServiceAccountName" -}}
{{- if and (.Values.submariner.serviceDiscovery ) (.Values.serviceAccounts.lighthouseCoreDns.create) -}}
{{ default "submariner-lighthouse-coredns" .Values.serviceAccounts.lighthouseCoreDns.name }}
{{- else -}}
{{ default "default" .Values.serviceAccounts.lighthouseCoreDns.name }}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
+4
View File
@@ -108,6 +108,10 @@ spec:
value: "{{ .Values.leadership.renewDeadline }}" value: "{{ .Values.leadership.renewDeadline }}"
- name: LEADERSHIP_RETRYPERIOD - name: LEADERSHIP_RETRYPERIOD
value: "{{ .Values.leadership.retryPeriod }}" value: "{{ .Values.leadership.retryPeriod }}"
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: "spec.nodeName"
image: {{ .Values.engine.image.repository }}:{{ default .Chart.AppVersion .Values.engine.image.tag }} image: {{ .Values.engine.image.repository }}:{{ default .Chart.AppVersion .Values.engine.image.tag }}
imagePullPolicy: {{ .Values.engine.image.pullPolicy }} imagePullPolicy: {{ .Values.engine.image.pullPolicy }}
name: submariner name: submariner
+27 -23
View File
@@ -29,29 +29,33 @@ spec:
nodeSelector: nodeSelector:
submariner.io/gateway: 'true' submariner.io/gateway: 'true'
containers: containers:
- name: {{ template "submariner.fullname" . }}-globalnet - name: {{ template "submariner.fullname" . }}-globalnet
image: {{ .Values.globalnet.image.repository }}:{{ default .Chart.AppVersion .Values.globalnet.image.tag }} image: {{ .Values.globalnet.image.repository }}:{{ default .Chart.AppVersion .Values.globalnet.image.tag }}
imagePullPolicy: {{ .Values.globalnet.image.pullPolicy }} imagePullPolicy: {{ .Values.globalnet.image.pullPolicy }}
env: env:
- name: SUBMARINER_CLUSTERID - name: SUBMARINER_CLUSTERID
value: '{{ .Values.submariner.clusterId }}' value: '{{ .Values.submariner.clusterId }}'
- name: SUBMARINER_EXCLUDENS - name: SUBMARINER_EXCLUDENS
value: 'submariner-operator,kube-system,operators,openshift-monitoring,openshift-dns' value: 'submariner-operator,kube-system,operators,openshift-monitoring,openshift-dns'
- name: SUBMARINER_NAMESPACE - name: SUBMARINER_NAMESPACE
value: '{{ .Release.Namespace }}' value: '{{ .Release.Namespace }}'
securityContext: - name: NODE_NAME
allowPrivilegeEscalation: true valueFrom:
capabilities: fieldRef:
add: fieldPath: "spec.nodeName"
- ALL securityContext:
privileged: true allowPrivilegeEscalation: true
readOnlyRootFilesystem: false capabilities:
runAsNonRoot: false add:
volumeMounts: - ALL
# Because we don't actually run iptables locally, but chroot in to the host privileged: true
- mountPath: /host readOnlyRootFilesystem: false
name: host-slash runAsNonRoot: false
readOnly: true volumeMounts:
# Because we don't actually run iptables locally, but chroot in to the host
- mountPath: /host
name: host-slash
readOnly: true
volumes: volumes:
- name: host-slash - name: host-slash
hostPath: hostPath:
+1 -1
View File
@@ -30,7 +30,7 @@ spec:
- mountPath: /etc/coredns - mountPath: /etc/coredns
name: config-volume name: config-volume
readOnly: true readOnly: true
serviceAccountName: {{ template "submariner.lighthouseServiceAccountName" . }} serviceAccountName: {{ template "submariner.lighthouseCoreDnsServiceAccountName" . }}
volumes: volumes:
- configMap: - configMap:
defaultMode: 420 defaultMode: 420
+1 -1
View File
@@ -19,7 +19,7 @@ spec:
labels: labels:
app: {{ template "submariner.fullname" . }}-lighthouse-agent app: {{ template "submariner.fullname" . }}-lighthouse-agent
spec: spec:
serviceAccountName: {{ template "submariner.lighthouseServiceAccountName" . }} serviceAccountName: {{ template "submariner.lighthouseAgentServiceAccountName" . }}
containers: containers:
- command: - command:
- lighthouse-agent.sh - lighthouse-agent.sh
+584 -63
View File
@@ -9,15 +9,93 @@ metadata:
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
rules: rules:
- apiGroups: [""] - apiGroups:
resources: ["configmaps"] - ""
verbs: ["create", "get", "list", "watch", "patch", "update"] resources:
- apiGroups: ["submariner.io"] - pods
resources: ["clusters", "endpoints", "gateways"] - services
verbs: ["create", "get", "list", "watch", "patch", "update", "delete"] - services/finalizers
- apiGroups: [""] - endpoints
resources: ["events"] - persistentvolumeclaims
verbs: ["create", "patch"] - events
- configmaps
- secrets
verbs:
- '*'
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- get
- create
- apiGroups:
- apps
resourceNames:
- submariner-operator
resources:
- deployments/finalizers
verbs:
- update
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- apiGroups:
- apps
resources:
- replicasets
verbs:
- get
- apiGroups:
- submariner.io
resources:
- '*'
- servicediscoveries
verbs:
- '*'
- apiGroups:
- lighthouse.submariner.io
resources:
- '*'
- serviceexports
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ template "submariner.fullname" . }}:engine
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ template "submariner.fullname" . }}:engine
subjects:
- kind: ServiceAccount
name: {{ template "submariner.engineServiceAccountName" . }}
namespace: {{ .Release.Namespace }}
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: Role kind: Role
@@ -29,52 +107,353 @@ metadata:
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
rules: rules:
- apiGroups: ["submariner.io"] - apiGroups:
resources: ["clusters", "endpoints", "gateways"] - ""
verbs: ["create", "get", "list", "watch", "patch", "update"] resources:
- apiGroups: [""] - pods
resources: ["pods"] - services
verbs: ["get", "watch", "list"] - services/finalizers
--- - endpoints
apiVersion: rbac.authorization.k8s.io/v1 - persistentvolumeclaims
kind: RoleBinding - events
metadata: - configmaps
name: {{ template "submariner.fullname" . }}:engine - secrets
roleRef: verbs:
apiGroup: rbac.authorization.k8s.io - '*'
kind: Role - apiGroups:
name: {{ template "submariner.fullname" . }}:engine - apps
subjects: resources:
- kind: ServiceAccount - deployments
name: {{ template "submariner.engineServiceAccountName" . }} - daemonsets
namespace: {{ .Release.Namespace }} - replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- get
- create
- apiGroups:
- apps
resourceNames:
- submariner-operator
resources:
- deployments/finalizers
verbs:
- update
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- apiGroups:
- apps
resources:
- replicasets
verbs:
- get
- apiGroups:
- submariner.io
resources:
- '*'
- servicediscoveries
verbs:
- '*'
- apiGroups:
- lighthouse.submariner.io
resources:
- '*'
- serviceexports
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding kind: RoleBinding
metadata: metadata:
name: {{ template "submariner.fullname" . }}:routeagent name: {{ template "submariner.fullname" . }}:routeagent
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: Role kind: Role
name: {{ template "submariner.fullname" . }}:routeagent name: {{ template "submariner.fullname" . }}:routeagent
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: {{ template "submariner.routeAgentServiceAccountName" . }} name: {{ template "submariner.routeAgentServiceAccountName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
---
{{- if ne .Values.submariner.globalCidr "" }}
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ template "submariner.fullname" . }}:globalnet
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
rules:
- apiGroups:
- ""
resources:
- pods
- services
- services/finalizers
- endpoints
- persistentvolumeclaims
- events
- configmaps
- secrets
verbs:
- '*'
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- get
- create
- apiGroups:
- apps
resourceNames:
- submariner-operator
resources:
- deployments/finalizers
verbs:
- update
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- apiGroups:
- apps
resources:
- replicasets
verbs:
- get
- apiGroups:
- submariner.io
resources:
- '*'
- servicediscoveries
verbs:
- '*'
- apiGroups:
- lighthouse.submariner.io
resources:
- '*'
- serviceexports
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ template "submariner.fullname" . }}:globalnet
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ template "submariner.fullname" . }}:globalnet
subjects:
- kind: ServiceAccount
name: {{ template "submariner.globalnetServiceAccountName" . }}
namespace: {{ .Release.Namespace }}
---
{{- end -}}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "submariner.fullname" . }}:engine
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
rules:
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
- create
- update
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
- list
- create
- update
- delete
- apiGroups: # pods and services are looked up to figure out network settings
- ""
resources:
- pods
- services
- nodes
verbs:
- get
- list
- watch
- apiGroups:
- operator.openshift.io
resources:
- dnses
verbs:
- get
- list
- watch
- update
- apiGroups:
- config.openshift.io
resources:
- networks
verbs:
- get
- list
- apiGroups:
- submariner.io
resources:
- endpoints
- gateways
- clusters
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ template "submariner.fullname" . }}:engine
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ template "submariner.fullname" . }}:engine
subjects:
- kind: ServiceAccount
name: {{ template "submariner.engineServiceAccountName" . }}
namespace: {{ .Release.Namespace }}
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
metadata: metadata:
name: {{ template "submariner.fullname" . }}:routeagent name: {{ template "submariner.fullname" . }}:routeagent
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
rules: rules:
- apiGroups: [""] - apiGroups:
resources: ["nodes"] - ""
verbs: ["get", "list", "watch", "update"] resources:
- configmaps
verbs:
- get
- list
- watch
- update
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
- list
- create
- update
- delete
- apiGroups: # pods and services are looked up to figure out network settings
- ""
resources:
- pods
- services
verbs:
- get
- list
- watch
- apiGroups:
- operator.openshift.io
resources:
- dnses
verbs:
- get
- list
- watch
- update
- apiGroups:
- config.openshift.io
resources:
- networks
verbs:
- get
- list
- apiGroups:
- ""
verbs:
- get
- list
- watch
- update
resources:
- nodes
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
metadata: metadata:
name: {{ template "submariner.fullname" . }}:routeagent name: {{ template "submariner.fullname" . }}:routeagent
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole
@@ -89,61 +468,203 @@ apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
metadata: metadata:
name: {{ template "submariner.fullname" . }}:globalnet name: {{ template "submariner.fullname" . }}:globalnet
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
rules: rules:
- apiGroups: [""] - apiGroups:
resources: ["services", "namespaces", "pods", "nodes"] - ""
verbs: ["get", "list", "watch", "update"] resources:
- apiGroups: ["submariner.io"] - pods
resources: ["clusters", "endpoints", "gateways"] - services
verbs: ["get", "list", "watch"] - namespaces
- nodes
verbs:
- get
- list
- watch
- update
- apiGroups:
- submariner.io
resources:
- endpoints
- clusters
verbs:
- get
- list
- watch
- apiGroups:
- multicluster.x-k8s.io
resources:
- "serviceexports"
verbs:
- get
- list
- watch
--- ---
{{- end -}}
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
metadata: metadata:
name: {{ template "submariner.fullname" . }}:globalnet name: {{ template "submariner.fullname" . }}:globalnet
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole
name: {{ template "submariner.fullname" . }}:globalnet name: {{ template "submariner.fullname" . }}:globalnet
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: {{ template "submariner.globalnetServiceAccountName" . }} name: {{ template "submariner.globalnetServiceAccountName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
--- ---
{{- end -}}
{{- if .Values.submariner.serviceDiscovery }} {{- if .Values.submariner.serviceDiscovery }}
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
metadata: metadata:
name: {{ template "submariner.fullname" . }}:lighthouse name: {{ template "submariner.fullname" . }}:lighthouse-agent
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
rules: rules:
- apiGroups: [""] - apiGroups:
resources: ["services", "namespaces", "configmaps", "endpoints"] - ""
verbs: ["get", "list", "watch", "update"] resources:
- apiGroups: ["discovery.k8s.io"] - services
resources: ["endpointslices"] - namespaces
verbs: ["create", "get", "list", "watch", "update", "delete", "deletecollection"] - endpoints
- apiGroups: ["lighthouse.submariner.io"] verbs:
resources: ["*"] - get
verbs: ["create", "get", "list", "watch", "update", "delete"] - list
- apiGroups: ["submariner.io"] - watch
resources: ["gateways"] - update
verbs: ["get", "list", "watch"] - apiGroups:
- apiGroups: ["multicluster.x-k8s.io"] - discovery.k8s.io
resources: ["*"] resources:
verbs: ["create", "get", "list", "watch", "update", "delete"] - endpointslices
verbs:
- create
- get
- list
- watch
- update
- delete
- deletecollection
- apiGroups:
- submariner.io
resources:
- "gateways"
verbs:
- get
- list
- watch
- apiGroups:
- multicluster.x-k8s.io
resources:
- "*"
verbs:
- create
- get
- list
- watch
- update
- delete
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
metadata: metadata:
name: {{ template "submariner.fullname" . }}:lighthouse name: {{ template "submariner.fullname" . }}:lighthouse-agent
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole
name: {{ template "submariner.fullname" . }}:lighthouse name: {{ template "submariner.fullname" . }}:lighthouse-agent
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: {{ template "submariner.lighthouseServiceAccountName" . }} name: {{ template "submariner.lighthouseAgentServiceAccountName" . }}
namespace: {{ .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "submariner.fullname" . }}:lighthouse-coredns
rules:
- apiGroups:
- ""
resources:
- services
- namespaces
- endpoints
verbs:
- get
- list
- watch
- update
- apiGroups:
- discovery.k8s.io
resources:
- endpointslices
verbs:
- create
- get
- list
- watch
- update
- delete
- deletecollection
- apiGroups:
- lighthouse.submariner.io
resources:
- "*"
verbs:
- create
- get
- list
- watch
- update
- delete
- apiGroups:
- submariner.io
resources:
- "gateways"
verbs:
- get
- list
- watch
- apiGroups:
- multicluster.x-k8s.io
resources:
- "*"
verbs:
- create
- get
- list
- watch
- update
- delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ template "submariner.fullname" . }}:lighthouse-coredns
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ template "submariner.fullname" . }}:lighthouse-coredns
subjects:
- kind: ServiceAccount
name: {{ template "submariner.lighthouseCoreDnsServiceAccountName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
+14 -2
View File
@@ -34,14 +34,26 @@ metadata:
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
{{- end }} {{- end }}
--- ---
{{- if .Values.serviceAccounts.lighthouse.create }} {{- if .Values.serviceAccounts.lighthouseAgent.create }}
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: {{ template "submariner.lighthouseServiceAccountName" . }} name: {{ template "submariner.lighthouseAgentServiceAccountName" . }}
labels: labels:
heritage: {{ .Release.Service | quote }} heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }} release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
{{- end }} {{- end }}
---
{{- if .Values.serviceAccounts.lighthouseCoreDns.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ template "submariner.lighthouseCoreDnsServiceAccountName" . }}
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }}
{{- end }}
+6 -3
View File
@@ -72,8 +72,11 @@ serviceAccounts:
create: true create: true
name: "" name: ""
globalnet: globalnet:
create: false create: true
name: "" name: ""
lighthouse: lighthouseAgent:
create: false create: true
name: ""
lighthouseCoreDns:
create: true
name: "" name: ""