Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CLOUDP-280230: Network Peering CRD support in Helm Chart #371

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.1
name: atlasnetworkcontainers.atlas.mongodb.com
spec:
group: atlas.mongodb.com
names:
categories:
- atlas
kind: AtlasNetworkContainer
listKind: AtlasNetworkContainerList
plural: atlasnetworkcontainers
shortNames:
- anc
singular: atlasnetworkcontainer
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.conditions[?(@.type=="Ready")].status
name: Ready
type: string
- jsonPath: .spec.provider
name: Provider
type: string
- jsonPath: .status.id
name: Id
type: string
- jsonPath: .status.provisioned
name: Provisioned
type: string
name: v1
schema:
openAPIV3Schema:
description: AtlasNetworkContainer is the Schema for the AtlasNetworkContainer
API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: AtlasNetworkContainerSpec defines the desired state of an
AtlasNetworkContainer
properties:
cidrBlock:
description: Atlas CIDR. It needs to be set if ContainerID is not
set.
type: string
connectionSecret:
description: Name of the secret containing Atlas API private and public
keys
properties:
name:
description: |-
Name of the resource being referred to
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
required:
- name
type: object
externalProjectRef:
description: |-
"externalProjectRef" holds the parent Atlas project ID.
Mutually exclusive with the "projectRef" field
properties:
id:
description: ID is the Atlas project ID
type: string
required:
- id
type: object
projectRef:
description: |-
"projectRef" is a reference to the parent AtlasProject resource.
Mutually exclusive with the "externalProjectRef" field
properties:
name:
description: Name is the name of the Kubernetes Resource
type: string
namespace:
description: Namespace is the namespace of the Kubernetes Resource
type: string
required:
- name
type: object
provider:
description: Provider is the name of the cloud provider hosting the
network container
enum:
- AWS
- GCP
- AZURE
type: string
region:
description: |-
ContainerRegion is the provider region name of Atlas network peer container in Atlas region format
This is required by AWS and Azure, but not used by GCP
type: string
required:
- cidrBlock
- provider
type: object
x-kubernetes-validations:
- message: must define only one project reference through externalProjectRef
or projectRef
rule: (has(self.externalProjectRef) && !has(self.projectRef)) || (!has(self.externalProjectRef)
&& has(self.projectRef))
- message: must define a local connection secret when referencing an external
project
rule: (has(self.externalProjectRef) && has(self.connectionSecret)) ||
!has(self.externalProjectRef)
- message: must not set region for GCP containers
rule: (self.provider == 'GCP' && !has(self.region)) || (self.provider
!= 'GCP')
- message: must set region for AWS and Azure containers
rule: ((self.provider == 'AWS' || self.provider == 'Azure') && has(self.region))
|| (self.provider == 'GCP')
status:
description: |-
AtlasNetworkContainerStatus is a status for the AtlasNetworkContainer Custom resource.
Not the one included in the AtlasProject
properties:
conditions:
description: Conditions is the list of statuses showing the current
state of the Atlas Custom Resource
items:
description: Condition describes the state of an Atlas Custom Resource
at a certain point.
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of Atlas Custom Resource condition.
type: string
required:
- status
- type
type: object
type: array
containerProvisioned:
description: Provisioned is true when the container has been provisioned
in Atlas
type: boolean
id:
description: ID record the identifier of the container in Atlas
type: string
observedGeneration:
description: |-
ObservedGeneration indicates the generation of the resource specification that the Atlas Operator is aware of.
The Atlas Operator updates this field to the 'metadata.generation' as soon as it starts reconciliation of the resource.
format: int64
type: integer
required:
- conditions
type: object
type: object
served: true
storage: true
subresources:
status: {}
Loading
Loading