These all default to true and there doesn't seem to be any reason
a user would want to set any to false as Submariner woild not work
without these resources. Removing them simplifies the charts.
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
The submariner-operator repo is the source of truth for the
CRD and RBAC resource yaml used by subctl and the ACM add-on so
we should use it for the helm charts as well. This will avoid
having to duplicate changes from the submariner-operator repo.
All the yaml is assembled in the pkg/embeddedyamls/yamls.go file
in submariner-operator so download and extract the yaml into
template files in the chart templates directories which can then
be included in other manifest files.
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
The operator no longer runs leader-for-life election so enable
leader-with-lease via the CLI arg in the pod spec.
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
On Openshift, the operator failed with error
"\"submariner-gateway\" is forbidden: cannot set blockOwnerDeletion
if an ownerReference refers to a resource you can't set finalizers on"
Openshift enables OwnerReferencesPermissionEnforcement, so
in order to set blockOwnerDeletion for an object, the user needs
update permission for the finalizers subresource of the referenced
owner. In this case the owner is the Submariner object.
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
Bump to the latest commit, which updates node from 12 to 16 in addition
to an actions/core update.
Relates-to: submariner-io/subctl#537
Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
Use the '--app-version' parameter to 'helm package' to dynamically
set the chart 'appVersion' field. We can then omit the hardcoded
'appVersion' field in the Chart.yaml file.
The chart 'version' field is also set by 'helm package' but we still
need to define it in the Chart.yaml file since 'help dep update'
requires it. The placeholder 'version' field is now set to 0.0.0 just
to give it some value.
For E2E, since the version fields are no longer hardcoded, it now
simulates a release by running 'helm package' and extracting the tar
files to HELM_REPO_LOCATION, now set to ./helm_repo.
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
There's no mention in the upstream helm docs about this file nor is
there any docs about interactive user prompting at all (that I can see).
Nor do we document any mechanism for user prompting. It would seem this
is an obsolete remnant from an earlier version of helm so let's remove
it. This also eliminates hard-coded image versions that need to be
updated.
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
...from the top shield banner. I don't see any reason why we
need that. This eliminate places we need to update when we release a
new chart version. The other places where it references a version is
in the sample values. I changed those to just 0.14.0 but we don't
really need to update these as they're intended to be examples.
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
The issue reporting step of the Markdown broken link check GitHub Action
is failing due to missing permissions.
> Error: Resource not accessible by integration
Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
Due to a bug in LH which was fixed in devel, but not yet backported, we
have to preload the LH images to get latest versions (and operator due
to a similar reason).
Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>
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
kind:CustomResourceDefinition
metadata:
name:endpoints.submariner.io
spec:
group:submariner.io
names:
kind:Endpoint
listKind:EndpointList
plural:endpoints
singular:endpoint
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
kind:CustomResourceDefinition
metadata:
name:gateways.submariner.io
spec:
group:submariner.io
names:
kind:Gateway
listKind:GatewayList
plural:gateways
singular:gateway
scope:Namespaced
versions:
- additionalPrinterColumns:
- description:High availability status of the Gateway
jsonPath:.status.haStatus
name:HA Status
type:string
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
status:
properties:
connections:
items:
properties:
endpoint:
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
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
kind:CustomResourceDefinition
metadata:
name:serviceexports.multicluster.x-k8s.io
spec:
group:multicluster.x-k8s.io
scope:Namespaced
names:
plural:serviceexports
singular:serviceexport
kind:ServiceExport
shortNames:
- svcex
versions:
- name:v1alpha1
served:true
storage:true
subresources:
status:{}
additionalPrinterColumns:
- name:Age
type:date
jsonPath:.metadata.creationTimestamp
"schema":
"openAPIV3Schema":
description:ServiceExport declares that the Service with the same name and
namespace as this export should be consumable from other clusters.
type:object
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
status:
description:status describes the current state of an exported service.
Service configuration comes from the Service that had the same name
and namespace as this ServiceExport. Populated by the multi-cluster
service implementation's controller.
type:object
properties:
conditions:
type:array
items:
description:"ServiceExportCondition contains details for the current
condition of this service export. \n Once [KEP-1623](https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1623-standardize-conditions)
is implemented, this will be replaced by metav1.Condition."
type:object
required:
- status
- type
properties:
lastTransitionTime:
type:string
format:date-time
message:
type:string
reason:
type:string
status:
description:Status is one of {"True", "False", "Unknown"}
type:string
enum:
- "True"
- "False"
- Unknown
type:
description:ServiceExportConditionType identifies a specific
condition.
type:string
x-kubernetes-list-map-keys:
- type
x-kubernetes-list-type:map
---
apiVersion:apiextensions.k8s.io/v1
kind:CustomResourceDefinition
metadata:
name:serviceimports.multicluster.x-k8s.io
spec:
group:multicluster.x-k8s.io
scope:Namespaced
names:
plural:serviceimports
singular:serviceimport
kind:ServiceImport
shortNames:
- svcim
versions:
- name:v1alpha1
served:true
storage:true
subresources:
status:{}
additionalPrinterColumns:
- name:Type
type:string
description:The type of this ServiceImport
jsonPath:.spec.type
- name:IP
type:string
description:The VIP for this ServiceImport
jsonPath:.spec.ips
- name:Age
type:date
jsonPath:.metadata.creationTimestamp
"schema":
"openAPIV3Schema":
description:ServiceImport describes a service imported from clusters in a
ClusterSet.
type:object
properties:
apiVersion:
description:'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type:string
kind:
description:'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type:string
metadata:
type:object
spec:
description:spec defines the behavior of a ServiceImport.
type:object
required:
- ports
- type
properties:
ips:
description:ip will be used as the VIP for this service when type
is ClusterSetIP.
type:array
maxItems:1
items:
type:string
ports:
type:array
items:
description:ServicePort represents the port on which the service
is exposed
type:object
required:
- port
properties:
appProtocol:
description:The application protocol for this port. This field
follows standard Kubernetes label syntax. Un-prefixed names
are reserved for IANA standard service names (as per RFC-6335
and http://www.iana.org/assignments/service-names). Non-standard
protocols should use prefixed names such as mycompany.com/my-custom-protocol.
Field can be enabled with ServiceAppProtocol feature gate.
type:string
name:
description:The name of this port within the service. This
must be a DNS_LABEL. All ports within a ServiceSpec must have
unique names. When considering the endpoints for a Service,
this must match the 'name' field in the EndpointPort. Optional
if only one ServicePort is defined on this service.
type:string
port:
description:The port that will be exposed by this service.
type:integer
format:int32
protocol:
description:The IP protocol for this port. Supports "TCP",
"UDP",and "SCTP". Default is TCP.
type:string
x-kubernetes-list-type:atomic
sessionAffinity:
description:'Supports "ClientIP" and "None". Used to maintain session
affinity. Enable client IP based session affinity. Must be ClientIP
or None. Defaults to None. Ignored when type is Headless More info:
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.