Compare commits

...
Author SHA1 Message Date
Mike Kolesnik 929a180445 Bump to 0.11.2
Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>
2022-03-13 14:46:50 +02:00
Mike KolesnikandDaniel Farrell 8f30de30c0 Revert "Update K8s in E2E, EOL 1.19 and add 1.23"
0.11 never intended to support K8s 1.23

This reverts commit 3dd6eeb961.

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>
2022-03-11 12:22:49 -05:00
Stephen KittandThomas Pantelis 5ab8347f4f Bump to 0.11.1
Signed-off-by: Stephen Kitt <skitt@redhat.com>
2022-01-26 08:45:13 -05:00
Daniel FarrellandThomas Pantelis 3dd6eeb961 Update K8s in E2E, EOL 1.19 and add 1.23
Update the versions of Kubernetes tested in the E2E CI. Add 1.23 as the
new default for most tests, remove 1.19 as it is now EOL.

Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
(cherry picked from commit b6590df91b)
2022-01-26 08:44:26 -05:00
Sridhar GaddamandThomas Pantelis 85bc80cbe4 Configure RBAC for Globalnet pods on OCP deployments
Globalnet controller now uses internal services with external-ips
to support exported services. On OCP Clusters, we require an explicit
RBAC to create services with external-ips, this PR includes the
necessary RBAC for Globalnet pods.

Related to: https://github.com/submariner-io/submariner/issues/1166
Signed-Off-by: Sridhar Gaddam <sgaddam@redhat.com>

(cherry picked from commit bf2c41115b)
2022-01-26 08:44:26 -05:00
NegashandThomas Pantelis cdc0e0e0c5 Fix coreDNSCustomConfig values
Signed-off-by: Negash <i@negash.ru>
(cherry picked from commit 9ba0123e72)
2022-01-26 08:44:26 -05:00
Sridhar GaddamandThomas Pantelis 6250b283fa Globalnet include ClusterRole for services
As part of Globalnet enhancement where kubeproxy dependency
is removed, the Globalnet Pod will now create internal
services for every exported service in the respective
namespace where the original service resides. This PR
adds the necessary clusterRole to allow Globalnet pod
to create/delete such internal services.

Related to: https://github.com/submariner-io/submariner/issues/1166
Signed-off-by: Sridhar Gaddam <sgaddam@redhat.com>
(cherry picked from commit b3a5e40a5a)
2022-01-26 08:44:26 -05:00
Stephen KittandThomas Pantelis ed33b07bd9 Add roles and privileges required for monitoring
This replicates the RBAC changes applied to the operator in
https://github.com/submariner-io/submariner-operator/pull/1416

Fixes: #191
Signed-off-by: Stephen Kitt <skitt@redhat.com>
(cherry picked from commit 9358c86eb5)
2022-01-26 08:44:26 -05:00
Masaki KimuraandThomas Pantelis f1410811d7 Allow submariner-globalnet role to handle endpoints
Signed-off-by: Masaki Kimura <masaki.kimura@hitachivantara.com>
(cherry picked from commit 5da180d44f)
2022-01-26 08:44:26 -05:00
Stephen KittandThomas Pantelis 648dbeacb3 Add dfarrell07 as *.md code owner
See <https://github.com/submariner-io/submariner/issues/1622>.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
(cherry picked from commit 7068abafc8)
2022-01-26 08:44:26 -05:00
Stephen KittandThomas Pantelis 2a4213f768 Update all CRDs to v1 CRDs
... and drop the obsolete Lighthouse CRDs.

Fixes: #186
Signed-off-by: Stephen Kitt <skitt@redhat.com>
(cherry picked from commit 2cfbd5c394)
2022-01-26 08:44:26 -05:00
Stephen KittandThomas Pantelis 0f97bc9c11 Pass the broker.insecure flag to the CR
Fixes: #185
Signed-off-by: Stephen Kitt <skitt@redhat.com>
(cherry picked from commit 42a2af008a)
2022-01-26 08:44:26 -05:00
Stephen KittandThomas Pantelis 36945da91c Remove mangelajo from CODEOWNERS
... with his approval.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
(cherry picked from commit 1fbd3da4ae)
2022-01-26 08:44:26 -05:00
Stephen KittandThomas Pantelis dfc0280658 Update K8s versions: drop 1.17/1.18, add 1.21/1.22
1.17 and 1.18 have reached EOL.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
(cherry picked from commit fc77796287)
2022-01-26 08:44:26 -05:00
Stephen KittandThomas Pantelis 12c3cbe928 Bump to 0.11.0
Signed-off-by: Stephen Kitt <skitt@redhat.com>
2021-10-28 08:26:13 -04:00
Vishal ThaparandStephen Kitt 06ce316138 Fix connectionHealthCheck
connectionHealthCheck in submariner CR is a nested field
but is being added as a variable. This means it is ignored
and the field isn't set correctly in gateway pods.

Signed-off-by: Vishal Thapar <5137689+vthapar@users.noreply.github.com>
2021-10-28 11:05:40 +02:00
Aswin SurayanarayananandThomas Pantelis 27eb25c8f6 Add RBAC permission endpointslices/restricted in broker roles
Fixes : github.com/submariner-io/lighthouse/issues#627

Signed-off-by: Aswin Surayanarayanan <asuryana@redhat.com>
2021-10-26 08:53:15 -04:00
5cc6ec47de Update submariner-operator/questions.yml
Co-authored-by: Sridhar Gaddam <sgaddam@redhat.com>
Signed-off-by: Victor  Godoy Hernández <vigohe@gmail.com>
2021-10-26 08:34:24 -04:00
Victor Godoy HernándezandThomas Pantelis 9fcea9930c Update Readme.md
Signed-off-by: Victor  Godoy Hernández <vigohe@gmail.com>
2021-10-26 08:34:24 -04:00
Victor Godoy HernándezandThomas Pantelis c1ce210c89 Add ceIPSecForceUDPEncaps & coreDNSCustomConfig variables
Signed-off-by: Victor  Godoy Hernández <vigohe@gmail.com>
2021-10-26 08:34:24 -04:00
Victor Godoy HernándezandThomas Pantelis 7d8bf6a3ac Add enable/disable connectionHealthCheck
Signed-off-by: Victor  Godoy Hernández <vigohe@gmail.com>
2021-10-26 08:34:24 -04:00
Victor Godoy HernándezandThomas Pantelis 4cf74cfc3b Bump up to 0.10.1
Signed-off-by: Victor  Godoy Hernández <vigohe@gmail.com>
2021-10-26 08:34:24 -04:00
Automated Release 14e85ad476 Update base image to use stable branch 'release-0.11'
Signed-off-by: Automated Release <release@submariner.io>
2021-10-20 07:36:16 +00:00
17 changed files with 1304 additions and 853 deletions
+3 -3
View File
@@ -6,9 +6,9 @@ on:
jobs: jobs:
target_devel: target_devel:
name: PR targets devel name: PR targets release-0.11
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check that the PR targets devel - name: Check that the PR targets release-0.11
if: ${{ github.base_ref != 'devel' }} if: ${{ github.base_ref != 'release-0.11' }}
run: exit 1 run: exit 1
+5 -5
View File
@@ -16,22 +16,22 @@ jobs:
matrix: matrix:
cable_driver: ['libreswan', 'wireguard', 'vxlan'] cable_driver: ['libreswan', 'wireguard', 'vxlan']
globalnet: ['', 'globalnet'] globalnet: ['', 'globalnet']
k8s_version: ['1.17'] k8s_version: ['1.19']
lighthouse: ['', 'lighthouse'] lighthouse: ['', 'lighthouse']
include: include:
- k8s_version: '1.18'
- k8s_version: '1.19'
- k8s_version: '1.20' - k8s_version: '1.20'
- k8s_version: '1.21'
- k8s_version: '1.22'
steps: steps:
- name: Check out the repository - name: Check out the repository
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: Run E2E deployment and tests - name: Run E2E deployment and tests
uses: submariner-io/shipyard/gh-actions/e2e@devel uses: submariner-io/shipyard/gh-actions/e2e@release-0.11
with: with:
k8s_version: ${{ matrix.k8s_version }} k8s_version: ${{ matrix.k8s_version }}
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@devel uses: submariner-io/shipyard/gh-actions/post-mortem@release-0.11
+2 -2
View File
@@ -14,8 +14,8 @@ jobs:
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: Run E2E deployment and tests - name: Run E2E deployment and tests
uses: submariner-io/shipyard/gh-actions/e2e@devel uses: submariner-io/shipyard/gh-actions/e2e@release-0.11
- name: Post mortem - name: Post mortem
if: failure() if: failure()
uses: submariner-io/shipyard/gh-actions/post-mortem@devel uses: submariner-io/shipyard/gh-actions/post-mortem@release-0.11
+2 -2
View File
@@ -22,10 +22,10 @@ jobs:
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: Run E2E deployment and tests - name: Run E2E deployment and tests
uses: submariner-io/shipyard/gh-actions/e2e@devel uses: submariner-io/shipyard/gh-actions/e2e@release-0.11
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@devel uses: submariner-io/shipyard/gh-actions/post-mortem@release-0.11
+1 -1
View File
@@ -4,7 +4,7 @@ name: Release Charts
on: on:
push: push:
branches: branches:
- devel - release-0.11
jobs: jobs:
release: release:
+3 -1
View File
@@ -1 +1,3 @@
* @mangelajo @Oats87 @skitt @sridhargaddam @tpantelis # Auto-generated, do not edit; see CODEOWNERS.in
* @Oats87 @skitt @sridhargaddam @tpantelis
*.md @dfarrell07 @Oats87 @skitt @sridhargaddam @tpantelis
+5
View File
@@ -0,0 +1,5 @@
@dfarrell07 *.md
@Oats87 *
@skitt *
@sridhargaddam *
@tpantelis *
+2 -2
View File
@@ -1,4 +1,4 @@
BASE_BRANCH ?= devel BASE_BRANCH ?= release-0.11
export BASE_BRANCH export BASE_BRANCH
ifneq (,$(DAPPER_HOST_ARCH)) ifneq (,$(DAPPER_HOST_ARCH))
@@ -21,7 +21,7 @@ override DEPLOY_ARGS += $(CLUSTER_SETTINGS_FLAG) --deploytool helm
export DEPLOY_ARGS 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.7.0 CHARTS_VERSION=0.11.2
HELM_DOCS_VERSION=0.15.0 HELM_DOCS_VERSION=0.15.0
REPO_URL=$(shell git config remote.origin.url) REPO_URL=$(shell git config remote.origin.url)
+296 -60
View File
@@ -1,97 +1,333 @@
apiVersion: apiextensions.k8s.io/v1beta1 apiVersion: apiextensions.k8s.io/v1
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/v1beta1 apiVersion: apiextensions.k8s.io/v1
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/v1beta1 apiVersion: apiextensions.k8s.io/v1
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
additionalPrinterColumns: versions:
- name: ha-status - additionalPrinterColumns:
- description: High availability status of the Gateway
jsonPath: .status.haStatus
name: HA Status
type: string type: string
description: High Availability Status of the Gateway name: v1
JSONPath: .status.haStatus schema:
---
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:
spec: 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
status:
properties: properties:
clusterServiceInfo: connections:
items:
properties: properties:
clusterID: endpoint:
type: "string" properties:
clusterDomain: backend:
type: "string" type: string
serviceIP: backend_config:
type: "string" additionalProperties:
port: type: string
type: "integer" type: object
--- cable_name:
apiVersion: apiextensions.k8s.io/v1beta1 type: string
kind: CustomResourceDefinition cluster_id:
metadata: type: string
name: serviceexports.lighthouse.submariner.io healthCheckIP:
spec: type: string
group: lighthouse.submariner.io hostname:
version: v2alpha1 type: string
names: nat_enabled:
kind: ServiceExport type: boolean
plural: serviceexports private_ip:
singular: serviceexport type: string
scope: Namespaced public_ip:
--- type: string
apiVersion: apiextensions.k8s.io/v1beta1 subnets:
kind: CustomResourceDefinition items:
metadata: type: string
name: serviceimports.lighthouse.submariner.io type: array
spec: required:
group: lighthouse.submariner.io - backend
version: v2alpha1 - cable_name
names: - cluster_id
kind: ServiceImport - hostname
plural: serviceimports - nat_enabled
singular: serviceimport - private_ip
scope: Namespaced - 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
+1 -1
View File
@@ -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"] resources: ["endpointslices", "endpointslices/restricted"]
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: ["*"]
+2 -2
View File
@@ -1,8 +1,8 @@
--- ---
name: submariner-operator name: submariner-operator
version: 0.7.0 version: 0.11.2
apiVersion: v2 apiVersion: v2
appVersion: 0.7.0 appVersion: 0.11.2
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/
+7 -4
View File
@@ -1,6 +1,6 @@
# submariner-operator # submariner-operator
![Version: 0.7.0](https://img.shields.io/badge/Version-0.7.0-informational?style=flat-square) ![AppVersion: 0.7.0](https://img.shields.io/badge/AppVersion-0.7.0-informational?style=flat-square) ![Version: 0.11.2](https://img.shields.io/badge/Version-0.11.2-informational?style=flat-square) ![AppVersion: 0.11.2](https://img.shields.io/badge/AppVersion-0.11.2-informational?style=flat-square)
Submariner enables direct networking between Pods and Services in different Kubernetes clusters Submariner enables direct networking between Pods and Services in different Kubernetes clusters
@@ -27,8 +27,9 @@ Submariner enables direct networking between Pods and Services in different Kube
| broker.server | string | `"example.k8s.apiserver"` | | | broker.server | string | `"example.k8s.apiserver"` | |
| broker.token | string | `"test"` | | | broker.token | string | `"test"` | |
| gateway.image.repository | string | `"quay.io/submariner/submariner-gateway"` | | | gateway.image.repository | string | `"quay.io/submariner/submariner-gateway"` | |
| gateway.image.tag | string | `"0.7.0"` | | | gateway.image.tag | string | `"0.11.2"` | |
| ipsec.debug | bool | `false` | | | ipsec.debug | bool | `false` | |
| ipsec.forceUDPEncaps | bool | `false` | |
| ipsec.ikePort | int | `500` | | | ipsec.ikePort | int | `500` | |
| ipsec.natPort | int | `4500` | | | ipsec.natPort | int | `4500` | |
| ipsec.psk | string | `""` | | | ipsec.psk | string | `""` | |
@@ -38,7 +39,7 @@ Submariner enables direct networking between Pods and Services in different Kube
| operator.affinity | object | `{}` | | | operator.affinity | object | `{}` | |
| operator.image.pullPolicy | string | `"IfNotPresent"` | | | operator.image.pullPolicy | string | `"IfNotPresent"` | |
| operator.image.repository | string | `"quay.io/submariner/submariner-operator"` | | | operator.image.repository | string | `"quay.io/submariner/submariner-operator"` | |
| operator.image.tag | string | `"0.7.0"` | | | operator.image.tag | string | `"0.11.2"` | |
| operator.resources | object | `{}` | | | operator.resources | object | `{}` | |
| operator.tolerations | list | `[]` | | | operator.tolerations | list | `[]` | |
| rbac.create | bool | `true` | | | rbac.create | bool | `true` | |
@@ -58,10 +59,12 @@ Submariner enables direct networking between Pods and Services in different Kube
| submariner.clusterCidr | string | `""` | | | submariner.clusterCidr | string | `""` | |
| submariner.clusterId | string | `""` | | | submariner.clusterId | string | `""` | |
| submariner.colorCodes | string | `"blue"` | | | submariner.colorCodes | string | `"blue"` | |
| submariner.coreDNSCustomConfig | object | `{}` | |
| submariner.debug | bool | `false` | | | submariner.debug | bool | `false` | |
| submariner.globalCidr | string | `""` | | | submariner.globalCidr | string | `""` | |
| submariner.healthcheckEnabled | bool | `true` | |
| submariner.images.repository | string | `"quay.io/submariner"` | | | submariner.images.repository | string | `"quay.io/submariner"` | |
| submariner.images.tag | string | `"0.7.0"` | | | submariner.images.tag | string | `"0.11.2"` | |
| submariner.natEnabled | bool | `false` | | | submariner.natEnabled | bool | `false` | |
| submariner.serviceCidr | string | `""` | | | submariner.serviceCidr | string | `""` | |
| submariner.serviceDiscovery | bool | `true` | | | submariner.serviceDiscovery | bool | `true` | |
+185 -58
View File
@@ -1,10 +1,11 @@
--- ---
apiVersion: apiextensions.k8s.io/v1beta1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
name: submariners.submariner.io
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.3.0 controller-gen.kubebuilder.io/version: v0.4.1
creationTimestamp: null
name: submariners.submariner.io
spec: spec:
group: submariner.io group: submariner.io
names: names:
@@ -13,9 +14,9 @@ spec:
plural: submariners plural: submariners
singular: submariner singular: submariner
scope: Namespaced scope: Namespaced
subresources: versions:
status: {} - name: v1alpha1
validation: schema:
openAPIV3Schema: openAPIV3Schema:
description: Submariner is the Schema for the submariners API description: Submariner is the Schema for the submariners API
properties: properties:
@@ -42,24 +43,51 @@ spec:
type: string type: string
brokerK8sCA: brokerK8sCA:
type: string type: string
brokerK8sInsecure:
type: boolean
brokerK8sRemoteNamespace: brokerK8sRemoteNamespace:
type: string type: string
cableDriver: cableDriver:
type: string type: string
ceIPSecDebug: ceIPSecDebug:
type: boolean type: boolean
ceIPSecForceUDPEncaps:
type: boolean
ceIPSecIKEPort: ceIPSecIKEPort:
type: integer type: integer
ceIPSecNATTPort: ceIPSecNATTPort:
type: integer type: integer
ceIPSecPSK: ceIPSecPSK:
type: string type: string
ceIPSecPreferredServer:
type: boolean
clusterCIDR: clusterCIDR:
type: string type: string
clusterID: clusterID:
type: string type: string
colorCodes: colorCodes:
type: string type: string
connectionHealthCheck:
properties:
enabled:
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:
properties:
configMapName:
type: string
namespace:
type: string
type: object
customDomains: customDomains:
items: items:
type: string type: string
@@ -69,6 +97,12 @@ spec:
type: boolean type: boolean
globalCIDR: globalCIDR:
type: string type: string
imageOverrides:
additionalProperties:
type: string
type: object
loadBalancerEnabled:
type: boolean
namespace: namespace:
type: string type: string
natEnabled: natEnabled:
@@ -105,6 +139,17 @@ spec:
type: string type: string
colorCodes: colorCodes:
type: string type: string
deploymentInfo:
properties:
cloudProvider:
type: string
kubernetesType:
type: string
kubernetesTypeVersion:
type: string
kubernetesVersion:
type: string
type: object
gatewayDaemonSetStatus: gatewayDaemonSetStatus:
properties: properties:
lastResourceVersion: lastResourceVersion:
@@ -114,8 +159,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 is Only one of its members may be specified. If none of them
specified, the default one is ContainerStateWaiting. is specified, the default one is ContainerStateWaiting.
properties: properties:
running: running:
description: Details about a running container description: Details about a running container
@@ -141,20 +186,21 @@ spec:
format: date-time format: date-time
type: string type: string
message: message:
description: Message regarding the last termination of description: Message regarding the last termination
the container of 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 container description: Signal from the last termination of the
container
format: int32 format: int32
type: integer type: integer
startedAt: startedAt:
description: Time at which previous execution of the container description: Time at which previous execution of the
started container started
format: date-time format: date-time
type: string type: string
required: required:
@@ -164,18 +210,19 @@ spec:
description: Details about a waiting container description: Details about a waiting container
properties: properties:
message: message:
description: Message regarding why the container is not description: Message regarding why the container is
yet running. not yet running.
type: string type: string
reason: reason:
description: (brief) reason the container is not yet running. description: (brief) reason the container is not yet
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 a description: DaemonSetStatus represents the current status of
daemon set. a daemon set.
properties: properties:
collisionCount: collisionCount:
description: Count of hash collisions for the DaemonSet. The description: Count of hash collisions for the DaemonSet. The
@@ -185,11 +232,11 @@ spec:
format: int32 format: int32
type: integer type: integer
conditions: conditions:
description: Represents the latest available observations of description: Represents the latest available observations
a DaemonSet's current state. of a DaemonSet's current state.
items: items:
description: DaemonSetCondition describes the state of a DaemonSet description: DaemonSetCondition describes the state of a
at a certain point. DaemonSet at a certain point.
properties: properties:
lastTransitionTime: lastTransitionTime:
description: Last time the condition transitioned from description: Last time the condition transitioned from
@@ -287,6 +334,10 @@ 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
@@ -310,10 +361,30 @@ 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
@@ -333,6 +404,10 @@ 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
@@ -379,8 +454,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 is Only one of its members may be specified. If none of them
specified, the default one is ContainerStateWaiting. is specified, the default one is ContainerStateWaiting.
properties: properties:
running: running:
description: Details about a running container description: Details about a running container
@@ -406,20 +481,21 @@ spec:
format: date-time format: date-time
type: string type: string
message: message:
description: Message regarding the last termination of description: Message regarding the last termination
the container of 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 container description: Signal from the last termination of the
container
format: int32 format: int32
type: integer type: integer
startedAt: startedAt:
description: Time at which previous execution of the container description: Time at which previous execution of the
started container started
format: date-time format: date-time
type: string type: string
required: required:
@@ -429,18 +505,19 @@ spec:
description: Details about a waiting container description: Details about a waiting container
properties: properties:
message: message:
description: Message regarding why the container is not description: Message regarding why the container is
yet running. not yet running.
type: string type: string
reason: reason:
description: (brief) reason the container is not yet running. description: (brief) reason the container is not yet
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 a description: DaemonSetStatus represents the current status of
daemon set. a daemon set.
properties: properties:
collisionCount: collisionCount:
description: Count of hash collisions for the DaemonSet. The description: Count of hash collisions for the DaemonSet. The
@@ -450,11 +527,11 @@ spec:
format: int32 format: int32
type: integer type: integer
conditions: conditions:
description: Represents the latest available observations of description: Represents the latest available observations
a DaemonSet's current state. of a DaemonSet's current state.
items: items:
description: DaemonSetCondition describes the state of a DaemonSet description: DaemonSetCondition describes the state of a
at a certain point. DaemonSet at a certain point.
properties: properties:
lastTransitionTime: lastTransitionTime:
description: Last time the condition transitioned from description: Last time the condition transitioned from
@@ -535,8 +612,36 @@ spec:
required: required:
- mismatchedContainerImages - mismatchedContainerImages
type: object type: object
loadBalancerStatus:
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
type: object
type: array
type: object
type: object
natEnabled: natEnabled:
type: boolean type: boolean
networkPlugin:
type: string
routeAgentDaemonSetStatus: routeAgentDaemonSetStatus:
properties: properties:
lastResourceVersion: lastResourceVersion:
@@ -546,8 +651,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 is Only one of its members may be specified. If none of them
specified, the default one is ContainerStateWaiting. is specified, the default one is ContainerStateWaiting.
properties: properties:
running: running:
description: Details about a running container description: Details about a running container
@@ -573,20 +678,21 @@ spec:
format: date-time format: date-time
type: string type: string
message: message:
description: Message regarding the last termination of description: Message regarding the last termination
the container of 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 container description: Signal from the last termination of the
container
format: int32 format: int32
type: integer type: integer
startedAt: startedAt:
description: Time at which previous execution of the container description: Time at which previous execution of the
started container started
format: date-time format: date-time
type: string type: string
required: required:
@@ -596,18 +702,19 @@ spec:
description: Details about a waiting container description: Details about a waiting container
properties: properties:
message: message:
description: Message regarding why the container is not description: Message regarding why the container is
yet running. not yet running.
type: string type: string
reason: reason:
description: (brief) reason the container is not yet running. description: (brief) reason the container is not yet
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 a description: DaemonSetStatus represents the current status of
daemon set. a daemon set.
properties: properties:
collisionCount: collisionCount:
description: Count of hash collisions for the DaemonSet. The description: Count of hash collisions for the DaemonSet. The
@@ -617,11 +724,11 @@ spec:
format: int32 format: int32
type: integer type: integer
conditions: conditions:
description: Represents the latest available observations of description: Represents the latest available observations
a DaemonSet's current state. of a DaemonSet's current state.
items: items:
description: DaemonSetCondition describes the state of a DaemonSet description: DaemonSetCondition describes the state of a
at a certain point. DaemonSet at a certain point.
properties: properties:
lastTransitionTime: lastTransitionTime:
description: Last time the condition transitioned from description: Last time the condition transitioned from
@@ -709,11 +816,10 @@ spec:
- 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: status:
acceptedNames: acceptedNames:
kind: "" kind: ""
@@ -725,7 +831,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.3.0 controller-gen.kubebuilder.io/version: v0.4.1
creationTimestamp: null creationTimestamp: null
name: servicediscoveries.submariner.io name: servicediscoveries.submariner.io
spec: spec:
@@ -763,10 +869,19 @@ spec:
type: string type: string
brokerK8sCA: brokerK8sCA:
type: string type: string
brokerK8sInsecure:
type: boolean
brokerK8sRemoteNamespace: brokerK8sRemoteNamespace:
type: string type: string
clusterID: clusterID:
type: string type: string
coreDNSCustomConfig:
properties:
configMapName:
type: string
namespace:
type: string
type: object
customDomains: customDomains:
items: items:
type: string type: string
@@ -797,6 +912,18 @@ spec:
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
+8 -2
View File
@@ -13,7 +13,7 @@ questions:
type: string type: string
label: Submariner Operator Image Repository label: Submariner Operator Image Repository
- variable: operator.image.tag - variable: operator.image.tag
default: "0.7.0" default: "0.11.2"
description: "Submariner Operator Image Tag" description: "Submariner Operator Image Tag"
type: string type: string
label: Submariner Operator Image Tag label: Submariner Operator Image Tag
@@ -31,7 +31,7 @@ questions:
type: string type: string
label: Submariner Repository label: Submariner Repository
- variable: submariner.images.tag - variable: submariner.images.tag
default: "0.7.0" default: "0.11.2"
description: "Submariner Images Tag (shared for all non-operator images)" description: "Submariner Images Tag (shared for all non-operator images)"
type: string type: string
label: Submariner Images Tag label: Submariner Images Tag
@@ -136,3 +136,9 @@ questions:
group: "Advanced Configuration" group: "Advanced Configuration"
description: "Cable driver implementation" description: "Cable driver implementation"
label: "Cable Driver" label: "Cable Driver"
- variable: submariner.healthcheckEnabled
type: boolean
default: true
group: "Advanced Configuration"
description: "Disable Healthcheck"
label: "Healthcheck Disabled"
+59 -1
View File
@@ -439,6 +439,21 @@ rules:
verbs: verbs:
- get - get
- list - list
- apiGroups:
- ""
resources:
- namespaces
verbs:
- get
- list
- watch
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- get
- create
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
@@ -459,6 +474,29 @@ 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
@@ -640,14 +678,25 @@ rules:
- "" - ""
resources: resources:
- pods - pods
- services
- namespaces - namespaces
- nodes - nodes
- endpoints
verbs: verbs:
- get - get
- list - list
- watch - watch
- update - update
- apiGroups:
- ""
resources:
- services
verbs:
- create
- get
- list
- watch
- update
- delete
- apiGroups: - apiGroups:
- submariner.io - submariner.io
resources: resources:
@@ -688,6 +737,15 @@ rules:
- 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
@@ -9,7 +9,9 @@ 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 }}
@@ -25,3 +27,12 @@ spec:
globalCIDR: "{{ .Values.submariner.globalCidr }}" globalCIDR: "{{ .Values.submariner.globalCidr }}"
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 }}
+6 -3
View File
@@ -10,9 +10,11 @@ submariner:
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: "0.7.0" tag: "0.11.2"
broker: broker:
server: example.k8s.apiserver server: example.k8s.apiserver
token: test token: test
@@ -25,6 +27,7 @@ rbac:
ipsec: ipsec:
psk: "" psk: ""
debug: false debug: false
forceUDPEncaps: false
ikePort: 500 ikePort: 500
natPort: 4500 natPort: 4500
leadership: leadership:
@@ -34,7 +37,7 @@ leadership:
operator: operator:
image: image:
repository: quay.io/submariner/submariner-operator repository: quay.io/submariner/submariner-operator
tag: "0.7.0" tag: "0.11.2"
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
resources: {} resources: {}
tolerations: [] tolerations: []
@@ -42,7 +45,7 @@ operator:
gateway: gateway:
image: image:
repository: quay.io/submariner/submariner-gateway repository: quay.io/submariner/submariner-gateway
tag: "0.7.0" tag: "0.11.2"
serviceAccounts: serviceAccounts:
operator: operator:
create: true create: true