Compare commits

..
1 Commits
Author SHA1 Message Date
Automated Release 4126e0fb08 Update base image to use stable branch 'release-0.9'
Signed-off-by: Automated Release <release@submariner.io>
2021-04-30 09:49:39 +00:00
47 changed files with 1540 additions and 2151 deletions
+4 -2
View File
@@ -23,9 +23,11 @@ Submariner Owners: https://github.com/orgs/submariner-io/teams/submariner-core
**Anything else we need to know?**: **Anything else we need to know?**:
**Environment**: **Environment**:
- Diagnose information (use `subctl diagnose all`): - Submariner version (use `subctl version`):
- Gather information (use `subctl gather`): - Kubernetes version (use `kubectl version`):
- Cloud provider or hardware configuration: - Cloud provider or hardware configuration:
- OS (e.g: `cat /etc/os-release`):
- Kernel (e.g. `uname -a`):
- Install tools: - Install tools:
- Network plugin and version (if this is a network-related bug): - Network plugin and version (if this is a network-related bug):
- Others: - Others:
+1 -1
View File
@@ -6,7 +6,7 @@ labels: support
--- ---
<!-- <!--
GitHub may not be the right place for support requests. GitHub may not the right place for support requests.
You can also post your question on the [Submariner You can also post your question on the [Submariner
Slack](https://kubernetes.slack.com/archives/C010RJV694M) or the Submariner Slack](https://kubernetes.slack.com/archives/C010RJV694M) or the Submariner
-13
View File
@@ -1,13 +0,0 @@
<!-- Thanks for sending a pull request! Here are some tips for you:
1. If this is your first time, please read our developer guide: https://submariner.io/development/
2. Ensure you have added the appropriate tests for your PR: https://submariner.io/development/code-review/#test-new-functionality
3. Read the code review guide to ease the review process: https://submariner.io/development/code-review/
4. If the PR is unfinished, mark it as a draft: https://submariner.io/development/code-review/#mark-work-in-progress-prs-as-drafts
5. If you are using CI to debug, use your private fork: https://submariner.io/development/code-review/#use-private-forks-for-debugging-prs-by-running-ci
6. Add labels to the PR as appropriate.
This template is based on the K8s/K8s template:
https://github.com/kubernetes/kubernetes/blob/master/.github/PULL_REQUEST_TEMPLATE.md
-->
-47
View File
@@ -1,47 +0,0 @@
---
version: 2
updates:
- package-ecosystem: github-actions
directory: '/'
schedule:
interval: monthly
groups:
github-actions:
patterns:
- "*"
- package-ecosystem: github-actions
directory: '/'
target-branch: "release-0.15"
schedule:
interval: monthly
groups:
github-actions:
patterns:
- "*"
- package-ecosystem: github-actions
directory: '/'
target-branch: "release-0.16"
schedule:
interval: monthly
groups:
github-actions:
patterns:
- "*"
- package-ecosystem: github-actions
directory: '/'
target-branch: "release-0.17"
schedule:
interval: monthly
groups:
github-actions:
patterns:
- "*"
- package-ecosystem: github-actions
directory: '/'
target-branch: "release-0.18"
schedule:
interval: monthly
groups:
github-actions:
patterns:
- "*"
+57
View File
@@ -0,0 +1,57 @@
---
# 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
# 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.
daysUntilClose: 7
# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
onlyLabels: []
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
exemptLabels:
- security
- confirmed
# Set to true to ignore issues in a project (defaults to false)
exemptProjects: false
# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: false
# Set to true to ignore issues with an assignee (defaults to false)
exemptAssignees: false
# Label to use when marking as stale
staleLabel: wontfix
# Comment to post when marking as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
activity for 60 days. It will be closed if no further activity occurs.
Please make a comment if this issue/pr is still valid. Thank you
for your contributions.
# Comment to post when removing the stale label.
# unmarkComment: >
# Your comment here.
# Comment to post when closing a stale Issue or Pull Request.
# closeComment: >
# Your comment here.
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30
# Limit to only `issues` or `pulls`
# only: issues
pulls:
daysUntilStale: 30
markComment: >
This pull request has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
+4 -6
View File
@@ -4,13 +4,11 @@ name: Branch Checks
on: on:
pull_request: pull_request:
permissions: {}
jobs: jobs:
target_branch: target_devel:
name: PR targets branch name: PR targets release-0.9
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check that the PR targets release-0.19 - name: Check that the PR targets release-0.9
if: ${{ github.base_ref != 'release-0.19' }} if: ${{ github.base_ref != 'release-0.9' }}
run: exit 1 run: exit 1
-44
View File
@@ -1,44 +0,0 @@
---
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
permissions:
issues: write
pull-requests: write
statuses: write
jobs:
check:
name: Check Dependencies
if: github.repository_owner == 'submariner-io'
runs-on: ubuntu-latest
steps:
- uses: z0al/dependent-issues@950226e7ca8fc43dc209a7febf67c655af3bdb43
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
-39
View File
@@ -1,39 +0,0 @@
---
name: End to End Full
on:
pull_request:
types: [labeled, opened, synchronize, reopened]
permissions: {}
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']
# Run most tests against the latest K8s version
k8s_version: ['k8s-latest']
lighthouse: ['', 'lighthouse']
include:
# Bottom of supported K8s version range
- k8s_version: 'k8s-oldest-supported'
steps:
- name: Check out the repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Run E2E deployment and tests
uses: submariner-io/shipyard/gh-actions/e2e@release-0.19
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@release-0.19
+19 -6
View File
@@ -1,23 +1,36 @@
--- ---
name: End to End Default name: End to End Tests
on: on:
pull_request: pull_request:
permissions: {}
jobs: jobs:
e2e: e2e:
name: E2E name: E2E
timeout-minutes: 30 timeout-minutes: 30
runs-on: ubuntu-latest 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: steps:
- name: Check out the repository - name: Check out the repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 uses: actions/checkout@v2
- name: Run E2E deployment and tests - name: Run E2E deployment and tests
uses: submariner-io/shipyard/gh-actions/e2e@release-0.19 uses: submariner-io/shipyard/gh-actions/e2e@release-0.9
with:
k8s_version: ${{ matrix.k8s_version }}
using: ${{ matrix.cable_driver }} ${{ matrix.globalnet }} ${{ matrix.lighthouse }}
- name: Post mortem - name: Post mortem
if: failure() if: failure()
uses: submariner-io/shipyard/gh-actions/post-mortem@release-0.19 uses: submariner-io/shipyard/gh-actions/post-mortem@release-0.9
+4 -7
View File
@@ -5,29 +5,26 @@ on:
schedule: schedule:
- cron: "0 0 * * *" - cron: "0 0 * * *"
permissions: {}
jobs: jobs:
e2e: e2e:
name: E2E name: E2E
if: github.repository_owner == 'submariner-io'
timeout-minutes: 30 timeout-minutes: 30
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
cable_driver: ['libreswan', 'wireguard', 'vxlan'] cable_driver: ['libreswan', 'wireguard']
globalnet: ['', 'globalnet'] globalnet: ['', 'globalnet']
lighthouse: ['', 'lighthouse'] lighthouse: ['', 'lighthouse']
steps: steps:
- name: Check out the repository - name: Check out the repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 uses: actions/checkout@v2
- name: Run E2E deployment and tests - name: Run E2E deployment and tests
uses: submariner-io/shipyard/gh-actions/e2e@release-0.19 uses: submariner-io/shipyard/gh-actions/e2e@release-0.9
with: with:
using: ${{ matrix.cable_driver }} ${{ matrix.globalnet }} ${{ matrix.lighthouse }} using: ${{ matrix.cable_driver }} ${{ matrix.globalnet }} ${{ matrix.lighthouse }}
- name: Post mortem - name: Post mortem
if: failure() if: failure()
uses: submariner-io/shipyard/gh-actions/post-mortem@release-0.19 uses: submariner-io/shipyard/gh-actions/post-mortem@release-0.9
+9 -70
View File
@@ -4,91 +4,27 @@ name: Linting
on: on:
pull_request: pull_request:
permissions: {}
jobs: 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@198af03565609bb4ed924d1260247b4881f09e7d
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: 'Verify no "Apply suggestions from code review" commits'
uses: tim-actions/commit-message-checker-with-regex@094fc16ff83d04e2ec73edb5eaf6aa267db33791
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'
- name: 'Verify no "fixup!" commits'
uses: tim-actions/commit-message-checker-with-regex@094fc16ff83d04e2ec73edb5eaf6aa267db33791
with:
commits: ${{ steps.get-pr-commits.outputs.commits }}
pattern: '^(?!fixup!)'
flags: 'i'
error: 'Fixup commits should 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@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Set up Helm
uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310
with:
version: v3.6.0
- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97
with:
python-version: '3.13.x'
- name: Set up helm/chart-testing
uses: helm/chart-testing-action@6ec842c01de15ebb84c8627d2744a0c2f2755c9f
- name: Set up local helm repo
run: make local-helm-repo
- name: Run helm/chart-testing (lint)
run: ct lint --config ct.yaml
gitlint: gitlint:
name: Commit Message(s) name: Commit Message(s)
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out the repository - name: Check out the repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 uses: actions/checkout@v2
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Run gitlint - name: Run gitlint
run: make gitlint run: make gitlint
helm-docs:
name: Helm Docs Generation
runs-on: ubuntu-latest
steps:
- name: Check out the repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Run helm-docs and verify docs are up-to-date
run: make helm-docs
markdown-link-check: markdown-link-check:
name: Markdown Links (modified files) name: Markdown Links (modified files)
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out the repository - name: Check out the repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 uses: actions/checkout@v2
- name: Run markdown-link-check - name: Run markdown-link-check
uses: gaurav-nelson/github-action-markdown-link-check@3c3b66f1f7d0900e37b71eca45b63ea9eedfce31 uses: gaurav-nelson/github-action-markdown-link-check@v1
with: with:
config-file: ".markdownlinkcheck.json" config-file: ".markdownlinkcheck.json"
check-modified-files-only: "yes" check-modified-files-only: "yes"
@@ -99,7 +35,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out the repository - name: Check out the repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 uses: actions/checkout@v2
- name: Run markdownlint - name: Run markdownlint
run: make markdownlint run: make markdownlint
@@ -108,6 +44,9 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out the repository - name: Check out the repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 uses: actions/checkout@v2
- name: Run yamllint - name: Run yamllint
run: make yamllint uses: ibiqlik/action-yamllint@v1
with:
file_or_dir: submariner-k8s-broker/Chart.yaml submariner-k8s-broker/values.yaml submariner-operator/Chart.yaml submariner-operator/values.yaml
config_file: .yamllint.yml
+3 -8
View File
@@ -5,27 +5,22 @@ on:
schedule: schedule:
- cron: "0 0 * * 0" - cron: "0 0 * * 0"
permissions: {}
jobs: jobs:
markdown-link-check-periodic: markdown-link-check-periodic:
name: Markdown Links (all files) name: Markdown Links (all files)
if: github.repository_owner == 'submariner-io'
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions:
issues: write
steps: steps:
- name: Check out the repository - name: Check out the repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 uses: actions/checkout@v2
- name: Run markdown-link-check - name: Run markdown-link-check
uses: gaurav-nelson/github-action-markdown-link-check@3c3b66f1f7d0900e37b71eca45b63ea9eedfce31 uses: gaurav-nelson/github-action-markdown-link-check@v1
with: with:
config-file: ".markdownlinkcheck.json" config-file: ".markdownlinkcheck.json"
- name: Raise an Issue to report broken links - name: Raise an Issue to report broken links
if: ${{ failure() }} if: ${{ failure() }}
uses: peter-evans/create-issue-from-file@fca9117c27cdc29c6c4db3b86c48e4115a786710 uses: peter-evans/create-issue-from-file@v2.3.2
with: with:
title: Broken link detected by CI title: Broken link detected by CI
content-filepath: .github/ISSUE_TEMPLATE/broken-link.md content-filepath: .github/ISSUE_TEMPLATE/broken-link.md
+2 -6
View File
@@ -4,19 +4,15 @@ name: Release Charts
on: on:
push: push:
branches: branches:
- release-0.19 - release-0.9
permissions:
contents: write
jobs: jobs:
release: release:
name: Release name: Release
if: github.repository_owner == 'submariner-io'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 uses: actions/checkout@v2
with: with:
fetch-depth: 0 fetch-depth: 0
-32
View File
@@ -1,32 +0,0 @@
---
name: Stale
on:
schedule:
- cron: "0 0 * * *"
permissions: {}
jobs:
stale:
name: Close Stale Issues and PRs
if: github.repository_owner == 'submariner-io'
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93
with:
days-before-issue-stale: 120
days-before-pr-stale: 14
exempt-issue-labels: 'confirmed,security'
exempt-pr-labels: 'confirmed,security'
stale-issue-label: 'stale'
stale-issue-message: |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further
activity occurs. Thank you for your contributions.
stale-pr-label: 'stale'
stale-pr-message: |
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further
activity occurs. Thank you for your contributions.
-3
View File
@@ -3,6 +3,3 @@
.shflags .shflags
*.tgz *.tgz
Makefile.dapper Makefile.dapper
Makefile.shipyard
Dockerfile.*
helm_repo
+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
-6
View File
@@ -1,16 +1,10 @@
{ {
"ignorePatterns": [ "ignorePatterns": [
{
"pattern": "^https://docs.github.com"
},
{ {
"pattern": "^https://github.com/\\S+/\\S+/(issues|pull)/[0-9]+" "pattern": "^https://github.com/\\S+/\\S+/(issues|pull)/[0-9]+"
}, },
{ {
"pattern": "^http://localhost:" "pattern": "^http://localhost:"
},
{
"pattern": "^https://submariner-io.github.io/submariner-charts/charts"
} }
] ]
} }
-4
View File
@@ -10,7 +10,3 @@ line-length:
no-inline-html: no-inline-html:
allowed_elements: allowed_elements:
- span - 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
-7
View File
@@ -1,7 +0,0 @@
---
cni: ovn
submariner: true
nodes: control-plane
clusters:
cluster1:
cluster2:
-6
View File
@@ -1,6 +0,0 @@
---
submariner: true
nodes: control-plane
clusters:
cluster1:
cluster2:
-4
View File
@@ -1,4 +0,0 @@
---
label-approved:
approvals: 2
label: ready-to-test
+11 -11
View File
@@ -1,15 +1,15 @@
--- ---
extends: default extends: default
rules: rules:
comments: disable
comments-indentation: disable
line-length: line-length:
max: 140 max: 150
# Allow standard GHA syntax for "on: *" braces:
truthy: min-spaces-inside: 0
ignore: '.github/workflows/*.yml' max-spaces-inside: 0
brackets:
ignore: | min-spaces-inside: 0
/submariner-k8s-broker/crds max-spaces-inside: 0
/submariner-operator/crds indentation:
/submariner-k8s-broker/templates indent-sequences: consistent
/submariner-operator/templates
+1 -4
View File
@@ -1,4 +1 @@
# Auto-generated, do not edit; see CODEOWNERS.in * @mangelajo @Oats87 @skitt @tpantelis
* @Oats87 @skitt @sridhargaddam @tpantelis @vthapar
*.md @dfarrell07 @Oats87 @skitt @sridhargaddam @tpantelis @vthapar
Makefile @aswinsuryan @dfarrell07 @maayanf24 @Oats87 @skitt @sridhargaddam @tpantelis @vthapar @yboaron
-9
View File
@@ -1,9 +0,0 @@
@aswinsuryan Makefile
@dfarrell07 *.md Makefile
@maayanf24 Makefile
@Oats87 *
@skitt *
@sridhargaddam *
@tpantelis *
@vthapar *
@yboaron Makefile
+16
View File
@@ -0,0 +1,16 @@
ARG BASE_BRANCH
FROM quay.io/submariner/shipyard-dapper-base:release-0.9
ARG DAPPER_HOST_ARCH
ENV HOST_ARCH=${DAPPER_HOST_ARCH} ARCH=${DAPPER_HOST_ARCH} \
DAPPER_ENV="REPO TAG QUAY_USERNAME QUAY_PASSWORD GITHUB_SHA MAKEFLAGS CLUSTERS_ARGS DEPLOY_ARGS E2E_ARGS RELEASE_ARGS" \
DAPPER_SOURCE=/go/src/github.com/submariner-io/submariner-charts DAPPER_DOCKER_SOCKET=true
ENV DAPPER_OUTPUT=${DAPPER_SOURCE}/output PATH=${DAPPER_SOURCE}/bin/:${PATH}
WORKDIR ${DAPPER_SOURCE}
# Override the Helm deployment scripts
COPY deploy_helm /opt/shipyard/scripts/lib/
ENTRYPOINT ["/opt/shipyard/scripts/entry"]
CMD ["sh"]
+24 -34
View File
@@ -1,58 +1,48 @@
BASE_BRANCH ?= release-0.19 BASE_BRANCH ?= release-0.9
export BASE_BRANCH export BASE_BRANCH
export HELM_REPO_LOCATION=./helm_repo
ifneq (,$(DAPPER_HOST_ARCH)) ifneq (,$(DAPPER_HOST_ARCH))
# Running in Dapper # Running in Dapper
PRELOAD_IMAGES := submariner-gateway submariner-operator submariner-route-agent lighthouse-agent lighthouse-coredns
include $(SHIPYARD_DIR)/Makefile.inc include $(SHIPYARD_DIR)/Makefile.inc
CLUSTER_SETTINGS_FLAG = --cluster_settings $(DAPPER_SOURCE)/cluster_settings
ifneq (,$(filter ovn,$(_using))) ifneq (,$(filter ovn,$(_using)))
export SETTINGS = $(DAPPER_SOURCE)/.shipyard.e2e.ovn.yml CLUSTER_SETTINGS_FLAG = --cluster_settings $(DAPPER_SOURCE)/cluster_settings.ovn
else else
export SETTINGS = $(DAPPER_SOURCE)/.shipyard.e2e.yml CLUSTER_SETTINGS_FLAG = --cluster_settings $(DAPPER_SOURCE)/cluster_settings
endif endif
export DEPLOYTOOL = helm override CLUSTERS_ARGS += $(CLUSTER_SETTINGS_FLAG)
override DEPLOY_ARGS += $(CLUSTER_SETTINGS_FLAG) --deploytool helm
export DEPLOY_ARGS
GH_URL=https://submariner-io.github.io/submariner-charts/charts GH_URL=https://submariner-io.github.io/submariner-charts/charts
CHARTS_DIR=charts CHARTS_DIR=charts
CHARTS_VERSION=0.19.4 CHARTS_VERSION=0.7.0
HELM_DOCS_VERSION=0.15.0
REPO_URL=$(shell git config remote.origin.url) REPO_URL=$(shell git config remote.origin.url)
# Process extra flags from the `using=a,b,c` optional flag
ifneq (,$(filter lighthouse,$(_using)))
override DEPLOY_ARGS += --service_discovery
endif
ifneq (,$(filter globalnet,$(_using)))
override DEPLOY_ARGS += --globalnet
endif
# Targets to make # Targets to make
CHART_PACKAGES := submariner-k8s-broker-$(CHARTS_VERSION).tgz submariner-operator-$(CHARTS_VERSION).tgz e2e: E2E_ARGS=cluster1 cluster2
local-helm-repo: $(CHART_PACKAGES)
mkdir -p $(HELM_REPO_LOCATION)
for archive in $^; do \
tar xzf $$archive -C $(HELM_REPO_LOCATION); \
done
e2e: local-helm-repo
$(SCRIPTS_DIR)/e2e.sh
%.tgz: %.tgz:
helm dep update $(subst -$(CHARTS_VERSION),,$(basename $(@F))) helm dep update $(subst -$(CHARTS_VERSION),,$(basename $(@F)))
helm package --version $(CHARTS_VERSION) --app-version $(CHARTS_VERSION) $(subst -$(CHARTS_VERSION),,$(basename $(@F))) helm package --version $(CHARTS_VERSION) $(subst -$(CHARTS_VERSION),,$(basename $(@F)))
helm-docs: release: submariner-k8s-broker-$(CHARTS_VERSION).tgz submariner-operator-$(CHARTS_VERSION).tgz
# 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: $(CHART_PACKAGES)
git checkout gh-pages git checkout gh-pages
mv *.tgz $(CHARTS_DIR) mv *.tgz $(CHARTS_DIR)
if [ -f $(CHARTS_DIR)/index.yaml ]; then \ if [ -f $(CHARTS_DIR)/index.yaml ]; then \
@@ -61,7 +51,7 @@ release: $(CHART_PACKAGES)
helm repo index $(CHARTS_DIR) --url $(GH_URL); \ helm repo index $(CHARTS_DIR) --url $(GH_URL); \
fi fi
.PHONY: release helm-docs .PHONY: release
else else
+1 -8
View File
@@ -1,12 +1,5 @@
# submariner-charts # submariner-charts
<!-- markdownlint-disable line-length -->
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/4865/badge)](https://bestpractices.coreinfrastructure.org/projects/4865)
[![Release Charts](https://github.com/submariner-io/submariner-charts/workflows/Release%20Charts/badge.svg)](https://github.com/submariner-io/submariner-charts/actions?query=workflow%3A%22Release+Charts%22)
[![Periodic](https://github.com/submariner-io/submariner-charts/workflows/Periodic/badge.svg)](https://github.com/submariner-io/submariner-charts/actions?query=workflow%3APeriodic)
[![Flake Finder](https://github.com/submariner-io/submariner-charts/workflows/Flake%20Finder/badge.svg)](https://github.com/submariner-io/submariner-charts/actions?query=workflow%3A%22Flake+Finder%22)
<!-- markdownlint-enable line-length -->
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/).
## Development workflow ## Development workflow
@@ -60,4 +53,4 @@ working correctly.
[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://docs.github.com/en/get-started/quickstart/fork-a-repo [Create a fork]: https://help.github.com/en/articles/fork-a-repo
+10
View File
@@ -0,0 +1,10 @@
. "${SCRIPTS_DIR}"/lib/source_only
# We need a minimal setup to verify the deployment works
clusters=('cluster1' 'cluster2')
cluster_nodes['cluster1']="control-plane worker"
cluster_nodes['cluster2']="control-plane worker"
cluster_cni=( ['cluster1']="weave" ['cluster2']="weave" )
cluster_subm=( ['cluster1']="true" ['cluster2']="true" )
+10
View File
@@ -0,0 +1,10 @@
. "${SCRIPTS_DIR}"/lib/source_only
# We need a minimal setup to verify the deployment works
clusters=('cluster1' 'cluster2')
cluster_nodes['cluster1']="control-plane worker worker"
cluster_nodes['cluster2']="control-plane worker worker"
cluster_cni=( ['cluster1']="ovn" ['cluster2']="ovn" )
cluster_subm=( ['cluster1']="true" ['cluster2']="true" )
-7
View File
@@ -1,7 +0,0 @@
---
charts:
- ./helm_repo/submariner-operator
- ./helm_repo/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
+76
View File
@@ -0,0 +1,76 @@
# shellcheck shell=bash
# shellcheck source=scripts/shared/lib/source_only
. "${BASH_SOURCE%/*}"/source_only
### Constants ###
readonly SUBMARINER_BROKER_NS=submariner-k8s-broker
readonly SUBMARINER_PSK=$(LC_CTYPE=C tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w 64 | head -n 1)
### Functions ###
function deploytool_prereqs() {
helm version
}
function setup_broker() {
if kubectl get crd clusters.submariner.io > /dev/null 2>&1; then
echo "Submariner CRDs already exist, skipping broker creation..."
else
echo "Installing submariner broker..."
# shellcheck disable=SC2086 # Split on purpose
helm install "${SUBMARINER_BROKER_NS}" ./submariner-k8s-broker \
--create-namespace \
--kube-context "${cluster}" \
--namespace "${SUBMARINER_BROKER_NS}" \
${deploytool_broker_args}
fi
submariner_broker_url=$(kubectl -n default get endpoints kubernetes -o jsonpath="{.subsets[0].addresses[0].ip}:{.subsets[0].ports[?(@.name=='https')].port}")
submariner_broker_ca=$(kubectl -n "${SUBMARINER_BROKER_NS}" get secrets -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='${SUBMARINER_BROKER_NS}-client')].data['ca\.crt']}")
submariner_broker_token=$(kubectl -n "${SUBMARINER_BROKER_NS}" get secrets -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='${SUBMARINER_BROKER_NS}-client')].data.token}"|base64 --decode)
}
function helm_install_subm() {
local crd_create=false
[[ "${cluster}" = "${broker}" ]] || crd_create=true
if kubectl wait --for=condition=Ready pods -l app=submariner-operator -n "${SUBM_NS}" --timeout=60s > /dev/null 2>&1; then
echo "Submariner already installed, skipping installation..."
return
fi
echo "Installing Submariner..."
# shellcheck disable=SC2086 # Split on purpose
helm --kube-context "${cluster}" install submariner-operator \
./submariner-operator \
--create-namespace \
--namespace "${SUBM_NS}" \
--set ipsec.psk="${SUBMARINER_PSK}" \
--set broker.server="${submariner_broker_url}" \
--set broker.token="${submariner_broker_token}" \
--set broker.namespace="${SUBMARINER_BROKER_NS}" \
--set broker.ca="${submariner_broker_ca}" \
--set broker.globalnet="${globalnet}" \
--set submariner.serviceDiscovery="${service_discovery}" \
--set submariner.cableDriver="${cable_driver}" \
--set submariner.clusterId="${cluster}" \
--set submariner.clusterCidr="${cluster_CIDRs[$cluster]}" \
--set submariner.serviceCidr="${service_CIDRs[$cluster]}" \
--set submariner.globalCidr="${global_CIDRs[$cluster]}" \
--set serviceAccounts.globalnet.create="${globalnet}" \
--set serviceAccounts.lighthouseAgent.create="${service_discovery}" \
--set serviceAccounts.lighthouseCoreDns.create="${service_discovery}" \
--set submariner.natEnabled="false" \
--set operator.image.repository="localhost:5000/submariner-operator" \
--set operator.image.tag="local" \
--set operator.image.pullPolicy="IfNotPresent" \
--set submariner.images.repository="localhost:5000" \
--set submariner.images.tag="local" \
--set brokercrds.create="${crd_create}" \
${deploytool_submariner_args}
}
function install_subm_all_clusters() {
run_subm_clusters helm_install_subm
}
+3 -4
View File
@@ -1,13 +1,12 @@
--- ---
name: submariner-k8s-broker name: submariner-k8s-broker
version: 0.0.0 version: 0.6.0
apiVersion: v2 appVersion: 0.6.0
description: Submariner Kubernetes Broker description: Submariner Kubernetes Broker
keywords: keywords:
home: https://submariner-io.github.io/ home: https://submariner-io.github.io/
sources: sources:
- https://submariner-io.github.io/submariner-charts/charts - https://submariner-io.github.io/submariner-charts/charts
maintainers: maintainers:
- name: Contributors to the Submariner project - name: Submariner Developers
email: submariner-dev@googlegroups.com email: submariner-dev@googlegroups.com
url: https://submariner.io/
-24
View File
@@ -1,24 +0,0 @@
# submariner-k8s-broker
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 | `""` | |
+61 -297
View File
@@ -1,333 +1,97 @@
apiVersion: apiextensions.k8s.io/v1 apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
name: clusters.submariner.io name: clusters.submariner.io
spec: spec:
group: submariner.io group: submariner.io
version: v1
names: names:
kind: Cluster kind: Cluster
listKind: ClusterList
plural: clusters plural: clusters
singular: cluster
scope: Namespaced scope: Namespaced
versions:
- name: v1
schema:
openAPIV3Schema:
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:
properties:
cluster_cidr:
items:
type: string
type: array
cluster_id:
type: string
color_codes:
items:
type: string
type: array
global_cidr:
items:
type: string
type: array
service_cidr:
items:
type: string
type: array
required:
- cluster_cidr
- cluster_id
- color_codes
- global_cidr
- service_cidr
type: object
required:
- spec
type: object
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
--- ---
apiVersion: apiextensions.k8s.io/v1 apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
name: endpoints.submariner.io name: endpoints.submariner.io
spec: spec:
group: submariner.io group: submariner.io
version: v1
names: names:
kind: Endpoint kind: Endpoint
listKind: EndpointList
plural: endpoints plural: endpoints
singular: endpoint
scope: Namespaced scope: Namespaced
versions:
- name: v1
schema:
openAPIV3Schema:
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:
properties:
backend:
type: string
backend_config:
additionalProperties:
type: string
type: object
cable_name:
type: string
cluster_id:
type: string
healthCheckIP:
type: string
hostname:
type: string
nat_enabled:
type: boolean
private_ip:
type: string
public_ip:
type: string
subnets:
items:
type: string
type: array
required:
- backend
- cable_name
- cluster_id
- hostname
- nat_enabled
- private_ip
- public_ip
- subnets
type: object
required:
- spec
type: object
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
--- ---
apiVersion: apiextensions.k8s.io/v1 apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
name: gateways.submariner.io name: gateways.submariner.io
spec: spec:
group: submariner.io group: submariner.io
version: v1
names: names:
kind: Gateway kind: Gateway
listKind: GatewayList
plural: gateways plural: gateways
singular: gateway
scope: Namespaced scope: Namespaced
versions: additionalPrinterColumns:
- additionalPrinterColumns: - name: ha-status
- description: High availability status of the Gateway
jsonPath: .status.haStatus
name: HA Status
type: string type: string
name: v1 description: High Availability Status of the Gateway
schema: JSONPath: .status.haStatus
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: multiclusterservices.lighthouse.submariner.io
spec:
group: lighthouse.submariner.io
version: v1
names:
kind: MultiClusterService
plural: multiclusterservices
singular: multiclusterservice
scope: Namespaced
validation:
openAPIV3Schema: openAPIV3Schema:
properties: properties:
apiVersion: spec:
description: 'APIVersion defines the versioned schema of this representation properties:
of an object. Servers should convert recognized schemas to the latest clusterServiceInfo:
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' properties:
type: string clusterID:
kind: type: "string"
description: 'Kind is a string value representing the REST resource this clusterDomain:
object represents. Servers may infer this from the endpoint the client type: "string"
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' serviceIP:
type: string type: "string"
port:
type: "integer"
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata: metadata:
type: object name: serviceexports.lighthouse.submariner.io
status: spec:
properties: group: lighthouse.submariner.io
connections: version: v2alpha1
items: names:
properties: kind: ServiceExport
endpoint: plural: serviceexports
properties: singular: serviceexport
backend: scope: Namespaced
type: string ---
backend_config: apiVersion: apiextensions.k8s.io/v1beta1
additionalProperties: kind: CustomResourceDefinition
type: string metadata:
type: object name: serviceimports.lighthouse.submariner.io
cable_name: spec:
type: string group: lighthouse.submariner.io
cluster_id: version: v2alpha1
type: string names:
healthCheckIP: kind: ServiceImport
type: string plural: serviceimports
hostname: singular: serviceimport
type: string scope: Namespaced
nat_enabled:
type: boolean
private_ip:
type: string
public_ip:
type: string
subnets:
items:
type: string
type: array
required:
- backend
- cable_name
- cluster_id
- hostname
- nat_enabled
- private_ip
- public_ip
- subnets
type: object
latency:
description: LatencySpec describes the round trip time information
in nanoseconds for a packet between the gateway pods of two
clusters.
properties:
averageRTT:
format: int64
type: integer
lastRTT:
description: TODO This shall be deleted once the operator
is using the latest. Using Optional to avoid validation
errors when this field is not used.
format: int64
type: integer
maxRTT:
format: int64
type: integer
minRTT:
format: int64
type: integer
stddevRTT:
format: int64
type: integer
type: object
latencyRTT:
description: LatencySpec describes the round trip time information
for a packet between the gateway pods of two clusters.
properties:
average:
type: string
last:
type: string
max:
type: string
min:
type: string
stdDev:
type: string
type: object
status:
type: string
statusMessage:
type: string
required:
- endpoint
- status
- statusMessage
type: object
type: array
haStatus:
type: string
localEndpoint:
properties:
backend:
type: string
backend_config:
additionalProperties:
type: string
type: object
cable_name:
type: string
cluster_id:
type: string
healthCheckIP:
type: string
hostname:
type: string
nat_enabled:
type: boolean
private_ip:
type: string
public_ip:
type: string
subnets:
items:
type: string
type: array
required:
- backend
- cable_name
- cluster_id
- hostname
- nat_enabled
- private_ip
- public_ip
- subnets
type: object
statusFailure:
type: string
version:
type: string
required:
- connections
- haStatus
- localEndpoint
- statusFailure
- version
type: object
required:
- status
type: object
served: true
storage: true
subresources: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
--- ---
apiVersion: apiextensions.k8s.io/v1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
+19
View File
@@ -0,0 +1,19 @@
questions:
- variable: submariner-k8s-broker.rbac.create
type: boolean
default: true
group: "Role Based Access Control"
description: "Create the role/rolebinding for the Submariner client"
label: "RBAC Creation Enabled"
- variable: submariner-k8s-broker.crd.create
type: boolean
default: true
group: "Submariner CRD"
description: "Create the submariner CRDs for the Submariner client"
label: "Submariner CRD Creation Enabled"
- variable: submariner-k8s-broker.serviceAccounts.client.create
type: boolean
default: true
group: "Service Account"
description: "Create the service account for the Submariner client"
label: "Submariner Service Account Creation Enabled"
+2 -2
View File
@@ -6,5 +6,5 @@ You can retrieve the server URL by running
The broker client token and CA can be retrieved by running The broker client token and CA can be retrieved by running
$ SUBMARINER_BROKER_CA=$(kubectl -n "${BROKER_NS}" get secrets "${BROKER_NS}-client-token" -o jsonpath="{.data['ca\.crt']}") $ SUBMARINER_BROKER_CA=$(kubectl -n {{ .Release.Namespace }} get secrets -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='{{ template "submariner-k8s-broker.clientServiceAccountName" . }}')].data['ca\.crt']}")
$ SUBMARINER_BROKER_TOKEN=$(kubectl -n "${BROKER_NS}" get secrets "${BROKER_NS}-client-token" -o jsonpath="{.data.token}"|base64 --decode) $ SUBMARINER_BROKER_TOKEN=$(kubectl -n {{ .Release.Namespace }} get secrets -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='{{ template "submariner-k8s-broker.clientServiceAccountName" . }}')].data.token}"|base64 --decode)
+4 -4
View File
@@ -2,7 +2,7 @@
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: Role kind: Role
metadata: metadata:
name: {{ template "submariner-k8s-broker.fullname" . }}-cluster name: {{ template "submariner-k8s-broker.fullname" . }}:client
labels: labels:
heritage: {{ .Release.Service | quote }} heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }} release: {{ .Release.Name | quote }}
@@ -16,7 +16,7 @@ rules:
resources: ["*"] resources: ["*"]
verbs: ["create", "get", "list", "watch", "patch", "update", "delete"] verbs: ["create", "get", "list", "watch", "patch", "update", "delete"]
- apiGroups: ["discovery.k8s.io"] - apiGroups: ["discovery.k8s.io"]
resources: ["endpointslices", "endpointslices/restricted"] resources: ["endpointslices"]
verbs: ["create", "get", "list", "watch","patch", "update", "delete"] verbs: ["create", "get", "list", "watch","patch", "update", "delete"]
- apiGroups: ["multicluster.x-k8s.io"] - apiGroups: ["multicluster.x-k8s.io"]
resources: ["*"] resources: ["*"]
@@ -25,11 +25,11 @@ rules:
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding kind: RoleBinding
metadata: metadata:
name: {{ template "submariner-k8s-broker.fullname" . }}-cluster name: {{ template "submariner-k8s-broker.fullname" . }}:client
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: Role kind: Role
name: {{ template "submariner-k8s-broker.fullname" . }}-cluster name: {{ template "submariner-k8s-broker.fullname" . }}:client
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: {{ template "submariner-k8s-broker.clientServiceAccountName" . }} name: {{ template "submariner-k8s-broker.clientServiceAccountName" . }}
@@ -8,12 +8,4 @@ metadata:
release: {{ .Release.Name | quote }} release: {{ .Release.Name | quote }}
chart: {{ template "submariner-k8s-broker.chart" . }} chart: {{ template "submariner-k8s-broker.chart" . }}
app: {{ template "submariner-k8s-broker.name" . }} app: {{ template "submariner-k8s-broker.name" . }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ template "submariner-k8s-broker.clientServiceAccountName" . }}-token
annotations:
kubernetes.io/service-account.name: {{ template "submariner-k8s-broker.clientServiceAccountName" . }}
type: kubernetes.io/service-account-token
{{- end }} {{- end }}
+3 -4
View File
@@ -1,13 +1,12 @@
--- ---
name: submariner-operator name: submariner-operator
version: 0.0.0 version: 0.7.0
apiVersion: v2 appVersion: 0.7.0
description: Submariner enables direct networking between Pods and Services in different Kubernetes clusters description: Submariner enables direct networking between Pods and Services in different Kubernetes clusters
keywords: keywords:
home: https://submariner-io.github.io/ home: https://submariner-io.github.io/
sources: sources:
- https://submariner-io.github.io/submariner-charts/charts - https://submariner-io.github.io/submariner-charts/charts
maintainers: maintainers:
- name: Contributors to the Submariner project - name: Submariner Developers
email: submariner-dev@googlegroups.com email: submariner-dev@googlegroups.com
url: https://submariner.io/
-69
View File
@@ -1,69 +0,0 @@
# submariner-operator
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"` | |
| ipsec.debug | bool | `false` | |
| ipsec.forceUDPEncaps | 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.14.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.coreDNSCustomConfig | object | `{}` | |
| submariner.debug | bool | `false` | |
| submariner.globalCidr | string | `""` | |
| submariner.clustersetIpCidr | string | `""` | |
| submariner.clustersetIpEnabled | bool | `false` | |
| submariner.healthcheckEnabled | bool | `true` | |
| submariner.images.repository | string | `"quay.io/submariner"` | |
| submariner.images.tag | string | `"0.14.0"` | |
| submariner.natEnabled | bool | `false` | |
| submariner.serviceCidr | string | `""` | |
| submariner.serviceDiscovery | bool | `true` | |
| submariner.token | string | `""` | |
+94 -407
View File
@@ -1,10 +1,10 @@
--- ---
apiVersion: apiextensions.k8s.io/v1 apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.12.1
name: submariners.submariner.io name: submariners.submariner.io
annotations:
controller-gen.kubebuilder.io/version: v0.3.0
spec: spec:
group: submariner.io group: submariner.io
names: names:
@@ -13,11 +13,11 @@ spec:
plural: submariners plural: submariners
singular: submariner singular: submariner
scope: Namespaced scope: Namespaced
versions: subresources:
- name: v1alpha1 status: {}
schema: validation:
openAPIV3Schema: openAPIV3Schema:
description: Submariner is the Schema for the submariners API. description: Submariner is the Schema for the submariners API
properties: properties:
apiVersion: apiVersion:
description: 'APIVersion defines the versioned schema of this representation description: 'APIVersion defines the versioned schema of this representation
@@ -32,189 +32,63 @@ spec:
metadata: metadata:
type: object type: object
spec: spec:
description: SubmarinerSpec defines the desired state of Submariner. description: SubmarinerSpec defines the desired state of Submariner
properties: properties:
airGappedDeployment:
type: boolean
broker: broker:
description: Type of broker (must be "k8s").
type: string type: string
brokerK8sApiServer: brokerK8sApiServer:
description: The broker API URL.
type: string type: string
brokerK8sApiServerToken: brokerK8sApiServerToken:
description: The broker API Token.
type: string type: string
brokerK8sCA: brokerK8sCA:
description: The broker certificate authority.
type: string type: string
brokerK8sInsecure:
type: boolean
brokerK8sRemoteNamespace: brokerK8sRemoteNamespace:
description: The Broker namespace.
type: string
brokerK8sSecret:
type: string type: string
cableDriver: cableDriver:
description: Cable driver implementation - any of [libreswan, wireguard,
vxlan].
type: string type: string
ceIPSecDebug: ceIPSecDebug:
description: Enable logging IPsec debugging information.
type: boolean
ceIPSecForceUDPEncaps:
description: Force UDP encapsulation for IPsec.
type: boolean type: boolean
ceIPSecIKEPort: ceIPSecIKEPort:
description: The IPsec IKE port (500 usually).
type: integer type: integer
ceIPSecNATTPort: ceIPSecNATTPort:
description: The IPsec NAT traversal port (4500 usually).
type: integer type: integer
ceIPSecPSK: ceIPSecPSK:
description: The IPsec Pre-Shared Key which must be identical in all
route agents across the cluster.
type: string type: string
ceIPSecPSKSecret:
type: string
ceIPSecPreferredServer:
description: Enable this cluster as a preferred server for data-plane
connections.
type: boolean
clusterCIDR: clusterCIDR:
description: The cluster CIDR.
type: string type: string
clusterID: clusterID:
description: The cluster ID used to identify the tunnels.
type: string
clustersetIPCIDR:
description: ClustersetIP CIDR for allocating ClustersetIPs to exported
services.
type: string type: string
colorCodes: colorCodes:
type: string type: string
connectionHealthCheck:
description: The gateway connection health check.
properties:
enabled:
description: Enable the connection health check.
type: boolean
intervalSeconds:
description: The interval at which health check pings are sent.
format: int64
type: integer
maxPacketLossCount:
description: The maximum number of packets lost at which the health
checker will mark the connection as down.
format: int64
type: integer
type: object
coreDNSCustomConfig:
description: Name of the custom CoreDNS configmap to configure forwarding
to Lighthouse. It should be in <namespace>/<name> format where <namespace>
is optional and defaults to kube-system.
properties:
configMapName:
description: Name of the custom CoreDNS configmap.
type: string
namespace:
description: Namespace of the custom CoreDNS configmap.
type: string
type: object
customDomains: customDomains:
description: List of domains to use for multi-cluster service discovery.
items: items:
type: string type: string
type: array type: array
x-kubernetes-list-type: set x-kubernetes-list-type: set
debug: debug:
description: Enable operator debugging.
type: boolean type: boolean
globalCIDR: globalCIDR:
description: The Global CIDR super-net range for allocating GlobalCIDRs
to each cluster.
type: string type: string
haltOnCertificateError:
description: Halt on certificate error (so the pod gets restarted).
type: boolean
imageOverrides:
additionalProperties:
type: string
description: Override component images.
type: object
loadBalancerEnabled:
description: Enable automatic Load Balancer in front of the gateways.
type: boolean
namespace: namespace:
description: The namespace in which to deploy the submariner operator.
type: string type: string
natEnabled: natEnabled:
description: Enable NAT between clusters.
type: boolean type: boolean
nodeSelector:
additionalProperties:
type: string
type: object
repository: repository:
description: The image repository.
type: string type: string
serviceCIDR: serviceCIDR:
description: The service CIDR.
type: string type: string
serviceDiscoveryEnabled: serviceDiscoveryEnabled:
description: Enable support for Service Discovery (Lighthouse).
type: boolean type: boolean
clustersetIPEnabled:
description: Enable ClustersetIP default for services exported on this
cluster.
type: boolean
tolerations:
items:
description: The pod this Toleration is attached to tolerates any
taint that matches the triple <key,value,effect> using the matching
operator <operator>.
properties:
effect:
description: Effect indicates the taint effect to match. Empty
means match all taint effects. When specified, allowed values
are NoSchedule, PreferNoSchedule and NoExecute.
type: string
key:
description: Key is the taint key that the toleration applies
to. Empty means match all taint keys. If the key is empty,
operator must be Exists; this combination means to match all
values and all keys.
type: string
operator:
description: Operator represents a key's relationship to the
value. Valid operators are Exists and Equal. Defaults to Equal.
Exists is equivalent to wildcard for value, so that a pod
can tolerate all taints of a particular category.
type: string
tolerationSeconds:
description: TolerationSeconds represents the period of time
the toleration (which must be of effect NoExecute, otherwise
this field is ignored) tolerates the taint. By default, it
is not set, which means tolerate the taint forever (do not
evict). Zero and negative values will be treated as 0 (evict
immediately) by the system.
format: int64
type: integer
value:
description: Value is the taint value the toleration matches
to. If the operator is Exists, the value should be empty,
otherwise just a regular string.
type: string
type: object
type: array
version: version:
description: The image tag.
type: string type: string
required: required:
- broker - broker
- brokerK8sApiServer - brokerK8sApiServer
- brokerK8sApiServerToken
- brokerK8sCA
- brokerK8sRemoteNamespace - brokerK8sRemoteNamespace
- ceIPSecDebug - ceIPSecDebug
- ceIPSecPSK
- clusterCIDR - clusterCIDR
- clusterID - clusterID
- debug - debug
@@ -223,35 +97,15 @@ spec:
- serviceCIDR - serviceCIDR
type: object type: object
status: status:
description: SubmarinerStatus defines the observed state of Submariner. description: SubmarinerStatus defines the observed state of Submariner
properties: properties:
airGappedDeployment:
type: boolean
clusterCIDR: clusterCIDR:
description: The current cluster CIDR.
type: string type: string
clusterID: clusterID:
description: The current cluster ID.
type: string
clustersetIPCIDR:
description: The current clustersetIP CIDR.
type: string type: string
colorCodes: colorCodes:
type: string type: string
deploymentInfo:
description: Information about the deployment.
properties:
cloudProvider:
type: string
kubernetesType:
type: string
kubernetesTypeVersion:
type: string
kubernetesVersion:
type: string
type: object
gatewayDaemonSetStatus: gatewayDaemonSetStatus:
description: The status of the gateway DaemonSet.
properties: properties:
lastResourceVersion: lastResourceVersion:
type: string type: string
@@ -260,8 +114,8 @@ spec:
nonReadyContainerStates: nonReadyContainerStates:
items: items:
description: ContainerState holds a possible state of container. description: ContainerState holds a possible state of container.
Only one of its members may be specified. If none of them Only one of its members may be specified. If none of them is
is specified, the default one is ContainerStateWaiting. specified, the default one is ContainerStateWaiting.
properties: properties:
running: running:
description: Details about a running container description: Details about a running container
@@ -275,7 +129,7 @@ spec:
description: Details about a terminated container description: Details about a terminated container
properties: properties:
containerID: containerID:
description: Container's ID in the format '<type>://<container_id>' description: Container's ID in the format 'docker://<container_id>'
type: string type: string
exitCode: exitCode:
description: Exit status from the last termination of description: Exit status from the last termination of
@@ -287,21 +141,20 @@ spec:
format: date-time format: date-time
type: string type: string
message: message:
description: Message regarding the last termination description: Message regarding the last termination of
of the container the container
type: string type: string
reason: reason:
description: (brief) reason from the last termination description: (brief) reason from the last termination
of the container of the container
type: string type: string
signal: signal:
description: Signal from the last termination of the description: Signal from the last termination of the container
container
format: int32 format: int32
type: integer type: integer
startedAt: startedAt:
description: Time at which previous execution of the description: Time at which previous execution of the container
container started started
format: date-time format: date-time
type: string type: string
required: required:
@@ -311,19 +164,18 @@ spec:
description: Details about a waiting container description: Details about a waiting container
properties: properties:
message: message:
description: Message regarding why the container is description: Message regarding why the container is not
not yet running. yet running.
type: string type: string
reason: reason:
description: (brief) reason the container is not yet description: (brief) reason the container is not yet running.
running.
type: string type: string
type: object type: object
type: object type: object
type: array type: array
status: status:
description: DaemonSetStatus represents the current status of description: DaemonSetStatus represents the current status of a
a daemon set. daemon set.
properties: properties:
collisionCount: collisionCount:
description: Count of hash collisions for the DaemonSet. The description: Count of hash collisions for the DaemonSet. The
@@ -333,11 +185,11 @@ spec:
format: int32 format: int32
type: integer type: integer
conditions: conditions:
description: Represents the latest available observations description: Represents the latest available observations of
of a DaemonSet's current state. a DaemonSet's current state.
items: items:
description: DaemonSetCondition describes the state of a description: DaemonSetCondition describes the state of a DaemonSet
DaemonSet at a certain point. at a certain point.
properties: properties:
lastTransitionTime: lastTransitionTime:
description: Last time the condition transitioned from description: Last time the condition transitioned from
@@ -388,9 +240,9 @@ spec:
format: int32 format: int32
type: integer type: integer
numberReady: numberReady:
description: numberReady is the number of nodes that should description: The number of nodes that should be running the
be running the daemon pod and have one or more of the daemon daemon pod and have one or more of the daemon pod running
pod running with a Ready Condition. and ready.
format: int32 format: int32
type: integer type: integer
numberUnavailable: numberUnavailable:
@@ -419,7 +271,6 @@ spec:
- mismatchedContainerImages - mismatchedContainerImages
type: object type: object
gateways: gateways:
description: Status of the gateways in the cluster.
items: items:
properties: properties:
connections: connections:
@@ -436,10 +287,6 @@ spec:
cable_name: cable_name:
type: string type: string
cluster_id: cluster_id:
maxLength: 63
minLength: 1
type: string
healthCheckIP:
type: string type: string
hostname: hostname:
type: string type: string
@@ -463,30 +310,10 @@ spec:
- public_ip - public_ip
- subnets - subnets
type: object type: object
latencyRTT:
description: LatencySpec describes the round trip time
information for a packet between the gateway pods of
two clusters.
properties:
average:
type: string
last:
type: string
max:
type: string
min:
type: string
stdDev:
type: string
type: object
status: status:
type: string type: string
statusMessage: statusMessage:
type: string type: string
usingIP:
type: string
usingNAT:
type: boolean
required: required:
- endpoint - endpoint
- status - status
@@ -506,10 +333,6 @@ spec:
cable_name: cable_name:
type: string type: string
cluster_id: cluster_id:
maxLength: 63
minLength: 1
type: string
healthCheckIP:
type: string type: string
hostname: hostname:
type: string type: string
@@ -546,10 +369,8 @@ spec:
type: object type: object
type: array type: array
globalCIDR: globalCIDR:
description: The current global CIDR.
type: string type: string
globalnetDaemonSetStatus: globalnetDaemonSetStatus:
description: The status of the Globalnet DaemonSet.
properties: properties:
lastResourceVersion: lastResourceVersion:
type: string type: string
@@ -558,8 +379,8 @@ spec:
nonReadyContainerStates: nonReadyContainerStates:
items: items:
description: ContainerState holds a possible state of container. description: ContainerState holds a possible state of container.
Only one of its members may be specified. If none of them Only one of its members may be specified. If none of them is
is specified, the default one is ContainerStateWaiting. specified, the default one is ContainerStateWaiting.
properties: properties:
running: running:
description: Details about a running container description: Details about a running container
@@ -573,7 +394,7 @@ spec:
description: Details about a terminated container description: Details about a terminated container
properties: properties:
containerID: containerID:
description: Container's ID in the format '<type>://<container_id>' description: Container's ID in the format 'docker://<container_id>'
type: string type: string
exitCode: exitCode:
description: Exit status from the last termination of description: Exit status from the last termination of
@@ -585,21 +406,20 @@ spec:
format: date-time format: date-time
type: string type: string
message: message:
description: Message regarding the last termination description: Message regarding the last termination of
of the container the container
type: string type: string
reason: reason:
description: (brief) reason from the last termination description: (brief) reason from the last termination
of the container of the container
type: string type: string
signal: signal:
description: Signal from the last termination of the description: Signal from the last termination of the container
container
format: int32 format: int32
type: integer type: integer
startedAt: startedAt:
description: Time at which previous execution of the description: Time at which previous execution of the container
container started started
format: date-time format: date-time
type: string type: string
required: required:
@@ -609,19 +429,18 @@ spec:
description: Details about a waiting container description: Details about a waiting container
properties: properties:
message: message:
description: Message regarding why the container is description: Message regarding why the container is not
not yet running. yet running.
type: string type: string
reason: reason:
description: (brief) reason the container is not yet description: (brief) reason the container is not yet running.
running.
type: string type: string
type: object type: object
type: object type: object
type: array type: array
status: status:
description: DaemonSetStatus represents the current status of description: DaemonSetStatus represents the current status of a
a daemon set. daemon set.
properties: properties:
collisionCount: collisionCount:
description: Count of hash collisions for the DaemonSet. The description: Count of hash collisions for the DaemonSet. The
@@ -631,11 +450,11 @@ spec:
format: int32 format: int32
type: integer type: integer
conditions: conditions:
description: Represents the latest available observations description: Represents the latest available observations of
of a DaemonSet's current state. a DaemonSet's current state.
items: items:
description: DaemonSetCondition describes the state of a description: DaemonSetCondition describes the state of a DaemonSet
DaemonSet at a certain point. at a certain point.
properties: properties:
lastTransitionTime: lastTransitionTime:
description: Last time the condition transitioned from description: Last time the condition transitioned from
@@ -686,9 +505,9 @@ spec:
format: int32 format: int32
type: integer type: integer
numberReady: numberReady:
description: numberReady is the number of nodes that should description: The number of nodes that should be running the
be running the daemon pod and have one or more of the daemon daemon pod and have one or more of the daemon pod running
pod running with a Ready Condition. and ready.
format: int32 format: int32
type: integer type: integer
numberUnavailable: numberUnavailable:
@@ -716,76 +535,9 @@ spec:
required: required:
- mismatchedContainerImages - mismatchedContainerImages
type: object type: object
loadBalancerStatus:
description: The status of the load balancer DaemonSet.
properties:
status:
description: LoadBalancerStatus represents the status of a load-balancer.
properties:
ingress:
description: Ingress is a list containing ingress points for
the load-balancer. Traffic intended for the service should
be sent to these ingress points.
items:
description: 'LoadBalancerIngress represents the status
of a load-balancer ingress point: traffic intended for
the service should be sent to an ingress point.'
properties:
hostname:
description: Hostname is set for load-balancer ingress
points that are DNS based (typically AWS load-balancers)
type: string
ip:
description: IP is set for load-balancer ingress points
that are IP based (typically GCE or OpenStack load-balancers)
type: string
ports:
description: Ports is a list of records of service ports
If used, every port defined in the service should
have an entry in it
items:
properties:
error:
description: 'Error is to record the problem with
the service port The format of the error shall
comply with the following rules: - built-in
error values shall be specified in this file
and those shall use CamelCase names - cloud
provider specific error values must have names
that comply with the format foo.example.com/CamelCase.
--- The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)'
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
port:
description: Port is the port number of the service
port of which status is recorded here
format: int32
type: integer
protocol:
default: TCP
description: 'Protocol is the protocol of the
service port of which status is recorded here
The supported values are: "TCP", "UDP", "SCTP"'
type: string
required:
- port
- protocol
type: object
type: array
x-kubernetes-list-type: atomic
type: object
type: array
type: object
type: object
natEnabled: natEnabled:
description: The current NAT status.
type: boolean type: boolean
networkPlugin:
description: The current network plugin.
type: string
routeAgentDaemonSetStatus: routeAgentDaemonSetStatus:
description: The status of the route agent DaemonSet.
properties: properties:
lastResourceVersion: lastResourceVersion:
type: string type: string
@@ -794,8 +546,8 @@ spec:
nonReadyContainerStates: nonReadyContainerStates:
items: items:
description: ContainerState holds a possible state of container. description: ContainerState holds a possible state of container.
Only one of its members may be specified. If none of them Only one of its members may be specified. If none of them is
is specified, the default one is ContainerStateWaiting. specified, the default one is ContainerStateWaiting.
properties: properties:
running: running:
description: Details about a running container description: Details about a running container
@@ -809,7 +561,7 @@ spec:
description: Details about a terminated container description: Details about a terminated container
properties: properties:
containerID: containerID:
description: Container's ID in the format '<type>://<container_id>' description: Container's ID in the format 'docker://<container_id>'
type: string type: string
exitCode: exitCode:
description: Exit status from the last termination of description: Exit status from the last termination of
@@ -821,21 +573,20 @@ spec:
format: date-time format: date-time
type: string type: string
message: message:
description: Message regarding the last termination description: Message regarding the last termination of
of the container the container
type: string type: string
reason: reason:
description: (brief) reason from the last termination description: (brief) reason from the last termination
of the container of the container
type: string type: string
signal: signal:
description: Signal from the last termination of the description: Signal from the last termination of the container
container
format: int32 format: int32
type: integer type: integer
startedAt: startedAt:
description: Time at which previous execution of the description: Time at which previous execution of the container
container started started
format: date-time format: date-time
type: string type: string
required: required:
@@ -845,19 +596,18 @@ spec:
description: Details about a waiting container description: Details about a waiting container
properties: properties:
message: message:
description: Message regarding why the container is description: Message regarding why the container is not
not yet running. yet running.
type: string type: string
reason: reason:
description: (brief) reason the container is not yet description: (brief) reason the container is not yet running.
running.
type: string type: string
type: object type: object
type: object type: object
type: array type: array
status: status:
description: DaemonSetStatus represents the current status of description: DaemonSetStatus represents the current status of a
a daemon set. daemon set.
properties: properties:
collisionCount: collisionCount:
description: Count of hash collisions for the DaemonSet. The description: Count of hash collisions for the DaemonSet. The
@@ -867,11 +617,11 @@ spec:
format: int32 format: int32
type: integer type: integer
conditions: conditions:
description: Represents the latest available observations description: Represents the latest available observations of
of a DaemonSet's current state. a DaemonSet's current state.
items: items:
description: DaemonSetCondition describes the state of a description: DaemonSetCondition describes the state of a DaemonSet
DaemonSet at a certain point. at a certain point.
properties: properties:
lastTransitionTime: lastTransitionTime:
description: Last time the condition transitioned from description: Last time the condition transitioned from
@@ -922,9 +672,9 @@ spec:
format: int32 format: int32
type: integer type: integer
numberReady: numberReady:
description: numberReady is the number of nodes that should description: The number of nodes that should be running the
be running the daemon pod and have one or more of the daemon daemon pod and have one or more of the daemon pod running
pod running with a Ready Condition. and ready.
format: int32 format: int32
type: integer type: integer
numberUnavailable: numberUnavailable:
@@ -953,27 +703,30 @@ spec:
- mismatchedContainerImages - mismatchedContainerImages
type: object type: object
serviceCIDR: serviceCIDR:
description: The current service CIDR.
type: string
version:
description: The image version in use by the various Submariner DaemonSets
and Deployments.
type: string type: string
required: required:
- clusterID - clusterID
- natEnabled - natEnabled
type: object type: object
type: object type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true served: true
storage: true storage: true
subresources: status:
status: {} acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
--- ---
apiVersion: apiextensions.k8s.io/v1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.12.1 controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: servicediscoveries.submariner.io name: servicediscoveries.submariner.io
spec: spec:
group: submariner.io group: submariner.io
@@ -987,7 +740,7 @@ spec:
- name: v1alpha1 - name: v1alpha1
schema: schema:
openAPIV3Schema: openAPIV3Schema:
description: ServiceDiscovery is the Schema for the servicediscoveries API. description: ServiceDiscovery is the Schema for the servicediscoveries API
properties: properties:
apiVersion: apiVersion:
description: 'APIVersion defines the versioned schema of this representation description: 'APIVersion defines the versioned schema of this representation
@@ -1002,7 +755,7 @@ spec:
metadata: metadata:
type: object type: object
spec: spec:
description: ServiceDiscoverySpec defines the desired state of ServiceDiscovery. description: ServiceDiscoverySpec defines the desired state of ServiceDiscovery
properties: properties:
brokerK8sApiServer: brokerK8sApiServer:
type: string type: string
@@ -1010,25 +763,10 @@ spec:
type: string type: string
brokerK8sCA: brokerK8sCA:
type: string type: string
brokerK8sInsecure:
type: boolean
brokerK8sRemoteNamespace: brokerK8sRemoteNamespace:
type: string type: string
brokerK8sSecret:
type: string
clusterID: clusterID:
type: string type: string
clustersetIPCIDR:
type: string
coreDNSCustomConfig:
properties:
configMapName:
description: Name of the custom CoreDNS configmap.
type: string
namespace:
description: Namespace of the custom CoreDNS configmap.
type: string
type: object
customDomains: customDomains:
items: items:
type: string type: string
@@ -1038,90 +776,39 @@ spec:
type: boolean type: boolean
globalnetEnabled: globalnetEnabled:
type: boolean type: boolean
haltOnCertificateError:
type: boolean
clustersetIPEnabled:
type: boolean
imageOverrides: imageOverrides:
additionalProperties: additionalProperties:
type: string type: string
type: object type: object
namespace: namespace:
type: string type: string
nodeSelector:
additionalProperties:
type: string
type: object
repository: repository:
type: string type: string
tolerations:
items:
description: The pod this Toleration is attached to tolerates any
taint that matches the triple <key,value,effect> using the matching
operator <operator>.
properties:
effect:
description: Effect indicates the taint effect to match. Empty
means match all taint effects. When specified, allowed values
are NoSchedule, PreferNoSchedule and NoExecute.
type: string
key:
description: Key is the taint key that the toleration applies
to. Empty means match all taint keys. If the key is empty,
operator must be Exists; this combination means to match all
values and all keys.
type: string
operator:
description: Operator represents a key's relationship to the
value. Valid operators are Exists and Equal. Defaults to Equal.
Exists is equivalent to wildcard for value, so that a pod
can tolerate all taints of a particular category.
type: string
tolerationSeconds:
description: TolerationSeconds represents the period of time
the toleration (which must be of effect NoExecute, otherwise
this field is ignored) tolerates the taint. By default, it
is not set, which means tolerate the taint forever (do not
evict). Zero and negative values will be treated as 0 (evict
immediately) by the system.
format: int64
type: integer
value:
description: Value is the taint value the toleration matches
to. If the operator is Exists, the value should be empty,
otherwise just a regular string.
type: string
type: object
type: array
version: version:
type: string type: string
required: required:
- brokerK8sApiServer - brokerK8sApiServer
- brokerK8sApiServerToken
- brokerK8sCA
- brokerK8sRemoteNamespace - brokerK8sRemoteNamespace
- clusterID - clusterID
- debug - debug
- namespace - namespace
type: object type: object
status: status:
description: ServiceDiscoveryStatus defines the observed state of ServiceDiscovery. description: ServiceDiscoveryStatus defines the observed state of ServiceDiscovery
properties:
deploymentInfo:
properties:
cloudProvider:
type: string
kubernetesType:
type: string
kubernetesTypeVersion:
type: string
kubernetesVersion:
type: string
type: object
type: object type: object
type: object type: object
served: true served: true
storage: true storage: true
subresources: subresources:
status: {} status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
--- ---
apiVersion: apiextensions.k8s.io/v1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
+138
View File
@@ -0,0 +1,138 @@
questions:
- variable: defaultOperatorImage
default: true
description: "Use default Submariner operator image or specify a custom one"
label: Use default Submariner operator image
type: boolean
show_subquestion_if: false
group: "Container Images"
subquestions:
- variable: operator.image.repository
default: "quay.io/submariner/submariner-operator"
description: "Submariner Operator Image Repository"
type: string
label: Submariner Operator Image Repository
- variable: operator.image.tag
default: "0.7.0"
description: "Submariner Operator Image Tag"
type: string
label: Submariner Operator Image Tag
- variable: defaultSubmarinerImages
default: true
description: "Use default Submariner images or specify custom ones"
label: Use default Submariner images
type: boolean
show_subquestion_if: false
group: "Container images"
subquestions:
- variable: submariner.images.repository
default: "quay.io/submariner"
description: "Submariner Repository (base for all non-operator images)"
type: string
label: Submariner Repository
- variable: submariner.images.tag
default: "0.7.0"
description: "Submariner Images Tag (shared for all non-operator images)"
type: string
label: Submariner Images Tag
- variable: submariner.clusterId
default: ""
description: "Enter a unique cluster ID to identify this cluster"
type: string
label: "Cluster ID"
group: "Configuration"
required: true
- variable: ipsec.psk
default: ""
description: "Enter the pre-shared key for the IPsec Cable Engine"
type: string
label: "IPsec Pre-Shared Key"
group: "Configuration"
required: true
- variable: broker.server
type: string
default: ""
group: "Broker Configuration"
label: "Broker Server"
description: "Broker server to use (without the https://)"
- variable: broker.insecure
type: boolean
default: false
show_subquestion_if: false
group: "Broker Configuration"
label: "Insecure Broker"
description: "Connect to K8s broker without validating CA"
subquestions:
- variable: broker.ca
type: string
description: "Base64 encoded broker ca.crt"
label: "Broker CA encoded in base64"
default: ""
- variable: broker.token
type: string
group: "Broker Configuration"
label: "Broker Token"
description: "Bearer token for broker"
- variable: broker.namespace
type: string
group: "Broker Configuration"
label: "Broker Namespace"
description: "Enter namespace to use on central broker"
- variable: submariner.clusterCidr
default: ""
description: "Enter the cluster CIDR (i.e. 10.42.0.0/16) for this cluster"
type: string
label: "Cluster CIDR"
group: "CIDR Configuration"
required: true
- variable: submariner.serviceCidr
default: ""
description: "Enter the service CIDR (i.e. 10.43.0.0/16) for this cluster"
type: string
label: "Service CIDR"
group: "CIDR Configuration"
required: true
- variable: submariner.serviceDiscovery
type: boolean
default: false
group: "Advanced Configuration"
description: "Enable multicluster service discovery"
label: "Service Discovery Enabled"
- variable: broker.globalnet
type: boolean
default: false
group: "Broker Configuration"
description: "Enable support for overlapping Cluster/Service CIDRs in connecting clusters"
label: "Globalnet Enabled"
subquestions:
- 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
type: boolean
default: false
group: "Advanced Configuration"
description: "If the gateway nodes for this cluster are behind 1:1 NAT, you should enable NAT"
label: "NAT Enabled"
- variable: submariner.debug
type: boolean
default: false
group: "Advanced Configuration"
description: "Enable submariner debug mode"
label: "Submariner Debug Enabled"
- variable: ipsec.debug
type: boolean
default: false
group: "Advanced Configuration"
description: "Enable Charon debug mode"
label: "Charon Enabled"
- variable: submariner.cableDriver
type: string
default: ""
group: "Advanced Configuration"
description: "Cable driver implementation"
label: "Cable Driver"
+4
View File
@@ -1,3 +1,7 @@
Submariner is now installed. Submariner is now installed.
{{- if .Values.gateway.nodeSelectorEnabled }}
If you haven't done so yet, please label a node as `submariner.io/gateway=true` to elect it for running Submariner.
{{- end }}
By default, Submariner runs with 1 replica. If you have more than one Gateway host, you can scale Submariner to N replicas, and the other Submariner pods will simply join the leader election pool. By default, Submariner runs with 1 replica. If you have more than one Gateway host, you can scale Submariner to N replicas, and the other Submariner pods will simply join the leader election pool.
+306 -212
View File
@@ -12,38 +12,28 @@ rules:
- apiGroups: - apiGroups:
- "" - ""
resources: resources:
# For metrics - pods
- services - services
- services/finalizers
- endpoints
- persistentvolumeclaims
- events
- configmaps
- secrets
verbs: verbs:
- get - '*'
- create
- update
- apiGroups:
- ""
resources:
# Temporarily needed for network-plugin syncer removal
- serviceaccounts
resourceNames:
- submariner-networkplugin-syncer
verbs:
- delete
- apiGroups: - apiGroups:
- apps - apps
resources: resources:
- deployments - deployments
- daemonsets - daemonsets
- replicasets
- statefulsets
verbs: verbs:
- create - '*'
- delete
- get
- list
- patch
- update
- watch
- apiGroups: - apiGroups:
- monitoring.coreos.com - monitoring.coreos.com
resources: resources:
# Needed for openshift monitoring
- servicemonitors - servicemonitors
verbs: verbs:
- get - get
@@ -56,37 +46,25 @@ rules:
- deployments/finalizers - deployments/finalizers
verbs: verbs:
- update - update
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- apiGroups:
- apps
resources:
- replicasets
verbs:
- get
- apiGroups: - apiGroups:
- submariner.io - submariner.io
resources: resources:
- brokers - '*'
- brokers/status
- submariners
- submariners/status
- servicediscoveries - servicediscoveries
- servicediscoveries/status
verbs: verbs:
- get - '*'
- list
- watch
- create
- update
- delete
- apiGroups:
- submariner.io
resources:
- gateways
verbs:
- get
- list
- watch
- apiGroups:
- submariner.io
resources:
- submariners/finalizers
- servicediscoveries/finalizers
verbs:
- update
--- ---
kind: RoleBinding kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
@@ -119,34 +97,71 @@ rules:
- "" - ""
resources: resources:
- pods - 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: verbs:
- get - get
- create
- apiGroups:
- apps
resourceNames:
- submariner-operator
resources:
- deployments/finalizers
verbs:
- update - update
- patch - apiGroups:
- ""
resources:
- pods
verbs:
- get
- apiGroups:
- apps
resources:
- replicasets
verbs:
- get
- apiGroups: - apiGroups:
- submariner.io - submariner.io
resources: resources:
- clusters - '*'
- endpoints - servicediscoveries
- gateways
verbs: verbs:
- get - '*'
- list
- watch
- create
- update
- delete
- apiGroups: - apiGroups:
- coordination.k8s.io - lighthouse.submariner.io
resources: resources:
- leases - '*'
- serviceexports
verbs: verbs:
- create
- delete
- get - get
- list - list
- watch - patch
- create
- update - update
- delete - watch
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding kind: RoleBinding
@@ -177,25 +192,74 @@ metadata:
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
rules: rules:
- apiGroups: - apiGroups:
- submariner.io - ""
resources: resources:
- pods
- services
- services/finalizers
- endpoints - 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: verbs:
- get - get
- list
- watch
- apiGroups: - apiGroups:
- submariner.io - submariner.io
resources: resources:
- gatewayroutes - '*'
- nongatewayroutes - servicediscoveries
verbs: verbs:
- '*'
- apiGroups:
- lighthouse.submariner.io
resources:
- '*'
- serviceexports
verbs:
- create
- delete
- get - get
- list - list
- watch - patch
- create
- update - update
- delete - watch
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding kind: RoleBinding
@@ -227,25 +291,74 @@ metadata:
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
rules: rules:
- apiGroups: - apiGroups:
- submariner.io - ""
resources: resources:
- gateways - 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: verbs:
- get - get
- list - create
- watch - apiGroups:
- apps
resourceNames:
- submariner-operator
resources:
- deployments/finalizers
verbs:
- update - update
- apiGroups: - apiGroups:
- coordination.k8s.io - ""
resources: resources:
- leases - pods
verbs: verbs:
- get - get
- list - apiGroups:
- watch - apps
resources:
- replicasets
verbs:
- get
- apiGroups:
- submariner.io
resources:
- '*'
- servicediscoveries
verbs:
- '*'
- apiGroups:
- lighthouse.submariner.io
resources:
- '*'
- serviceexports
verbs:
- create - create
- update
- delete - delete
- get
- list
- patch
- update
- watch
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding kind: RoleBinding
@@ -284,7 +397,6 @@ rules:
resources: resources:
- configmaps - configmaps
verbs: verbs:
- create
- get - get
- list - list
- watch - watch
@@ -299,14 +411,11 @@ rules:
- create - create
- update - update
- delete - delete
- watch - apiGroups: # pods and services are looked up to figure out network settings
- apiGroups:
- "" - ""
resources: resources:
# Needed for network settings discovery
- pods - pods
- services - services
- nodes
verbs: verbs:
- get - get
- list - list
@@ -317,42 +426,16 @@ rules:
- dnses - dnses
verbs: verbs:
- get - get
- list
- watch
- update - update
- apiGroups: - apiGroups:
- config.openshift.io - config.openshift.io
resources: resources:
# Needed for network settings discovery
- networks - networks
resourceNames:
- cluster
verbs: verbs:
- get - get
- apiGroups:
- monitoring.coreos.com
resources:
# Needed for openshift monitoring
- servicemonitors
verbs:
- get
- create
- apiGroups:
- apps
resources:
# Needed for Flannel CNI discovery
- daemonsets
verbs:
- list - list
- apiGroups:
- rbac.authorization.k8s.io
resources:
# Temporarily needed for network-plugin syncer removal
- clusterroles
- clusterrolebindings
resourceNames:
- ocp-submariner-networkplugin-syncer
- submariner-networkplugin-syncer
verbs:
- delete
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
@@ -373,29 +456,6 @@ roleRef:
name: {{ template "submariner.fullname" . }} name: {{ template "submariner.fullname" . }}
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: submariner-metrics-reader
namespace: {{ .Release.Namespace }}
rules:
- apiGroups: [""]
resources: ["pods", "services", "endpoints"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-submariner-metrics
subjects:
- kind: ServiceAccount
name: prometheus-k8s
namespace: openshift-monitoring
roleRef:
kind: Role
name: submariner-metrics-reader
apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
metadata: metadata:
name: {{ template "submariner.fullname" . }}:gateway name: {{ template "submariner.fullname" . }}:gateway
@@ -411,7 +471,21 @@ rules:
- configmaps - configmaps
verbs: verbs:
- get - get
- list
- watch
- create
- update
- apiGroups: - 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: resources:
- pods - pods
@@ -421,6 +495,32 @@ rules:
- get - get
- list - list
- watch - 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 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
@@ -453,40 +553,56 @@ rules:
- apiGroups: - apiGroups:
- "" - ""
resources: resources:
- pods
- services
- secrets
- configmaps - configmaps
- endpoints
verbs: verbs:
- get - get
- list - list
- watch
- update
- apiGroups: - apiGroups:
- config.openshift.io - apiextensions.k8s.io
resources: resources:
- networks - customresourcedefinitions
resourceNames:
- cluster
verbs: verbs:
- get - get
- apiGroups: - list
- create
- update
- delete
- apiGroups: # pods and services are looked up to figure out network settings
- "" - ""
resources: resources:
- nodes - pods
- services
verbs: verbs:
- get - get
- list - list
- watch - watch
- apiGroups: - apiGroups:
- projectcalico.org - operator.openshift.io
resources: resources:
- ippools - dnses
verbs: verbs:
- get - get
- create - list
- delete - watch
- update - update
- deletecollection - 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
@@ -521,65 +637,31 @@ rules:
- "" - ""
resources: resources:
- pods - pods
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- services - services
- endpoints - namespaces
- nodes
verbs: verbs:
- create
- get - get
- list - list
- watch - watch
- update - update
- delete
- apiGroups: - apiGroups:
- submariner.io - submariner.io
resources: resources:
- endpoints
- clusters - clusters
- endpoints
verbs: verbs:
- get - get
- list - list
- watch - watch
- apiGroups:
- submariner.io
resources:
- clusterglobalegressips
- clusterglobalegressips/status
- globalegressips
- globalegressips/status
- globalingressips
- globalingressips/status
verbs:
- create
- get
- list
- watch
- update
- delete
- deletecollection
- apiGroups: - apiGroups:
- multicluster.x-k8s.io - multicluster.x-k8s.io
resources: resources:
- serviceexports - "serviceexports"
verbs: verbs:
- get - get
- list - list
- watch - watch
- apiGroups:
- network.openshift.io
resources:
- service/externalips
verbs:
- create
- get
- list
- delete
--- ---
{{- end -}} {{- end -}}
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
@@ -621,11 +703,11 @@ rules:
- get - get
- list - list
- watch - watch
- update
- apiGroups: - apiGroups:
- discovery.k8s.io - discovery.k8s.io
resources: resources:
- endpointslices - endpointslices
- endpointslices/restricted
verbs: verbs:
- create - create
- get - get
@@ -637,8 +719,7 @@ rules:
- apiGroups: - apiGroups:
- submariner.io - submariner.io
resources: resources:
- gateways - "gateways"
- globalingressips
verbs: verbs:
- get - get
- list - list
@@ -646,8 +727,7 @@ rules:
- apiGroups: - apiGroups:
- multicluster.x-k8s.io - multicluster.x-k8s.io
resources: resources:
- serviceimports - "*"
- serviceimports/status
verbs: verbs:
- create - create
- get - get
@@ -655,20 +735,6 @@ rules:
- watch - watch
- update - update
- delete - delete
- apiGroups:
- multicluster.x-k8s.io
resources:
- serviceexports
verbs:
- get
- list
- watch
- apiGroups:
- multicluster.x-k8s.io
resources:
- serviceexports/status
verbs:
- update
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
@@ -694,18 +760,43 @@ metadata:
name: {{ template "submariner.fullname" . }}:lighthouse-coredns name: {{ template "submariner.fullname" . }}:lighthouse-coredns
rules: rules:
- apiGroups: - apiGroups:
- discovery.k8s.io - ""
resources: resources:
- endpointslices - services
- namespaces
- endpoints
verbs: verbs:
- get - get
- list - list
- watch - 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: - apiGroups:
- submariner.io - submariner.io
resources: resources:
- gateways - "gateways"
- submariners
verbs: verbs:
- get - get
- list - list
@@ -713,11 +804,14 @@ rules:
- apiGroups: - apiGroups:
- multicluster.x-k8s.io - multicluster.x-k8s.io
resources: resources:
- serviceimports - "*"
verbs: verbs:
- create
- get - get
- list - list
- watch - watch
- update
- delete
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
+1 -41
View File
@@ -9,9 +9,7 @@ spec:
brokerK8sApiServerToken: {{ .Values.broker.token }} brokerK8sApiServerToken: {{ .Values.broker.token }}
brokerK8sCA: {{ .Values.broker.ca }} brokerK8sCA: {{ .Values.broker.ca }}
brokerK8sRemoteNamespace: {{ .Values.broker.namespace }} brokerK8sRemoteNamespace: {{ .Values.broker.namespace }}
brokerK8sInsecure: {{ .Values.broker.insecure }}
ceIPSecDebug: {{ .Values.ipsec.debug }} ceIPSecDebug: {{ .Values.ipsec.debug }}
ceIPSecForceUDPEncaps: {{ .Values.ipsec.forceUDPEncaps }}
ceIPSecIKEPort: {{ .Values.ipsec.ikePort }} ceIPSecIKEPort: {{ .Values.ipsec.ikePort }}
ceIPSecNATTPort: {{ .Values.ipsec.natPort }} ceIPSecNATTPort: {{ .Values.ipsec.natPort }}
ceIPSecPSK: {{ .Values.ipsec.psk }} ceIPSecPSK: {{ .Values.ipsec.psk }}
@@ -19,49 +17,11 @@ spec:
clusterID: {{ .Values.submariner.clusterId }} clusterID: {{ .Values.submariner.clusterId }}
colorCodes: {{ .Values.submariner.colorCodes }} colorCodes: {{ .Values.submariner.colorCodes }}
debug: {{ .Values.submariner.debug }} debug: {{ .Values.submariner.debug }}
loadBalancerEnabled: {{ .Values.submariner.loadBalancerEnabled }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
natEnabled: {{ .Values.submariner.natEnabled }} natEnabled: {{ .Values.submariner.natEnabled }}
repository: {{ .Values.submariner.images.repository }} repository: {{ .Values.submariner.images.repository }}
version: {{ default .Chart.AppVersion .Values.submariner.images.tag }} version: {{ .Values.submariner.images.tag }}
{{- with .Values.images }}
{{- if . }}
imageOverrides:
{{- if index . "submariner-operator" }}
submariner-operator: {{ index . "submariner-operator" }}
{{- end }}
{{- if index . "submariner-gateway" }}
submariner-gateway: {{ index . "submariner-gateway" }}
{{- end }}
{{- if index . "submariner-route-agent" }}
submariner-routeagent: {{ index . "submariner-route-agent" }}
{{- end }}
{{- if index . "submariner-globalnet" }}
submariner-globalnet: {{ index . "submariner-globalnet" }}
{{- end }}
{{- if index . "submariner-networkplugin-syncer" }}
submariner-networkplugin-syncer: {{ index . "submariner-networkplugin-syncer" }}
{{- end }}
{{- if index . "lighthouse-agent" }}
submariner-lighthouse-agent: {{ index . "lighthouse-agent" }}
{{- end }}
{{- if index . "lighthouse-coredns" }}
submariner-lighthouse-coredns: {{ index . "lighthouse-coredns" }}
{{- end }}
{{- end }}
{{- end }}
serviceCIDR: "{{ .Values.submariner.serviceCidr }}" serviceCIDR: "{{ .Values.submariner.serviceCidr }}"
globalCIDR: "{{ .Values.submariner.globalCidr }}" globalCIDR: "{{ .Values.submariner.globalCidr }}"
clustersetIPCIDR: "{{ .Values.submariner.clustersetIpCidr }}"
clustersetIPEnabled: {{ .Values.submariner.clustersetIpEnabled }}
serviceDiscoveryEnabled: {{ .Values.submariner.serviceDiscovery }} serviceDiscoveryEnabled: {{ .Values.submariner.serviceDiscovery }}
cableDriver: {{ .Values.submariner.cableDriver }} cableDriver: {{ .Values.submariner.cableDriver }}
connectionHealthCheck:
enabled: {{ .Values.submariner.healthcheckEnabled }}
intervalSeconds: 1
maxPacketLossCount: 5
{{- with .Values.submariner.coreDNSCustomConfig }}
coreDNSCustomConfig:
configMapName: {{ .configMapName }}
namespace: {{ .namespace }}
{{- end }}
@@ -8,14 +8,6 @@ metadata:
release: {{ .Release.Name | quote }} release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ template "submariner.operatorServiceAccountName" . }}-token
annotations:
kubernetes.io/service-account.name: {{ template "submariner.operatorServiceAccountName" . }}
type: kubernetes.io/service-account-token
{{- end }} {{- end }}
--- ---
{{- if .Values.serviceAccounts.gateway.create }} {{- if .Values.serviceAccounts.gateway.create }}
@@ -28,14 +20,6 @@ metadata:
release: {{ .Release.Name | quote }} release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ template "submariner.gatewayServiceAccountName" . }}-token
annotations:
kubernetes.io/service-account.name: {{ template "submariner.gatewayServiceAccountName" . }}
type: kubernetes.io/service-account-token
{{- end }} {{- end }}
--- ---
{{- if .Values.serviceAccounts.routeAgent.create }} {{- if .Values.serviceAccounts.routeAgent.create }}
@@ -48,14 +32,6 @@ metadata:
release: {{ .Release.Name | quote }} release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ template "submariner.routeAgentServiceAccountName" . }}-token
annotations:
kubernetes.io/service-account.name: {{ template "submariner.routeAgentServiceAccountName" . }}
type: kubernetes.io/service-account-token
{{- end }} {{- end }}
--- ---
{{- if .Values.serviceAccounts.globalnet.create }} {{- if .Values.serviceAccounts.globalnet.create }}
@@ -68,14 +44,6 @@ metadata:
release: {{ .Release.Name | quote }} release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ template "submariner.globalnetServiceAccountName" . }}-token
annotations:
kubernetes.io/service-account.name: {{ template "submariner.globalnetServiceAccountName" . }}
type: kubernetes.io/service-account-token
{{- end }} {{- end }}
--- ---
{{- if .Values.serviceAccounts.lighthouseAgent.create }} {{- if .Values.serviceAccounts.lighthouseAgent.create }}
@@ -88,14 +56,6 @@ metadata:
release: {{ .Release.Name | quote }} release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ template "submariner.lighthouseAgentServiceAccountName" . }}-token
annotations:
kubernetes.io/service-account.name: {{ template "submariner.lighthouseAgentServiceAccountName" . }}
type: kubernetes.io/service-account-token
{{- end }} {{- end }}
--- ---
{{- if .Values.serviceAccounts.lighthouseCoreDns.create }} {{- if .Values.serviceAccounts.lighthouseCoreDns.create }}
@@ -108,12 +68,4 @@ metadata:
release: {{ .Release.Name | quote }} release: {{ .Release.Name | quote }}
chart: {{ template "submariner.chart" . }} chart: {{ template "submariner.chart" . }}
app: {{ template "submariner.name" . }} app: {{ template "submariner.name" . }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ template "submariner.lighthouseCoreDnsServiceAccountName" . }}-token
annotations:
kubernetes.io/service-account.name: {{ template "submariner.lighthouseCoreDnsServiceAccountName" . }}
type: kubernetes.io/service-account-token
{{- end }} {{- end }}
+6 -9
View File
@@ -5,19 +5,14 @@ submariner:
clusterCidr: "" clusterCidr: ""
serviceCidr: "" serviceCidr: ""
globalCidr: "" globalCidr: ""
clustersetIpCidr: ""
clustersetIpEnabled: false
loadBalancerEnabled: false
natEnabled: false natEnabled: false
colorCodes: blue colorCodes: blue
debug: false debug: false
serviceDiscovery: true serviceDiscovery: true
cableDriver: "libreswan" cableDriver: "libreswan"
healthcheckEnabled: true
coreDNSCustomConfig: {}
images: images:
repository: quay.io/submariner repository: quay.io/submariner
tag: "" tag: "0.7.0"
broker: broker:
server: example.k8s.apiserver server: example.k8s.apiserver
token: test token: test
@@ -27,11 +22,9 @@ broker:
globalnet: false globalnet: false
rbac: rbac:
create: true create: true
images: {}
ipsec: ipsec:
psk: "" psk: ""
debug: false debug: false
forceUDPEncaps: false
ikePort: 500 ikePort: 500
natPort: 4500 natPort: 4500
leadership: leadership:
@@ -41,11 +34,15 @@ leadership:
operator: operator:
image: image:
repository: quay.io/submariner/submariner-operator repository: quay.io/submariner/submariner-operator
tag: "" tag: "0.7.0"
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
resources: {} resources: {}
tolerations: [] tolerations: []
affinity: {} affinity: {}
gateway:
image:
repository: quay.io/submariner/submariner-gateway
tag: "0.7.0"
serviceAccounts: serviceAccounts:
operator: operator:
create: true create: true