Compare commits

...
21 Commits
Author SHA1 Message Date
Janki ChhatbarandGitHub cb78ab7aaa Remove duplicated information (#162)
Submariner, k8s, OS and kernel information
are collected as part of `subctl gather`. Don't
ask for them explicitly in bug report.

Signed-off-by: Janki Chhatbar <jchhatba@redhat.com>
2021-07-27 09:47:20 +00:00
Daniel FarrellandDaniel Farrell 2f9156cf34 Extract helm-docs generation/testing to Makefile
Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-07-27 05:00:56 -04:00
Stephen KittandThomas Pantelis 4b48a3d30c Remove project-specific gitlint configuration
We now use Shipyard's gitlint configuration everywhere.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2021-07-22 22:23:50 -04:00
Janki ChhatbarandDaniel Farrell 78294c1827 Enable PR dependency check jobs
This job marks a PR `dependent` whenever a dependent PR
is mentioned via `Depends on/ depends on` keyword.

The job fails until the dependent PR is not merged. This
helps in properly managing merging of dependent PRs.

Signed-off-by: Janki Chhatbar <jchhatba@redhat.com>
2021-07-22 10:18:28 -04:00
Stephen KittandThomas Pantelis 29c87078b5 Increase days until stale to 120
This gives us a little over a full release to work on issues.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2021-07-16 15:04:52 -04:00
Vishal ThaparandThomas Pantelis f757a66958 Allow lighthouse-agent access to ingressips
`lighthouse-agent` `ClusterRole` requires access to `globalingressips`
for Globalnetv2 in Lighthouse.

Signed-off-by: Vishal Thapar <5137689+vthapar@users.noreply.github.com>
2021-07-07 10:04:32 -04:00
Vishal ThaparandMiguel Angel Ajo Pelayo ac4910d36b Fix globalnetv2 ClusterRole
Globalnetv2 requires `globalnet` `ClusterRole` for Egress/IngressIPs
but those were added as `globalnet` `Role` instead. This change
moves the permissions from `Role` to `ClusterRole`

Signed-off-by: Vishal Thapar <5137689+vthapar@users.noreply.github.com>
2021-07-07 13:33:54 +02:00
Daniel FarrellandGitHub 6869b47fc3 Add linter to check no "Apply suggestions" commits (#154)
Add a linting job to verify that no commit message in a PR contains the
case insensitive string "Apply suggestions from code review". Commits
with exactly this title are generated by GitHub automatically when a
batch of proposed changes from code review are accepted from the GitHub
UI. A number of such commits have made it into various Submariner/*
repos.

Commits addressing code review feedback should typically be squashed
into the commits under review, or made into well-commented discrete
commits.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-06-30 16:26:39 +00:00
Daniel FarrellandGitHub d3fcdc2c57 Add bot config for labeling when approved (#153)
Will configure the submariner-bot to add the /ready-to-test label when a
PR has two approvals, causing the full E2E workflow to run.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-06-30 13:39:53 +00:00
Daniel FarrellandDaniel Farrell 23968afbef Add helm-docs generation and linting
Generate docs for each chart and verify the committed docs match the
generated docs.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-06-29 12:14:34 -05:00
Daniel FarrellandDaniel Farrell 90db64f64d Add generated docs for both Helm charts
Add docs generated by helm-docs for each chart. The docs will be kept
up-to-date with CI and the contents of the docs can be improved in
future changes to inline commenting.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-06-29 12:14:34 -05:00
Daniel FarrellandDaniel Farrell 4f5b617ae7 Ignore raw URLs in MDlint pending helm-docs bugfix
The maintainers table generated by helm-docs includes a raw URL in
Markdown, which fails markdownlint. I sent a PR upstream to fix the root
of the issue, but for now we have to disable this linter rule.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-06-29 12:14:34 -05:00
Daniel FarrellandDaniel Farrell 06504b84d6 Ignore charts repo URL in MD link checking
Somehow the GitHub Pages URL we use to publish and install the charts
works to install the charts in CI but also fails with a 404 in CI.

The URL is successfully used by Shipyard here:

https://github.com/submariner-io/shipyard/blob/
33dc2ffdadf6e520a2101368f7f7456c031bace0/scripts/shared/lib/
deploy_helm#L14

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-06-29 12:14:34 -05:00
Sridhar GaddamandThomas Pantelis cff6e76f98 Add roles to access new Globalnet 2.0 objects
Signed-Off-by: Sridhar Gaddam <sgaddam@redhat.com>
2021-06-28 11:55:55 -04:00
Daniel FarrellandStephen Kitt 97782b4bb4 Split E2E into default and full
Following the pattern from other repos, split the E2E test job into a
default job that runs a single default-only test always on PRs and a
full job that runs the full matrix when the ready-to-test label is
added.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-06-22 15:10:19 +02:00
Daniel FarrellandDaniel Farrell 2938f26520 Add helm/chart-testing linting
Fixes: #68
Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-06-21 08:14:04 -05:00
Daniel FarrellandDaniel Farrell c8b09b5c31 Name RBAC fields to match K8s requirements
The colon in these field names isn't allowed by K8s, and fails ct
linting. Use the new names from submariner-operator, which have already
been renamed to fix this.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-06-21 08:14:04 -05:00
Daniel FarrellandDaniel Farrell df86353f4b Add required apiVersion field to Chart.yaml
This field is required by standard chart schemas. It should be v2 for
Charts that support Helm v3, as we do.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-06-21 08:14:04 -05:00
Daniel FarrellandDaniel Farrell b0cdd50077 Use CNCF-wording for maintainers
Use copyright notice wording required by CNCF for the maintainers field
for both Chart.yaml files.

Also fix an indentation error in one Chart.yaml file.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2021-06-21 08:14:04 -05:00
Janki ChhatbarandThomas Pantelis 69ff334c72 Add vxlan cable driver to test matrix
Signed-Off-By: Janki Chhatbar <jchhatba@redhat.com>
2021-06-14 09:15:16 -04:00
Stephen KittandThomas Pantelis df9a462b9b Use short Kubernetes versions
Signed-off-by: Stephen Kitt <skitt@redhat.com>
2021-06-01 22:25:17 -04:00
19 changed files with 293 additions and 40 deletions
+2 -4
View File
@@ -23,11 +23,9 @@ Submariner Owners: https://github.com/orgs/submariner-io/teams/submariner-core
**Anything else we need to know?**:
**Environment**:
- Submariner version (use `subctl version`):
- Kubernetes version (use `kubectl version`):
- Diagnose information (use `subctl diagnose all`):
- Gather information (use `subctl gather`):
- Cloud provider or hardware configuration:
- OS (e.g: `cat /etc/os-release`):
- Kernel (e.g. `uname -a`):
- Install tools:
- Network plugin and version (if this is a network-related bug):
- Others:
+1 -1
View File
@@ -2,7 +2,7 @@
# Configuration for probot-stale - https://github.com/probot/stale
# Number of days of inactivity before an Issue becomes stale (pull request is overridden later)
daysUntilStale: 60
daysUntilStale: 120
# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
+38
View File
@@ -0,0 +1,38 @@
---
name: PR Dependencies
on:
issues:
types:
- opened
- edited
- closed
- reopened
- synchronize
pull_request_target:
types:
- opened
- edited
- closed
- reopened
- synchronize
schedule:
- cron: '0 0/6 * * *' # every 6 hours
jobs:
check:
name: Check Dependencies
runs-on: ubuntu-latest
steps:
- uses: z0al/dependent-issues@70a1b2d4ee1cdc743af33498bd0204123953a887
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
# The label to use to mark dependent issues
label: dependent
# Enable checking for dependencies in issues.
check_issues: on
# A comma-separated list of keywords to mark dependency.
keywords: depends on, Depends on
+37
View File
@@ -0,0 +1,37 @@
---
name: End to End Full
on:
pull_request:
types: [labeled, opened, synchronize, reopened]
jobs:
e2e:
name: E2E
if: contains(github.event.pull_request.labels.*.name, 'ready-to-test')
timeout-minutes: 45
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
cable_driver: ['libreswan', 'wireguard', 'vxlan']
globalnet: ['', 'globalnet']
k8s_version: ['1.17']
lighthouse: ['', 'lighthouse']
include:
- k8s_version: '1.18'
- k8s_version: '1.19'
- k8s_version: '1.20'
steps:
- name: Check out the repository
uses: actions/checkout@v2
- name: Run E2E deployment and tests
uses: submariner-io/shipyard/gh-actions/e2e@devel
with:
k8s_version: ${{ matrix.k8s_version }}
using: ${{ matrix.cable_driver }} ${{ matrix.globalnet }} ${{ matrix.lighthouse }}
- name: Post mortem
if: failure()
uses: submariner-io/shipyard/gh-actions/post-mortem@devel
+1 -16
View File
@@ -1,5 +1,5 @@
---
name: End to End Tests
name: End to End Default
on:
pull_request:
@@ -9,27 +9,12 @@ jobs:
name: E2E
timeout-minutes: 30
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
cable_driver: ['libreswan', 'wireguard']
globalnet: ['', 'globalnet']
k8s_version: ['1.17.17']
lighthouse: ['', 'lighthouse']
include:
# Recentness of K8s versions are limited by kindest/node image releases
- k8s_version: 1.18.15
- k8s_version: 1.19.7
- k8s_version: 1.20.2
steps:
- name: Check out the repository
uses: actions/checkout@v2
- name: Run E2E deployment and tests
uses: submariner-io/shipyard/gh-actions/e2e@devel
with:
k8s_version: ${{ matrix.k8s_version }}
using: ${{ matrix.cable_driver }} ${{ matrix.globalnet }} ${{ matrix.lighthouse }}
- name: Post mortem
if: failure()
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
cable_driver: ['libreswan', 'wireguard']
cable_driver: ['libreswan', 'wireguard', 'vxlan']
globalnet: ['', 'globalnet']
lighthouse: ['', 'lighthouse']
steps:
+51
View File
@@ -5,6 +5,47 @@ on:
pull_request:
jobs:
apply-suggestions-commits:
name: 'No "Apply suggestions from code review" Commits'
runs-on: ubuntu-latest
steps:
- name: Get PR commits
id: 'get-pr-commits'
uses: tim-actions/get-pr-commits@v1.1.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: 'Verify no "Apply suggestions from code review" commits'
uses: tim-actions/commit-message-checker-with-regex@v0.3.1
with:
commits: ${{ steps.get-pr-commits.outputs.commits }}
pattern: '^(?!.*(apply suggestions from code review))'
flags: 'i'
error: 'Commits addressing code review feedback should typically be squashed into the commits under review'
chart-testing:
name: Helm Chart Linting
runs-on: ubuntu-latest
steps:
- name: Check out the repository
uses: actions/checkout@v2
- name: Set up Helm
uses: azure/setup-helm@v1
with:
version: v3.6.0
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Set up helm/chart-testing
uses: helm/chart-testing-action@v2.1.0
- name: Run helm/chart-testing (lint)
run: ct lint --config ct.yaml
gitlint:
name: Commit Message(s)
runs-on: ubuntu-latest
@@ -16,6 +57,16 @@ jobs:
- name: Run gitlint
run: make gitlint
helm-docs:
name: Helm Docs Generation
runs-on: ubuntu-latest
steps:
- name: Check out the repository
uses: actions/checkout@v2
- name: Run helm-docs and verify docs are up-to-date
run: make helm-docs
markdown-link-check:
name: Markdown Links (modified files)
runs-on: ubuntu-latest
-9
View File
@@ -1,9 +0,0 @@
[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
+3
View File
@@ -5,6 +5,9 @@
},
{
"pattern": "^http://localhost:"
},
{
"pattern": "^https://submariner-io.github.io/submariner-charts/charts"
}
]
}
+4
View File
@@ -10,3 +10,7 @@ line-length:
no-inline-html:
allowed_elements:
- span
# Temporary while helm-docs has a bug where maintainer URLs are used raw in MD
# Waiting on: https://github.com/norwoodj/helm-docs/pull/102
no-bare-urls: false
+3
View File
@@ -0,0 +1,3 @@
label-approved:
approvals: 2
label: ready-to-test
+16 -1
View File
@@ -22,6 +22,7 @@ export DEPLOY_ARGS
GH_URL=https://submariner-io.github.io/submariner-charts/charts
CHARTS_DIR=charts
CHARTS_VERSION=0.7.0
HELM_DOCS_VERSION=0.15.0
REPO_URL=$(shell git config remote.origin.url)
# Process extra flags from the `using=a,b,c` optional flag
@@ -42,6 +43,20 @@ e2e: E2E_ARGS=cluster1 cluster2
helm dep update $(subst -$(CHARTS_VERSION),,$(basename $(@F)))
helm package --version $(CHARTS_VERSION) $(subst -$(CHARTS_VERSION),,$(basename $(@F)))
helm-docs:
# Avoid polluting repo with helm-docs' README/LICENSE or other files in the release archive
cd /tmp && \
curl -sL https://github.com/norwoodj/helm-docs/releases/download/v$(HELM_DOCS_VERSION)/helm-docs_$(HELM_DOCS_VERSION)_Linux_x86_64.tar.gz | tar zx && \
cd -
/tmp/helm-docs
if [ ! -z $(git status --porcelain) ]; then \
echo "Helm docs not up-to-date:"; \
git status --porcelain; \
git diff; \
echo "Run make helm-docs locally to generate updated docs, commit the updates."; \
exit 1; \
fi
release: submariner-k8s-broker-$(CHARTS_VERSION).tgz submariner-operator-$(CHARTS_VERSION).tgz
git checkout gh-pages
mv *.tgz $(CHARTS_DIR)
@@ -51,7 +66,7 @@ release: submariner-k8s-broker-$(CHARTS_VERSION).tgz submariner-operator-$(CHART
helm repo index $(CHARTS_DIR) --url $(GH_URL); \
fi
.PHONY: release
.PHONY: release helm-docs
else
+6
View File
@@ -0,0 +1,6 @@
charts:
- submariner-operator
- submariner-k8s-broker
# Tests that maintainer name is valid GitHub account, which isn't what we want
# See: https://github.com/helm/chart-testing/issues/192
validate-maintainers: false
+5 -3
View File
@@ -1,12 +1,14 @@
---
name: submariner-k8s-broker
version: 0.6.0
apiVersion: v2
appVersion: 0.6.0
description: Submariner Kubernetes Broker
keywords:
home: https://submariner-io.github.io/
sources:
- https://submariner-io.github.io/submariner-charts/charts
- https://submariner-io.github.io/submariner-charts/charts
maintainers:
- name: Submariner Developers
email: submariner-dev@googlegroups.com
- name: Contributors to the Submariner project
email: submariner-dev@googlegroups.com
url: https://submariner.io/
+26
View File
@@ -0,0 +1,26 @@
# submariner-k8s-broker
![Version: 0.6.0](https://img.shields.io/badge/Version-0.6.0-informational?style=flat-square) ![AppVersion: 0.6.0](https://img.shields.io/badge/AppVersion-0.6.0-informational?style=flat-square)
Submariner Kubernetes Broker
**Homepage:** <https://submariner-io.github.io/>
## Maintainers
| Name | Email | Url |
| ---- | ------ | --- |
| Contributors to the Submariner project | submariner-dev@googlegroups.com | https://submariner.io/ |
## Source Code
* <https://submariner-io.github.io/submariner-charts/charts>
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| crd.create | bool | `true` | |
| rbac.create | bool | `true` | |
| serviceAccounts.client.create | bool | `true` | |
| serviceAccounts.client.name | string | `""` | |
+4 -4
View File
@@ -2,7 +2,7 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ template "submariner-k8s-broker.fullname" . }}:client
name: {{ template "submariner-k8s-broker.fullname" . }}-cluster
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
@@ -25,13 +25,13 @@ rules:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ template "submariner-k8s-broker.fullname" . }}:client
name: {{ template "submariner-k8s-broker.fullname" . }}-cluster
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ template "submariner-k8s-broker.fullname" . }}:client
name: {{ template "submariner-k8s-broker.fullname" . }}-cluster
subjects:
- kind: ServiceAccount
name: {{ template "submariner-k8s-broker.clientServiceAccountName" . }}
namespace: {{ .Release.Namespace }}
{{- end -}}
{{- end -}}
+3 -1
View File
@@ -1,6 +1,7 @@
---
name: submariner-operator
version: 0.7.0
apiVersion: v2
appVersion: 0.7.0
description: Submariner enables direct networking between Pods and Services in different Kubernetes clusters
keywords:
@@ -8,5 +9,6 @@ home: https://submariner-io.github.io/
sources:
- https://submariner-io.github.io/submariner-charts/charts
maintainers:
- name: Submariner Developers
- name: Contributors to the Submariner project
email: submariner-dev@googlegroups.com
url: https://submariner.io/
+68
View File
@@ -0,0 +1,68 @@
# submariner-operator
![Version: 0.7.0](https://img.shields.io/badge/Version-0.7.0-informational?style=flat-square) ![AppVersion: 0.7.0](https://img.shields.io/badge/AppVersion-0.7.0-informational?style=flat-square)
Submariner enables direct networking between Pods and Services in different Kubernetes clusters
**Homepage:** <https://submariner-io.github.io/>
## Maintainers
| Name | Email | Url |
| ---- | ------ | --- |
| Contributors to the Submariner project | submariner-dev@googlegroups.com | https://submariner.io/ |
## Source Code
* <https://submariner-io.github.io/submariner-charts/charts>
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| broker.ca | string | `""` | |
| broker.globalnet | bool | `false` | |
| broker.insecure | bool | `false` | |
| broker.namespace | string | `"xyz"` | |
| broker.server | string | `"example.k8s.apiserver"` | |
| broker.token | string | `"test"` | |
| gateway.image.repository | string | `"quay.io/submariner/submariner-gateway"` | |
| gateway.image.tag | string | `"0.7.0"` | |
| ipsec.debug | bool | `false` | |
| ipsec.ikePort | int | `500` | |
| ipsec.natPort | int | `4500` | |
| ipsec.psk | string | `""` | |
| leadership.leaseDuration | int | `10` | |
| leadership.renewDeadline | int | `5` | |
| leadership.retryPeriod | int | `2` | |
| operator.affinity | object | `{}` | |
| operator.image.pullPolicy | string | `"IfNotPresent"` | |
| operator.image.repository | string | `"quay.io/submariner/submariner-operator"` | |
| operator.image.tag | string | `"0.7.0"` | |
| operator.resources | object | `{}` | |
| operator.tolerations | list | `[]` | |
| rbac.create | bool | `true` | |
| serviceAccounts.gateway.create | bool | `true` | |
| serviceAccounts.gateway.name | string | `""` | |
| serviceAccounts.globalnet.create | bool | `true` | |
| serviceAccounts.globalnet.name | string | `""` | |
| serviceAccounts.lighthouseAgent.create | bool | `true` | |
| serviceAccounts.lighthouseAgent.name | string | `""` | |
| serviceAccounts.lighthouseCoreDns.create | bool | `true` | |
| serviceAccounts.lighthouseCoreDns.name | string | `""` | |
| serviceAccounts.operator.create | bool | `true` | |
| serviceAccounts.operator.name | string | `""` | |
| serviceAccounts.routeAgent.create | bool | `true` | |
| serviceAccounts.routeAgent.name | string | `""` | |
| submariner.cableDriver | string | `"libreswan"` | |
| submariner.clusterCidr | string | `""` | |
| submariner.clusterId | string | `""` | |
| submariner.colorCodes | string | `"blue"` | |
| submariner.debug | bool | `false` | |
| submariner.globalCidr | string | `""` | |
| submariner.images.repository | string | `"quay.io/submariner"` | |
| submariner.images.tag | string | `"0.7.0"` | |
| submariner.natEnabled | bool | `false` | |
| submariner.serviceCidr | string | `""` | |
| submariner.serviceDiscovery | bool | `true` | |
| submariner.token | string | `""` | |
+24
View File
@@ -657,6 +657,29 @@ rules:
- get
- list
- watch
- apiGroups:
- submariner.io
resources:
- clusterglobalegressips
- globalegressips
verbs:
- create
- get
- list
- watch
- update
- apiGroups:
- submariner.io
resources:
- globalingressips
verbs:
- create
- get
- list
- watch
- update
- delete
- deletecollection
- apiGroups:
- multicluster.x-k8s.io
resources:
@@ -723,6 +746,7 @@ rules:
- submariner.io
resources:
- "gateways"
- "globalingressips"
verbs:
- get
- list