diff --git a/docs/releases/vtest-0.0.0-dev/bundle.Dockerfile b/docs/releases/vtest-0.0.0-dev/bundle.Dockerfile new file mode 100644 index 0000000000..38a2387c7b --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle.Dockerfile @@ -0,0 +1,25 @@ +FROM scratch + +LABEL com.redhat.openshift.versions="v4.8-v4.18" +LABEL com.redhat.delivery.backport=true +LABEL com.redhat.delivery.operator.bundle=true + +# Core bundle labels. +LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1 +LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/ +LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/ +LABEL operators.operatorframework.io.bundle.package.v1=mongodb-atlas-kubernetes +LABEL operators.operatorframework.io.bundle.channels.v1=stable +LABEL operators.operatorframework.io.bundle.channel.default.v1=stable +LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.34.1 +LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1 +LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v4 + +# Labels for testing. +LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1 +LABEL operators.operatorframework.io.test.config.v1=tests/scorecard/ + +# Copy files to locations specified by labels. +COPY bundle/manifests /manifests/ +COPY bundle/metadata /metadata/ +COPY bundle/tests/scorecard /tests/scorecard/ diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasbackupcompliancepolicies.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasbackupcompliancepolicies.yaml new file mode 100644 index 0000000000..ae753fdc78 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasbackupcompliancepolicies.yaml @@ -0,0 +1,237 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasbackupcompliancepolicies.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasBackupCompliancePolicy + listKind: AtlasBackupCompliancePolicyList + plural: atlasbackupcompliancepolicies + shortNames: + - abcp + singular: atlasbackupcompliancepolicy + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: The AtlasBackupCompliancePolicy is a configuration that enforces + specific backup and retention requirements + 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: AtlasBackupCompliancePolicySpec is the specification of the + desired configuration of backup compliance policy + properties: + authorizedEmail: + description: Email address of the user who authorized to update the + Backup Compliance Policy settings. + type: string + authorizedUserFirstName: + description: First name of the user who authorized to updated the + Backup Compliance Policy settings. + type: string + authorizedUserLastName: + description: Last name of the user who authorized to updated the Backup + Compliance Policy settings. + type: string + copyProtectionEnabled: + description: Flag that indicates whether to prevent cluster users + from deleting backups copied to other regions, even if those additional + snapshot regions are removed. + type: boolean + encryptionAtRestEnabled: + description: Flag that indicates whether Encryption at Rest using + Customer Key Management is required for all clusters with a Backup + Compliance Policy. + type: boolean + onDemandPolicy: + description: Specifications for on-demand policy. + properties: + retentionUnit: + description: 'Scope of the backup policy item: days, weeks, or + months' + enum: + - days + - weeks + - months + type: string + retentionValue: + description: Value to associate with RetentionUnit + type: integer + required: + - retentionUnit + - retentionValue + type: object + overwriteBackupPolicies: + description: Flag that indicates whether to overwrite non complying + backup policies with the new data protection settings or not. + type: boolean + pointInTimeEnabled: + description: Flag that indicates whether the cluster uses Continuous + Cloud Backups with a Backup Compliance Policy. + type: boolean + restoreWindowDays: + description: Number of previous days that you can restore back to + with Continuous Cloud Backup with a Backup Compliance Policy. This + parameter applies only to Continuous Cloud Backups with a Backup + Compliance Policy. + type: integer + scheduledPolicyItems: + description: List that contains the specifications for one scheduled + policy. + items: + properties: + frequencyInterval: + description: |- + Desired frequency of the new backup policy item specified by FrequencyType. A value of 1 specifies the first instance of the corresponding FrequencyType. + The only accepted value you can set for frequency interval with NVMe clusters is 12. + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 17 + - 18 + - 19 + - 20 + - 21 + - 22 + - 23 + - 24 + - 25 + - 26 + - 27 + - 28 + - 40 + type: integer + frequencyType: + description: 'Frequency associated with the backup policy item. + One of the following values: hourly, daily, weekly or monthly. + You cannot specify multiple hourly and daily backup policy + items.' + enum: + - hourly + - daily + - weekly + - monthly + - yearly + type: string + retentionUnit: + description: 'Scope of the backup policy item: days, weeks, + or months' + enum: + - days + - weeks + - months + - years + type: string + retentionValue: + description: Value to associate with RetentionUnit + type: integer + required: + - frequencyInterval + - frequencyType + - retentionUnit + - retentionValue + type: object + type: array + required: + - authorizedEmail + - authorizedUserFirstName + - authorizedUserLastName + type: object + status: + 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 + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasbackuppolicies.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasbackuppolicies.yaml new file mode 100644 index 0000000000..28654a55df --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasbackuppolicies.yaml @@ -0,0 +1,183 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasbackuppolicies.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasBackupPolicy + listKind: AtlasBackupPolicyList + plural: atlasbackuppolicies + shortNames: + - abp + singular: atlasbackuppolicy + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasBackupPolicy is the Schema for the atlasbackuppolicies 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: AtlasBackupPolicySpec defines the desired state of AtlasBackupPolicy + properties: + items: + description: A list of BackupPolicy items + items: + properties: + frequencyInterval: + description: |- + Desired frequency of the new backup policy item specified by FrequencyType. A value of 1 specifies the first instance of the corresponding FrequencyType. + The only accepted value you can set for frequency interval with NVMe clusters is 12. + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 17 + - 18 + - 19 + - 20 + - 21 + - 22 + - 23 + - 24 + - 25 + - 26 + - 27 + - 28 + - 40 + type: integer + frequencyType: + description: 'Frequency associated with the backup policy item. + One of the following values: hourly, daily, weekly or monthly. + You cannot specify multiple hourly and daily backup policy + items.' + enum: + - hourly + - daily + - weekly + - monthly + - yearly + type: string + retentionUnit: + description: 'Scope of the backup policy item: days, weeks, + or months' + enum: + - days + - weeks + - months + - years + type: string + retentionValue: + description: Value to associate with RetentionUnit + type: integer + required: + - frequencyInterval + - frequencyType + - retentionUnit + - retentionValue + type: object + type: array + required: + - items + type: object + status: + properties: + backupScheduleIDs: + description: DeploymentID of the deployment using the backup policy + items: + type: string + type: array + 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 + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasbackupschedules.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasbackupschedules.yaml new file mode 100644 index 0000000000..b84359b2d1 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasbackupschedules.yaml @@ -0,0 +1,212 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasbackupschedules.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasBackupSchedule + listKind: AtlasBackupScheduleList + plural: atlasbackupschedules + shortNames: + - abs + singular: atlasbackupschedule + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasBackupSchedule is the Schema for the atlasbackupschedules + 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: AtlasBackupScheduleSpec defines the desired state of AtlasBackupSchedule + properties: + autoExportEnabled: + default: false + description: Specify true to enable automatic export of cloud backup + snapshots to the AWS bucket. You must also define the export policy + using export. If omitted, defaults to false. + type: boolean + copySettings: + description: Copy backups to other regions for increased resiliency + and faster restores. + items: + properties: + cloudProvider: + default: AWS + description: Identifies the cloud provider that stores the snapshot + copy. + enum: + - AWS + - GCP + - AZURE + type: string + frequencies: + description: List that describes which types of snapshots to + copy. + items: + type: string + minItems: 1 + type: array + regionName: + description: Target region to copy snapshots belonging to replicationSpecId + to. + type: string + shouldCopyOplogs: + description: Flag that indicates whether to copy the oplogs + to the target region. + type: boolean + type: object + type: array + export: + description: Export policy for automatically exporting cloud backup + snapshots to AWS bucket. + properties: + exportBucketId: + description: Unique Atlas identifier of the AWS bucket which was + granted access to export backup snapshot + type: string + frequencyType: + default: monthly + enum: + - monthly + type: string + required: + - exportBucketId + - frequencyType + type: object + policy: + description: A reference (name & namespace) for backup policy in the + desired updated backup policy. + 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 + referenceHourOfDay: + description: UTC Hour of day between 0 and 23, inclusive, representing + which hour of the day that Atlas takes snapshots for backup policy + items + format: int64 + maximum: 23 + minimum: 0 + type: integer + referenceMinuteOfHour: + description: UTC Minutes after ReferenceHourOfDay that Atlas takes + snapshots for backup policy items. Must be between 0 and 59, inclusive. + format: int64 + maximum: 59 + minimum: 0 + type: integer + restoreWindowDays: + default: 1 + description: Number of days back in time you can restore to with Continuous + Cloud Backup accuracy. Must be a positive, non-zero integer. Applies + to continuous cloud backups only. + format: int64 + type: integer + updateSnapshots: + description: Specify true to apply the retention changes in the updated + backup policy to snapshots that Atlas took previously. + type: boolean + useOrgAndGroupNamesInExportPrefix: + description: Specify true to use organization and project names instead + of organization and project UUIDs in the path for the metadata files + that Atlas uploads to your S3 bucket after it finishes exporting + the snapshots + type: boolean + required: + - policy + type: object + status: + 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 + deploymentID: + items: + type: string + type: array + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlascustomroles.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlascustomroles.yaml new file mode 100644 index 0000000000..bd8823432e --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlascustomroles.yaml @@ -0,0 +1,223 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlascustomroles.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasCustomRole + listKind: AtlasCustomRoleList + plural: atlascustomroles + shortNames: + - acr + singular: atlascustomrole + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .spec.role.name + name: Name + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasCustomRole is the Schema for the AtlasCustomRole 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: AtlasCustomRoleSpec defines the desired state of CustomRole + in Atlas + properties: + 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 + role: + properties: + actions: + description: List of the individual privilege actions that the + role grants. + items: + properties: + name: + description: Human-readable label that identifies the privilege + action. + type: string + resources: + description: List of resources on which you grant the action. + items: + properties: + cluster: + description: Flag that indicates whether to grant + the action on the cluster resource. If true, MongoDB + Cloud ignores Database and Collection parameters. + type: boolean + collection: + description: Human-readable label that identifies + the collection on which you grant the action to + one MongoDB user. + type: string + database: + description: Human-readable label that identifies + the database on which you grant the action to one + MongoDB user. + type: string + type: object + type: array + required: + - name + - resources + type: object + type: array + inheritedRoles: + description: List of the built-in roles that this custom role + inherits. + items: + properties: + database: + description: Human-readable label that identifies the database + on which someone grants the action to one MongoDB user. + type: string + name: + description: Human-readable label that identifies the role + inherited. + type: string + required: + - database + - name + type: object + type: array + name: + description: Human-readable label that identifies the role. This + name must be unique for this custom role in this project. + type: string + required: + - name + type: object + required: + - role + 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) + status: + description: |- + AtlasCustomRoleStatus is a status for the AtlasCustomRole 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 + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasdatabaseusers.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasdatabaseusers.yaml new file mode 100644 index 0000000000..ab5bdd5df6 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasdatabaseusers.yaml @@ -0,0 +1,309 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasdatabaseusers.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasDatabaseUser + listKind: AtlasDatabaseUserList + plural: atlasdatabaseusers + shortNames: + - adu + singular: atlasdatabaseuser + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.name + name: Name + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .spec.username + name: Username + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasDatabaseUser is the Schema for the Atlas Database User 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: AtlasDatabaseUserSpec defines the desired state of Database + User in Atlas + properties: + awsIamType: + default: NONE + description: |- + Human-readable label that indicates whether the new database + user authenticates with the Amazon Web Services (AWS) + Identity and Access Management (IAM) credentials associated with + the user or the user's role + enum: + - NONE + - USER + - ROLE + 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 + databaseName: + default: admin + description: |- + DatabaseName is a Database against which Atlas authenticates the user. + If the user authenticates with AWS IAM, x.509, LDAP, or OIDC Workload this value should be '$external'. + If the user authenticates with SCRAM-SHA or OIDC Workforce, this value should be 'admin'. + Default value is 'admin'. + type: string + deleteAfterDate: + description: |- + DeleteAfterDate is a timestamp in ISO 8601 date and time format in UTC after which Atlas deletes the user. + The specified date must be in the future and within one week. + type: string + description: + description: Description of this database user. Maximum 100 characters. + maxLength: 100 + type: string + 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 + labels: + description: |- + Labels is an array containing key-value pairs that tag and categorize the database user. + Each key and value has a maximum length of 255 characters. + items: + description: LabelSpec contains key-value pairs that tag and categorize + the Cluster/DBUser + properties: + key: + maxLength: 255 + type: string + value: + type: string + required: + - key + - value + type: object + type: array + oidcAuthType: + default: NONE + description: |- + Human-readable label that indicates whether the new database Username with OIDC federated authentication. + To create a federated authentication group (Workforce), specify the value of IDP_GROUP in this field. + To create a federated authentication user (Workload), specify the value of USER in this field. + enum: + - NONE + - IDP_GROUP + - USER + type: string + passwordSecretRef: + description: PasswordSecret is a reference to the Secret keeping the + user password. + properties: + name: + description: Name is the name of the Kubernetes Resource + type: string + required: + - name + 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 + roles: + description: |- + Roles is an array of this user's roles and the databases / collections on which the roles apply. A role allows + the user to perform particular actions on the specified database. + items: + description: |- + RoleSpec allows the user to perform particular actions on the specified database. + A role on the admin database can include privileges that apply to the other databases as well. + properties: + collectionName: + description: CollectionName is a collection for which the role + applies. + type: string + databaseName: + description: |- + DatabaseName is a database on which the user has the specified role. A role on the admin database can include + privileges that apply to the other databases. + type: string + roleName: + description: RoleName is a name of the role. This value can + either be a built-in role or a custom role. + type: string + required: + - databaseName + - roleName + type: object + minItems: 1 + type: array + scopes: + description: Scopes is an array of clusters and Atlas Data Lakes that + this user has access to. + items: + description: |- + ScopeSpec if present a database user only have access to the indicated resource (Cluster or Atlas Data Lake) + if none is given then it has access to all. + It's highly recommended to restrict the access of the database users only to a limited set of resources. + properties: + name: + description: Name is a name of the cluster or Atlas Data Lake + that the user has access to. + type: string + type: + description: Type is a type of resource that the user has access + to. + enum: + - CLUSTER + - DATA_LAKE + type: string + required: + - name + - type + type: object + type: array + username: + description: |- + Username is a username for authenticating to MongoDB + Human-readable label that represents the user that authenticates to MongoDB. The format of this label depends on the method of authentication: + In case of AWS IAM: the value should be AWS ARN for the IAM User/Role; + In case of OIDC Workload or Workforce: the value should be the Atlas OIDC IdP ID, followed by a '/', followed by the IdP group name; + In case of Plain text auth: the value can be anything + maxLength: 1024 + type: string + x509Type: + default: NONE + description: X509Type is X.509 method by which the database authenticates + the provided username + enum: + - NONE + - MANAGED + - CUSTOMER + type: string + required: + - roles + - username + 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) + status: + description: AtlasDatabaseUserStatus defines the observed state of 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 + name: + description: UserName is the current name of database user. + 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 + passwordVersion: + description: PasswordVersion is the 'ResourceVersion' of the password + Secret that the Atlas Operator is aware of + type: string + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasdatafederations.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasdatafederations.yaml new file mode 100644 index 0000000000..e6358f06a8 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasdatafederations.yaml @@ -0,0 +1,272 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasdatafederations.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasDataFederation + listKind: AtlasDataFederationList + plural: atlasdatafederations + shortNames: + - adf + singular: atlasdatafederation + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.name + name: Name + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasDataFederation is the Schema for the Atlas Data Federation + 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: + properties: + cloudProviderConfig: + properties: + aws: + properties: + roleId: + type: string + testS3Bucket: + type: string + type: object + type: object + dataProcessRegion: + properties: + cloudProvider: + enum: + - AWS + type: string + region: + enum: + - SYDNEY_AUS + - MUMBAI_IND + - FRANKFURT_DEU + - DUBLIN_IRL + - LONDON_GBR + - VIRGINIA_USA + - OREGON_USA + - SAOPAULO_BRA + - SINGAPORE_SGP + type: string + type: object + name: + type: string + privateEndpoints: + items: + properties: + endpointId: + type: string + provider: + type: string + type: + type: string + type: object + type: array + projectRef: + description: Project is a reference to AtlasProject resource the deployment + belongs to + 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 + storage: + properties: + databases: + items: + properties: + collections: + items: + properties: + dataSources: + items: + properties: + allowInsecure: + type: boolean + collection: + type: string + collectionRegex: + type: string + database: + type: string + databaseRegex: + type: string + defaultFormat: + enum: + - .avro + - .avro.bz2 + - .avro.gz + - .bson + - .bson.bz2 + - .bson.gz + - .bsonx + - .csv + - .csv.bz2 + - .csv.gz + - .json + - .json.bz2 + - .json.gz + - .orc + - .parquet + - .tsv + - .tsv.bz2 + - .tsv.gz + type: string + path: + type: string + provenanceFieldName: + type: string + storeName: + type: string + urls: + items: + type: string + type: array + type: object + type: array + name: + type: string + type: object + type: array + maxWildcardCollections: + type: integer + name: + type: string + views: + items: + properties: + name: + type: string + pipeline: + type: string + source: + type: string + type: object + type: array + type: object + type: array + stores: + items: + properties: + additionalStorageClasses: + items: + type: string + type: array + bucket: + type: string + delimiter: + type: string + includeTags: + type: boolean + name: + type: string + prefix: + type: string + provider: + type: string + public: + type: boolean + region: + type: string + type: object + type: array + type: object + required: + - name + - projectRef + type: object + status: + 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 + mongoDBVersion: + description: MongoDBVersion is the version of MongoDB the cluster + runs, in . format. + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasdeployments.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasdeployments.yaml new file mode 100644 index 0000000000..ee50f4245f --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasdeployments.yaml @@ -0,0 +1,1190 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasdeployments.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasDeployment + listKind: AtlasDeploymentList + plural: atlasdeployments + shortNames: + - ad + singular: atlasdeployment + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.stateName + name: Atlas State + type: string + - jsonPath: .status.mongoDBVersion + name: MongoDB Version + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasDeployment is the Schema for the atlasdeployments 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: |- + AtlasDeploymentSpec defines the desired state of AtlasDeployment + Only one of DeploymentSpec, AdvancedDeploymentSpec and ServerlessSpec should be defined + properties: + backupRef: + description: Backup schedule for the AtlasDeployment + 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 + 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 + deploymentSpec: + description: Configuration for the advanced (v1.5) deployment API + https://www.mongodb.com/docs/atlas/reference/api/clusters/ + properties: + backupEnabled: + description: |- + Applicable only for M10+ deployments. + Flag that indicates if the deployment uses Cloud Backups for backups. + type: boolean + biConnector: + description: |- + Configuration of BI Connector for Atlas on this deployment. + The MongoDB Connector for Business Intelligence for Atlas (BI Connector) is only available for M10 and larger deployments. + properties: + enabled: + description: Flag that indicates whether or not BI Connector + for Atlas is enabled on the deployment. + type: boolean + readPreference: + description: Source from which the BI Connector for Atlas + reads data. Each BI Connector for Atlas read preference + contains a distinct combination of readPreference and readPreferenceTags + options. + type: string + type: object + clusterType: + description: |- + Type of the deployment that you want to create. + The parameter is required if replicationSpecs are set or if Global Deployments are deployed. + enum: + - REPLICASET + - SHARDED + - GEOSHARDED + type: string + customZoneMapping: + items: + properties: + location: + type: string + zone: + type: string + required: + - location + - zone + type: object + type: array + diskSizeGB: + description: |- + Capacity, in gigabytes, of the host's root volume. + Increase this number to add capacity, up to a maximum possible value of 4096 (i.e., 4 TB). + This value must be a positive integer. + The parameter is required if replicationSpecs are configured. + maximum: 4096 + minimum: 0 + type: integer + encryptionAtRestProvider: + description: Cloud service provider that offers Encryption at + Rest. + enum: + - AWS + - GCP + - AZURE + - NONE + type: string + labels: + description: |- + Collection of key-value pairs that tag and categorize the deployment. + Each key and value has a maximum length of 255 characters. + items: + description: LabelSpec contains key-value pairs that tag and + categorize the Cluster/DBUser + properties: + key: + maxLength: 255 + type: string + value: + type: string + required: + - key + - value + type: object + type: array + managedNamespaces: + items: + description: ManagedNamespace represents the information about + managed namespace configuration. + properties: + collection: + type: string + customShardKey: + type: string + db: + type: string + isCustomShardKeyHashed: + type: boolean + isShardKeyUnique: + type: boolean + numInitialChunks: + type: integer + presplitHashedZones: + type: boolean + required: + - collection + - db + type: object + type: array + mongoDBMajorVersion: + description: Version of the deployment to deploy. + type: string + mongoDBVersion: + type: string + name: + description: |- + Name of the advanced deployment as it appears in Atlas. + After Atlas creates the deployment, you can't change its name. + Can only contain ASCII letters, numbers, and hyphens. + pattern: ^[a-zA-Z0-9][a-zA-Z0-9-]*$ + type: string + paused: + description: Flag that indicates whether the deployment should + be paused. + type: boolean + pitEnabled: + description: Flag that indicates the deployment uses continuous + cloud backups. + type: boolean + replicationSpecs: + description: Configuration for deployment regions. + items: + properties: + numShards: + description: |- + Positive integer that specifies the number of shards to deploy in each specified zone. + If you set this value to 1 and clusterType is SHARDED, MongoDB Cloud deploys a single-shard sharded cluster. + Don't create a sharded cluster with a single shard for production environments. + Single-shard sharded clusters don't provide the same benefits as multi-shard configurations + type: integer + regionConfigs: + description: |- + Hardware specifications for nodes set for a given region. + Each regionConfigs object describes the region's priority in elections and the number and type of MongoDB nodes that MongoDB Cloud deploys to the region. + Each regionConfigs object must have either an analyticsSpecs object, electableSpecs object, or readOnlySpecs object. + Tenant clusters only require electableSpecs. Dedicated clusters can specify any of these specifications, but must have at least one electableSpecs object within a replicationSpec. + Every hardware specification must use the same instanceSize. + items: + properties: + analyticsSpecs: + properties: + diskIOPS: + description: |- + Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + format: int64 + type: integer + ebsVolumeType: + description: |- + Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + enum: + - STANDARD + - PROVISIONED + type: string + instanceSize: + description: |- + Hardware specification for the instance sizes in this region. + Each instance size has a default storage and memory capacity. + The instance size you select applies to all the data-bearing hosts in your instance size + type: string + nodeCount: + description: Number of nodes of the given type + for MongoDB Cloud to deploy to the region. + type: integer + type: object + autoScaling: + description: AdvancedAutoScalingSpec configures your + deployment to automatically scale its storage + properties: + compute: + description: Collection of settings that configure + how a deployment might scale its deployment + tier and whether the deployment can scale down. + properties: + enabled: + description: Flag that indicates whether deployment + tier auto-scaling is enabled. The default + is false. + type: boolean + maxInstanceSize: + description: 'Maximum instance size to which + your deployment can automatically scale + (such as M40). Atlas requires this parameter + if "autoScaling.compute.enabled" : true.' + type: string + minInstanceSize: + description: 'Minimum instance size to which + your deployment can automatically scale + (such as M10). Atlas requires this parameter + if "autoScaling.compute.scaleDownEnabled" + : true.' + type: string + scaleDownEnabled: + description: 'Flag that indicates whether + the deployment tier may scale down. Atlas + requires this parameter if "autoScaling.compute.enabled" + : true.' + type: boolean + type: object + diskGB: + description: Flag that indicates whether disk + auto-scaling is enabled. The default is true. + properties: + enabled: + type: boolean + type: object + type: object + backingProviderName: + description: |- + Cloud service provider on which the host for a multi-tenant deployment is provisioned. + This setting only works when "providerName" : "TENANT" and "providerSetting.instanceSizeName" : M2 or M5. + Otherwise it should be equal to "providerName" value + enum: + - AWS + - GCP + - AZURE + type: string + electableSpecs: + properties: + diskIOPS: + description: |- + Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + format: int64 + type: integer + ebsVolumeType: + description: |- + Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + enum: + - STANDARD + - PROVISIONED + type: string + instanceSize: + description: |- + Hardware specification for the instance sizes in this region. + Each instance size has a default storage and memory capacity. + The instance size you select applies to all the data-bearing hosts in your instance size + type: string + nodeCount: + description: Number of nodes of the given type + for MongoDB Cloud to deploy to the region. + type: integer + type: object + priority: + description: |- + Precedence is given to this region when a primary election occurs. + If your regionConfigs has only readOnlySpecs, analyticsSpecs, or both, set this value to 0. + If you have multiple regionConfigs objects (your cluster is multi-region or multi-cloud), they must have priorities in descending order. + The highest priority is 7 + type: integer + providerName: + enum: + - AWS + - GCP + - AZURE + - TENANT + - SERVERLESS + type: string + readOnlySpecs: + properties: + diskIOPS: + description: |- + Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + format: int64 + type: integer + ebsVolumeType: + description: |- + Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + enum: + - STANDARD + - PROVISIONED + type: string + instanceSize: + description: |- + Hardware specification for the instance sizes in this region. + Each instance size has a default storage and memory capacity. + The instance size you select applies to all the data-bearing hosts in your instance size + type: string + nodeCount: + description: Number of nodes of the given type + for MongoDB Cloud to deploy to the region. + type: integer + type: object + regionName: + description: |- + Physical location of your MongoDB deployment. + The region you choose can affect network latency for clients accessing your databases. + type: string + type: object + type: array + zoneName: + description: Human-readable label that identifies the zone + in a Global Cluster. + type: string + type: object + type: array + rootCertType: + type: string + searchIndexes: + description: A list of atlas search indexes configuration for + the current deployment + items: + description: SearchIndex is the CRD to configure part of the + Atlas Search Index + properties: + DBName: + description: Human-readable label that identifies the database + that contains the collection with one or more Atlas Search + indexes + type: string + collectionName: + description: Human-readable label that identifies the collection + that contains one or more Atlas Search indexes + type: string + name: + description: Human-readable label that identifies this index. + Must be unique for a deployment + type: string + search: + description: Atlas search index configuration + properties: + mappings: + description: Index specifications for the collection's + fields + properties: + dynamic: + description: Flag that indicates whether the index + uses dynamic or static mappings. Required if mapping.fields + is omitted. + type: boolean + fields: + description: One or more field specifications for + the Atlas Search index. Required if mapping.dynamic + is omitted or set to false. + x-kubernetes-preserve-unknown-fields: true + type: object + searchConfigurationRef: + description: A reference to the AtlasSearchIndexConfig + custom resource + 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 + synonyms: + description: Rule sets that map words to their synonyms + in this index + items: + description: Synonym represents "Synonym" type of + Atlas Search Index + properties: + analyzer: + description: Specific pre-defined method chosen + to apply to the synonyms to be searched + enum: + - lucene.standard + - lucene.simple + - lucene.whitespace + - lucene.keyword + - lucene.arabic + - lucene.armenian + - lucene.basque + - lucene.bengali + - lucene.brazilian + - lucene.bulgarian + - lucene.catalan + - lucene.chinese + - lucene.cjk + - lucene.czech + - lucene.danish + - lucene.dutch + - lucene.english + - lucene.finnish + - lucene.french + - lucene.galician + - lucene.german + - lucene.greek + - lucene.hindi + - lucene.hungarian + - lucene.indonesian + - lucene.irish + - lucene.italian + - lucene.japanese + - lucene.korean + - lucene.kuromoji + - lucene.latvian + - lucene.lithuanian + - lucene.morfologik + - lucene.nori + - lucene.norwegian + - lucene.persian + - lucene.portuguese + - lucene.romanian + - lucene.russian + - lucene.smartcn + - lucene.sorani + - lucene.spanish + - lucene.swedish + - lucene.thai + - lucene.turkish + - lucene.ukrainian + type: string + name: + description: Human-readable label that identifies + the synonym definition. Each name must be unique + within the same index definition + type: string + source: + description: Data set that stores the mapping + one or more words map to one or more synonyms + of those words + properties: + collection: + description: Human-readable label that identifies + the MongoDB collection that stores words + and their applicable synonyms + type: string + required: + - collection + type: object + required: + - analyzer + - name + - source + type: object + type: array + required: + - mappings + - searchConfigurationRef + type: object + type: + description: Type of the index + enum: + - search + - vectorSearch + type: string + vectorSearch: + description: Atlas vector search index configuration + properties: + fields: + description: Array of JSON objects. See examples https://dochub.mongodb.org/core/avs-vector-type + x-kubernetes-preserve-unknown-fields: true + required: + - fields + type: object + required: + - DBName + - collectionName + - name + - type + type: object + type: array + searchNodes: + description: Settings for Search Nodes for the cluster. Currently, + at most one search node configuration may be defined. + items: + properties: + instanceSize: + description: Hardware specification for the Search Node + instance sizes. + enum: + - S20_HIGHCPU_NVME + - S30_HIGHCPU_NVME + - S40_HIGHCPU_NVME + - S50_HIGHCPU_NVME + - S60_HIGHCPU_NVME + - S70_HIGHCPU_NVME + - S80_HIGHCPU_NVME + - S30_LOWCPU_NVME + - S40_LOWCPU_NVME + - S50_LOWCPU_NVME + - S60_LOWCPU_NVME + - S80_LOWCPU_NVME + - S90_LOWCPU_NVME + - S100_LOWCPU_NVME + - S110_LOWCPU_NVME + type: string + nodeCount: + description: Number of Search Nodes in the cluster. + maximum: 32 + minimum: 2 + type: integer + type: object + maxItems: 1 + type: array + tags: + description: Key-value pairs for resource tagging. + items: + description: TagSpec holds a key-value pair for resource tagging + on this deployment. + properties: + key: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9 @_.+`;`-]*$ + type: string + value: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9 @_.+`;`-]*$ + type: string + required: + - key + - value + type: object + maxItems: 50 + type: array + terminationProtectionEnabled: + default: false + description: Flag that indicates whether termination protection + is enabled on the cluster. If set to true, MongoDB Cloud won't + delete the cluster. If set to false, MongoDB Cloud will delete + the cluster. + type: boolean + versionReleaseSystem: + 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 + flexSpec: + description: Configuration for the Flex cluster API. https://www.mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Flex-Clusters + properties: + name: + description: Human-readable label that identifies the instance. + type: string + providerSettings: + description: Group of cloud provider settings that configure the + provisioned MongoDB flex cluster. + properties: + backingProviderName: + description: Cloud service provider on which MongoDB Atlas + provisions the flex cluster. + enum: + - AWS + - GCP + - AZURE + type: string + x-kubernetes-validations: + - message: Backing Provider cannot be modified after cluster + creation + rule: self == oldSelf + regionName: + description: |- + Human-readable label that identifies the geographic location of your MongoDB flex cluster. + The region you choose can affect network latency for clients accessing your databases. + type: string + x-kubernetes-validations: + - message: Region Name cannot be modified after cluster creation + rule: self == oldSelf + required: + - backingProviderName + - regionName + type: object + tags: + description: List that contains key-value pairs between 1 to 255 + characters in length for tagging and categorizing the instance. + items: + description: TagSpec holds a key-value pair for resource tagging + on this deployment. + properties: + key: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9 @_.+`;`-]*$ + type: string + value: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9 @_.+`;`-]*$ + type: string + required: + - key + - value + type: object + maxItems: 50 + type: array + terminationProtectionEnabled: + default: false + description: |- + Flag that indicates whether termination protection is enabled on the cluster. + If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster. + type: boolean + required: + - name + - providerSettings + type: object + processArgs: + description: ProcessArgs allows to modify Advanced Configuration Options + properties: + defaultReadConcern: + type: string + defaultWriteConcern: + type: string + failIndexKeyTooLong: + type: boolean + javascriptEnabled: + type: boolean + minimumEnabledTlsProtocol: + type: string + noTableScan: + type: boolean + oplogMinRetentionHours: + type: string + oplogSizeMB: + format: int64 + type: integer + sampleRefreshIntervalBIConnector: + format: int64 + type: integer + sampleSizeBIConnector: + format: int64 + type: integer + 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 + serverlessSpec: + description: |- + Configuration for the serverless deployment API. https://www.mongodb.com/docs/atlas/reference/api/serverless-instances/ + DEPRECATED FIELD: Serverless instances are deprecated. See https://dochub.mongodb.org/core/atlas-flex-migration for details. + properties: + backupOptions: + description: Serverless Backup Options + properties: + serverlessContinuousBackupEnabled: + default: true + description: ServerlessContinuousBackupEnabled + type: boolean + type: object + name: + description: |- + Name of the serverless deployment as it appears in Atlas. + After Atlas creates the deployment, you can't change its name. + Can only contain ASCII letters, numbers, and hyphens. + pattern: ^[a-zA-Z0-9][a-zA-Z0-9-]*$ + type: string + privateEndpoints: + items: + properties: + cloudProviderEndpointID: + description: CloudProviderEndpointID is the identifier of + the cloud provider endpoint. + type: string + name: + description: Name is the name of the Serverless PrivateLink + Service. Should be unique. + type: string + privateEndpointIpAddress: + description: PrivateEndpointIPAddress is the IPv4 address + of the private endpoint in your Azure VNet that someone + added to this private endpoint service. + type: string + type: object + type: array + providerSettings: + description: Configuration for the provisioned hosts on which + MongoDB runs. The available options are specific to the cloud + service provider. + properties: + autoScaling: + description: DEPRECATED FIELD. The value of this field doesn't + take any effect. Range of instance sizes to which your deployment + can scale. + properties: + autoIndexingEnabled: + description: |- + Deprecated: This flag is not supported anymore. + Flag that indicates whether autopilot mode for Performance Advisor is enabled. + The default is false. + type: boolean + compute: + description: Collection of settings that configure how + a deployment might scale its deployment tier and whether + the deployment can scale down. + properties: + enabled: + description: Flag that indicates whether deployment + tier auto-scaling is enabled. The default is false. + type: boolean + maxInstanceSize: + description: 'Maximum instance size to which your + deployment can automatically scale (such as M40). + Atlas requires this parameter if "autoScaling.compute.enabled" + : true.' + type: string + minInstanceSize: + description: 'Minimum instance size to which your + deployment can automatically scale (such as M10). + Atlas requires this parameter if "autoScaling.compute.scaleDownEnabled" + : true.' + type: string + scaleDownEnabled: + description: 'Flag that indicates whether the deployment + tier may scale down. Atlas requires this parameter + if "autoScaling.compute.enabled" : true.' + type: boolean + type: object + diskGBEnabled: + description: Flag that indicates whether disk auto-scaling + is enabled. The default is true. + type: boolean + type: object + backingProviderName: + description: |- + Cloud service provider on which the host for a multi-tenant deployment is provisioned. + This setting only works when "providerSetting.providerName" : "TENANT" and "providerSetting.instanceSizeName" : M2 or M5. + enum: + - AWS + - GCP + - AZURE + type: string + diskIOPS: + description: |- + DEPRECATED FIELD. The value of this field doesn't take any effect. Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + format: int64 + type: integer + diskTypeName: + description: DEPRECATED FIELD. The value of this field doesn't + take any effect. Type of disk if you selected Azure as your + cloud service provider. + type: string + encryptEBSVolume: + description: DEPRECATED FIELD. The value of this field doesn't + take any effect. Flag that indicates whether the Amazon + EBS encryption feature encrypts the host's root volume for + both data at rest within the volume and for data moving + between the volume and the deployment. + type: boolean + instanceSizeName: + description: DEPRECATED FIELD. The value of this field doesn't + take any effect. Atlas provides different deployment tiers, + each with a default storage capacity and RAM size. The deployment + you select is used for all the data-bearing hosts in your + deployment tier. + type: string + providerName: + description: Cloud service provider on which Atlas provisions + the hosts. + enum: + - AWS + - GCP + - AZURE + - TENANT + - SERVERLESS + type: string + regionName: + description: |- + Physical location of your MongoDB deployment. + The region you choose can affect network latency for clients accessing your databases. + type: string + volumeType: + description: |- + DEPRECATED FIELD. The value of this field doesn't take any effect. Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + enum: + - STANDARD + - PROVISIONED + type: string + required: + - providerName + type: object + tags: + description: Key-value pairs for resource tagging. + items: + description: TagSpec holds a key-value pair for resource tagging + on this deployment. + properties: + key: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9 @_.+`;`-]*$ + type: string + value: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9 @_.+`;`-]*$ + type: string + required: + - key + - value + type: object + maxItems: 50 + type: array + terminationProtectionEnabled: + default: false + description: Flag that indicates whether termination protection + is enabled on the cluster. If set to true, MongoDB Cloud won't + delete the cluster. If set to false, MongoDB Cloud will delete + the cluster. + type: boolean + required: + - name + - providerSettings + type: object + 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) + status: + description: AtlasDeploymentStatus defines the observed state of AtlasDeployment. + 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 + connectionStrings: + description: ConnectionStrings is a set of connection strings that + your applications use to connect to this cluster. + properties: + private: + description: |- + Network-peering-endpoint-aware mongodb:// connection strings for each interface VPC endpoint you configured to connect to this cluster. + Atlas returns this parameter only if you created a network peering connection to this cluster. + type: string + privateEndpoint: + description: |- + Private endpoint connection strings. + Each object describes the connection strings you can use to connect to this cluster through a private endpoint. + Atlas returns this parameter only if you deployed a private endpoint to all regions to which you deployed this cluster's nodes. + items: + description: |- + PrivateEndpoint connection strings. Each object describes the connection strings + you can use to connect to this cluster through a private endpoint. + Atlas returns this parameter only if you deployed a private endpoint to all regions + to which you deployed this cluster's nodes. + properties: + connectionString: + description: Private-endpoint-aware mongodb:// connection + string for this private endpoint. + type: string + endpoints: + description: Private endpoint through which you connect + to Atlas when you use connectionStrings.privateEndpoint[n].connectionString + or connectionStrings.privateEndpoint[n].srvConnectionString. + items: + description: Endpoint through which you connect to Atlas + properties: + endpointId: + description: Unique identifier of the private endpoint. + type: string + ip: + description: Private IP address of the private endpoint + network interface you created in your Azure VNet. + type: string + providerName: + description: Cloud provider to which you deployed + the private endpoint. Atlas returns AWS or AZURE. + type: string + region: + description: Region to which you deployed the private + endpoint. + type: string + type: object + type: array + srvConnectionString: + description: Private-endpoint-aware mongodb+srv:// connection + string for this private endpoint. + type: string + srvShardOptimizedConnectionString: + type: string + type: + description: |- + Type of MongoDB process that you connect to with the connection strings + + Atlas returns: + + • MONGOD for replica sets, or + + • MONGOS for sharded clusters + type: string + type: object + type: array + privateSrv: + description: |- + Network-peering-endpoint-aware mongodb+srv:// connection strings for each interface VPC endpoint you configured to connect to this cluster. + Atlas returns this parameter only if you created a network peering connection to this cluster. + Use this URI format if your driver supports it. If it doesn't, use connectionStrings.private. + type: string + standard: + description: Public mongodb:// connection string for this cluster. + type: string + standardSrv: + description: Public mongodb+srv:// connection string for this + cluster. + type: string + type: object + customZoneMapping: + properties: + customZoneMapping: + additionalProperties: + type: string + type: object + zoneMappingErrMessage: + type: string + zoneMappingState: + type: string + type: object + managedNamespaces: + items: + properties: + collection: + type: string + customShardKey: + type: string + db: + type: string + errMessage: + type: string + isCustomShardKeyHashed: + type: boolean + isShardKeyUnique: + type: boolean + numInitialChunks: + type: integer + presplitHashedZones: + type: boolean + status: + type: string + required: + - collection + - db + type: object + type: array + mongoDBVersion: + description: MongoDBVersion is the version of MongoDB the cluster + runs, in . format. + type: string + mongoURIUpdated: + description: |- + MongoURIUpdated is a timestamp in ISO 8601 date and time format in UTC when the connection string was last updated. + The connection string changes if you update any of the other values. + 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 + replicaSets: + items: + properties: + id: + type: string + zoneName: + type: string + required: + - id + type: object + type: array + searchIndexes: + description: SearchIndexes contains a list of search indexes statuses + configured for a project + items: + properties: + ID: + type: string + message: + type: string + name: + type: string + status: + type: string + required: + - ID + - message + - name + - status + type: object + type: array + serverlessPrivateEndpoints: + items: + properties: + _id: + description: ID is the identifier of the Serverless PrivateLink + Service. + type: string + cloudProviderEndpointId: + description: CloudProviderEndpointID is the identifier of the + cloud provider endpoint. + type: string + endpointServiceName: + description: EndpointServiceName is the name of the PrivateLink + endpoint service in AWS. Returns null while the endpoint service + is being created. + type: string + errorMessage: + description: ErrorMessage is the error message if the Serverless + PrivateLink Service failed to create or connect. + type: string + name: + description: Name is the name of the Serverless PrivateLink + Service. Should be unique. + type: string + privateEndpointIpAddress: + description: PrivateEndpointIPAddress is the IPv4 address of + the private endpoint in your Azure VNet that someone added + to this private endpoint service. + type: string + privateLinkServiceResourceId: + description: PrivateLinkServiceResourceID is the root-relative + path that identifies the Azure Private Link Service that MongoDB + Cloud manages. MongoDB Cloud returns null while it creates + the endpoint service. + type: string + providerName: + description: ProviderName is human-readable label that identifies + the cloud provider. Values include AWS or AZURE. + type: string + status: + description: Status of the AWS Serverless PrivateLink connection. + type: string + type: object + type: array + stateName: + description: |- + StateName is the current state of the cluster. + The possible states are: IDLE, CREATING, UPDATING, DELETING, DELETED, REPAIRING + type: string + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasfederatedauths.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasfederatedauths.yaml new file mode 100644 index 0000000000..ff270a0f6d --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasfederatedauths.yaml @@ -0,0 +1,201 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasfederatedauths.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasFederatedAuth + listKind: AtlasFederatedAuthList + plural: atlasfederatedauths + shortNames: + - afa + singular: atlasfederatedauth + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasFederatedAuth is the Schema for the Atlasfederatedauth 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: + properties: + connectionSecretRef: + description: |- + Connection secret with API credentials for configuring the federation. + These credentials must have OrganizationOwner permissions. + 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 + dataAccessIdentityProviders: + description: |- + The collection of unique ids representing the identity providers that can be used for data access in this organization. + Currently connected data access identity providers missing from the this field will be disconnected. + items: + type: string + type: array + domainAllowList: + description: Approved domains that restrict users who can join the + organization based on their email address. + items: + type: string + type: array + domainRestrictionEnabled: + default: false + description: |- + Prevent users in the federation from accessing organizations outside of the federation, and creating new organizations. + This option applies to the entire federation. + See more information at https://www.mongodb.com/docs/atlas/security/federation-advanced-options/#restrict-user-membership-to-the-federation + type: boolean + enabled: + default: false + type: boolean + postAuthRoleGrants: + description: Atlas roles that are granted to a user in this organization + after authenticating. + items: + type: string + type: array + roleMappings: + description: Map IDP groups to Atlas roles. + items: + description: RoleMapping maps an external group from an identity + provider to roles within Atlas. + properties: + externalGroupName: + description: ExternalGroupName is the name of the IDP group + to which this mapping applies. + maxLength: 200 + minLength: 1 + type: string + roleAssignments: + description: RoleAssignments define the roles within projects + that should be given to members of the group. + items: + properties: + projectName: + description: The Atlas project in the same org in which + the role should be given. + type: string + role: + description: The role in Atlas that should be given to + group members. + enum: + - ORG_MEMBER + - ORG_READ_ONLY + - ORG_BILLING_ADMIN + - ORG_GROUP_CREATOR + - ORG_OWNER + - ORG_BILLING_READ_ONLY + - ORG_TEAM_MEMBERS_ADMIN + - GROUP_AUTOMATION_ADMIN + - GROUP_BACKUP_ADMIN + - GROUP_MONITORING_ADMIN + - GROUP_OWNER + - GROUP_READ_ONLY + - GROUP_USER_ADMIN + - GROUP_BILLING_ADMIN + - GROUP_DATA_ACCESS_ADMIN + - GROUP_DATA_ACCESS_READ_ONLY + - GROUP_DATA_ACCESS_READ_WRITE + - GROUP_CHARTS_ADMIN + - GROUP_CLUSTER_MANAGER + - GROUP_SEARCH_INDEX_EDITOR + type: string + type: object + type: array + type: object + type: array + ssoDebugEnabled: + default: false + type: boolean + type: object + status: + 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 + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasipaccesslists.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasipaccesslists.yaml new file mode 100644 index 0000000000..13845b00cf --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasipaccesslists.yaml @@ -0,0 +1,202 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasipaccesslists.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasIPAccessList + listKind: AtlasIPAccessListList + plural: atlasipaccesslists + shortNames: + - aip + singular: atlasipaccesslist + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasIPAccessList is the Schema for the atlasipaccesslists 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: AtlasIPAccessListSpec defines the desired state of AtlasIPAccessList. + properties: + 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 + entries: + description: Entries is the list of IP Access to be managed + items: + properties: + awsSecurityGroup: + description: Unique identifier of AWS security group in this + access list entry. + type: string + cidrBlock: + description: Range of IP addresses in CIDR notation in this + access list entry. + type: string + comment: + description: Comment associated with this access list entry. + type: string + deleteAfterDate: + description: Date and time after which Atlas deletes the temporary + access list entry. + format: date-time + type: string + ipAddress: + description: Entry using an IP address in this access list entry. + type: string + type: object + x-kubernetes-validations: + - message: Only one of ipAddress, cidrBlock, or awsSecurityGroup + may be set. + rule: '!(has(self.ipAddress) && (has(self.cidrBlock) || has(self.awsSecurityGroup))) + && !(has(self.cidrBlock) && has(self.awsSecurityGroup))' + minItems: 1 + type: array + 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 + required: + - entries + 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) + status: + description: AtlasIPAccessListStatus is the most recent observed status + of the AtlasIPAccessList cluster. Read-only. + 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 + entries: + description: Status is the state of the ip access list + items: + properties: + entry: + description: Entry is the ip access Atlas is managing + type: string + status: + description: Status is the correspondent state of the entry + type: string + required: + - entry + - status + type: object + type: array + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasnetworkcontainers.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasnetworkcontainers.yaml new file mode 100644 index 0000000000..ead7c2aee0 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasnetworkcontainers.yaml @@ -0,0 +1,207 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + 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 + 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 + id: + description: |- + ID is the container identifier for an already existent network container to be managed by the operator. + This field can be used in conjunction with cidrBlock to update the cidrBlock of an existing container. + This field is immutable. + type: string + 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. + This field is immutable, Atlas does not admit network container changes. + type: string + required: + - 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') + - message: id is immutable + rule: (self.id == oldSelf.id) || (!has(self.id) && !has(oldSelf.id)) + - message: region is immutable + rule: (self.region == oldSelf.region) || (!has(self.region) && !has(oldSelf.region)) + 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 + 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 + provisioned: + description: |- + Provisioned is true when clusters have been deployed to the container before + the last reconciliation + type: boolean + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasnetworkpeerings.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasnetworkpeerings.yaml new file mode 100644 index 0000000000..c101461349 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasnetworkpeerings.yaml @@ -0,0 +1,309 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasnetworkpeerings.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasNetworkPeering + listKind: AtlasNetworkPeeringList + plural: atlasnetworkpeerings + shortNames: + - anp + singular: atlasnetworkpeering + 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.status + name: Status + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasNetworkPeering is the Schema for the AtlasNetworkPeering + 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: AtlasNetworkPeeringSpec defines the desired state of AtlasNetworkPeering + properties: + awsConfiguration: + description: AWSConfiguration is the specific AWS settings for network + peering + properties: + accepterRegionName: + description: AccepterRegionName is the provider region name of + user's vpc in AWS native region format + type: string + awsAccountId: + description: AccountID of the user's vpc. + type: string + routeTableCidrBlock: + description: User VPC CIDR. + type: string + vpcId: + description: AWS VPC ID. + type: string + required: + - accepterRegionName + - awsAccountId + - routeTableCidrBlock + - vpcId + type: object + azureConfiguration: + description: AzureConfiguration is the specific Azure settings for + network peering + properties: + azureDirectoryId: + description: AzureDirectoryID is the unique identifier for an + Azure AD directory. + type: string + azureSubscriptionId: + description: AzureSubscriptionID is the unique identifier of the + Azure subscription in which the VNet resides. + type: string + resourceGroupName: + description: ResourceGroupName is the name of your Azure resource + group. + type: string + vNetName: + description: VNetName is name of your Azure VNet. Its applicable + only for Azure. + type: string + required: + - azureDirectoryId + - azureSubscriptionId + - resourceGroupName + - vNetName + type: object + 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 + containerRef: + description: ContainerDualReference refers to an Network Container + either by Kubernetes name or Atlas ID + properties: + id: + description: |- + ID is the Atlas identifier of the Network Container Atlas resource this Peering Connection relies on + Use either name or ID, not both. + type: string + name: + description: |- + Name of the container Kubernetes resource, must be present in the same namespace + Use either name or ID, not both. + type: string + 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 + gcpConfiguration: + description: GCPConfiguration is the specific Google Cloud settings + for network peering + properties: + gcpProjectId: + description: User GCP Project ID. Its applicable only for GCP. + type: string + networkName: + description: GCP Network Peer Name. Its applicable only for GCP. + type: string + required: + - gcpProjectId + - networkName + type: object + id: + description: |- + ID is the peering identifier for an already existent network peering to be managed by the operator. + This field is immutable. + type: string + 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: Name of the cloud service provider for which you want + to create the network peering service. + enum: + - AWS + - GCP + - AZURE + type: string + required: + - containerRef + - 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 either have a container Atlas id or Kubernetes name, but + not both (or neither) + rule: (has(self.containerRef.name) && !has(self.containerRef.id)) || + (!has(self.containerRef.name) && has(self.containerRef.id)) + - message: container ref name is immutable + rule: (self.containerRef.name == oldSelf.containerRef.name) || (!has(self.containerRef.name) + && !has(oldSelf.containerRef.name)) + - message: container ref id is immutable + rule: (self.containerRef.id == oldSelf.containerRef.id) || (!has(self.containerRef.id) + && !has(oldSelf.containerRef.id)) + - message: id is immutable + rule: (self.id == oldSelf.id) || (!has(self.id) && !has(oldSelf.id)) + status: + description: |- + AtlasNetworkPeeringStatus is a status for the AtlasNetworkPeering Custom resource. + Not the one included in the AtlasProject + properties: + awsStatus: + description: AWSStatus contains AWS only related status information + properties: + connectionId: + description: ConnectionID is the AWS VPC peering connection ID + type: string + vpcId: + description: VpcID is AWS VPC id on the Atlas side + type: string + type: object + azureStatus: + description: AzureStatus contains Azure only related status information + properties: + azureSubscriptionIDpcId: + description: AzureSubscriptionID is Azure Subscription id on the + Atlas side + type: string + vNetName: + description: VnetName is Azure network on the Atlas side + type: string + type: object + 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 + gcpStatus: + description: GCPStatus contains GCP only related status information + properties: + gcpProjectID: + description: GCPProjectID is GCP project on the Atlas side + type: string + networkName: + description: NetworkName is GCP network on the Atlas side + type: string + type: object + id: + description: ID recrods the identified of the peer created by 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 + status: + description: Status describes the last status seen for the network + peering setup + type: string + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasprivateendpoints.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasprivateendpoints.yaml new file mode 100644 index 0000000000..2fa68c7c2e --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasprivateendpoints.yaml @@ -0,0 +1,331 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasprivateendpoints.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasPrivateEndpoint + listKind: AtlasPrivateEndpointList + plural: atlasprivateendpoints + shortNames: + - ape + singular: atlasprivateendpoint + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.provider + name: Provider + type: string + - jsonPath: .spec.region + name: Region + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: |- + The AtlasPrivateEndpoint custom resource definition (CRD) defines a desired [Private Endpoint](https://www.mongodb.com/docs/atlas/security-private-endpoint/#std-label-private-endpoint-overview) configuration for an Atlas project. + It allows a private connection between your cloud provider and Atlas that doesn't send information through a public network. + + You can use private endpoints to create a unidirectional connection to Atlas clusters from your virtual network. + 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: AtlasPrivateEndpointSpec is the specification of the desired + configuration of a project private endpoint + properties: + awsConfiguration: + description: AWSConfiguration is the specific AWS settings for the + private endpoint + items: + description: AWSPrivateEndpointConfiguration holds the AWS configuration + done on customer network + properties: + id: + description: ID that identifies the private endpoint's network + interface that someone added to this private endpoint service. + type: string + required: + - id + type: object + type: array + x-kubernetes-list-map-keys: + - id + x-kubernetes-list-type: map + azureConfiguration: + description: AzureConfiguration is the specific Azure settings for + the private endpoint + items: + description: AzurePrivateEndpointConfiguration holds the Azure configuration + done on customer network + properties: + id: + description: ID that identifies the private endpoint's network + interface that someone added to this private endpoint service. + type: string + ipAddress: + description: IP address of the private endpoint in your Azure + VNet that someone added to this private endpoint service. + type: string + required: + - id + - ipAddress + type: object + type: array + x-kubernetes-list-map-keys: + - id + x-kubernetes-list-type: map + 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 + gcpConfiguration: + description: GCPConfiguration is the specific Google Cloud settings + for the private endpoint + items: + description: GCPPrivateEndpointConfiguration holds the GCP configuration + done on customer network + properties: + endpoints: + description: Endpoints is the list of individual private endpoints + that comprise this endpoint group. + items: + description: GCPPrivateEndpoint holds the GCP forwarding rules + configured on customer network + properties: + ipAddress: + description: IP address to which this Google Cloud consumer + forwarding rule resolves. + type: string + name: + description: Name that identifies the Google Cloud consumer + forwarding rule that you created. + type: string + required: + - ipAddress + - name + type: object + type: array + groupName: + description: GroupName is the label that identifies a set of + endpoints. + type: string + projectId: + description: ProjectID that identifies the Google Cloud project + in which you created the endpoints. + type: string + required: + - endpoints + - groupName + - projectId + type: object + type: array + x-kubernetes-list-map-keys: + - groupName + x-kubernetes-list-type: map + 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: Name of the cloud service provider for which you want + to create the private endpoint service. + enum: + - AWS + - GCP + - AZURE + type: string + region: + description: Region of the chosen cloud provider in which you want + to create the private endpoint service. + type: string + required: + - provider + - region + 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) + status: + description: AtlasPrivateEndpointStatus is the most recent observed status + of the AtlasPrivateEndpoint cluster. Read-only. + 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 + endpoints: + description: Endpoints are the status of the endpoints connected to + the service + items: + description: EndpointInterfaceStatus is the most recent observed + status the interfaces attached to the configured service. Read-only. + properties: + ID: + description: ID is the external identifier set on the specification + to configure the interface + type: string + InterfaceStatus: + description: InterfaceStatus is the state of the private endpoint + interface + type: string + connectionName: + description: ConnectionName is the label that Atlas generates + that identifies the Azure private endpoint connection + type: string + error: + description: Error is the description of the failure occurred + when configuring the private endpoint + type: string + gcpForwardingRules: + description: GCPForwardingRules is the status of the customer + GCP private endpoint(forwarding rules) + items: + description: GCPForwardingRule is the most recent observed + status the GCP forwarding rules configured for an interface. + Read-only. + properties: + name: + type: string + status: + type: string + type: object + type: array + type: object + type: array + error: + description: Error is the description of the failure occurred when + configuring the private endpoint + 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 + resourceId: + description: ResourceID is the root-relative path that identifies + of the Atlas Azure Private Link Service + type: string + serviceAttachmentNames: + description: ServiceAttachmentNames is the list of URLs that identifies + endpoints that Atlas can use to access one service across the private + connection + items: + type: string + type: array + serviceId: + description: ServiceID is the unique identifier of the private endpoint + service in Atlas + type: string + serviceName: + description: ServiceName is the unique identifier of the Amazon Web + Services (AWS) PrivateLink endpoint service or Azure Private Link + Service managed by Atlas + type: string + serviceStatus: + description: ServiceStatus is the state of the private endpoint service + type: string + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasprojects.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasprojects.yaml new file mode 100644 index 0000000000..142cd75dca --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasprojects.yaml @@ -0,0 +1,1558 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasprojects.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasProject + listKind: AtlasProjectList + plural: atlasprojects + shortNames: + - ap + singular: atlasproject + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .spec.name + name: Atlas Name + type: string + - jsonPath: .status.id + name: Atlas ID + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasProject is the Schema for the atlasprojects 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: AtlasProjectSpec defines the desired state of Project in + Atlas + properties: + alertConfigurationSyncEnabled: + description: |- + AlertConfigurationSyncEnabled is a flag that enables/disables Alert Configurations sync for the current Project. + If true - project alert configurations will be synced according to AlertConfigurations. + If not - alert configurations will not be modified by the operator. They can be managed through API, cli, UI. + type: boolean + alertConfigurations: + description: AlertConfiguration is a list of Alert Configurations + configured for the current Project. + items: + properties: + enabled: + description: If omitted, the configuration is disabled. + type: boolean + eventTypeName: + description: The type of event that will trigger an alert. + type: string + matchers: + description: You can filter using the matchers array only when + the EventTypeName specifies an event for a host, replica set, + or sharded cluster. + items: + properties: + fieldName: + description: Name of the field in the target object to + match on. + type: string + operator: + description: The operator to test the field’s value. + type: string + value: + description: Value to test with the specified operator. + type: string + type: object + type: array + metricThreshold: + description: MetricThreshold causes an alert to be triggered. + properties: + metricName: + description: Name of the metric to check. + type: string + mode: + description: This must be set to AVERAGE. Atlas computes + the current metric value as an average. + type: string + operator: + description: Operator to apply when checking the current + metric value against the threshold value. + type: string + threshold: + description: Threshold value outside which an alert will + be triggered. + type: string + units: + description: The units for the threshold value. + type: string + required: + - threshold + type: object + notifications: + description: Notifications are sending when an alert condition + is detected. + items: + properties: + apiTokenRef: + description: Secret containing a Slack API token or Bot + token. Populated for the SLACK notifications type. If + the token later becomes invalid, Atlas sends an email + to the project owner and eventually removes the token. + 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 + channelName: + description: Slack channel name. Populated for the SLACK + notifications type. + type: string + datadogAPIKeyRef: + description: Secret containing a Datadog API Key. Found + in the Datadog dashboard. Populated for the DATADOG + notifications type. + 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 + datadogRegion: + description: Region that indicates which API URL to use + type: string + delayMin: + description: Number of minutes to wait after an alert + condition is detected before sending out the first notification. + type: integer + emailAddress: + description: Email address to which alert notifications + are sent. Populated for the EMAIL notifications type. + type: string + emailEnabled: + description: Flag indicating if email notifications should + be sent. Populated for ORG, GROUP, and USER notifications + types. + type: boolean + flowName: + description: Flowdock flow name in lower-case letters. + type: string + flowdockApiTokenRef: + description: The Flowdock personal API token. Populated + for the FLOWDOCK notifications type. If the token later + becomes invalid, Atlas sends an email to the project + owner and eventually removes the token. + 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 + intervalMin: + description: Number of minutes to wait between successive + notifications for unacknowledged alerts that are not + resolved. + type: integer + mobileNumber: + description: Mobile number to which alert notifications + are sent. Populated for the SMS notifications type. + type: string + opsGenieApiKeyRef: + description: OpsGenie API Key. Populated for the OPS_GENIE + notifications type. If the key later becomes invalid, + Atlas sends an email to the project owner and eventually + removes the token. + 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 + opsGenieRegion: + description: Region that indicates which API URL to use. + type: string + orgName: + description: Flowdock organization name in lower-case + letters. This is the name that appears after www.flowdock.com/app/ + in the URL string. Populated for the FLOWDOCK notifications + type. + type: string + roles: + description: The following roles grant privileges within + a project. + items: + type: string + type: array + serviceKeyRef: + description: PagerDuty service key. Populated for the + PAGER_DUTY notifications type. If the key later becomes + invalid, Atlas sends an email to the project owner and + eventually removes the key. + 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 + smsEnabled: + description: Flag indicating if text message notifications + should be sent. Populated for ORG, GROUP, and USER notifications + types. + type: boolean + teamId: + description: Unique identifier of a team. + type: string + teamName: + description: Label for the team that receives this notification. + type: string + typeName: + description: Type of alert notification. + type: string + username: + description: Name of the Atlas user to which to send notifications. + Only a user in the project that owns the alert configuration + is allowed here. Populated for the USER notifications + type. + type: string + victorOpsSecretRef: + description: Secret containing a VictorOps API key and + Routing key. Populated for the VICTOR_OPS notifications + type. If the key later becomes invalid, Atlas sends + an email to the project owner and eventually removes + the key. + 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 + type: object + type: array + threshold: + description: Threshold causes an alert to be triggered. + properties: + operator: + description: 'Operator to apply when checking the current + metric value against the threshold value. it accepts the + following values: GREATER_THAN, LESS_THAN' + type: string + threshold: + description: Threshold value outside which an alert will + be triggered. + type: string + units: + description: The units for the threshold value + type: string + type: object + type: object + type: array + auditing: + description: Auditing represents MongoDB Maintenance Windows + properties: + auditAuthorizationSuccess: + description: 'Indicates whether the auditing system captures successful + authentication attempts for audit filters using the "atype" + : "authCheck" auditing event. For more information, see auditAuthorizationSuccess' + type: boolean + auditFilter: + description: JSON-formatted audit filter used by the project + type: string + enabled: + description: Denotes whether or not the project associated with + the {GROUP-ID} has database auditing enabled. + type: boolean + type: object + backupCompliancePolicyRef: + description: BackupCompliancePolicyRef is a reference to the backup + compliance CR. + 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 + cloudProviderAccessRoles: + description: |- + CloudProviderAccessRoles is a list of Cloud Provider Access Roles configured for the current Project. + Deprecated: This configuration was deprecated in favor of CloudProviderIntegrations + items: + description: |- + CloudProviderAccessRole define an integration to a cloud provider + Deprecated: This type is deprecated in favor of CloudProviderIntegration + properties: + iamAssumedRoleArn: + description: IamAssumedRoleArn is the ARN of the IAM role that + is assumed by the Atlas cluster. + type: string + providerName: + description: ProviderName is the name of the cloud provider. + Currently only AWS is supported. + type: string + required: + - providerName + type: object + type: array + cloudProviderIntegrations: + description: CloudProviderIntegrations is a list of Cloud Provider + Integration configured for the current Project. + items: + description: CloudProviderIntegration define an integration to a + cloud provider + properties: + iamAssumedRoleArn: + description: IamAssumedRoleArn is the ARN of the IAM role that + is assumed by the Atlas cluster. + type: string + providerName: + description: ProviderName is the name of the cloud provider. + Currently only AWS is supported. + type: string + required: + - providerName + type: object + type: array + connectionSecretRef: + description: |- + ConnectionSecret is the name of the Kubernetes Secret which contains the information about the way to connect to + Atlas (organization ID, API keys). The default Operator connection configuration will be used if not provided. + 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 + customRoles: + description: The customRoles lets you create, and change custom roles + in your cluster. Use custom roles to specify custom sets of actions + that the Atlas built-in roles can't describe. + items: + properties: + actions: + description: List of the individual privilege actions that the + role grants. + items: + properties: + name: + description: Human-readable label that identifies the + privilege action. + type: string + resources: + description: List of resources on which you grant the + action. + items: + properties: + cluster: + description: Flag that indicates whether to grant + the action on the cluster resource. If true, MongoDB + Cloud ignores Database and Collection parameters. + type: boolean + collection: + description: Human-readable label that identifies + the collection on which you grant the action to + one MongoDB user. + type: string + database: + description: Human-readable label that identifies + the database on which you grant the action to + one MongoDB user. + type: string + type: object + type: array + required: + - name + - resources + type: object + type: array + inheritedRoles: + description: List of the built-in roles that this custom role + inherits. + items: + properties: + database: + description: Human-readable label that identifies the + database on which someone grants the action to one MongoDB + user. + type: string + name: + description: Human-readable label that identifies the + role inherited. + type: string + required: + - database + - name + type: object + type: array + name: + description: Human-readable label that identifies the role. + This name must be unique for this custom role in this project. + type: string + required: + - name + type: object + type: array + encryptionAtRest: + description: EncryptionAtRest allows to set encryption for AWS, Azure + and GCP providers + properties: + awsKms: + description: AwsKms specifies AWS KMS configuration details and + whether Encryption at Rest is enabled for an Atlas project. + properties: + enabled: + type: boolean + region: + type: string + secretRef: + description: A reference to as Secret containing the AccessKeyID, + SecretAccessKey, CustomerMasterKeyID and RoleID fields + 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 + valid: + type: boolean + type: object + azureKeyVault: + description: AzureKeyVault specifies Azure Key Vault configuration + details and whether Encryption at Rest is enabled for an Atlas + project. + properties: + azureEnvironment: + type: string + clientID: + type: string + enabled: + type: boolean + resourceGroupName: + type: string + secretRef: + description: A reference to as Secret containing the SubscriptionID, + KeyVaultName, KeyIdentifier, Secret fields + 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 + tenantID: + type: string + type: object + googleCloudKms: + description: GoogleCloudKms specifies GCP KMS configuration details + and whether Encryption at Rest is enabled for an Atlas project. + properties: + enabled: + type: boolean + secretRef: + description: A reference to as Secret containing the ServiceAccountKey, + KeyVersionResourceID fields + 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 + type: object + type: object + integrations: + description: Integrations is a list of MongoDB Atlas integrations + for the project + items: + properties: + accountId: + type: string + apiKeyRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + apiTokenRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + channelName: + type: string + enabled: + type: boolean + flowName: + type: string + licenseKeyRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + microsoftTeamsWebhookUrl: + type: string + name: + type: string + orgName: + type: string + passwordRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + readTokenRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + region: + type: string + routingKeyRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + scheme: + type: string + secretRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + serviceDiscovery: + type: string + serviceKeyRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + teamName: + type: string + type: + description: Third Party Integration type such as Slack, New + Relic, etc + enum: + - PAGER_DUTY + - SLACK + - DATADOG + - NEW_RELIC + - OPS_GENIE + - VICTOR_OPS + - FLOWDOCK + - WEBHOOK + - MICROSOFT_TEAMS + - PROMETHEUS + type: string + url: + type: string + username: + type: string + writeTokenRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + type: object + type: array + maintenanceWindow: + description: |- + MaintenanceWindow allows to specify a preferred time in the week to run maintenance operations. See more + information at https://www.mongodb.com/docs/atlas/reference/api/maintenance-windows/ + properties: + autoDefer: + description: Flag indicating whether any scheduled project maintenance + should be deferred automatically for one week. + type: boolean + dayOfWeek: + description: |- + Day of the week when you would like the maintenance window to start as a 1-based integer. + Sunday 1, Monday 2, Tuesday 3, Wednesday 4, Thursday 5, Friday 6, Saturday 7 + maximum: 7 + minimum: 1 + type: integer + defer: + description: |- + Flag indicating whether the next scheduled project maintenance should be deferred for one week. + Cannot be specified if startASAP is true + type: boolean + hourOfDay: + description: |- + Hour of the day when you would like the maintenance window to start. + This parameter uses the 24-hour clock, where midnight is 0, noon is 12. + maximum: 23 + minimum: 0 + type: integer + startASAP: + description: |- + Flag indicating whether project maintenance has been directed to start immediately. + Cannot be specified if defer is true + type: boolean + type: object + name: + description: Name is the name of the Project that is created in Atlas + by the Operator if it doesn't exist yet. + type: string + networkPeers: + description: NetworkPeers is a list of Network Peers configured for + the current Project. + items: + properties: + accepterRegionName: + description: AccepterRegionName is the provider region name + of user's vpc. + type: string + atlasCidrBlock: + description: Atlas CIDR. It needs to be set if ContainerID is + not set. + type: string + awsAccountId: + description: AccountID of the user's vpc. + type: string + azureDirectoryId: + description: AzureDirectoryID is the unique identifier for an + Azure AD directory. + type: string + azureSubscriptionId: + description: AzureSubscriptionID is the unique identifier of + the Azure subscription in which the VNet resides. + type: string + containerId: + description: ID of the network peer container. If not set, operator + will create a new container with ContainerRegion and AtlasCIDRBlock + input. + type: string + containerRegion: + description: ContainerRegion is the provider region name of + Atlas network peer container. If not set, AccepterRegionName + is used. + type: string + gcpProjectId: + description: User GCP Project ID. Its applicable only for GCP. + type: string + networkName: + description: GCP Network Peer Name. Its applicable only for + GCP. + type: string + providerName: + description: ProviderName is the name of the provider. If not + set, it will be set to "AWS". + type: string + resourceGroupName: + description: ResourceGroupName is the name of your Azure resource + group. + type: string + routeTableCidrBlock: + description: User VPC CIDR. + type: string + vnetName: + description: VNetName is name of your Azure VNet. Its applicable + only for Azure. + type: string + vpcId: + description: AWS VPC ID. + type: string + type: object + type: array + privateEndpoints: + description: PrivateEndpoints is a list of Private Endpoints configured + for the current Project. + items: + properties: + endpointGroupName: + description: Unique identifier of the endpoint group. The endpoint + group encompasses all of the endpoints that you created in + Google Cloud. + type: string + endpoints: + description: Collection of individual private endpoints that + comprise your endpoint group. + items: + properties: + endpointName: + description: Forwarding rule that corresponds to the endpoint + you created in Google Cloud. + type: string + ipAddress: + description: Private IP address of the endpoint you created + in Google Cloud. + type: string + type: object + type: array + gcpProjectId: + description: Unique identifier of the Google Cloud project in + which you created your endpoints. + type: string + id: + description: Unique identifier of the private endpoint you created + in your AWS VPC or Azure Vnet. + type: string + ip: + description: Private IP address of the private endpoint network + interface you created in your Azure VNet. + type: string + provider: + description: Cloud provider for which you want to retrieve a + private endpoint service. Atlas accepts AWS or AZURE. + enum: + - AWS + - GCP + - AZURE + - TENANT + type: string + region: + description: Cloud provider region for which you want to create + the private endpoint service. + type: string + required: + - provider + - region + type: object + type: array + projectIpAccessList: + description: |- + ProjectIPAccessList allows to enable the IP Access List for the Project. See more information at + https://docs.atlas.mongodb.com/reference/api/ip-access-list/add-entries-to-access-list/ + items: + properties: + awsSecurityGroup: + description: Unique identifier of AWS security group in this + access list entry. + type: string + cidrBlock: + description: Range of IP addresses in CIDR notation in this + access list entry. + type: string + comment: + description: Comment associated with this access list entry. + type: string + deleteAfterDate: + description: Timestamp in ISO 8601 date and time format in UTC + after which Atlas deletes the temporary access list entry. + type: string + ipAddress: + description: Entry using an IP address in this access list entry. + type: string + type: object + type: array + regionUsageRestrictions: + default: NONE + description: |- + RegionUsageRestrictions designate the project's AWS region when using Atlas for Government. + This parameter should not be used with commercial Atlas. + In Atlas for Government, not setting this field (defaulting to NONE) means the project is restricted to COMMERCIAL_FEDRAMP_REGIONS_ONLY + enum: + - NONE + - GOV_REGIONS_ONLY + - COMMERCIAL_FEDRAMP_REGIONS_ONLY + type: string + settings: + description: Settings allow to set Project Settings for the project + properties: + isCollectDatabaseSpecificsStatisticsEnabled: + type: boolean + isDataExplorerEnabled: + type: boolean + isExtendedStorageSizesEnabled: + type: boolean + isPerformanceAdvisorEnabled: + type: boolean + isRealtimePerformancePanelEnabled: + type: boolean + isSchemaAdvisorEnabled: + type: boolean + type: object + teams: + description: Teams enable you to grant project access roles to multiple + users. + items: + properties: + roles: + description: Roles the users of the team has over the project + items: + enum: + - GROUP_OWNER + - GROUP_CLUSTER_MANAGER + - GROUP_DATA_ACCESS_ADMIN + - GROUP_DATA_ACCESS_READ_WRITE + - GROUP_DATA_ACCESS_READ_ONLY + - GROUP_READ_ONLY + type: string + minItems: 1 + type: array + teamRef: + description: Reference to the team which will assigned to the + project + 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 + required: + - roles + - teamRef + type: object + type: array + withDefaultAlertsSettings: + default: true + description: Flag that indicates whether to create the new project + with the default alert settings enabled. This parameter defaults + to true + type: boolean + x509CertRef: + description: X509CertRef is the name of the Kubernetes Secret which + contains PEM-encoded CA certificate + 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 + required: + - name + type: object + status: + description: AtlasProjectStatus defines the observed state of AtlasProject + properties: + alertConfigurations: + description: AlertConfigurations contains a list of alert configuration + statuses + items: + properties: + acknowledgedUntil: + description: The date through which the alert has been acknowledged. + Will not be present if the alert has never been acknowledged. + type: string + acknowledgementComment: + description: The comment left by the user who acknowledged the + alert. Will not be present if the alert has never been acknowledged. + type: string + acknowledgingUsername: + description: The username of the user who acknowledged the alert. + Will not be present if the alert has never been acknowledged. + type: string + alertConfigId: + description: ID of the alert configuration that triggered this + alert. + type: string + clusterId: + description: The ID of the cluster to which this alert applies. + Only present for alerts of type BACKUP, REPLICA_SET, and CLUSTER. + type: string + clusterName: + description: The name the cluster to which this alert applies. + Only present for alerts of type BACKUP, REPLICA_SET, and CLUSTER. + type: string + created: + description: Timestamp in ISO 8601 date and time format in UTC + when this alert configuration was created. + type: string + currentValue: + description: CurrentValue represents current value of the metric + that triggered the alert. Only present for alerts of type + HOST_METRIC. + properties: + number: + description: The value of the metric. + type: string + units: + description: The units for the value. Depends on the type + of metric. + type: string + type: object + enabled: + description: If omitted, the configuration is disabled. + type: boolean + errorMessage: + description: ErrorMessage is massage if the alert configuration + is in an incorrect state. + type: string + eventTypeName: + description: The type of event that will trigger an alert. + type: string + groupId: + description: Unique identifier of the project that owns this + alert configuration. + type: string + hostId: + description: ID of the host to which the metric pertains. Only + present for alerts of type HOST, HOST_METRIC, and REPLICA_SET. + type: string + hostnameAndPort: + description: The hostname and port of each host to which the + alert applies. Only present for alerts of type HOST, HOST_METRIC, + and REPLICA_SET. + type: string + id: + description: Unique identifier. + type: string + lastNotified: + description: When the last notification was sent for this alert. + Only present if notifications have been sent. + type: string + matchers: + description: You can filter using the matchers array only when + the EventTypeName specifies an event for a host, replica set, + or sharded cluster. + items: + properties: + fieldName: + description: Name of the field in the target object to + match on. + type: string + operator: + description: The operator to test the field’s value. + type: string + value: + description: Value to test with the specified operator. + type: string + type: object + type: array + metricName: + description: The name of the measurement whose value went outside + the threshold. Only present if eventTypeName is set to OUTSIDE_METRIC_THRESHOLD. + type: string + metricThreshold: + description: MetricThreshold causes an alert to be triggered. + properties: + metricName: + description: Name of the metric to check. + type: string + mode: + description: This must be set to AVERAGE. Atlas computes + the current metric value as an average. + type: string + operator: + description: Operator to apply when checking the current + metric value against the threshold value. + type: string + threshold: + description: Threshold value outside which an alert will + be triggered. + type: string + units: + description: The units for the threshold value. + type: string + required: + - threshold + type: object + notifications: + description: Notifications are sending when an alert condition + is detected. + items: + properties: + apiToken: + description: Slack API token or Bot token. Populated for + the SLACK notifications type. If the token later becomes + invalid, Atlas sends an email to the project owner and + eventually removes the token. + type: string + channelName: + description: Slack channel name. Populated for the SLACK + notifications type. + type: string + datadogApiKey: + description: Datadog API Key. Found in the Datadog dashboard. + Populated for the DATADOG notifications type. + type: string + datadogRegion: + description: Region that indicates which API URL to use + type: string + delayMin: + description: Number of minutes to wait after an alert + condition is detected before sending out the first notification. + type: integer + emailAddress: + description: Email address to which alert notifications + are sent. Populated for the EMAIL notifications type. + type: string + emailEnabled: + description: Flag indicating if email notifications should + be sent. Populated for ORG, GROUP, and USER notifications + types. + type: boolean + flowName: + description: Flowdock flow namse in lower-case letters. + type: string + flowdockApiToken: + description: The Flowdock personal API token. Populated + for the FLOWDOCK notifications type. If the token later + becomes invalid, Atlas sends an email to the project + owner and eventually removes the token. + type: string + intervalMin: + description: Number of minutes to wait between successive + notifications for unacknowledged alerts that are not + resolved. + type: integer + mobileNumber: + description: Mobile number to which alert notifications + are sent. Populated for the SMS notifications type. + type: string + opsGenieApiKey: + description: Opsgenie API Key. Populated for the OPS_GENIE + notifications type. If the key later becomes invalid, + Atlas sends an email to the project owner and eventually + removes the token. + type: string + opsGenieRegion: + description: Region that indicates which API URL to use. + type: string + orgName: + description: Flowdock organization name in lower-case + letters. This is the name that appears after www.flowdock.com/app/ + in the URL string. Populated for the FLOWDOCK notifications + type. + type: string + roles: + description: The following roles grant privileges within + a project. + items: + type: string + type: array + serviceKey: + description: PagerDuty service key. Populated for the + PAGER_DUTY notifications type. If the key later becomes + invalid, Atlas sends an email to the project owner and + eventually removes the key. + type: string + smsEnabled: + description: Flag indicating if text message notifications + should be sent. Populated for ORG, GROUP, and USER notifications + types. + type: boolean + teamId: + description: Unique identifier of a team. + type: string + teamName: + description: Label for the team that receives this notification. + type: string + typeName: + description: Type of alert notification. + type: string + username: + description: Name of the Atlas user to which to send notifications. + Only a user in the project that owns the alert configuration + is allowed here. Populated for the USER notifications + type. + type: string + victorOpsApiKey: + description: VictorOps API key. Populated for the VICTOR_OPS + notifications type. If the key later becomes invalid, + Atlas sends an email to the project owner and eventually + removes the key. + type: string + victorOpsRoutingKey: + description: VictorOps routing key. Populated for the + VICTOR_OPS notifications type. If the key later becomes + invalid, Atlas sends an email to the project owner and + eventually removes the key. + type: string + type: object + type: array + replicaSetName: + description: Name of the replica set. Only present for alerts + of type HOST, HOST_METRIC, BACKUP, and REPLICA_SET. + type: string + resolved: + description: When the alert was closed. Only present if the + status is CLOSED. + type: string + sourceTypeName: + description: For alerts of the type BACKUP, the type of server + being backed up. + type: string + status: + description: 'The current state of the alert. Possible values + are: TRACKING, OPEN, CLOSED, CANCELED' + type: string + threshold: + description: Threshold causes an alert to be triggered. + properties: + operator: + description: 'Operator to apply when checking the current + metric value against the threshold value. it accepts the + following values: GREATER_THAN, LESS_THAN' + type: string + threshold: + description: Threshold value outside which an alert will + be triggered. + type: string + units: + description: The units for the threshold value + type: string + type: object + updated: + description: Timestamp in ISO 8601 date and time format in UTC + when this alert configuration was last updated. + type: string + type: object + type: array + authModes: + description: |- + AuthModes contains a list of configured authentication modes + "SCRAM" is default authentication method and requires a password for each user + "X509" signifies that self-managed X.509 authentication is configured + items: + type: string + type: array + cloudProviderIntegrations: + description: CloudProviderIntegrations contains a list of configured + cloud provider access roles. AWS support only + items: + properties: + atlasAWSAccountArn: + type: string + atlasAssumedRoleExternalId: + type: string + authorizedDate: + type: string + createdDate: + type: string + errorMessage: + type: string + featureUsages: + items: + properties: + featureId: + type: string + featureType: + type: string + type: object + type: array + iamAssumedRoleArn: + type: string + providerName: + type: string + roleId: + type: string + status: + type: string + required: + - atlasAssumedRoleExternalId + - providerName + type: object + type: array + 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 + customRoles: + description: CustomRoles contains a list of custom roles statuses + items: + properties: + error: + description: The message when the custom role is in the FAILED + status + type: string + name: + description: Role name which is unique + type: string + status: + description: The status of the given custom role (OK or FAILED) + type: string + required: + - name + - status + type: object + type: array + expiredIpAccessList: + description: |- + The list of IP Access List entries that are expired due to 'deleteAfterDate' being less than the current date. + Note, that this field is updated by the Atlas Operator only after specification changes + items: + properties: + awsSecurityGroup: + description: Unique identifier of AWS security group in this + access list entry. + type: string + cidrBlock: + description: Range of IP addresses in CIDR notation in this + access list entry. + type: string + comment: + description: Comment associated with this access list entry. + type: string + deleteAfterDate: + description: Timestamp in ISO 8601 date and time format in UTC + after which Atlas deletes the temporary access list entry. + type: string + ipAddress: + description: Entry using an IP address in this access list entry. + type: string + type: object + type: array + id: + description: The ID of the Atlas Project + type: string + networkPeers: + description: The list of network peers that are configured for current + project + items: + properties: + atlasGcpProjectId: + description: ProjectID of Atlas container. Applicable only for + GCP. It's needed to add network peer connection. + type: string + atlasNetworkName: + description: Atlas Network Name. Applicable only for GCP. It's + needed to add network peer connection. + type: string + connectionId: + description: Unique identifier of the network peer connection. + Applicable only for AWS. + type: string + containerId: + description: ContainerID of Atlas network peer container. + type: string + errorMessage: + description: Error state of the network peer. Applicable only + for GCP. + type: string + errorState: + description: Error state of the network peer. Applicable only + for Azure. + type: string + errorStateName: + description: Error state of the network peer. Applicable only + for AWS. + type: string + gcpProjectId: + description: ProjectID of the user's vpc. Applicable only for + GCP. + type: string + id: + description: Unique identifier for NetworkPeer. + type: string + providerName: + description: Cloud provider for which you want to retrieve a + network peer. + type: string + region: + description: Region for which you want to create the network + peer. It isn't needed for GCP + type: string + status: + description: Status of the network peer. Applicable only for + GCP and Azure. + type: string + statusName: + description: Status of the network peer. Applicable only for + AWS. + type: string + vpc: + description: |- + VPC is general purpose field for storing the name of the VPC. + VPC is vpcID for AWS, user networkName for GCP, and vnetName for Azure. + type: string + required: + - id + - providerName + - region + type: object + type: array + 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 + privateEndpoints: + description: The list of private endpoints configured for current + project + items: + properties: + endpoints: + description: Collection of individual GCP private endpoints + that comprise your network endpoint group. + items: + properties: + endpointName: + type: string + ipAddress: + type: string + status: + type: string + required: + - endpointName + - ipAddress + - status + type: object + type: array + id: + description: Unique identifier for AWS or AZURE Private Link + Connection. + type: string + interfaceEndpointId: + description: Unique identifier of the AWS or Azure Private Link + Interface Endpoint. + type: string + provider: + description: Cloud provider for which you want to retrieve a + private endpoint service. Atlas accepts AWS or AZURE. + type: string + region: + description: Cloud provider region for which you want to create + the private endpoint service. + type: string + serviceAttachmentNames: + description: Unique alphanumeric and special character strings + that identify the service attachments associated with the + GCP Private Service Connect endpoint service. + items: + type: string + type: array + serviceName: + description: Name of the AWS or Azure Private Link Service that + Atlas manages. + type: string + serviceResourceId: + description: Unique identifier of the Azure Private Link Service + (for AWS the same as ID). + type: string + required: + - provider + - region + type: object + type: array + prometheus: + description: |- + Prometheus contains the status for Prometheus integration + including the prometheusDiscoveryURL + properties: + prometheusDiscoveryURL: + type: string + scheme: + type: string + type: object + teams: + description: Teams contains a list of teams assignment statuses + items: + properties: + id: + type: string + teamRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + required: + - teamRef + type: object + type: array + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlassearchindexconfigs.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlassearchindexconfigs.yaml new file mode 100644 index 0000000000..3bb0d014c4 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlassearchindexconfigs.yaml @@ -0,0 +1,287 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlassearchindexconfigs.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasSearchIndexConfig + listKind: AtlasSearchIndexConfigList + plural: atlassearchindexconfigs + shortNames: + - asic + singular: atlassearchindexconfig + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasSearchIndexConfig is the Schema for the AtlasSearchIndexConfig + 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: + properties: + analyzer: + description: |- + Specific pre-defined method chosen to convert database field text into searchable words. This conversion reduces the text of fields into the smallest units of text. These units are called a term or token. This process, known as tokenization, involves a variety of changes made to the text in fields: + - extracting words + - removing punctuation + - removing accents + - hanging to lowercase + - removing common words + - reducing words to their root form (stemming) + - changing words to their base form (lemmatization) MongoDB Cloud uses the selected process to build the Atlas Search index + enum: + - lucene.standard + - lucene.simple + - lucene.whitespace + - lucene.keyword + - lucene.arabic + - lucene.armenian + - lucene.basque + - lucene.bengali + - lucene.brazilian + - lucene.bulgarian + - lucene.catalan + - lucene.chinese + - lucene.cjk + - lucene.czech + - lucene.danish + - lucene.dutch + - lucene.english + - lucene.finnish + - lucene.french + - lucene.galician + - lucene.german + - lucene.greek + - lucene.hindi + - lucene.hungarian + - lucene.indonesian + - lucene.irish + - lucene.italian + - lucene.japanese + - lucene.korean + - lucene.kuromoji + - lucene.latvian + - lucene.lithuanian + - lucene.morfologik + - lucene.nori + - lucene.norwegian + - lucene.persian + - lucene.portuguese + - lucene.romanian + - lucene.russian + - lucene.smartcn + - lucene.sorani + - lucene.spanish + - lucene.swedish + - lucene.thai + - lucene.turkish + - lucene.ukrainian + type: string + analyzers: + description: List of user-defined methods to convert database field + text into searchable words + items: + properties: + charFilters: + description: Filters that examine text one character at a time + and perform filtering operations + x-kubernetes-preserve-unknown-fields: true + name: + description: |- + Human-readable name that identifies the custom analyzer. Names must be unique within an index, and must not start with any of the following strings: + "lucene.", "builtin.", "mongodb." + type: string + tokenFilters: + description: |- + Filter that performs operations such as: + - Stemming, which reduces related words, such as "talking", "talked", and "talks" to their root word "talk". + - Redaction, the removal of sensitive information from public documents + x-kubernetes-preserve-unknown-fields: true + tokenizer: + description: Tokenizer that you want to use to create tokens. + Tokens determine how Atlas Search splits up text into discrete + chunks for indexing + properties: + group: + description: Index of the character group within the matching + expression to extract into tokens. Use `0` to extract + all character groups. + type: integer + maxGram: + description: Characters to include in the longest token + that Atlas Search creates. + type: integer + maxTokenLength: + description: Maximum number of characters in a single token. + Tokens greater than this length are split at this length + into multiple tokens. + type: integer + minGram: + description: Characters to include in the shortest token + that Atlas Search creates. + type: integer + pattern: + description: Regular expression to match against. + type: string + type: + description: Human-readable label that identifies this tokenizer + type. + enum: + - whitespace + - uaxUrlEmail + - standard + - regexSplit + - regexCaptureGroup + - nGram + - keyword + - edgeGram + type: string + required: + - type + type: object + required: + - name + - tokenizer + type: object + type: array + searchAnalyzer: + description: Method applied to identify words when searching this + index + enum: + - lucene.standard + - lucene.simple + - lucene.whitespace + - lucene.keyword + - lucene.arabic + - lucene.armenian + - lucene.basque + - lucene.bengali + - lucene.brazilian + - lucene.bulgarian + - lucene.catalan + - lucene.chinese + - lucene.cjk + - lucene.czech + - lucene.danish + - lucene.dutch + - lucene.english + - lucene.finnish + - lucene.french + - lucene.galician + - lucene.german + - lucene.greek + - lucene.hindi + - lucene.hungarian + - lucene.indonesian + - lucene.irish + - lucene.italian + - lucene.japanese + - lucene.korean + - lucene.kuromoji + - lucene.latvian + - lucene.lithuanian + - lucene.morfologik + - lucene.nori + - lucene.norwegian + - lucene.persian + - lucene.portuguese + - lucene.romanian + - lucene.russian + - lucene.smartcn + - lucene.sorani + - lucene.spanish + - lucene.swedish + - lucene.thai + - lucene.turkish + - lucene.ukrainian + type: string + storedSource: + description: |- + Flag that indicates whether to store all fields (true) on Atlas Search. By default, Atlas doesn't store (false) the fields on Atlas Search. Alternatively, you can specify an object that only contains the list of fields to store (include) or not store (exclude) on Atlas Search. To learn more, see documentation: + https://www.mongodb.com/docs/atlas/atlas-search/stored-source-definition/ + x-kubernetes-preserve-unknown-fields: true + type: object + status: + 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 + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasstreamconnections.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasstreamconnections.yaml new file mode 100644 index 0000000000..44d372949b --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasstreamconnections.yaml @@ -0,0 +1,242 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasstreamconnections.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasStreamConnection + listKind: AtlasStreamConnectionList + plural: atlasstreamconnections + shortNames: + - asc + singular: atlasstreamconnection + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasStreamConnection is the Schema for the atlasstreamconnections + 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: + properties: + clusterConfig: + description: The configuration to be used to connect to a Atlas Cluster + properties: + name: + description: Name of the cluster configured for this connection + type: string + role: + description: The name of a Built in or Custom DB Role to connect + to an Atlas Cluster + properties: + name: + description: The name of the role to use. Can be a built in + role or a custom role + type: string + type: + description: Type of the DB role. Can be either BuiltIn or + Custom + enum: + - BUILT_IN + - CUSTOM + type: string + required: + - name + - type + type: object + required: + - name + - role + type: object + kafkaConfig: + description: The configuration to be used to connect to a Kafka Cluster + properties: + authentication: + description: User credentials required to connect to a Kafka Cluster. + Includes the authentication type, as well as the parameters + for that authentication mode + properties: + credentials: + description: Reference to the secret containing th Username + and Password of the account to connect to the Kafka cluster. + 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 + mechanism: + description: Style of authentication. Can be one of PLAIN, + SCRAM-256, or SCRAM-512 + enum: + - PLAIN + - SCRAM-256 + - SCRAM-512 + type: string + required: + - credentials + - mechanism + type: object + bootstrapServers: + description: Comma separated list of server addresses + type: string + config: + additionalProperties: + type: string + description: A map of Kafka key-value pairs for optional configuration. + This is a flat object, and keys can have '.' characters + type: object + security: + description: Properties for the secure transport connection to + Kafka. For SSL, this can include the trusted certificate to + use + properties: + certificate: + description: A trusted, public x509 certificate for connecting + to Kafka over SSL + 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 + protocol: + description: Describes the transport type. Can be either PLAINTEXT + or SSL + enum: + - PLAINTEXT + - SSL + type: string + required: + - protocol + type: object + required: + - authentication + - bootstrapServers + - security + type: object + name: + description: Human-readable label that uniquely identifies the stream + connection + type: string + type: + description: Type of the connection. Can be either Cluster or Kafka + enum: + - Kafka + - Cluster + - Sample + type: string + required: + - name + - type + type: object + status: + 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 + instances: + description: List of instances using the connection configuration + items: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + type: array + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasstreaminstances.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasstreaminstances.yaml new file mode 100644 index 0000000000..12d69f2f48 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasstreaminstances.yaml @@ -0,0 +1,213 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasstreaminstances.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasStreamInstance + listKind: AtlasStreamInstanceList + plural: atlasstreaminstances + shortNames: + - asi + singular: atlasstreaminstance + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.name + name: Name + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.id + name: Atlas ID + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasStreamInstance is the Schema for the atlasstreaminstances + 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: + properties: + clusterConfig: + description: The configuration to be used to connect to a Atlas Cluster + properties: + provider: + default: AWS + description: Name of the cluster configured for this connection + enum: + - AWS + - GCP + - AZURE + - TENANT + - SERVERLESS + type: string + region: + description: Name of the cloud provider region hosting Atlas Stream + Processing. + type: string + tier: + default: SP10 + description: Selected tier for the Stream Instance. Configures + Memory / VCPU allowances. + enum: + - SP10 + - SP30 + - SP50 + type: string + required: + - provider + - region + - tier + type: object + connectionRegistry: + description: List of connections of the stream instance for the specified + project + items: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + type: array + name: + description: Human-readable label that identifies the stream connection + type: string + projectRef: + description: Project which the instance belongs to + 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 + required: + - clusterConfig + - name + - projectRef + type: object + status: + 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 + connections: + description: List of connections configured in the stream instance. + items: + properties: + name: + description: Human-readable label that uniquely identifies the + stream connection + type: string + resourceRef: + description: Reference for the resource that contains connection + configuration + 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 + type: object + type: array + hostnames: + description: List that contains the hostnames assigned to the stream + instance. + items: + type: string + type: array + id: + description: Unique 24-hexadecimal character string that identifies + the instance + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasteams.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasteams.yaml new file mode 100644 index 0000000000..aafa9bdf98 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasteams.yaml @@ -0,0 +1,144 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasteams.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasTeam + listKind: AtlasTeamList + plural: atlasteams + shortNames: + - at + singular: atlasteam + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.name + name: Name + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.id + name: Atlas ID + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasTeam is the Schema for the Atlas Teams 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: TeamSpec defines the desired state of a Team in Atlas + properties: + name: + description: The name of the team you want to create. + type: string + usernames: + description: Valid email addresses of users to add to the new team + items: + format: email + type: string + type: array + required: + - name + - usernames + type: object + status: + 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 + id: + description: ID of the team + 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 + projects: + description: List of projects which the team is assigned + items: + properties: + id: + description: Unique identifier of the project inside atlas + type: string + name: + description: Name given to the project + type: string + required: + - id + - name + type: object + type: array + required: + - conditions + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasthirdpartyintegrations.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasthirdpartyintegrations.yaml new file mode 100644 index 0000000000..e7ddec2ad6 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/atlas.mongodb.com_atlasthirdpartyintegrations.yaml @@ -0,0 +1,434 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasthirdpartyintegrations.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasThirdPartyIntegration + listKind: AtlasThirdPartyIntegrationList + plural: atlasthirdpartyintegrations + shortNames: + - atpi + singular: atlasthirdpartyintegration + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasThirdPartyIntegration is the Schema for the atlas 3rd party + integrations 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: AtlasThirdPartyIntegrationSpec contains the expected configuration + for an integration + properties: + 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 + datadog: + description: Datadog contains the config fields for Datadog's Integration + properties: + apiKeySecretRef: + description: APIKeySecretRef holds the name of a secret containing + the datadog api key + 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 + region: + description: Region is the Datadog region + type: string + sendCollectionLatencyMetrics: + default: disabled + description: SendCollectionLatencyMetrics toggles sending collection + latency metrics + enum: + - enabled + - disabled + type: string + sendDatabaseMetrics: + default: disabled + description: |- + SendDatabaseMetrics toggles sending database metrics, + including database and collection names + enum: + - enabled + - disabled + type: string + required: + - apiKeySecretRef + - region + 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 + microsoftTeams: + description: MicrosoftTeams contains the config fields for Microsoft + Teams's Integration + properties: + urlSecretRef: + description: URLSecretRef holds the name of a secret containing + the microsoft teams secret URL + 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 + required: + - urlSecretRef + type: object + newRelic: + description: NewRelic contains the config fields for New Relic's Integration + properties: + credentialsSecretRef: + description: |- + CredentialsSecretRef holds the name of a secret containing new relic's credentials: + account id, license key, read and write tokens + 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 + required: + - credentialsSecretRef + type: object + opsGenie: + description: OpsGenie contains the config fields for Ops Genie's Integration + properties: + apiKeySecretRef: + description: APIKeySecretRef holds the name of a secret containing + Ops Genie's API key + 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 + region: + description: Region is the Ops Genie region + type: string + required: + - apiKeySecretRef + - region + type: object + pagerDuty: + description: PagerDuty contains the config fields for PagerDuty's + Integration + properties: + region: + description: Region is the Pager Duty region + type: string + serviceKeySecretRef: + description: ServiceKeySecretRef holds the name of a secret containing + Pager Duty service key + 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 + required: + - region + - serviceKeySecretRef + 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 + prometheus: + description: Prometheus contains the config fields for Prometheus's + Integration + properties: + enabled: + description: Enabled is true when Prometheus integration is enabled + type: string + prometheusCredentialsSecretRef: + description: |- + PrometheusCredentialsSecretRef holds the name of a secret containing the Prometheus + username & password + 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 + serviceDiscovery: + description: ServiceDiscovery to be used by Prometheus + enum: + - file + - http + type: string + required: + - enabled + - prometheusCredentialsSecretRef + - serviceDiscovery + type: object + slack: + description: Slack contains the config fields for Slack's Integration + properties: + apiTokenSecretRef: + description: APITokenSecretRef holds the name of a secret containing + the Slack API token + 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 + channelName: + description: ChannelName to be used by Prometheus + type: string + teamName: + description: TeamName flags whether or not Prometheus integration + is enabled + type: string + required: + - apiTokenSecretRef + - channelName + - teamName + type: object + type: + description: Type of the integration + enum: + - DATADOG + - MICROSOFT_TEAMS + - NEW_RELIC + - OPS_GENIE + - PAGER_DUTY + - PROMETHEUS + - SLACK + - VICTOR_OPS + - WEBHOOK + type: string + victorOps: + description: VictorOps contains the config fields for VictorOps's + Integration + properties: + apiKeySecretRef: + description: APIKeySecretRef is the name of a secret containing + Victor Ops API key + 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 + routingKey: + description: RoutingKey holds VictorOps routing key + type: string + required: + - apiKeySecretRef + - routingKey + type: object + webhook: + description: Webhook contains the config fields for Webhook's Integration + properties: + urlSecretRef: + description: URLSecretRef holds the name of a secret containing + Webhook URL and secret + 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 + required: + - urlSecretRef + type: object + required: + - type + 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 define a type of integration + rule: has(self.type) && self.type.size() != 0 + - message: only DATADOG type may set datadog fields + rule: '!has(self.datadog) || (self.type == ''DATADOG'' && has(self.datadog))' + - message: only MICROSOFT_TEAMS type may set microsoftTeams fields + rule: '!has(self.microsoftTeams) || (self.type == ''MICROSOFT_TEAMS'' + && has(self.microsoftTeams))' + - message: only NEW_RELIC type may set newRelic fields + rule: '!has(self.newRelic) || (self.type == ''NEW_RELIC'' && has(self.newRelic))' + - message: only OPS_GENIE type may set opsGenie fields + rule: '!has(self.opsGenie) || (self.type == ''OPS_GENIE'' && has(self.opsGenie))' + - message: only PROMETHEUS type may set prometheus fields + rule: '!has(self.prometheus) || (self.type == ''PROMETHEUS'' && has(self.prometheus))' + - message: only PAGER_DUTY type may set pagerDuty fields + rule: '!has(self.pagerDuty) || (self.type == ''PAGER_DUTY'' && has(self.pagerDuty))' + - message: only SLACK type may set slack fields + rule: '!has(self.slack) || (self.type == ''SLACK'' && has(self.slack))' + - message: only VICTOR_OPS type may set victorOps fields + rule: '!has(self.victorOps) || (self.type == ''VICTOR_OPS'' && has(self.victorOps))' + - message: only WEBHOOK type may set webhook fields + rule: '!has(self.webhook) || (self.type == ''WEBHOOK'' && has(self.webhook))' + status: + description: AtlasThirdPartyIntegrationStatus holds the status of an integration + properties: + conditions: + description: Conditions holding the status details + items: + description: Condition contains details for one aspect of the current + state of this API Resource. + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. + 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 + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + id: + description: ID of the third party integration resource in Atlas + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/mongodb-atlas-controller-manager-metrics-service_v1_service.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/mongodb-atlas-controller-manager-metrics-service_v1_service.yaml new file mode 100644 index 0000000000..4999beebf3 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/mongodb-atlas-controller-manager-metrics-service_v1_service.yaml @@ -0,0 +1,20 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: mongodb-atlas-controller-manager-metrics-service +spec: + ports: + - name: https + port: 8443 + targetPort: https + selector: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator +status: + loadBalancer: {} diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml new file mode 100644 index 0000000000..258f66cc39 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml @@ -0,0 +1,896 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasBackupCompliancePolicy", + "metadata": { + "name": "my-backup-compliance-policy" + }, + "spec": { + "authorizedEmail": "john.doe@example.com", + "authorizedUserFirstName": "John", + "authorizedUserLastName": "Doe", + "copyProtectionEnabled": false, + "encryptionAtRestEnabled": false, + "onDemandPolicy": { + "retentionUnit": "weeks", + "retentionValue": 3 + }, + "overwriteBackupPolicies": false, + "pointInTimeEnabled": true, + "restoreWindowDays": 42, + "scheduledPolicyItems": [ + { + "frequencyInterval": 2, + "frequencyType": "daily", + "retentionUnit": "days", + "retentionValue": 7 + } + ] + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasBackupPolicy", + "metadata": { + "name": "atlasbackuppolicy-sample" + }, + "spec": { + "items": [ + { + "frequencyInterval": 6, + "frequencyType": "hourly", + "retentionUnit": "days", + "retentionValue": 2 + }, + { + "frequencyInterval": 1, + "frequencyType": "daily", + "retentionUnit": "days", + "retentionValue": 7 + }, + { + "frequencyInterval": 1, + "frequencyType": "weekly", + "retentionUnit": "weeks", + "retentionValue": 4 + }, + { + "frequencyInterval": 15, + "frequencyType": "monthly", + "retentionUnit": "months", + "retentionValue": 12 + } + ] + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasBackupSchedule", + "metadata": { + "name": "atlasbackupschedule-sample" + }, + "spec": { + "autoExportEnabled": false, + "copySettings": [ + { + "cloudProvider": "AWS", + "frequencies": [ + "WEEKLY" + ], + "regionName": "US_WEST_1", + "shouldCopyOplogs": false + } + ], + "policy": { + "name": "atlasbackuppolicy-sample" + }, + "referenceHourOfDay": 10, + "referenceMinuteOfHour": 10, + "restoreWindowDays": 2, + "useOrgAndGroupNamesInExportPrefix": true + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasCustomRole", + "metadata": { + "name": "shard-operator-role" + }, + "spec": { + "projectRef": { + "name": "my-project" + }, + "role": { + "actions": [ + { + "name": "getShardMap", + "resources": [ + { + "cluster": true + } + ] + }, + { + "name": "shardingState", + "resources": [ + { + "cluster": true + } + ] + }, + { + "name": "connPoolStats", + "resources": [ + { + "cluster": true + } + ] + }, + { + "name": "getLog", + "resources": [ + { + "cluster": true + } + ] + } + ], + "inheritedRoles": [ + { + "database": "admin", + "name": "operator-role-1" + } + ], + "name": "my-role" + } + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasDataFederation", + "metadata": { + "name": "my-data-federation", + "namespace": "mongodb-atlas-system" + }, + "spec": { + "name": "my-data-federation", + "privateEndpoints": [ + { + "endpointId": "vpce-03f9eeaa764e32454", + "provider": "AWS", + "type": "DATA_LAKE" + } + ], + "projectRef": { + "name": "my-project", + "namespace": "mongodb-atlas-system" + }, + "storage": { + "databases": [ + { + "collections": [ + { + "dataSources": [ + { + "storeName": "http-test", + "urls": [ + "https://data.cityofnewyork.us/api/views/vfnx-vebw/rows.csv" + ] + } + ], + "name": "test-collection-1" + } + ], + "name": "test-db-1" + } + ], + "stores": [ + { + "name": "http-test", + "provider": "http" + } + ] + } + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasDatabaseUser", + "metadata": { + "name": "my-database-user" + }, + "spec": { + "databaseName": "admin", + "passwordSecretRef": { + "name": "the-user-password" + }, + "projectRef": { + "name": "my-project" + }, + "roles": [ + { + "databaseName": "admin", + "roleName": "readWriteAnyDatabase" + } + ], + "username": "theuser" + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasDeployment", + "metadata": { + "name": "my-atlas-deployment" + }, + "spec": { + "backupRef": { + "name": "atlasbackupschedule-sample" + }, + "deploymentSpec": { + "backupEnabled": true, + "clusterType": "REPLICASET", + "mongoDBMajorVersion": "7.0", + "name": "test-deployment", + "replicationSpecs": [ + { + "regionConfigs": [ + { + "electableSpecs": { + "instanceSize": "M10", + "nodeCount": 3 + }, + "priority": 7, + "providerName": "AWS", + "regionName": "US_EAST_1" + } + ], + "zoneName": "Zone 1" + } + ], + "tags": [ + { + "key": "team", + "value": "atlas-operator" + } + ] + }, + "projectRef": { + "name": "my-project" + } + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasFederatedAuth", + "metadata": { + "name": "atlas-default-federated-auth", + "namespace": "mongodb-atlas-system" + }, + "spec": { + "connectionSecretRef": { + "name": "my-org-secret", + "namespace": "mongodb-atlas-system" + }, + "domainAllowList": [ + "my-org-domain.com" + ], + "domainRestrictionEnabled": true, + "enabled": true, + "postAuthRoleGrants": [ + "ORG_MEMBER" + ], + "roleMappings": [ + { + "externalGroupName": "org-admin", + "roleAssignments": [ + { + "role": "ORG_OWNER" + } + ] + }, + { + "externalGroupName": "dev-team", + "roleAssignments": [ + { + "role": "ORG_GROUP_CREATOR" + }, + { + "projectName": "dev-project", + "role": "GROUP_OWNER" + } + ] + } + ], + "ssoDebugEnabled": false + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasIPAccessList", + "metadata": { + "labels": { + "app.kubernetes.io/name": "mongodb-atlas-kubernetes" + }, + "name": "atlasipaccesslist-sample" + }, + "spec": { + "entries": [ + { + "cidrBlock": "192.168.1.0/24" + }, + { + "deleteAfterDate": "2025-01-20T23:59:59+02:00", + "ipAddress": "10.0.0.1" + } + ], + "projectRef": { + "name": "my-project" + } + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasNetworkContainer", + "metadata": { + "labels": { + "app.kubernetes.io/managed-by": "kustomize", + "app.kubernetes.io/name": "mongodb-atlas-kubernetes" + }, + "name": "atlasnetworkcontainer-sample" + }, + "spec": { + "cidrBlock": "10.11.0.0/16", + "connectionSecret": { + "name": "atlas-connection-secret" + }, + "externalProjectRef": { + "projectId": "66e2f2b621571b7e69a89b66" + }, + "provider": "AWS", + "region": "US_EAST_1" + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasNetworkPeering", + "metadata": { + "name": "atlasnetworkpeering-sample" + }, + "spec": { + "atlasCidrBlock": "10.12.0.0/16", + "awsConfiguration": { + "accepterRegionName": "US_EAST_1", + "awsAccountId": "23214235145", + "routeTableCidrBlock": "10.11.0.0/16", + "vpcId": "vpcid-7123782134" + }, + "containerId": "623412394512350", + "containerRegion": "US_EAST_1", + "projectRef": { + "name": "atlas-project", + "namespace": "namespace" + }, + "provider": "AWS" + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasPrivateEndpoint", + "metadata": { + "name": "atlasprivateendpoint-sample" + }, + "spec": { + "awsConfiguration": { + "id": "vpce-f4k34w51d" + }, + "projectRef": { + "name": "my-project" + }, + "provider": "AWS", + "region": "EU_CENTRAL_1" + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasProject", + "metadata": { + "name": "my-project" + }, + "spec": { + "name": "Test Atlas Operator Project", + "projectIpAccessList": [ + { + "comment": "IP address for Application Server A", + "ipAddress": "192.0.2.15" + }, + { + "cidrBlock": "203.0.113.0/24", + "comment": "CIDR block for Application Server B - D" + } + ] + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasSearchIndexConfig", + "metadata": { + "name": "atlassearchindexconfig-sample" + }, + "spec": { + "analyzer": "lucene.standard", + "analyzers": [ + { + "name": "test-analyzer", + "tokenFilters": [ + { + "asciiFolding": { + "originalTokens": "omit" + }, + "type": "asciiFolding" + } + ], + "tokenizer": { + "type": "whiteSpace", + "whitespace": { + "maxTokenLenght": 200 + } + } + } + ] + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasStreamConnection", + "metadata": { + "name": "my-streamconnection-kafka" + }, + "spec": { + "kafkaConfig": { + "authentication": { + "credentials": { + "name": "kafka-userpass" + }, + "mechanism": "SCRAM-512" + }, + "bootstrapServers": "kafka.server1:9001,kafka.server2:9002,kafka.server3:9003", + "security": { + "certificate": { + "name": "kafka-cert" + }, + "protocol": "SSL" + } + }, + "name": "kafka-config", + "type": "Kafka" + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasStreamInstance", + "metadata": { + "name": "my-streaminstance-sample" + }, + "spec": { + "clusterConfig": { + "provider": "AWS", + "region": "VIRGINIA_USA", + "tier": "SP30" + }, + "connectionRegistry": [ + { + "name": "my-streamconnection-sample" + } + ], + "name": "my-instance", + "projectRef": { + "name": "my-project" + } + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasTeam", + "metadata": { + "name": "atlasteam-sample" + }, + "spec": { + "name": "my-team", + "usernames": [ + "username@mongodb.com" + ] + } + }, + { + "apiVersion": "atlas.mongodb.com/v1", + "kind": "AtlasThirdPartyIntegration", + "metadata": { + "labels": { + "app.kubernetes.io/managed-by": "kustomize", + "app.kubernetes.io/name": "mongodb-atlas-kubernetes" + }, + "name": "atlasintegration-sample" + }, + "spec": { + "datadog": { + "apiKeySecretRef": { + "name": "secret-ref" + }, + "region": "string", + "sendCollectionLatencyMetrics": "string", + "sendDatabaseMetrics": "string" + }, + "projectRef": { + "name": "my-atlas-project" + }, + "type": "DATADOG" + } + } + ] + capabilities: Full Lifecycle + categories: Database + createdAt: "2025-07-15T19:04:10Z" + description: The MongoDB Atlas Kubernetes Operator enables easy management of Clusters in MongoDB Atlas + features.operators.openshift.io/disconnected: "false" + features.operators.openshift.io/fips-compliant: "false" + features.operators.openshift.io/proxy-aware: "false" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + operators.operatorframework.io/builder: operator-sdk-v1.34.1 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 + repository: https://github.com/mongodb/mongodb-atlas-kubernetes + support: support@mongodb.com + containerImage: docker.io/andrpac/mongodb-atlas-kubernetes-operator:test-0.0.0-dev + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/os.linux: supported + name: mongodb-atlas-kubernetes.v0.0.0 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: The AtlasBackupCompliancePolicy is a configuration that enforces specific backup and retention requirements + displayName: Atlas Backup Compliance Policy + kind: AtlasBackupCompliancePolicy + name: atlasbackupcompliancepolicies.atlas.mongodb.com + version: v1 + - description: AtlasBackupPolicy is the Schema for the atlasbackuppolicies API + displayName: Atlas Backup Policy + kind: AtlasBackupPolicy + name: atlasbackuppolicies.atlas.mongodb.com + version: v1 + - description: AtlasBackupSchedule is the Schema for the atlasbackupschedules API + displayName: Atlas Backup Schedule + kind: AtlasBackupSchedule + name: atlasbackupschedules.atlas.mongodb.com + version: v1 + - description: AtlasCustomRole is the Schema for the AtlasCustomRole API + displayName: Atlas Custom Role + kind: AtlasCustomRole + name: atlascustomroles.atlas.mongodb.com + version: v1 + - description: AtlasDatabaseUser is the Schema for the Atlas Database User API + displayName: Atlas Database User + kind: AtlasDatabaseUser + name: atlasdatabaseusers.atlas.mongodb.com + version: v1 + - description: AtlasDataFederation is the Schema for the Atlas Data Federation API + displayName: Atlas Data Federation + kind: AtlasDataFederation + name: atlasdatafederations.atlas.mongodb.com + version: v1 + - description: AtlasDeployment is the Schema for the atlasdeployments API + displayName: Atlas Deployment + kind: AtlasDeployment + name: atlasdeployments.atlas.mongodb.com + version: v1 + - description: AtlasFederatedAuth is the Schema for the Atlasfederatedauth API + displayName: Atlas Federated Auth + kind: AtlasFederatedAuth + name: atlasfederatedauths.atlas.mongodb.com + version: v1 + - description: AtlasIPAccessList is the Schema for the atlasipaccesslists API. + displayName: Atlas IPAccess List + kind: AtlasIPAccessList + name: atlasipaccesslists.atlas.mongodb.com + version: v1 + - description: AtlasNetworkContainer is the Schema for the AtlasNetworkContainer API + displayName: Atlas Network Container + kind: AtlasNetworkContainer + name: atlasnetworkcontainers.atlas.mongodb.com + version: v1 + - description: AtlasNetworkPeering is the Schema for the AtlasNetworkPeering API + displayName: Atlas Network Peering + kind: AtlasNetworkPeering + name: atlasnetworkpeerings.atlas.mongodb.com + version: v1 + - description: "The AtlasPrivateEndpoint custom resource definition (CRD) defines a desired [Private Endpoint](https://www.mongodb.com/docs/atlas/security-private-endpoint/#std-label-private-endpoint-overview) configuration for an Atlas project. It allows a private connection between your cloud provider and Atlas that doesn't send information through a public network. \n You can use private endpoints to create a unidirectional connection to Atlas clusters from your virtual network." + displayName: Atlas Private Endpoint + kind: AtlasPrivateEndpoint + name: atlasprivateendpoints.atlas.mongodb.com + version: v1 + - description: AtlasProject is the Schema for the atlasprojects API + displayName: Atlas Project + kind: AtlasProject + name: atlasprojects.atlas.mongodb.com + version: v1 + - description: Atlas Search Index Config is the Schema for the Atlas Search API + displayName: Atlas Search Index Config + kind: AtlasSearchIndexConfig + name: atlassearchindexconfigs.atlas.mongodb.com + version: v1 + - description: AtlasStreamConnection is the Schema for the atlasstreamconnections API + displayName: Atlas Stream Connection + kind: AtlasStreamConnection + name: atlasstreamconnections.atlas.mongodb.com + version: v1 + - description: AtlasStreamInstance is the Schema for the atlasstreaminstances API + displayName: Atlas Stream Instance + kind: AtlasStreamInstance + name: atlasstreaminstances.atlas.mongodb.com + version: v1 + - description: AtlasTeam is the Schema for the Atlas Teams API + displayName: Atlas Team + kind: AtlasTeam + name: atlasteams.atlas.mongodb.com + version: v1 + - description: AtlasThirdPartyIntegration is the Schema for the atlas 3rd party integrations API. + displayName: Atlas Third Party Integration + kind: AtlasThirdPartyIntegration + name: atlasthirdpartyintegrations.atlas.mongodb.com + version: v1 + description: | + The MongoDB Atlas Operator provides a native integration between the Kubernetes orchestration platform and MongoDB + Atlas — the only multi-cloud document database service that gives you the versatility you need to build sophisticated + and resilient applications that can adapt to changing customer demands and market trends. + + The full documentation for the Operator can be found [here](https://docs.atlas.mongodb.com/atlas-operator/) + + ## Getting Started + + ### Supported features + + * Create and configure a project, or connect to an existing one. + * Deploy, manage, scale, and tear down clusters. + * Support for serverless instances. + * Create and edit database users. + * Manage IP Access Lists, network peering and private endpoints. + * Configure and control Atlas’s fully managed cloud backup. + * Configure federated authentication for your Atlas organization + * Integrate Atlas monitoring with Prometheus. + + ... and more. + + To view the list of custom resources and each CR's schema, visit our [reference](https://www.mongodb.com/docs/atlas/operator/stable/custom-resources/) + documentation. See the [Quickstart](https://www.mongodb.com/docs/atlas/operator/stable/ak8so-quick-start/) to get + started with Atlas Kubernetes Operator. + displayName: MongoDB Atlas Operator + icon: + - base64data: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAJEXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarVhtdiMpDPzPKfYIDUIIHYfP9/YGe/wtQXcnsZ1JMjP2xLQBg1CVSmLc+O/f6f7BiwIFF1ly0pQOvKJGDQUP+divsj79EdfnesVzCN8/9Lt7IKCL0NL+mtM5/+r39wK7KXjidwvldg7UjwN67hDyw0LnRmQWBTz0cyE9F6KwB/y5QNnHOpJmeX+EOnbbr5Pk/efsI7VjHcSfo4/fo8B7nbEPhTDI04HPQHEbQPbnHRUbwCe+YKKnjOe4ejxdlsAhr/x0vLPKPaJyP/lP+h9AobT7HTo+OjPd7ct+z6+d75aL3+1M7d75Qz/3oz4e5/qbs2c359inKzHBpek81HWU9YSJWCTS+lnCW/DHeJb1VryzA3sbIO9Hw44Vz+oDvD999N0XP/1YbfMNJsYwgqANoQEb68skQUOjwxk29vYzCCl1oBaoAV5Cb7ht8WtfXds1n7Fx95gZPBbzK9bs42+8P11oTqO890e+fQW7ggUFzDDk7BOzAIifF494Ofh6P74MVwKCvNycccBy1L1EZX9yy3hEC2jCREa7Y81LPxeAi7A3wxhPQOBIntgnf0gI4j38mIFPwUIZQRMqIPDMocPKEIkSwMnB9sZvxK+5gcPuhmYBCKZEAmiUCrCKEDbwR2IGhwoTR2ZOLJxZuSRKMXFKSZKJXxGSKCxJRLKolEw5Zs4pS84uay4alCCOrElFs6qWgk0LVi74dcGEUmqoVGPlmqrUXLWWBvq02LilJi27pq300KlDJ3rq0nPXXoYfoNKIg0caMvLQUSaoNmnGyTNNmXnqLDdq3m1Yn97fR81fqIWFlE2UGzX8VORawpucsGEGxEL0QFwMARA6GGZH9jEGZ9AZZocGRAUHWMkGTveGGBCMwwee/sbuDbkPuLkY/wi3cCHnDLq/gZwz6D5B7hm3F6h1yzbtILcQsjA0px6E8MOEkUvIxZLat1t3d9QCRxsxap9zbTJnSpC9Ujts4Njb6FI9zspJeXbVkeaYtbVJSEezUW6JaKAvwg/D5hQZLDanrtM00jbEY0rHKkDDT6qjjyI1Tvi0x0mumC00PWvDJgQFlzlr6JBLDpCAfhT8JmmB17ocZZ0GOWg/HHfrHjt+t10LAbGArAzLYWMFIjiYSgUyBMqQThxLoUockGq0iRauh56ughvMVW77wZ9+oOWHXtjDEyFKmyAyYgHI19rzRglrZxYvpcA/8Ec1h7rT63Q63Tw690qqSBQJdCs5llETtVGW9VzNejNAzPo0VWt1MD+hwMgT1lTWuj1MBWGlfqQ8kPXMvgMxs56QdF+17rOBX7WS9IlLzsj0nkswang2SsLdcyIt4xRwm+8UBaGTU0gRkaOh10kbtJLBoye6g78sscDpBA9P6YMn4ngidXfgQR1AIWLLjFyG1Mbw/UzR2d7Z2yfcx6EhKA+P6DfFAW1nywjatUeUGk5/Hc+t+2zgkxYhUnAuglk6BGE0m4lCmm4eaSwCwWjITao1orWjGS3EjpZENeNoxg6Qc0pZEYQv5m4m+E+rg/b47bE2dXwVCQDlNY2me6QRBA1iGCEhRbBjNe8F0L/N03a/bc8FWAUaKJ7FAsVBF7mPWO/Ahnz+XNZCdu86wOgwYwXw4fSOAb+8M1bowkooSoXgmAKCKaaBSwER/RBBCHJR5F0klsyWSyrl2vVkchv+ay0Z5IgTNARSNpvOJbKgdkog+dGr8b23CUVLwm3MXGAv9zf5i0grEqY2dchhniumDwkX78a3afXWuruDC3R9mMCg2ZH4pFQxsNVXIAEKVghKRpe2vqIfodLqTwXAD0EOsNTbjSm4FrCboDvIQtJa77P5ihzfpOrk0jpKqQEZ7DHj30T4X6IfnjjiviTJynfQ74d8NyRZ9rkzoXsbghrGJoIikuGb1hDza7FCQ/LrfeLpbnpOR3Asbg+2S4ERh9mALLv3h+dZXowU1hkdQYwG7ohDpp6qnEf9eXpzI9cWdmgiBua6CmmpVo28HNFiAtLnGDi/IqehYLLd3Urk7acMROiNULaywxE4lTNlYaszIj8MXSMIAxMLMiO81TxpLxc+CIX7plJ8UvScIGDEPQ49k2B8RYKHQut9i9BqjOQWhtomW3G6pguDF2NuDWpCnjZpyP5zL/y6dd8IhbzrPyQdZJhmjcKstRWoSBtK9xFbVKVqmeuN+i+Z/1TdVUuQfAgywAEVaqBb5jGvGCf+AbMfNsTNwZtkGeOslliVhF3371oCOWdAc1jWzoXOnfdCFO6VqDKjipiVCMkYgm2VSwIM1S8Fr33UuDLJhwg2GbEQRgIFRCgbAvlCuOD03tu7Qu8SSNxJSi3FYFjpE76mhtw+vUM+N0WU2lNeBwpqB4ofqpRdBsYiKONYcc3BfWosqbYCLxy8q5HfqNnu2s3qCbWCytHwsH1WvnPmihPU+zgkNxTMioQiqPKROhd1/PDXWS0Fn7nOvWNDLB3FmJYHN24vKtdqBTMuc/gFLogWAJRONyL636yEhYjY7Uv7T7q5vYnIXaXI4a12X+6Ezxni0lHxJpgdU+jNVbkDq+bfqkNeRT8KUJzPWBRn64tFuCcNAotWugWLirEIpXvd1MX+DaXc8K6Q/U9WkwT7ruqDnuh2+ukAQWQJ6SNBGIVWhI7g1qpdEMsDPMINBJBdGLWMKxhmwIhVoOPeYSGyrx28rx0dlxoL9WTGIj1ZjYIyEXV5UsKN/SqRUBi27+vRd9sa5fQjoqPf0ejoDEdZ4UjI0kdWVC3mRZArW4GP0hO6hmi+a2a6auawa2bU2YKyMMAD+2qGKrJ4lNuofE7Zhg1LnMnSI1IGDg0esfENVp1sQ7J0F91M8I1uCJakKNxHE/C0FNw+Ajg3QhWWmrsdcIR5ak2cp9aIA03kpImJTclWlaYGPtVWWk0HfmBnOq84dF1xglVxGWdK2GuVx4o8mvyRO7pD+0Up9evW/TleGy73BV77WqdpX0Is8iEsdgnx+yZeJ0hmIupmwlUcl5BT7SKus9BBm/ft6+xqXfwzibyq3OxgyhFHqt/IHuuMUMrBHLhVjyI/7AoDgDkkjh8GiTETsfU/ZHuEtrDMfYEAAAGFaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1O1UioiVhBxyFB1sSAq4qhVKEKFUCu06mBy6YfQpCFJcXEUXAsOfixWHVycdXVwFQTBDxA3NydFFynxf2mhRYwHx/14d+9x9w4QqkWmWW1jgKbbZjIeE9OZFTHwiiD60IMRdMjMMmYlKQHP8XUPH1/vojzL+9yfo0vNWgzwicQzzDBt4nXiqU3b4LxPHGYFWSU+Jx416YLEj1xX6vzGOe+ywDPDZio5RxwmFvMtrLQwK5ga8SRxRNV0yhfSdVY5b3HWimXWuCd/YSirLy9xneYg4ljAIiSIUFDGBoqwEaVVJ8VCkvZjHv4B1y+RSyHXBhg55lGCBtn1g//B726t3MR4PSkUA9pfHOdjCAjsArWK43wfO07tBPA/A1d601+qAtOfpFeaWuQI6N4GLq6bmrIHXO4A/U+GbMqu5Kcp5HLA+xl9UwbovQWCq/XeGvs4fQBS1FXiBjg4BIbzlL3m8e7O1t7+PdPo7wdVb3KbaWTEXAAADRxpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6ZDk1YjhmMjctMWM0NS00YjU1LWEwZTMtNmNmMjM0Yzk1ZWVkIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmVhMGY5MTI5LWJlMDItNDVjOS1iNGU4LTU3N2MxZTBiZGJhNyIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjcyNmY4ZGFlLTM4ZTYtNGQ4Ni1hNTI4LWM0NTc4ZGE4ODA0NSIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09Ik1hYyBPUyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2MzQ4MzgwMTYyMTQ2MTMiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4yNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo1YWNhZmVhMC0xZmY5LTRiMmUtYmY0NC02NTM3MzYwMGQzNjEiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTWFjIE9TKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMS0xMC0yMVQxODo0MDoxNiswMTowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz6528V0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAB3RJTUUH5QoVESgQ+iToFAAAA8xJREFUeNrlW01PU0EUPTPV+oqb4h+wENYKXbmzsjLEKPAHwB1xQ6N7adiboBtrSAT5AaQmBpuYSN25MS17k5Zf0MemFGznungttCkf782bmTels2w6mbnnnnPv3DvzYrBhrMytIT01gz9/f5temkVv/NMUwKsg1MFEGvlizeTy3ALj9zuuGAf4T2QzydEBACwHINXzwwSOE29N7iAWqe7BsoOYsEdITx2ZigcsIupnzqh/8SC0/6Wx+aNy8yTg6X7rWsfEbu96/71JAGQzyY7n/Rg2AcZ3dQdFswA0Exs+je8KYUZ3UDQXA1bmlgFsScwkMFrEx++F4QXgPN/LaZpQR6IxiY2SO6QSGMj3Qd00jpPE5+FkgDz1B3kAMYt8sTQ8AGQzSTTHyqG83z+qcBpplVLQK4Hm2KpC473U2BzLDgcDwgY+QwFRIwP4knLjuwFRIQv0MGB5PgnntKwFAMUs0MMA53Rem/Ge25I4ufvCXgkQVrVXsSSW7JTAq7lpCJQNnK4IEJNhW2jqGdDGsrH6QrB5GyXwWMKXLoi5gdnL8dwuCXjRvy4xs0vjVGDonMa9MNlALQPiJxlJOcvruOlM2yMBzuQ3Q3Al44BFADA8lJ9LrtSKnD2wBwAhe/hhIVIZpWxiQJgG5qHkohYBoPP4q6tks2Qfh1GBzu3xhWQckM0eWgAIfprrBE+SN4LZBACTNIQzF4KO5EAnmxgQwhtckj2WMeBA8gARpqQ9sAcAAfnrbLk4QGBUsQcAHmIzXFLLrbZFDMgXS1KZoN2W1DHVwj6iUH8O4FQKPCcWc3t6AkGCTin0dpUDQPhq6OREgNixD4BmvBBYBlKNTaqpuChVD8B2wQWj98EnOrVA3hf4YHExJLb1l3FUsBeAfLEG0Bef//Y8H28FqSW2VT2p1VgNUi5QLKC4z1qCqoBYt78fkC/WfMWCwMUM21H5oFrzA4n4xrUt724xQy0fxRRVkd/LKQ0lWgHYLrgAvfQXN1vXSYAAmlUeS7VH63yxBMIVUvDdB1jX8S2BmZbYp70scNkRmXtXaQkOXN4b3FJNfbMAAEDzzoLcFRhV4TReaztOGAPAiwdPLgDh8OqUR7M6XoiaB6CbGtts4cLzwbtv1N8Z7hiv+Rsi823xzb0KRB8T7gMA3jxj59dcZoz3snBUY+VpCmD7nautXGcva2Aog8Siqa/Hov1sbuAxJZXgHC/o1Hz0Ehgsmn71/FIxaXz0AAwS8sj0ihYAcBb5CVJ9weFnwLnR1K6PHgC9FyJsFCVwq+9afAQlIITbnxXMjv+6222dh4/VtAAAAABJRU5ErkJggg== + mediatype: image/png + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + - apiGroups: + - "" + resources: + - secrets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - atlas.mongodb.com + resources: + - atlasbackupcompliancepolicies + - atlasbackuppolicies + - atlasbackupschedules + - atlascustomroles + - atlasdatabaseusers + - atlasdatafederations + - atlasdeployments + - atlasfederatedauths + - atlasipaccesslists + - atlasnetworkcontainers + - atlasnetworkpeerings + - atlasprivateendpoints + - atlasprojects + - atlassearchindexconfigs + - atlasstreamconnections + - atlasstreaminstances + - atlasteams + - atlasthirdpartyintegrations + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - atlas.mongodb.com + resources: + - atlasbackupcompliancepolicies/status + - atlasbackuppolicies/status + - atlasbackupschedules/status + - atlascustomroles/status + - atlasdatabaseusers/status + - atlasdatafederations/status + - atlasdeployments/status + - atlasfederatedauths/status + - atlasipaccesslists/status + - atlasnetworkcontainers/status + - atlasnetworkpeerings/status + - atlasprivateendpoints/status + - atlasprojects/status + - atlassearchindexconfigs/status + - atlasstreamconnections/status + - atlasstreaminstances/status + - atlasteams/status + - atlasthirdpartyintegrations/status + verbs: + - get + - patch + - update + - apiGroups: + - atlas.mongodb.com + resources: + - atlasipaccesslists/finalizers + - atlasnetworkcontainers/finalizers + - atlasnetworkpeerings/finalizers + - atlasthirdpartyintegrations/finalizers + verbs: + - update + serviceAccountName: mongodb-atlas-operator + deployments: + - label: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: mongodb-atlas-operator + spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + strategy: {} + template: + metadata: + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + spec: + containers: + - args: + - --atlas-domain=https://cloud.mongodb.com/ + - --leader-elect + - --health-probe-bind-address=:8081 + - --metrics-bind-address=127.0.0.1:8080 + - --log-level=info + - --log-encoder=json + command: + - /manager + env: + - name: OPERATOR_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OPERATOR_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + image: docker.io/andrpac/mongodb-atlas-kubernetes-operator:test-0.0.0-dev + imagePullPolicy: Always + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: manager + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + limits: + memory: 1Gi + requests: + cpu: 100m + memory: 256Mi + securityContext: + allowPrivilegeEscalation: false + serviceAccountName: mongodb-atlas-operator + terminationGracePeriodSeconds: 10 + permissions: + - rules: + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + serviceAccountName: mongodb-atlas-operator + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: true + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - MongoDB + - Atlas + - Database + - Replica Set + - Cluster + links: + - name: MongoDB Atlas Kubernetes + url: https://github.com/mongodb/mongodb-atlas-kubernetes + maintainers: + - email: support@mongodb.com + name: MongoDB, Inc + maturity: beta + provider: + name: MongoDB, Inc + version: 0.0.0 + replaces: mongodb-atlas-kubernetes.v2.9.1 diff --git a/docs/releases/vtest-0.0.0-dev/bundle/manifests/mongodb-atlas-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml b/docs/releases/vtest-0.0.0-dev/bundle/manifests/mongodb-atlas-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml new file mode 100644 index 0000000000..764c59c9c6 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/manifests/mongodb-atlas-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml @@ -0,0 +1,10 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + creationTimestamp: null + name: mongodb-atlas-metrics-reader +rules: +- nonResourceURLs: + - /metrics + verbs: + - get diff --git a/docs/releases/vtest-0.0.0-dev/bundle/metadata/annotations.yaml b/docs/releases/vtest-0.0.0-dev/bundle/metadata/annotations.yaml new file mode 100644 index 0000000000..371b1baa7d --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/metadata/annotations.yaml @@ -0,0 +1,15 @@ +annotations: + # Core bundle annotations. + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: mongodb-atlas-kubernetes + operators.operatorframework.io.bundle.channels.v1: stable + operators.operatorframework.io.bundle.channel.default.v1: stable + operators.operatorframework.io.metrics.builder: operator-sdk-v1.34.1 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v4 + + # Annotations for testing. + operators.operatorframework.io.test.mediatype.v1: scorecard+v1 + operators.operatorframework.io.test.config.v1: tests/scorecard/ diff --git a/docs/releases/vtest-0.0.0-dev/bundle/tests/scorecard/config.yaml b/docs/releases/vtest-0.0.0-dev/bundle/tests/scorecard/config.yaml new file mode 100644 index 0000000000..ffc0447e07 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/bundle/tests/scorecard/config.yaml @@ -0,0 +1,70 @@ +apiVersion: scorecard.operatorframework.io/v1alpha3 +kind: Configuration +metadata: + name: config +stages: +- parallel: true + tests: + - entrypoint: + - scorecard-test + - basic-check-spec + image: quay.io/operator-framework/scorecard-test:v1.2.0 + labels: + suite: basic + test: basic-check-spec-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-bundle-validation + image: quay.io/operator-framework/scorecard-test:v1.2.0 + labels: + suite: olm + test: olm-bundle-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-crds-have-validation + image: quay.io/operator-framework/scorecard-test:v1.2.0 + labels: + suite: olm + test: olm-crds-have-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-crds-have-resources + image: quay.io/operator-framework/scorecard-test:v1.2.0 + labels: + suite: olm + test: olm-crds-have-resources-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-spec-descriptors + image: quay.io/operator-framework/scorecard-test:v1.2.0 + labels: + suite: olm + test: olm-spec-descriptors-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-status-descriptors + image: quay.io/operator-framework/scorecard-test:v1.2.0 + labels: + suite: olm + test: olm-status-descriptors-test + storage: + spec: + mountPath: {} +storage: + spec: + mountPath: {} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/.helmignore b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/.helmignore new file mode 100644 index 0000000000..0e8a0eb36f --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/Chart.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/Chart.yaml new file mode 100644 index 0000000000..5c89f17de4 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/Chart.yaml @@ -0,0 +1,18 @@ +apiVersion: v2 +name: atlas-advanced +description: This chart showcases Atlas Advanced (dedicated) deployment + +type: application + +version: 1.0.0 + +keywords: + - mongodb + - database + - nosql +home: https://github.com/mongodb/mongodb-atlas-kubernetes +icon: https://webimages.mongodb.com/_com_assets/cms/kuyjf3vea2hg34taa-horizontal_default_slate_blue.svg +appVersion: "2.4.1" +maintainers: + - name: MongoDB + email: support@mongodb.com diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/_helpers.tpl b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/_helpers.tpl new file mode 100644 index 0000000000..3487d7657d --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/_helpers.tpl @@ -0,0 +1,86 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "atlas-advanced.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "atlas-advanced.fullname" -}} +{{- if .Values.deployment.name }} +{{- .Values.deployment.name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.deployment.name }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{- define "atlas-advanced.projectfullname" -}} +{{- if .Values.project.name }} +{{- .Values.project.name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.project.name }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "atlas-advanced.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "atlas-advanced.labels" -}} +helm.sh/chart: {{ include "atlas-advanced.chart" . }} +{{ include "atlas-advanced.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "atlas-advanced.selectorLabels" -}} +app.kubernetes.io/name: {{ include "atlas-advanced.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{- define "generateRandomString" -}} +{{ randAlphaNum 5 }} +{{- end }} + +{{- define "getInstanceSizeOrFail" -}} +{{- $arg := . -}} +{{ $instances := list "M10" "M20" "M30" "M40" "M50" "M60" "M80" "M100" "M140" "M200" "M300" "R40" "R50" "R60" "R80" "R200" "R300" "R400" "R700" "M40_NVME" "M50_NVME" "M60_NVME" "M80_NVME" "M200_NVME" "M400_NVME" }} +{{- if not (has (toString $arg) $instances)}} +{{- fail (printf "Instance size can only be one of: %s " (join "," $instances)) }} +{{- end }} +{{- $arg -}} +{{- end }} + +{{- define "getProviderNameOrFail" -}} +{{- $arg := . -}} +{{ $providers := list "AWS" "GCP" "AZURE" }} +{{- if not (has (toString $arg) $providers) }} +{{- fail (printf "Provider name can only be one of: %s. Got %s" (join "," $providers) $arg) }} +{{- end }} +{{- $arg -}} +{{- end }} \ No newline at end of file diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-deployment.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-deployment.yaml new file mode 100644 index 0000000000..34f53c205b --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-deployment.yaml @@ -0,0 +1,33 @@ +apiVersion: atlas.mongodb.com/v1 +kind: AtlasDeployment +metadata: + name: {{ include "atlas-advanced.fullname" $ }} + labels: + {{- include "atlas-advanced.labels" $ | nindent 4 }} + namespace: {{ $.Release.Namespace }} +spec: + projectRef: + name: {{ include "atlas-advanced.projectfullname" $ }} + namespace: {{ $.Release.Namespace }} + deploymentSpec: + name: {{ include "atlas-advanced.fullname" $ }} + clusterType: REPLICASET + replicationSpecs: + - zoneName: Zone 1 + regionConfigs: + {{- range $idx, $val := index .Values.deployment.regions }} + - regionName: {{ $val.name }} + electableSpecs: + instanceSize: {{ include "getInstanceSizeOrFail" $val.instanceSize }} + nodeCount: {{ $val.nodeCount }} + providerName: {{ include "getProviderNameOrFail" $val.providerName }} + backingProviderName: {{ include "getProviderNameOrFail" $val.providerName }} + priority: {{ $val.priority }} + {{- if $val.autoscaling.enabled }} + autoScaling: + compute: + enabled: true + minInstanceSize: {{ include "getInstanceSizeOrFail" $val.autoscaling.min }} + maxInstanceSize: {{ include "getInstanceSizeOrFail" $val.autoscaling.max }} + {{- end }} + {{- end }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-mongodb-user-secret.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-mongodb-user-secret.yaml new file mode 100644 index 0000000000..056a6338a3 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-mongodb-user-secret.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "atlas-advanced.fullname" $ }}-{{ .Values.dbUser.name }} + namespace: {{ $.Release.Namespace }} + labels: + atlas.mongodb.com/type: "credentials" + {{- include "atlas-advanced.labels" $ | nindent 4 }} +type: Opaque +stringData: + password: {{ .Values.dbUser.password | default (randAlphaNum 32 | b64enc)| quote }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-mongodb-user.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-mongodb-user.yaml new file mode 100644 index 0000000000..bb9903d98e --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-mongodb-user.yaml @@ -0,0 +1,18 @@ +apiVersion: atlas.mongodb.com/v1 +kind: AtlasDatabaseUser +metadata: + name: {{ include "atlas-advanced.fullname" $ }}-{{ .Values.dbUser.name }} + namespace: {{ $.Release.Namespace }} + labels: + {{- include "atlas-advanced.labels" $ | nindent 4 }} +spec: + username: {{ .Values.dbUser.name }} + databaseName: {{ .Values.dbUser.databaseName }} + passwordSecretRef: + name: {{ include "atlas-advanced.fullname" $ }}-{{ .Values.dbUser.name }} + projectRef: + name: {{ include "atlas-advanced.projectfullname" $ }} + namespace: {{ $.Release.Namespace }} + roles: + - roleName: "readWriteAnyDatabase" + databaseName: "admin" diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-project.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-project.yaml new file mode 100644 index 0000000000..ef6a43f861 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-project.yaml @@ -0,0 +1,15 @@ +apiVersion: atlas.mongodb.com/v1 +kind: AtlasProject +metadata: + name: {{ include "atlas-advanced.projectfullname" . }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "atlas-advanced.labels" . | nindent 4 }} +spec: + name: {{ include "atlas-advanced.projectfullname" . }} + connectionSecretRef: + name: {{ include "atlas-advanced.fullname" . }}-secret + namespace: {{ $.Release.Namespace }} + projectIpAccessList: + - comment: "Example" + cidrBlock: {{ .Values.project.cidrEntry }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-secret.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-secret.yaml new file mode 100644 index 0000000000..0280621870 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/templates/atlas-secret.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ include "atlas-advanced.fullname" . }}-secret + namespace: {{ .Release.Namespace }} + labels: + atlas.mongodb.com/type: "credentials" +data: + orgId: {{ .Values.secret.orgID | b64enc }} + publicApiKey: {{ .Values.secret.publicKey | b64enc }} + privateApiKey: {{ .Values.secret.privateKey | b64enc }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/values.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/values.yaml new file mode 100644 index 0000000000..0d12630ab8 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-advanced/values.yaml @@ -0,0 +1,43 @@ +secret: + orgID: "" + privateKey: "" + publicKey: "" + +project: + name: "" + cidrEntry: 0.0.0.0/0 + +deployment: + regions: + # For AWS: "US_GOV_WEST_1" "US_GOV_EAST_1" "US_EAST_1" "US_EAST_2" "US_WEST_1" "US_WEST_2" "CA_CENTRAL_1" "EU_NORTH_1" "EU_WEST_1" "EU_WEST_2" "EU_WEST_3" "EU_CENTRAL_1" "EU_CENTRAL_2" "AP_EAST_1" "AP_NORTHEAST_1" "AP_NORTHEAST_2" "AP_NORTHEAST_3" "AP_SOUTHEAST_1" "AP_SOUTHEAST_2" "AP_SOUTHEAST_3" "AP_SOUTHEAST_4" "AP_SOUTH_1" "AP_SOUTH_2" "SA_EAST_1" "CN_NORTH_1" "CN_NORTHWEST_1" "ME_SOUTH_1" "ME_CENTRAL_1" "AF_SOUTH_1" "EU_SOUTH_1" "EU_SOUTH_2" "IL_CENTRAL_1" "CA_WEST_1" "GLOBAL" + # For GCP: "EASTERN_US" "EASTERN_US_AW" "US_EAST_4" "US_EAST_4_AW" "US_EAST_5" "US_EAST_5_AW" "US_WEST_2" "US_WEST_2_AW" "US_WEST_3" "US_WEST_3_AW" "US_WEST_4" "US_WEST_4_AW" "US_SOUTH_1" "US_SOUTH_1_AW" "CENTRAL_US" "CENTRAL_US_AW" "WESTERN_US" "WESTERN_US_AW" "NORTH_AMERICA_NORTHEAST_1" "NORTH_AMERICA_NORTHEAST_2" "SOUTH_AMERICA_EAST_1" "SOUTH_AMERICA_WEST_1" "WESTERN_EUROPE" "EUROPE_NORTH_1" "EUROPE_WEST_2" "EUROPE_WEST_3" "EUROPE_WEST_4" "EUROPE_WEST_6" "EUROPE_WEST_8" "EUROPE_WEST_9" "EUROPE_WEST_10" "EUROPE_WEST_12" "EUROPE_SOUTHWEST_1" "EUROPE_CENTRAL_2" "MIDDLE_EAST_CENTRAL_1" "MIDDLE_EAST_CENTRAL_2" "MIDDLE_EAST_WEST_1" "AUSTRALIA_SOUTHEAST_1" "AUSTRALIA_SOUTHEAST_2" "EASTERN_ASIA_PACIFIC" "NORTHEASTERN_ASIA_PACIFIC" "SOUTHEASTERN_ASIA_PACIFIC" "ASIA_EAST_2" "ASIA_NORTHEAST_2" "ASIA_NORTHEAST_3" "ASIA_SOUTH_1" "ASIA_SOUTH_2" "ASIA_SOUTHEAST_2" + # FOR AZURE: "US_CENTRAL" "US_EAST" "US_EAST_2" "US_NORTH_CENTRAL" "US_WEST" "US_SOUTH_CENTRAL" "EUROPE_NORTH" "EUROPE_WEST" "US_WEST_CENTRAL" "US_WEST_2" "US_WEST_3" "CANADA_EAST" "CANADA_CENTRAL" "BRAZIL_SOUTH" "BRAZIL_SOUTHEAST" "AUSTRALIA_CENTRAL" "AUSTRALIA_CENTRAL_2" "AUSTRALIA_EAST" "AUSTRALIA_SOUTH_EAST" "GERMANY_CENTRAL" "GERMANY_NORTH_EAST" "GERMANY_WEST_CENTRAL" "GERMANY_NORTH" "SWEDEN_CENTRAL" "SWEDEN_SOUTH" "SWITZERLAND_NORTH" "SWITZERLAND_WEST" "UK_SOUTH" "UK_WEST" "NORWAY_EAST" "NORWAY_WEST" "INDIA_CENTRAL" "INDIA_SOUTH" "INDIA_WEST" "CHINA_EAST" "CHINA_NORTH" "ASIA_EAST" "JAPAN_EAST" "JAPAN_WEST" "ASIA_SOUTH_EAST" "KOREA_CENTRAL" "KOREA_SOUTH" "FRANCE_CENTRAL" "FRANCE_SOUTH" "SOUTH_AFRICA_NORTH" "SOUTH_AFRICA_WEST" "UAE_CENTRAL" "UAE_NORTH" "QATAR_CENTRAL" + # See the up to date list of regions and providers here: https://www.mongodb.com/docs/atlas/cloud-providers-regions/ + - name: US_EAST_1 + providerName: AWS + instanceSize: M10 + nodeCount: 2 + priority: 7 + autoscaling: + enabled: true + min: M10 + max: M20 + # For AWS: "US_GOV_WEST_1" "US_GOV_EAST_1" "US_EAST_1" "US_EAST_2" "US_WEST_1" "US_WEST_2" "CA_CENTRAL_1" "EU_NORTH_1" "EU_WEST_1" "EU_WEST_2" "EU_WEST_3" "EU_CENTRAL_1" "EU_CENTRAL_2" "AP_EAST_1" "AP_NORTHEAST_1" "AP_NORTHEAST_2" "AP_NORTHEAST_3" "AP_SOUTHEAST_1" "AP_SOUTHEAST_2" "AP_SOUTHEAST_3" "AP_SOUTHEAST_4" "AP_SOUTH_1" "AP_SOUTH_2" "SA_EAST_1" "CN_NORTH_1" "CN_NORTHWEST_1" "ME_SOUTH_1" "ME_CENTRAL_1" "AF_SOUTH_1" "EU_SOUTH_1" "EU_SOUTH_2" "IL_CENTRAL_1" "CA_WEST_1" "GLOBAL" + # For GCP: "EASTERN_US" "EASTERN_US_AW" "US_EAST_4" "US_EAST_4_AW" "US_EAST_5" "US_EAST_5_AW" "US_WEST_2" "US_WEST_2_AW" "US_WEST_3" "US_WEST_3_AW" "US_WEST_4" "US_WEST_4_AW" "US_SOUTH_1" "US_SOUTH_1_AW" "CENTRAL_US" "CENTRAL_US_AW" "WESTERN_US" "WESTERN_US_AW" "NORTH_AMERICA_NORTHEAST_1" "NORTH_AMERICA_NORTHEAST_2" "SOUTH_AMERICA_EAST_1" "SOUTH_AMERICA_WEST_1" "WESTERN_EUROPE" "EUROPE_NORTH_1" "EUROPE_WEST_2" "EUROPE_WEST_3" "EUROPE_WEST_4" "EUROPE_WEST_6" "EUROPE_WEST_8" "EUROPE_WEST_9" "EUROPE_WEST_10" "EUROPE_WEST_12" "EUROPE_SOUTHWEST_1" "EUROPE_CENTRAL_2" "MIDDLE_EAST_CENTRAL_1" "MIDDLE_EAST_CENTRAL_2" "MIDDLE_EAST_WEST_1" "AUSTRALIA_SOUTHEAST_1" "AUSTRALIA_SOUTHEAST_2" "EASTERN_ASIA_PACIFIC" "NORTHEASTERN_ASIA_PACIFIC" "SOUTHEASTERN_ASIA_PACIFIC" "ASIA_EAST_2" "ASIA_NORTHEAST_2" "ASIA_NORTHEAST_3" "ASIA_SOUTH_1" "ASIA_SOUTH_2" "ASIA_SOUTHEAST_2" + # FOR AZURE: "US_CENTRAL" "US_EAST" "US_EAST_2" "US_NORTH_CENTRAL" "US_WEST" "US_SOUTH_CENTRAL" "EUROPE_NORTH" "EUROPE_WEST" "US_WEST_CENTRAL" "US_WEST_2" "US_WEST_3" "CANADA_EAST" "CANADA_CENTRAL" "BRAZIL_SOUTH" "BRAZIL_SOUTHEAST" "AUSTRALIA_CENTRAL" "AUSTRALIA_CENTRAL_2" "AUSTRALIA_EAST" "AUSTRALIA_SOUTH_EAST" "GERMANY_CENTRAL" "GERMANY_NORTH_EAST" "GERMANY_WEST_CENTRAL" "GERMANY_NORTH" "SWEDEN_CENTRAL" "SWEDEN_SOUTH" "SWITZERLAND_NORTH" "SWITZERLAND_WEST" "UK_SOUTH" "UK_WEST" "NORWAY_EAST" "NORWAY_WEST" "INDIA_CENTRAL" "INDIA_SOUTH" "INDIA_WEST" "CHINA_EAST" "CHINA_NORTH" "ASIA_EAST" "JAPAN_EAST" "JAPAN_WEST" "ASIA_SOUTH_EAST" "KOREA_CENTRAL" "KOREA_SOUTH" "FRANCE_CENTRAL" "FRANCE_SOUTH" "SOUTH_AFRICA_NORTH" "SOUTH_AFRICA_WEST" "UAE_CENTRAL" "UAE_NORTH" "QATAR_CENTRAL" + # See the up to date list of regions and providers here: https://www.mongodb.com/docs/atlas/cloud-providers-regions/ + - name: EUROPE_WEST_2 + providerName: GCP + instanceSize: M10 + priority: 6 + nodeCount: 1 + autoscaling: + enabled: true + min: M10 + max: M20 + name: "" + +dbUser: + name: admin + databaseName: admin + password: "" diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/.helmignore b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/.helmignore new file mode 100644 index 0000000000..0e8a0eb36f --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/Chart.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/Chart.yaml new file mode 100644 index 0000000000..c8f6ff2a0e --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/Chart.yaml @@ -0,0 +1,18 @@ +apiVersion: v2 +name: atlas-basic +description: This chart showcases Atlas Basic (shared) deployment + +type: application + +version: 1.0.0 + +keywords: + - mongodb + - database + - nosql +home: https://github.com/mongodb/mongodb-atlas-kubernetes +icon: https://webimages.mongodb.com/_com_assets/cms/kuyjf3vea2hg34taa-horizontal_default_slate_blue.svg +appVersion: "2.4.1" +maintainers: + - name: MongoDB + email: support@mongodb.com diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/_helpers.tpl b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/_helpers.tpl new file mode 100644 index 0000000000..7ea235ab76 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/_helpers.tpl @@ -0,0 +1,84 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "atlas-basic.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "atlas-basic.fullname" -}} +{{- if .Values.deployment.name }} +{{- .Values.deployment.name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.deployment.name }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{- define "atlas-basic.projectfullname" -}} +{{- if .Values.project.name }} +{{- .Values.project.name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.project.name }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "atlas-basic.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "atlas-basic.labels" -}} +helm.sh/chart: {{ include "atlas-basic.chart" . }} +{{ include "atlas-basic.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "atlas-basic.selectorLabels" -}} +app.kubernetes.io/name: {{ include "atlas-basic.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{- define "generateRandomString" -}} +{{ randAlphaNum 5 }} +{{- end }} + +{{- define "getInstanceSizeOrFail" -}} +{{ $instances := list "M0" "M2" "M5"}} +{{- if not (has .Values.deployment.instanceSize $instances)}} +{{- fail "Instance size can only be one of M0, M2, M5" }} +{{- end }} +{{- .Values.deployment.instanceSize }} +{{- end }} + +{{- define "getProviderNameOrFail" -}} +{{ $providers := list "AWS" "GCP" "AZURE" }} +{{- if not (has .Values.deployment.providerName $providers) }} +{{- fail "Provider name can only be one of AWS, GCP, AZURE" }} +{{- end}} +{{- .Values.deployment.providerName }} +{{- end}} \ No newline at end of file diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-deployment.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-deployment.yaml new file mode 100644 index 0000000000..d783fe6520 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-deployment.yaml @@ -0,0 +1,24 @@ +apiVersion: atlas.mongodb.com/v1 +kind: AtlasDeployment +metadata: + name: {{ include "atlas-basic.fullname" $ }} + labels: + {{- include "atlas-basic.labels" $ | nindent 4 }} + namespace: {{ $.Release.Namespace }} +spec: + projectRef: + name: {{ include "atlas-basic.projectfullname" $ }} + namespace: {{ $.Release.Namespace }} + deploymentSpec: + name: {{ include "atlas-basic.fullname" $ }} + clusterType: REPLICASET + replicationSpecs: + - zoneName: Zone 1 + regionConfigs: + - electableSpecs: + instanceSize: {{ include "getInstanceSizeOrFail" $ }} + nodeCount: 1 + providerName: TENANT + backingProviderName: {{ include "getProviderNameOrFail" $ }} + regionName: {{ .Values.deployment.regionName }} + priority: 7 diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-mongodb-user-secret.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-mongodb-user-secret.yaml new file mode 100644 index 0000000000..1fbffb1dad --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-mongodb-user-secret.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "atlas-basic.fullname" $ }}-{{ .Values.dbUser.name }} + namespace: {{ $.Release.Namespace }} + labels: + atlas.mongodb.com/type: "credentials" + {{- include "atlas-basic.labels" $ | nindent 4 }} +type: Opaque +stringData: + password: {{ .Values.dbUser.password | default (randAlphaNum 32 | b64enc)| quote }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-mongodb-user.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-mongodb-user.yaml new file mode 100644 index 0000000000..ff38c9e0c9 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-mongodb-user.yaml @@ -0,0 +1,18 @@ +apiVersion: atlas.mongodb.com/v1 +kind: AtlasDatabaseUser +metadata: + name: {{ include "atlas-basic.fullname" $ }}-{{ .Values.dbUser.name }} + namespace: {{ $.Release.Namespace }} + labels: + {{- include "atlas-basic.labels" $ | nindent 4 }} +spec: + username: {{ .Values.dbUser.name }} + databaseName: {{ .Values.dbUser.databaseName }} + passwordSecretRef: + name: {{ include "atlas-basic.fullname" $ }}-{{ .Values.dbUser.name }} + projectRef: + name: {{ include "atlas-basic.projectfullname" $ }} + namespace: {{ $.Release.Namespace }} + roles: + - roleName: "readWriteAnyDatabase" + databaseName: "admin" diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-project.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-project.yaml new file mode 100644 index 0000000000..f14cb83fb6 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-project.yaml @@ -0,0 +1,15 @@ +apiVersion: atlas.mongodb.com/v1 +kind: AtlasProject +metadata: + name: {{ include "atlas-basic.projectfullname" . }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "atlas-basic.labels" . | nindent 4 }} +spec: + name: {{ include "atlas-basic.projectfullname" . }} + connectionSecretRef: + name: {{ include "atlas-basic.fullname" . }}-secret + namespace: {{ $.Release.Namespace }} + projectIpAccessList: + - comment: "Example" + cidrBlock: {{ .Values.project.cidrEntry }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-secret.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-secret.yaml new file mode 100644 index 0000000000..dbec0e89a7 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/templates/atlas-secret.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ include "atlas-basic.fullname" . }}-secret + namespace: {{ .Release.Namespace }} + labels: + atlas.mongodb.com/type: "credentials" +data: + orgId: {{ .Values.secret.orgID | b64enc }} + publicApiKey: {{ .Values.secret.publicKey | b64enc }} + privateApiKey: {{ .Values.secret.privateKey | b64enc }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/values.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/values.yaml new file mode 100644 index 0000000000..145babf1d5 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-basic/values.yaml @@ -0,0 +1,22 @@ +secret: + orgID: "" + privateKey: "" + publicKey: "" + +project: + name: "" + cidrEntry: 0.0.0.0/0 + +deployment: + name: "" + providerName: AWS + instanceSize: M2 + # For AWS: "US_GOV_WEST_1" "US_GOV_EAST_1" "US_EAST_1" "US_EAST_2" "US_WEST_1" "US_WEST_2" "CA_CENTRAL_1" "EU_NORTH_1" "EU_WEST_1" "EU_WEST_2" "EU_WEST_3" "EU_CENTRAL_1" "EU_CENTRAL_2" "AP_EAST_1" "AP_NORTHEAST_1" "AP_NORTHEAST_2" "AP_NORTHEAST_3" "AP_SOUTHEAST_1" "AP_SOUTHEAST_2" "AP_SOUTHEAST_3" "AP_SOUTHEAST_4" "AP_SOUTH_1" "AP_SOUTH_2" "SA_EAST_1" "CN_NORTH_1" "CN_NORTHWEST_1" "ME_SOUTH_1" "ME_CENTRAL_1" "AF_SOUTH_1" "EU_SOUTH_1" "EU_SOUTH_2" "IL_CENTRAL_1" "CA_WEST_1" "GLOBAL" + # For GCP: "EASTERN_US" "EASTERN_US_AW" "US_EAST_4" "US_EAST_4_AW" "US_EAST_5" "US_EAST_5_AW" "US_WEST_2" "US_WEST_2_AW" "US_WEST_3" "US_WEST_3_AW" "US_WEST_4" "US_WEST_4_AW" "US_SOUTH_1" "US_SOUTH_1_AW" "CENTRAL_US" "CENTRAL_US_AW" "WESTERN_US" "WESTERN_US_AW" "NORTH_AMERICA_NORTHEAST_1" "NORTH_AMERICA_NORTHEAST_2" "SOUTH_AMERICA_EAST_1" "SOUTH_AMERICA_WEST_1" "WESTERN_EUROPE" "EUROPE_NORTH_1" "EUROPE_WEST_2" "EUROPE_WEST_3" "EUROPE_WEST_4" "EUROPE_WEST_6" "EUROPE_WEST_8" "EUROPE_WEST_9" "EUROPE_WEST_10" "EUROPE_WEST_12" "EUROPE_SOUTHWEST_1" "EUROPE_CENTRAL_2" "MIDDLE_EAST_CENTRAL_1" "MIDDLE_EAST_CENTRAL_2" "MIDDLE_EAST_WEST_1" "AUSTRALIA_SOUTHEAST_1" "AUSTRALIA_SOUTHEAST_2" "EASTERN_ASIA_PACIFIC" "NORTHEASTERN_ASIA_PACIFIC" "SOUTHEASTERN_ASIA_PACIFIC" "ASIA_EAST_2" "ASIA_NORTHEAST_2" "ASIA_NORTHEAST_3" "ASIA_SOUTH_1" "ASIA_SOUTH_2" "ASIA_SOUTHEAST_2" + # FOR AZURE: "US_CENTRAL" "US_EAST" "US_EAST_2" "US_NORTH_CENTRAL" "US_WEST" "US_SOUTH_CENTRAL" "EUROPE_NORTH" "EUROPE_WEST" "US_WEST_CENTRAL" "US_WEST_2" "US_WEST_3" "CANADA_EAST" "CANADA_CENTRAL" "BRAZIL_SOUTH" "BRAZIL_SOUTHEAST" "AUSTRALIA_CENTRAL" "AUSTRALIA_CENTRAL_2" "AUSTRALIA_EAST" "AUSTRALIA_SOUTH_EAST" "GERMANY_CENTRAL" "GERMANY_NORTH_EAST" "GERMANY_WEST_CENTRAL" "GERMANY_NORTH" "SWEDEN_CENTRAL" "SWEDEN_SOUTH" "SWITZERLAND_NORTH" "SWITZERLAND_WEST" "UK_SOUTH" "UK_WEST" "NORWAY_EAST" "NORWAY_WEST" "INDIA_CENTRAL" "INDIA_SOUTH" "INDIA_WEST" "CHINA_EAST" "CHINA_NORTH" "ASIA_EAST" "JAPAN_EAST" "JAPAN_WEST" "ASIA_SOUTH_EAST" "KOREA_CENTRAL" "KOREA_SOUTH" "FRANCE_CENTRAL" "FRANCE_SOUTH" "SOUTH_AFRICA_NORTH" "SOUTH_AFRICA_WEST" "UAE_CENTRAL" "UAE_NORTH" "QATAR_CENTRAL" + regionName: US_EAST_1 + +dbUser: + name: admin + databaseName: admin + password: "" diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/.helmignore b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/.helmignore new file mode 100644 index 0000000000..0e8a0eb36f --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/Chart.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/Chart.yaml new file mode 100644 index 0000000000..248675bd96 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/Chart.yaml @@ -0,0 +1,18 @@ +apiVersion: v2 +name: atlas-deployment +description: A Helm chart to manage Atlas resources with Atlas operator + +type: application + +version: 2.8.0 + +keywords: +- mongodb +- database +- nosql +home: https://github.com/mongodb/mongodb-enterprise-kubernetes +icon: https://webimages.mongodb.com/_com_assets/cms/kuyjf3vea2hg34taa-horizontal_default_slate_blue.svg +appVersion: "2.8.0" +maintainers: + - name: MongoDB + email: support@mongodb.com diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/README.md b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/README.md new file mode 100644 index 0000000000..e1ced6c305 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/README.md @@ -0,0 +1,128 @@ +# MongoDB Atlas Cluster Helm Chart + +The MongoDB Atlas Operator provides a native integration between the Kubernetes +orchestration platform and MongoDB Atlas — the only multi-cloud document +database service that gives you the versatility you need to build sophisticated +and resilient applications that can adapt to changing customer demands and +market trends. + +The Atlas Cluster Helm Chart knows how to manager Atlas resources bound to +Custom Resources in your Kubernetes Cluster. These resources are: + +- Atlas Projects: An Atlas Project is a place to create your MongoDB deployments, + think of it as a _Folder_ for your deployments. +- Atlas Deployments: A MongoDB Database hosted in Atlas. An Atlas Cluster lives + inside an Atlas Project. +- Atlas Database User: An Atlas Database User is a User you can authenticate as + and login into an Atlas Cluster. + +By default the `atlas-deployment` Helm Chart will create a user to connect to the +newly deployed Atlas Cluster, avoiding having to do this from the Atlas UI. + +## Prerequisites + +In order to use this chart, the [Atlas Operator Helm Chart](../atlas-operator) +needs to be installed already. + +## Usage + +1. Register or login to [Atlas](https://cloud.mongodb.com). + +2. Create API Keys for your organization. You can find more information in + [here](https://docs.atlas.mongodb.com/configure-api-access). Make sure you + write down your: + + - Public API Key: `publicApiKey`, + - Private API Key: `privateApiKey` and + - Organization ID: `orgId`. + +3. Deploy MongoDB Atlas Cluster + +In the following example you have to set the correct ``, `publicKey` and `privateKey`. + +```shell +helm install atlas-deployment mongodb/atlas-deployment\ + --namespace=my-deployment \ + --create-namespace \ + --set project.atlasProjectName='My Project' \ + --set atlas.secret.orgId='' \ + --set atlas.secret.publicApiKey='' \ + --set atlas.secret.privateApiKey='' +``` +Note, by default a random password will be generated. You can optionally also pass in a random username, however since this value is shared across templates this must be passed in, for example: + +```shell +helm template --set "users[0].username=$(mktemp | cut -f2 -d.)" my-deployment mongodb/atlas-deployment +``` + +## Connecting to MongoDB Atlas Cluster + +The current state of your new Atlas deployment can be found in the +`status.conditions` array from the `AtlasCluster` resource: + +```shell +kubectl get atlasdatabaseusers atlas-deployment-admin-user -o=jsonpath='{.status.conditions[?(@.type=="Ready")].status}' +``` + +Default HELM Chart values will create single Atlas Admin user with name +`atlas-deployment-admin-user`. Check the status of `AtlasDatabaseUser` resource for +Ready state. + +You can test that the configuration is correct with the following command: + +```shell +mongo $(kubectl -n my-deployment get secrets/my-project-atlas-deployment-admin-user -o jsonpath='{.data.connectionString\.standardSrv}' | base64 -d) +``` + +And Mongo Shell (`mongo`) should be able to connect and output something like: + +```shell +MongoDB shell version v4.4.3 +connecting to: mongodb://connection-string +Implicit session: session { "id" : UUID("xxx") } +MongoDB server version: 5.0.1 +MongoDB Enterprise atlas-test-shard-0:PRIMARY> _ +``` + +You have successfully connected to your Atlas instance! + +## Example: Mounting Connection String to a Pod + +You could use this secret to mount to an application, for example, the +_Connection String_ could be added as an environmental variable, that can be +easily consumed by your application. + +``` +containers: + - name: test-app + env: + - name: "CONNECTION_STRING" + valueFrom: + secretKeyRef: + name: my-project-atlas-deployment-admin-user + key: connectionString.standardSrv +``` + +## Upgrade Notes + +Atlas-operator version 0.6.1+ has to delete finalizers - this change requires additional steps. + +Manual workaround for the update from Atlas-deployment-0.1.7: +1. Need to remove manually the "helm.sh/hook" from Atlasproject + +```bash +kubectl annotate atlasproject helm.sh/hook- --selector app.kubernetes.io/instance= +``` + +2. Need to add helm ownership annotation "meta.helm.sh/release-name" and "meta.helm.sh/release-namespace" + +```bash +kubectl annotate atlasproject meta.helm.sh/release-name= --selector app.kubernetes.io/instance= +kubectl annotate atlasproject meta.helm.sh/release-namespace= --selector app.kubernetes.io/instance= +``` + +3. Run update + +```bash +helm upgrade mongodb/atlas-deployment +``` diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/NOTES.txt b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/NOTES.txt new file mode 100644 index 0000000000..9ede882ce2 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/NOTES.txt @@ -0,0 +1,18 @@ + +Thank you for installing {{ .Chart.Name }}. + +Your release is named {{ .Release.Name }}. + +{{- if .Values.users }} +User connection secrets are: +{{- range $index, $user := .Values.users }} +User {{ $index }}: {{ $user.username }} + Secret name: {{ include "atlas-deployment.fullname" $ }}-{{ $user.username }} + Secret namespace: {{ $.Release.Namespace }} + +{{- end }} +{{- end }} +To learn more about the release, try: + + $ helm status {{ .Release.Name }} + $ helm get all {{ .Release.Name }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/_helpers.tpl b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/_helpers.tpl new file mode 100644 index 0000000000..a5aeee02b2 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/_helpers.tpl @@ -0,0 +1,75 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "atlas-deployment.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "atlas-deployment.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create a default fully qualified Atlas Project name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "atlas-deployment.projectfullname" -}} +{{- if .Values.project.fullnameOverride }} +{{- .Values.project.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Release.Name }} +{{- printf "%s-%s" $name .Values.project.name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "atlas-deployment.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "atlas-deployment.labels" -}} +helm.sh/chart: {{ include "atlas-deployment.chart" . }} +{{ include "atlas-deployment.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "atlas-deployment.selectorLabels" -}} +app.kubernetes.io/name: {{ include "atlas-deployment.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "atlas-deployment.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "atlas-deployment.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-deployment.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-deployment.yaml new file mode 100644 index 0000000000..218bb3a7b7 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-deployment.yaml @@ -0,0 +1,66 @@ +{{- range .Values.deployments }} +--- +apiVersion: atlas.mongodb.com/v1 +kind: AtlasDeployment +metadata: + {{- if .serverlessSpec }} + name: {{ .serverlessSpec.name }} + {{- else if .deploymentSpec }} + name: {{ .deploymentSpec.name }} + {{- else if .flexSpec }} + name: {{ .flexSpec.name }} + {{- end }} + labels: + {{- include "atlas-deployment.labels" $ | nindent 4 }} + namespace: {{ $.Release.Namespace }} + {{- if .annotations }} + annotations: +{{ toYaml .annotations | indent 4 }} + {{- end }} +spec: + projectRef: + name: {{ include "atlas-deployment.projectfullname" $ }} + {{- if .deploymentSpec }} + deploymentSpec: + {{- toYaml .deploymentSpec | nindent 4 }} + {{- end }} + {{- if .serverlessSpec}} + serverlessSpec: + {{- toYaml .serverlessSpec | nindent 4}} + {{- end }} + {{- if .flexSpec}} + flexSpec: + {{- toYaml .flexSpec | nindent 4}} + {{- end }} +{{- end }} + +{{- if $.Values.postInstallHook.enabled }} +--- +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ .name | quote }} + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-weight": "1" + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed +spec: + template: + metadata: + name: {{ .name | quote }} + labels: + app.kubernetes.io/managed-by: {{ .name | quote }} + app.kubernetes.io/instance: {{ .name | quote }} + spec: + serviceAccountName: mongodb-atlas-operator + restartPolicy: Never + containers: + - name: post-install-job + imagePullPolicy: Always + image: "{{ $.Values.postInstallHook.registry }}/{{ $.Values.postInstallHook.image }}:{{ $.Values.postInstallHook.version }}" + env: + - name: "CLUSTER_NAME" + value: "{{ .name }}" + - name: "NAMESPACE" + value: "{{ $.Release.Namespace }}" +{{- end }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-mongodb-user-secret.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-mongodb-user-secret.yaml new file mode 100644 index 0000000000..d55743658d --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-mongodb-user-secret.yaml @@ -0,0 +1,16 @@ +{{- if .Values.project.create }} +{{- range .Values.users }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "atlas-deployment.fullname" $ }}-{{ .username }} + namespace: {{ $.Release.Namespace }} + labels: + atlas.mongodb.com/type: "credentials" + {{- include "atlas-deployment.labels" $ | nindent 4 }} +type: Opaque +stringData: + password: {{ .password | default (randAlphaNum 32 | b64enc)| quote }} +{{- end }} +{{- end }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-mongodb-user.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-mongodb-user.yaml new file mode 100644 index 0000000000..9ec63e847f --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-mongodb-user.yaml @@ -0,0 +1,32 @@ +{{- if .Values.project.create }} +{{- range .Values.users }} +--- +apiVersion: atlas.mongodb.com/v1 +kind: AtlasDatabaseUser +metadata: + name: {{ include "atlas-deployment.fullname" $ }}-{{ .username }} + namespace: {{ $.Release.Namespace }} + labels: + {{- include "atlas-deployment.labels" $ | nindent 4 }} +spec: + username: {{ .username }} + databaseName: {{ .databaseName }} + passwordSecretRef: + name: {{ include "atlas-deployment.fullname" $ }}-{{ .username }} + projectRef: + name: {{ include "atlas-deployment.projectfullname" $ }} + roles: + {{- toYaml .roles | nindent 4 }} + {{- if .deleteAfterDate }} + deleteAfterDate: {{ .deleteAfterDate }} + {{- end }} + {{- if .labels }} + labels: + {{- toYaml .labels | nindent 4 }} + {{- end }} + {{- if .scopes }} + scopes: + {{- toYaml .scopes | nindent 4 }} + {{- end }} +{{- end }} +{{- end }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-project.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-project.yaml new file mode 100644 index 0000000000..23ac0e5d24 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-project.yaml @@ -0,0 +1,29 @@ +{{- if .Values.project.create }} +apiVersion: atlas.mongodb.com/v1 +kind: AtlasProject +metadata: + name: {{ include "atlas-deployment.projectfullname" . }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "atlas-deployment.labels" . | nindent 4 }} + {{- if .Values.project.annotations }} + annotations: +{{ toYaml .Values.project.annotations | indent 4 }} + {{- end }} +spec: + name: {{ .Values.project.atlasProjectName }} +{{- if not .Values.atlas.secret.global }} + connectionSecretRef: +{{- if .Values.atlas.secret.existing }} + name: {{ .Values.atlas.secret.existing }} +{{- else if .Values.atlas.secret.setCustomName }} + name: {{ .Values.atlas.secret.setCustomName }} +{{- else }} + name: {{ include "atlas-deployment.fullname" . }}-secret +{{- end }} +{{- end }} + projectIpAccessList: + {{- with .Values.project.projectIpAccessList }} + {{- toYaml . | nindent 2 }} + {{- end }} +{{- end }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-secret.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-secret.yaml new file mode 100644 index 0000000000..86d5dee598 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/templates/atlas-secret.yaml @@ -0,0 +1,21 @@ +{{- if and (not .Values.atlas.secret.global) (not .Values.atlas.secret.existing) }} +apiVersion: v1 +kind: Secret +type: Opaque +metadata: +{{- if .Values.atlas.secret.setCustomName }} + name: {{ .Values.atlas.secret.setCustomName}} +{{- else }} + name: {{ include "atlas-deployment.fullname" . }}-secret +{{- end }} + namespace: {{ .Release.Namespace }} + labels: + atlas.mongodb.com/type: "credentials" + {{- include "atlas-deployment.labels" . | nindent 4 }} + annotations: + 'helm.sh/hook': post-delete,pre-install,pre-upgrade +data: + orgId: {{ .Values.atlas.secret.orgId| b64enc }} + publicApiKey: {{ .Values.atlas.secret.publicApiKey| b64enc }} + privateApiKey: {{ .Values.atlas.secret.privateApiKey| b64enc }} +{{- end }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/values.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/values.yaml new file mode 100644 index 0000000000..47d20d2db1 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-deployment/values.yaml @@ -0,0 +1,124 @@ +mongodbAtlasOperator: + enabled: true + +postInstallHook: + version: 1.0.1 + registry: quay.io/mongodb + image: atlas-operator-post-install-hook + # enabled "true" will create a post install job which waits for the created + # resources to reach the ready state. + enabled: false + +# Please provide Atlas API credentials and Organization +atlas: + secret: + # project uses Global Key (highest priority) + global: false + # secret already exist in the same namespace + existing: "" + + orgId: "" + publicApiKey: "" + privateApiKey: "" + # use custom secret name during new secret creation + setCustomName: "" + + +project: + create: true + name: my-project + atlasProjectName: "Test Project" + annotations: {} + # mongodb.com/atlas-resource-policy: keep + # fullnameOverride: "" + + projectIpAccessList: + - ipAddress: "0.0.0.0" + comment: "REMOVE ME" + +# include either deploymentSpec, serverlessSpec, or flexSpec +# see https://www.mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Clusters/operation/createCluster for +# options for creating advanced clusters. + +deployments: + - deploymentSpec: + name: cluster-name + clusterType: REPLICASET + annotations: {} + # mongodb.com/atlas-resource-policy: keep + replicationSpecs: + - zoneName: Zone 1 + regionConfigs: + - electableSpecs: + instanceSize: M2 + nodeCount: 1 + providerName: TENANT + backingProviderName: "AWS" + regionName: US_EAST_1 + priority: 7 + +# More advanced, multiregional, multitenant cluster +# deploymentSpec: +# clusterType: GEOSHARDED +# name: advanced-deployment +# replicationSpecs: +# - numShards: 1 +# zoneName: Zone1 +# regionConfigs: +# - electableSpecs: +# instanceSize: M10 +# nodeCount: 3 +# providerName: AZURE +# backingProviderName: AZURE +# regionName: EUROPE_NORTH +# priority: 7 + +# - numShards: 1 +# zoneName: Zone2 +# regionConfigs: +# - electableSpecs: +# instanceSize: M10 +# nodeCount: 3 +# providerName: AWS +# backingProviderName: AWS +# regionName: US_EAST_1 +# priority: 7 + +# - numShards: 1 +# zoneName: Zone3 +# regionConfigs: +# - electableSpecs: +# instanceSize: M10 +# nodeCount: 3 +# providerName: GCP +# backingProviderName: GCP +# regionName: EASTERN_US +# priority: 7 + +# Configure a Serverless Instance +# https://www.mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Serverless-Instances/operation/createServerlessInstance +# - serverlessSpec: +# name: serverless-instance +# providerSettings: +# providerName: SERVERLESS +# backingProviderName: AWS +# regionName: US_EAST_1 + +# Configure a Flex Instance +# https://www.mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Serverless-Instances/operation/createServerlessInstance +# - flexSpec: +# name: flex-instance +# providerSettings: +# backingProviderName: AWS +# regionName: US_EAST_1 + +users: + - username: admin-user + databaseName: admin + password: + roles: + - databaseName: admin + roleName: atlasAdmin + # deleteAfterDate: + # labels: + # scopes: diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/.helmignore b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/.helmignore new file mode 100644 index 0000000000..0e8a0eb36f --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/Chart.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/Chart.yaml new file mode 100644 index 0000000000..84d75faf2d --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/Chart.yaml @@ -0,0 +1,18 @@ +apiVersion: v2 +name: mongodb-atlas-operator-crds +description: MongoDB Atlas Operator CRDs - Helm chart for installing and upgrading Custom Resource Definitions (CRDs) for the Atlas Operator. +type: application +version: test-0.0.0-dev +appVersion: test-0.0.0-dev +kubeVersion: ">=1.15.0-0" +keywords: + - mongodb + - atlas + - database + - cluster + - nosql +home: https://github.com/mongodb/mongodb-atlas-kubernetes +icon: https://camo.githubusercontent.com/d473c25e361fb2206f06bdcf24028e8d52bc30d1/68747470733a2f2f6d6f6e676f64622d6b756265726e657465732d6f70657261746f722e73332e616d617a6f6e6177732e636f6d2f696d672f4c6561662d466f7265737425343032782e706e67 +maintainers: + - name: MongoDB + email: support@mongodb.com diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/README.md b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/README.md new file mode 100644 index 0000000000..9d349957de --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/README.md @@ -0,0 +1,26 @@ +# MongoDB Atlas Operator CRDs Helm Chart + +A Helm chart for installing and upgrading Custom Resource Definitions (CRDs) for +the [MongoDB Atlas +Operator](https://github.com/mongodb/mongodb-atlas-kubernetes). These CRDs are +required by the [Atlas Operator](../atlas-operator/) to work. + +This Helm chart can be installed manually, following these instructions. If needed, it can +also be installed automatically as a dependency by the [Atlas +Operator](../atlas-operator/). + +## Usage + +_If you haven't done it yet, [add the MongoDB Helm repository](../README.md)._ + +Installing the CRDs into the Kubernetes Cluster: + +``` +helm install atlas-operator-crds mongodb/mongodb-atlas-operator-crds +``` + +Upgrading the CRDs: + +``` +helm upgrade atlas-operator-crds mongodb/mongodb-atlas-operator-crds +``` diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/NOTES.txt b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/NOTES.txt new file mode 100644 index 0000000000..5563e76b94 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/NOTES.txt @@ -0,0 +1 @@ +Thank you for installing {{ .Chart.Name }}. \ No newline at end of file diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/_helpers.tpl b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/_helpers.tpl new file mode 100644 index 0000000000..3e6a7bc234 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/_helpers.tpl @@ -0,0 +1,54 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "mongodb-atlas-operator-crds.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "mongodb-atlas-operator-crds.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "mongodb-atlas-operator-crds.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "mongodb-atlas-operator-crds.labels" -}} +helm.sh/chart: {{ include "mongodb-atlas-operator-crds.chart" . }} +{{ include "mongodb-atlas-operator-crds.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- range $key, $value := .Values.extraLabels }} +{{ $key }}: {{ $value }} +{{- end }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "mongodb-atlas-operator-crds.selectorLabels" -}} +app.kubernetes.io/name: {{ include "mongodb-atlas-operator-crds.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} \ No newline at end of file diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasbackupcompliancepolicies.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasbackupcompliancepolicies.yaml new file mode 100644 index 0000000000..ae753fdc78 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasbackupcompliancepolicies.yaml @@ -0,0 +1,237 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasbackupcompliancepolicies.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasBackupCompliancePolicy + listKind: AtlasBackupCompliancePolicyList + plural: atlasbackupcompliancepolicies + shortNames: + - abcp + singular: atlasbackupcompliancepolicy + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: The AtlasBackupCompliancePolicy is a configuration that enforces + specific backup and retention requirements + 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: AtlasBackupCompliancePolicySpec is the specification of the + desired configuration of backup compliance policy + properties: + authorizedEmail: + description: Email address of the user who authorized to update the + Backup Compliance Policy settings. + type: string + authorizedUserFirstName: + description: First name of the user who authorized to updated the + Backup Compliance Policy settings. + type: string + authorizedUserLastName: + description: Last name of the user who authorized to updated the Backup + Compliance Policy settings. + type: string + copyProtectionEnabled: + description: Flag that indicates whether to prevent cluster users + from deleting backups copied to other regions, even if those additional + snapshot regions are removed. + type: boolean + encryptionAtRestEnabled: + description: Flag that indicates whether Encryption at Rest using + Customer Key Management is required for all clusters with a Backup + Compliance Policy. + type: boolean + onDemandPolicy: + description: Specifications for on-demand policy. + properties: + retentionUnit: + description: 'Scope of the backup policy item: days, weeks, or + months' + enum: + - days + - weeks + - months + type: string + retentionValue: + description: Value to associate with RetentionUnit + type: integer + required: + - retentionUnit + - retentionValue + type: object + overwriteBackupPolicies: + description: Flag that indicates whether to overwrite non complying + backup policies with the new data protection settings or not. + type: boolean + pointInTimeEnabled: + description: Flag that indicates whether the cluster uses Continuous + Cloud Backups with a Backup Compliance Policy. + type: boolean + restoreWindowDays: + description: Number of previous days that you can restore back to + with Continuous Cloud Backup with a Backup Compliance Policy. This + parameter applies only to Continuous Cloud Backups with a Backup + Compliance Policy. + type: integer + scheduledPolicyItems: + description: List that contains the specifications for one scheduled + policy. + items: + properties: + frequencyInterval: + description: |- + Desired frequency of the new backup policy item specified by FrequencyType. A value of 1 specifies the first instance of the corresponding FrequencyType. + The only accepted value you can set for frequency interval with NVMe clusters is 12. + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 17 + - 18 + - 19 + - 20 + - 21 + - 22 + - 23 + - 24 + - 25 + - 26 + - 27 + - 28 + - 40 + type: integer + frequencyType: + description: 'Frequency associated with the backup policy item. + One of the following values: hourly, daily, weekly or monthly. + You cannot specify multiple hourly and daily backup policy + items.' + enum: + - hourly + - daily + - weekly + - monthly + - yearly + type: string + retentionUnit: + description: 'Scope of the backup policy item: days, weeks, + or months' + enum: + - days + - weeks + - months + - years + type: string + retentionValue: + description: Value to associate with RetentionUnit + type: integer + required: + - frequencyInterval + - frequencyType + - retentionUnit + - retentionValue + type: object + type: array + required: + - authorizedEmail + - authorizedUserFirstName + - authorizedUserLastName + type: object + status: + 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 + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasbackuppolicies.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasbackuppolicies.yaml new file mode 100644 index 0000000000..28654a55df --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasbackuppolicies.yaml @@ -0,0 +1,183 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasbackuppolicies.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasBackupPolicy + listKind: AtlasBackupPolicyList + plural: atlasbackuppolicies + shortNames: + - abp + singular: atlasbackuppolicy + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasBackupPolicy is the Schema for the atlasbackuppolicies 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: AtlasBackupPolicySpec defines the desired state of AtlasBackupPolicy + properties: + items: + description: A list of BackupPolicy items + items: + properties: + frequencyInterval: + description: |- + Desired frequency of the new backup policy item specified by FrequencyType. A value of 1 specifies the first instance of the corresponding FrequencyType. + The only accepted value you can set for frequency interval with NVMe clusters is 12. + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 17 + - 18 + - 19 + - 20 + - 21 + - 22 + - 23 + - 24 + - 25 + - 26 + - 27 + - 28 + - 40 + type: integer + frequencyType: + description: 'Frequency associated with the backup policy item. + One of the following values: hourly, daily, weekly or monthly. + You cannot specify multiple hourly and daily backup policy + items.' + enum: + - hourly + - daily + - weekly + - monthly + - yearly + type: string + retentionUnit: + description: 'Scope of the backup policy item: days, weeks, + or months' + enum: + - days + - weeks + - months + - years + type: string + retentionValue: + description: Value to associate with RetentionUnit + type: integer + required: + - frequencyInterval + - frequencyType + - retentionUnit + - retentionValue + type: object + type: array + required: + - items + type: object + status: + properties: + backupScheduleIDs: + description: DeploymentID of the deployment using the backup policy + items: + type: string + type: array + 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 + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasbackupschedules.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasbackupschedules.yaml new file mode 100644 index 0000000000..b84359b2d1 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasbackupschedules.yaml @@ -0,0 +1,212 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasbackupschedules.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasBackupSchedule + listKind: AtlasBackupScheduleList + plural: atlasbackupschedules + shortNames: + - abs + singular: atlasbackupschedule + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasBackupSchedule is the Schema for the atlasbackupschedules + 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: AtlasBackupScheduleSpec defines the desired state of AtlasBackupSchedule + properties: + autoExportEnabled: + default: false + description: Specify true to enable automatic export of cloud backup + snapshots to the AWS bucket. You must also define the export policy + using export. If omitted, defaults to false. + type: boolean + copySettings: + description: Copy backups to other regions for increased resiliency + and faster restores. + items: + properties: + cloudProvider: + default: AWS + description: Identifies the cloud provider that stores the snapshot + copy. + enum: + - AWS + - GCP + - AZURE + type: string + frequencies: + description: List that describes which types of snapshots to + copy. + items: + type: string + minItems: 1 + type: array + regionName: + description: Target region to copy snapshots belonging to replicationSpecId + to. + type: string + shouldCopyOplogs: + description: Flag that indicates whether to copy the oplogs + to the target region. + type: boolean + type: object + type: array + export: + description: Export policy for automatically exporting cloud backup + snapshots to AWS bucket. + properties: + exportBucketId: + description: Unique Atlas identifier of the AWS bucket which was + granted access to export backup snapshot + type: string + frequencyType: + default: monthly + enum: + - monthly + type: string + required: + - exportBucketId + - frequencyType + type: object + policy: + description: A reference (name & namespace) for backup policy in the + desired updated backup policy. + 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 + referenceHourOfDay: + description: UTC Hour of day between 0 and 23, inclusive, representing + which hour of the day that Atlas takes snapshots for backup policy + items + format: int64 + maximum: 23 + minimum: 0 + type: integer + referenceMinuteOfHour: + description: UTC Minutes after ReferenceHourOfDay that Atlas takes + snapshots for backup policy items. Must be between 0 and 59, inclusive. + format: int64 + maximum: 59 + minimum: 0 + type: integer + restoreWindowDays: + default: 1 + description: Number of days back in time you can restore to with Continuous + Cloud Backup accuracy. Must be a positive, non-zero integer. Applies + to continuous cloud backups only. + format: int64 + type: integer + updateSnapshots: + description: Specify true to apply the retention changes in the updated + backup policy to snapshots that Atlas took previously. + type: boolean + useOrgAndGroupNamesInExportPrefix: + description: Specify true to use organization and project names instead + of organization and project UUIDs in the path for the metadata files + that Atlas uploads to your S3 bucket after it finishes exporting + the snapshots + type: boolean + required: + - policy + type: object + status: + 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 + deploymentID: + items: + type: string + type: array + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlascustomroles.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlascustomroles.yaml new file mode 100644 index 0000000000..bd8823432e --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlascustomroles.yaml @@ -0,0 +1,223 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlascustomroles.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasCustomRole + listKind: AtlasCustomRoleList + plural: atlascustomroles + shortNames: + - acr + singular: atlascustomrole + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .spec.role.name + name: Name + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasCustomRole is the Schema for the AtlasCustomRole 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: AtlasCustomRoleSpec defines the desired state of CustomRole + in Atlas + properties: + 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 + role: + properties: + actions: + description: List of the individual privilege actions that the + role grants. + items: + properties: + name: + description: Human-readable label that identifies the privilege + action. + type: string + resources: + description: List of resources on which you grant the action. + items: + properties: + cluster: + description: Flag that indicates whether to grant + the action on the cluster resource. If true, MongoDB + Cloud ignores Database and Collection parameters. + type: boolean + collection: + description: Human-readable label that identifies + the collection on which you grant the action to + one MongoDB user. + type: string + database: + description: Human-readable label that identifies + the database on which you grant the action to one + MongoDB user. + type: string + type: object + type: array + required: + - name + - resources + type: object + type: array + inheritedRoles: + description: List of the built-in roles that this custom role + inherits. + items: + properties: + database: + description: Human-readable label that identifies the database + on which someone grants the action to one MongoDB user. + type: string + name: + description: Human-readable label that identifies the role + inherited. + type: string + required: + - database + - name + type: object + type: array + name: + description: Human-readable label that identifies the role. This + name must be unique for this custom role in this project. + type: string + required: + - name + type: object + required: + - role + 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) + status: + description: |- + AtlasCustomRoleStatus is a status for the AtlasCustomRole 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 + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasdatabaseusers.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasdatabaseusers.yaml new file mode 100644 index 0000000000..ab5bdd5df6 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasdatabaseusers.yaml @@ -0,0 +1,309 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasdatabaseusers.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasDatabaseUser + listKind: AtlasDatabaseUserList + plural: atlasdatabaseusers + shortNames: + - adu + singular: atlasdatabaseuser + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.name + name: Name + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .spec.username + name: Username + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasDatabaseUser is the Schema for the Atlas Database User 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: AtlasDatabaseUserSpec defines the desired state of Database + User in Atlas + properties: + awsIamType: + default: NONE + description: |- + Human-readable label that indicates whether the new database + user authenticates with the Amazon Web Services (AWS) + Identity and Access Management (IAM) credentials associated with + the user or the user's role + enum: + - NONE + - USER + - ROLE + 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 + databaseName: + default: admin + description: |- + DatabaseName is a Database against which Atlas authenticates the user. + If the user authenticates with AWS IAM, x.509, LDAP, or OIDC Workload this value should be '$external'. + If the user authenticates with SCRAM-SHA or OIDC Workforce, this value should be 'admin'. + Default value is 'admin'. + type: string + deleteAfterDate: + description: |- + DeleteAfterDate is a timestamp in ISO 8601 date and time format in UTC after which Atlas deletes the user. + The specified date must be in the future and within one week. + type: string + description: + description: Description of this database user. Maximum 100 characters. + maxLength: 100 + type: string + 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 + labels: + description: |- + Labels is an array containing key-value pairs that tag and categorize the database user. + Each key and value has a maximum length of 255 characters. + items: + description: LabelSpec contains key-value pairs that tag and categorize + the Cluster/DBUser + properties: + key: + maxLength: 255 + type: string + value: + type: string + required: + - key + - value + type: object + type: array + oidcAuthType: + default: NONE + description: |- + Human-readable label that indicates whether the new database Username with OIDC federated authentication. + To create a federated authentication group (Workforce), specify the value of IDP_GROUP in this field. + To create a federated authentication user (Workload), specify the value of USER in this field. + enum: + - NONE + - IDP_GROUP + - USER + type: string + passwordSecretRef: + description: PasswordSecret is a reference to the Secret keeping the + user password. + properties: + name: + description: Name is the name of the Kubernetes Resource + type: string + required: + - name + 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 + roles: + description: |- + Roles is an array of this user's roles and the databases / collections on which the roles apply. A role allows + the user to perform particular actions on the specified database. + items: + description: |- + RoleSpec allows the user to perform particular actions on the specified database. + A role on the admin database can include privileges that apply to the other databases as well. + properties: + collectionName: + description: CollectionName is a collection for which the role + applies. + type: string + databaseName: + description: |- + DatabaseName is a database on which the user has the specified role. A role on the admin database can include + privileges that apply to the other databases. + type: string + roleName: + description: RoleName is a name of the role. This value can + either be a built-in role or a custom role. + type: string + required: + - databaseName + - roleName + type: object + minItems: 1 + type: array + scopes: + description: Scopes is an array of clusters and Atlas Data Lakes that + this user has access to. + items: + description: |- + ScopeSpec if present a database user only have access to the indicated resource (Cluster or Atlas Data Lake) + if none is given then it has access to all. + It's highly recommended to restrict the access of the database users only to a limited set of resources. + properties: + name: + description: Name is a name of the cluster or Atlas Data Lake + that the user has access to. + type: string + type: + description: Type is a type of resource that the user has access + to. + enum: + - CLUSTER + - DATA_LAKE + type: string + required: + - name + - type + type: object + type: array + username: + description: |- + Username is a username for authenticating to MongoDB + Human-readable label that represents the user that authenticates to MongoDB. The format of this label depends on the method of authentication: + In case of AWS IAM: the value should be AWS ARN for the IAM User/Role; + In case of OIDC Workload or Workforce: the value should be the Atlas OIDC IdP ID, followed by a '/', followed by the IdP group name; + In case of Plain text auth: the value can be anything + maxLength: 1024 + type: string + x509Type: + default: NONE + description: X509Type is X.509 method by which the database authenticates + the provided username + enum: + - NONE + - MANAGED + - CUSTOMER + type: string + required: + - roles + - username + 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) + status: + description: AtlasDatabaseUserStatus defines the observed state of 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 + name: + description: UserName is the current name of database user. + 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 + passwordVersion: + description: PasswordVersion is the 'ResourceVersion' of the password + Secret that the Atlas Operator is aware of + type: string + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasdatafederations.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasdatafederations.yaml new file mode 100644 index 0000000000..e6358f06a8 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasdatafederations.yaml @@ -0,0 +1,272 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasdatafederations.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasDataFederation + listKind: AtlasDataFederationList + plural: atlasdatafederations + shortNames: + - adf + singular: atlasdatafederation + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.name + name: Name + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasDataFederation is the Schema for the Atlas Data Federation + 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: + properties: + cloudProviderConfig: + properties: + aws: + properties: + roleId: + type: string + testS3Bucket: + type: string + type: object + type: object + dataProcessRegion: + properties: + cloudProvider: + enum: + - AWS + type: string + region: + enum: + - SYDNEY_AUS + - MUMBAI_IND + - FRANKFURT_DEU + - DUBLIN_IRL + - LONDON_GBR + - VIRGINIA_USA + - OREGON_USA + - SAOPAULO_BRA + - SINGAPORE_SGP + type: string + type: object + name: + type: string + privateEndpoints: + items: + properties: + endpointId: + type: string + provider: + type: string + type: + type: string + type: object + type: array + projectRef: + description: Project is a reference to AtlasProject resource the deployment + belongs to + 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 + storage: + properties: + databases: + items: + properties: + collections: + items: + properties: + dataSources: + items: + properties: + allowInsecure: + type: boolean + collection: + type: string + collectionRegex: + type: string + database: + type: string + databaseRegex: + type: string + defaultFormat: + enum: + - .avro + - .avro.bz2 + - .avro.gz + - .bson + - .bson.bz2 + - .bson.gz + - .bsonx + - .csv + - .csv.bz2 + - .csv.gz + - .json + - .json.bz2 + - .json.gz + - .orc + - .parquet + - .tsv + - .tsv.bz2 + - .tsv.gz + type: string + path: + type: string + provenanceFieldName: + type: string + storeName: + type: string + urls: + items: + type: string + type: array + type: object + type: array + name: + type: string + type: object + type: array + maxWildcardCollections: + type: integer + name: + type: string + views: + items: + properties: + name: + type: string + pipeline: + type: string + source: + type: string + type: object + type: array + type: object + type: array + stores: + items: + properties: + additionalStorageClasses: + items: + type: string + type: array + bucket: + type: string + delimiter: + type: string + includeTags: + type: boolean + name: + type: string + prefix: + type: string + provider: + type: string + public: + type: boolean + region: + type: string + type: object + type: array + type: object + required: + - name + - projectRef + type: object + status: + 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 + mongoDBVersion: + description: MongoDBVersion is the version of MongoDB the cluster + runs, in . format. + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasdeployments.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasdeployments.yaml new file mode 100644 index 0000000000..ee50f4245f --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasdeployments.yaml @@ -0,0 +1,1190 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasdeployments.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasDeployment + listKind: AtlasDeploymentList + plural: atlasdeployments + shortNames: + - ad + singular: atlasdeployment + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.stateName + name: Atlas State + type: string + - jsonPath: .status.mongoDBVersion + name: MongoDB Version + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasDeployment is the Schema for the atlasdeployments 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: |- + AtlasDeploymentSpec defines the desired state of AtlasDeployment + Only one of DeploymentSpec, AdvancedDeploymentSpec and ServerlessSpec should be defined + properties: + backupRef: + description: Backup schedule for the AtlasDeployment + 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 + 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 + deploymentSpec: + description: Configuration for the advanced (v1.5) deployment API + https://www.mongodb.com/docs/atlas/reference/api/clusters/ + properties: + backupEnabled: + description: |- + Applicable only for M10+ deployments. + Flag that indicates if the deployment uses Cloud Backups for backups. + type: boolean + biConnector: + description: |- + Configuration of BI Connector for Atlas on this deployment. + The MongoDB Connector for Business Intelligence for Atlas (BI Connector) is only available for M10 and larger deployments. + properties: + enabled: + description: Flag that indicates whether or not BI Connector + for Atlas is enabled on the deployment. + type: boolean + readPreference: + description: Source from which the BI Connector for Atlas + reads data. Each BI Connector for Atlas read preference + contains a distinct combination of readPreference and readPreferenceTags + options. + type: string + type: object + clusterType: + description: |- + Type of the deployment that you want to create. + The parameter is required if replicationSpecs are set or if Global Deployments are deployed. + enum: + - REPLICASET + - SHARDED + - GEOSHARDED + type: string + customZoneMapping: + items: + properties: + location: + type: string + zone: + type: string + required: + - location + - zone + type: object + type: array + diskSizeGB: + description: |- + Capacity, in gigabytes, of the host's root volume. + Increase this number to add capacity, up to a maximum possible value of 4096 (i.e., 4 TB). + This value must be a positive integer. + The parameter is required if replicationSpecs are configured. + maximum: 4096 + minimum: 0 + type: integer + encryptionAtRestProvider: + description: Cloud service provider that offers Encryption at + Rest. + enum: + - AWS + - GCP + - AZURE + - NONE + type: string + labels: + description: |- + Collection of key-value pairs that tag and categorize the deployment. + Each key and value has a maximum length of 255 characters. + items: + description: LabelSpec contains key-value pairs that tag and + categorize the Cluster/DBUser + properties: + key: + maxLength: 255 + type: string + value: + type: string + required: + - key + - value + type: object + type: array + managedNamespaces: + items: + description: ManagedNamespace represents the information about + managed namespace configuration. + properties: + collection: + type: string + customShardKey: + type: string + db: + type: string + isCustomShardKeyHashed: + type: boolean + isShardKeyUnique: + type: boolean + numInitialChunks: + type: integer + presplitHashedZones: + type: boolean + required: + - collection + - db + type: object + type: array + mongoDBMajorVersion: + description: Version of the deployment to deploy. + type: string + mongoDBVersion: + type: string + name: + description: |- + Name of the advanced deployment as it appears in Atlas. + After Atlas creates the deployment, you can't change its name. + Can only contain ASCII letters, numbers, and hyphens. + pattern: ^[a-zA-Z0-9][a-zA-Z0-9-]*$ + type: string + paused: + description: Flag that indicates whether the deployment should + be paused. + type: boolean + pitEnabled: + description: Flag that indicates the deployment uses continuous + cloud backups. + type: boolean + replicationSpecs: + description: Configuration for deployment regions. + items: + properties: + numShards: + description: |- + Positive integer that specifies the number of shards to deploy in each specified zone. + If you set this value to 1 and clusterType is SHARDED, MongoDB Cloud deploys a single-shard sharded cluster. + Don't create a sharded cluster with a single shard for production environments. + Single-shard sharded clusters don't provide the same benefits as multi-shard configurations + type: integer + regionConfigs: + description: |- + Hardware specifications for nodes set for a given region. + Each regionConfigs object describes the region's priority in elections and the number and type of MongoDB nodes that MongoDB Cloud deploys to the region. + Each regionConfigs object must have either an analyticsSpecs object, electableSpecs object, or readOnlySpecs object. + Tenant clusters only require electableSpecs. Dedicated clusters can specify any of these specifications, but must have at least one electableSpecs object within a replicationSpec. + Every hardware specification must use the same instanceSize. + items: + properties: + analyticsSpecs: + properties: + diskIOPS: + description: |- + Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + format: int64 + type: integer + ebsVolumeType: + description: |- + Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + enum: + - STANDARD + - PROVISIONED + type: string + instanceSize: + description: |- + Hardware specification for the instance sizes in this region. + Each instance size has a default storage and memory capacity. + The instance size you select applies to all the data-bearing hosts in your instance size + type: string + nodeCount: + description: Number of nodes of the given type + for MongoDB Cloud to deploy to the region. + type: integer + type: object + autoScaling: + description: AdvancedAutoScalingSpec configures your + deployment to automatically scale its storage + properties: + compute: + description: Collection of settings that configure + how a deployment might scale its deployment + tier and whether the deployment can scale down. + properties: + enabled: + description: Flag that indicates whether deployment + tier auto-scaling is enabled. The default + is false. + type: boolean + maxInstanceSize: + description: 'Maximum instance size to which + your deployment can automatically scale + (such as M40). Atlas requires this parameter + if "autoScaling.compute.enabled" : true.' + type: string + minInstanceSize: + description: 'Minimum instance size to which + your deployment can automatically scale + (such as M10). Atlas requires this parameter + if "autoScaling.compute.scaleDownEnabled" + : true.' + type: string + scaleDownEnabled: + description: 'Flag that indicates whether + the deployment tier may scale down. Atlas + requires this parameter if "autoScaling.compute.enabled" + : true.' + type: boolean + type: object + diskGB: + description: Flag that indicates whether disk + auto-scaling is enabled. The default is true. + properties: + enabled: + type: boolean + type: object + type: object + backingProviderName: + description: |- + Cloud service provider on which the host for a multi-tenant deployment is provisioned. + This setting only works when "providerName" : "TENANT" and "providerSetting.instanceSizeName" : M2 or M5. + Otherwise it should be equal to "providerName" value + enum: + - AWS + - GCP + - AZURE + type: string + electableSpecs: + properties: + diskIOPS: + description: |- + Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + format: int64 + type: integer + ebsVolumeType: + description: |- + Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + enum: + - STANDARD + - PROVISIONED + type: string + instanceSize: + description: |- + Hardware specification for the instance sizes in this region. + Each instance size has a default storage and memory capacity. + The instance size you select applies to all the data-bearing hosts in your instance size + type: string + nodeCount: + description: Number of nodes of the given type + for MongoDB Cloud to deploy to the region. + type: integer + type: object + priority: + description: |- + Precedence is given to this region when a primary election occurs. + If your regionConfigs has only readOnlySpecs, analyticsSpecs, or both, set this value to 0. + If you have multiple regionConfigs objects (your cluster is multi-region or multi-cloud), they must have priorities in descending order. + The highest priority is 7 + type: integer + providerName: + enum: + - AWS + - GCP + - AZURE + - TENANT + - SERVERLESS + type: string + readOnlySpecs: + properties: + diskIOPS: + description: |- + Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + format: int64 + type: integer + ebsVolumeType: + description: |- + Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + enum: + - STANDARD + - PROVISIONED + type: string + instanceSize: + description: |- + Hardware specification for the instance sizes in this region. + Each instance size has a default storage and memory capacity. + The instance size you select applies to all the data-bearing hosts in your instance size + type: string + nodeCount: + description: Number of nodes of the given type + for MongoDB Cloud to deploy to the region. + type: integer + type: object + regionName: + description: |- + Physical location of your MongoDB deployment. + The region you choose can affect network latency for clients accessing your databases. + type: string + type: object + type: array + zoneName: + description: Human-readable label that identifies the zone + in a Global Cluster. + type: string + type: object + type: array + rootCertType: + type: string + searchIndexes: + description: A list of atlas search indexes configuration for + the current deployment + items: + description: SearchIndex is the CRD to configure part of the + Atlas Search Index + properties: + DBName: + description: Human-readable label that identifies the database + that contains the collection with one or more Atlas Search + indexes + type: string + collectionName: + description: Human-readable label that identifies the collection + that contains one or more Atlas Search indexes + type: string + name: + description: Human-readable label that identifies this index. + Must be unique for a deployment + type: string + search: + description: Atlas search index configuration + properties: + mappings: + description: Index specifications for the collection's + fields + properties: + dynamic: + description: Flag that indicates whether the index + uses dynamic or static mappings. Required if mapping.fields + is omitted. + type: boolean + fields: + description: One or more field specifications for + the Atlas Search index. Required if mapping.dynamic + is omitted or set to false. + x-kubernetes-preserve-unknown-fields: true + type: object + searchConfigurationRef: + description: A reference to the AtlasSearchIndexConfig + custom resource + 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 + synonyms: + description: Rule sets that map words to their synonyms + in this index + items: + description: Synonym represents "Synonym" type of + Atlas Search Index + properties: + analyzer: + description: Specific pre-defined method chosen + to apply to the synonyms to be searched + enum: + - lucene.standard + - lucene.simple + - lucene.whitespace + - lucene.keyword + - lucene.arabic + - lucene.armenian + - lucene.basque + - lucene.bengali + - lucene.brazilian + - lucene.bulgarian + - lucene.catalan + - lucene.chinese + - lucene.cjk + - lucene.czech + - lucene.danish + - lucene.dutch + - lucene.english + - lucene.finnish + - lucene.french + - lucene.galician + - lucene.german + - lucene.greek + - lucene.hindi + - lucene.hungarian + - lucene.indonesian + - lucene.irish + - lucene.italian + - lucene.japanese + - lucene.korean + - lucene.kuromoji + - lucene.latvian + - lucene.lithuanian + - lucene.morfologik + - lucene.nori + - lucene.norwegian + - lucene.persian + - lucene.portuguese + - lucene.romanian + - lucene.russian + - lucene.smartcn + - lucene.sorani + - lucene.spanish + - lucene.swedish + - lucene.thai + - lucene.turkish + - lucene.ukrainian + type: string + name: + description: Human-readable label that identifies + the synonym definition. Each name must be unique + within the same index definition + type: string + source: + description: Data set that stores the mapping + one or more words map to one or more synonyms + of those words + properties: + collection: + description: Human-readable label that identifies + the MongoDB collection that stores words + and their applicable synonyms + type: string + required: + - collection + type: object + required: + - analyzer + - name + - source + type: object + type: array + required: + - mappings + - searchConfigurationRef + type: object + type: + description: Type of the index + enum: + - search + - vectorSearch + type: string + vectorSearch: + description: Atlas vector search index configuration + properties: + fields: + description: Array of JSON objects. See examples https://dochub.mongodb.org/core/avs-vector-type + x-kubernetes-preserve-unknown-fields: true + required: + - fields + type: object + required: + - DBName + - collectionName + - name + - type + type: object + type: array + searchNodes: + description: Settings for Search Nodes for the cluster. Currently, + at most one search node configuration may be defined. + items: + properties: + instanceSize: + description: Hardware specification for the Search Node + instance sizes. + enum: + - S20_HIGHCPU_NVME + - S30_HIGHCPU_NVME + - S40_HIGHCPU_NVME + - S50_HIGHCPU_NVME + - S60_HIGHCPU_NVME + - S70_HIGHCPU_NVME + - S80_HIGHCPU_NVME + - S30_LOWCPU_NVME + - S40_LOWCPU_NVME + - S50_LOWCPU_NVME + - S60_LOWCPU_NVME + - S80_LOWCPU_NVME + - S90_LOWCPU_NVME + - S100_LOWCPU_NVME + - S110_LOWCPU_NVME + type: string + nodeCount: + description: Number of Search Nodes in the cluster. + maximum: 32 + minimum: 2 + type: integer + type: object + maxItems: 1 + type: array + tags: + description: Key-value pairs for resource tagging. + items: + description: TagSpec holds a key-value pair for resource tagging + on this deployment. + properties: + key: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9 @_.+`;`-]*$ + type: string + value: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9 @_.+`;`-]*$ + type: string + required: + - key + - value + type: object + maxItems: 50 + type: array + terminationProtectionEnabled: + default: false + description: Flag that indicates whether termination protection + is enabled on the cluster. If set to true, MongoDB Cloud won't + delete the cluster. If set to false, MongoDB Cloud will delete + the cluster. + type: boolean + versionReleaseSystem: + 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 + flexSpec: + description: Configuration for the Flex cluster API. https://www.mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Flex-Clusters + properties: + name: + description: Human-readable label that identifies the instance. + type: string + providerSettings: + description: Group of cloud provider settings that configure the + provisioned MongoDB flex cluster. + properties: + backingProviderName: + description: Cloud service provider on which MongoDB Atlas + provisions the flex cluster. + enum: + - AWS + - GCP + - AZURE + type: string + x-kubernetes-validations: + - message: Backing Provider cannot be modified after cluster + creation + rule: self == oldSelf + regionName: + description: |- + Human-readable label that identifies the geographic location of your MongoDB flex cluster. + The region you choose can affect network latency for clients accessing your databases. + type: string + x-kubernetes-validations: + - message: Region Name cannot be modified after cluster creation + rule: self == oldSelf + required: + - backingProviderName + - regionName + type: object + tags: + description: List that contains key-value pairs between 1 to 255 + characters in length for tagging and categorizing the instance. + items: + description: TagSpec holds a key-value pair for resource tagging + on this deployment. + properties: + key: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9 @_.+`;`-]*$ + type: string + value: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9 @_.+`;`-]*$ + type: string + required: + - key + - value + type: object + maxItems: 50 + type: array + terminationProtectionEnabled: + default: false + description: |- + Flag that indicates whether termination protection is enabled on the cluster. + If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster. + type: boolean + required: + - name + - providerSettings + type: object + processArgs: + description: ProcessArgs allows to modify Advanced Configuration Options + properties: + defaultReadConcern: + type: string + defaultWriteConcern: + type: string + failIndexKeyTooLong: + type: boolean + javascriptEnabled: + type: boolean + minimumEnabledTlsProtocol: + type: string + noTableScan: + type: boolean + oplogMinRetentionHours: + type: string + oplogSizeMB: + format: int64 + type: integer + sampleRefreshIntervalBIConnector: + format: int64 + type: integer + sampleSizeBIConnector: + format: int64 + type: integer + 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 + serverlessSpec: + description: |- + Configuration for the serverless deployment API. https://www.mongodb.com/docs/atlas/reference/api/serverless-instances/ + DEPRECATED FIELD: Serverless instances are deprecated. See https://dochub.mongodb.org/core/atlas-flex-migration for details. + properties: + backupOptions: + description: Serverless Backup Options + properties: + serverlessContinuousBackupEnabled: + default: true + description: ServerlessContinuousBackupEnabled + type: boolean + type: object + name: + description: |- + Name of the serverless deployment as it appears in Atlas. + After Atlas creates the deployment, you can't change its name. + Can only contain ASCII letters, numbers, and hyphens. + pattern: ^[a-zA-Z0-9][a-zA-Z0-9-]*$ + type: string + privateEndpoints: + items: + properties: + cloudProviderEndpointID: + description: CloudProviderEndpointID is the identifier of + the cloud provider endpoint. + type: string + name: + description: Name is the name of the Serverless PrivateLink + Service. Should be unique. + type: string + privateEndpointIpAddress: + description: PrivateEndpointIPAddress is the IPv4 address + of the private endpoint in your Azure VNet that someone + added to this private endpoint service. + type: string + type: object + type: array + providerSettings: + description: Configuration for the provisioned hosts on which + MongoDB runs. The available options are specific to the cloud + service provider. + properties: + autoScaling: + description: DEPRECATED FIELD. The value of this field doesn't + take any effect. Range of instance sizes to which your deployment + can scale. + properties: + autoIndexingEnabled: + description: |- + Deprecated: This flag is not supported anymore. + Flag that indicates whether autopilot mode for Performance Advisor is enabled. + The default is false. + type: boolean + compute: + description: Collection of settings that configure how + a deployment might scale its deployment tier and whether + the deployment can scale down. + properties: + enabled: + description: Flag that indicates whether deployment + tier auto-scaling is enabled. The default is false. + type: boolean + maxInstanceSize: + description: 'Maximum instance size to which your + deployment can automatically scale (such as M40). + Atlas requires this parameter if "autoScaling.compute.enabled" + : true.' + type: string + minInstanceSize: + description: 'Minimum instance size to which your + deployment can automatically scale (such as M10). + Atlas requires this parameter if "autoScaling.compute.scaleDownEnabled" + : true.' + type: string + scaleDownEnabled: + description: 'Flag that indicates whether the deployment + tier may scale down. Atlas requires this parameter + if "autoScaling.compute.enabled" : true.' + type: boolean + type: object + diskGBEnabled: + description: Flag that indicates whether disk auto-scaling + is enabled. The default is true. + type: boolean + type: object + backingProviderName: + description: |- + Cloud service provider on which the host for a multi-tenant deployment is provisioned. + This setting only works when "providerSetting.providerName" : "TENANT" and "providerSetting.instanceSizeName" : M2 or M5. + enum: + - AWS + - GCP + - AZURE + type: string + diskIOPS: + description: |- + DEPRECATED FIELD. The value of this field doesn't take any effect. Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + format: int64 + type: integer + diskTypeName: + description: DEPRECATED FIELD. The value of this field doesn't + take any effect. Type of disk if you selected Azure as your + cloud service provider. + type: string + encryptEBSVolume: + description: DEPRECATED FIELD. The value of this field doesn't + take any effect. Flag that indicates whether the Amazon + EBS encryption feature encrypts the host's root volume for + both data at rest within the volume and for data moving + between the volume and the deployment. + type: boolean + instanceSizeName: + description: DEPRECATED FIELD. The value of this field doesn't + take any effect. Atlas provides different deployment tiers, + each with a default storage capacity and RAM size. The deployment + you select is used for all the data-bearing hosts in your + deployment tier. + type: string + providerName: + description: Cloud service provider on which Atlas provisions + the hosts. + enum: + - AWS + - GCP + - AZURE + - TENANT + - SERVERLESS + type: string + regionName: + description: |- + Physical location of your MongoDB deployment. + The region you choose can affect network latency for clients accessing your databases. + type: string + volumeType: + description: |- + DEPRECATED FIELD. The value of this field doesn't take any effect. Disk IOPS setting for AWS storage. + Set only if you selected AWS as your cloud service provider. + enum: + - STANDARD + - PROVISIONED + type: string + required: + - providerName + type: object + tags: + description: Key-value pairs for resource tagging. + items: + description: TagSpec holds a key-value pair for resource tagging + on this deployment. + properties: + key: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9 @_.+`;`-]*$ + type: string + value: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9 @_.+`;`-]*$ + type: string + required: + - key + - value + type: object + maxItems: 50 + type: array + terminationProtectionEnabled: + default: false + description: Flag that indicates whether termination protection + is enabled on the cluster. If set to true, MongoDB Cloud won't + delete the cluster. If set to false, MongoDB Cloud will delete + the cluster. + type: boolean + required: + - name + - providerSettings + type: object + 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) + status: + description: AtlasDeploymentStatus defines the observed state of AtlasDeployment. + 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 + connectionStrings: + description: ConnectionStrings is a set of connection strings that + your applications use to connect to this cluster. + properties: + private: + description: |- + Network-peering-endpoint-aware mongodb:// connection strings for each interface VPC endpoint you configured to connect to this cluster. + Atlas returns this parameter only if you created a network peering connection to this cluster. + type: string + privateEndpoint: + description: |- + Private endpoint connection strings. + Each object describes the connection strings you can use to connect to this cluster through a private endpoint. + Atlas returns this parameter only if you deployed a private endpoint to all regions to which you deployed this cluster's nodes. + items: + description: |- + PrivateEndpoint connection strings. Each object describes the connection strings + you can use to connect to this cluster through a private endpoint. + Atlas returns this parameter only if you deployed a private endpoint to all regions + to which you deployed this cluster's nodes. + properties: + connectionString: + description: Private-endpoint-aware mongodb:// connection + string for this private endpoint. + type: string + endpoints: + description: Private endpoint through which you connect + to Atlas when you use connectionStrings.privateEndpoint[n].connectionString + or connectionStrings.privateEndpoint[n].srvConnectionString. + items: + description: Endpoint through which you connect to Atlas + properties: + endpointId: + description: Unique identifier of the private endpoint. + type: string + ip: + description: Private IP address of the private endpoint + network interface you created in your Azure VNet. + type: string + providerName: + description: Cloud provider to which you deployed + the private endpoint. Atlas returns AWS or AZURE. + type: string + region: + description: Region to which you deployed the private + endpoint. + type: string + type: object + type: array + srvConnectionString: + description: Private-endpoint-aware mongodb+srv:// connection + string for this private endpoint. + type: string + srvShardOptimizedConnectionString: + type: string + type: + description: |- + Type of MongoDB process that you connect to with the connection strings + + Atlas returns: + + • MONGOD for replica sets, or + + • MONGOS for sharded clusters + type: string + type: object + type: array + privateSrv: + description: |- + Network-peering-endpoint-aware mongodb+srv:// connection strings for each interface VPC endpoint you configured to connect to this cluster. + Atlas returns this parameter only if you created a network peering connection to this cluster. + Use this URI format if your driver supports it. If it doesn't, use connectionStrings.private. + type: string + standard: + description: Public mongodb:// connection string for this cluster. + type: string + standardSrv: + description: Public mongodb+srv:// connection string for this + cluster. + type: string + type: object + customZoneMapping: + properties: + customZoneMapping: + additionalProperties: + type: string + type: object + zoneMappingErrMessage: + type: string + zoneMappingState: + type: string + type: object + managedNamespaces: + items: + properties: + collection: + type: string + customShardKey: + type: string + db: + type: string + errMessage: + type: string + isCustomShardKeyHashed: + type: boolean + isShardKeyUnique: + type: boolean + numInitialChunks: + type: integer + presplitHashedZones: + type: boolean + status: + type: string + required: + - collection + - db + type: object + type: array + mongoDBVersion: + description: MongoDBVersion is the version of MongoDB the cluster + runs, in . format. + type: string + mongoURIUpdated: + description: |- + MongoURIUpdated is a timestamp in ISO 8601 date and time format in UTC when the connection string was last updated. + The connection string changes if you update any of the other values. + 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 + replicaSets: + items: + properties: + id: + type: string + zoneName: + type: string + required: + - id + type: object + type: array + searchIndexes: + description: SearchIndexes contains a list of search indexes statuses + configured for a project + items: + properties: + ID: + type: string + message: + type: string + name: + type: string + status: + type: string + required: + - ID + - message + - name + - status + type: object + type: array + serverlessPrivateEndpoints: + items: + properties: + _id: + description: ID is the identifier of the Serverless PrivateLink + Service. + type: string + cloudProviderEndpointId: + description: CloudProviderEndpointID is the identifier of the + cloud provider endpoint. + type: string + endpointServiceName: + description: EndpointServiceName is the name of the PrivateLink + endpoint service in AWS. Returns null while the endpoint service + is being created. + type: string + errorMessage: + description: ErrorMessage is the error message if the Serverless + PrivateLink Service failed to create or connect. + type: string + name: + description: Name is the name of the Serverless PrivateLink + Service. Should be unique. + type: string + privateEndpointIpAddress: + description: PrivateEndpointIPAddress is the IPv4 address of + the private endpoint in your Azure VNet that someone added + to this private endpoint service. + type: string + privateLinkServiceResourceId: + description: PrivateLinkServiceResourceID is the root-relative + path that identifies the Azure Private Link Service that MongoDB + Cloud manages. MongoDB Cloud returns null while it creates + the endpoint service. + type: string + providerName: + description: ProviderName is human-readable label that identifies + the cloud provider. Values include AWS or AZURE. + type: string + status: + description: Status of the AWS Serverless PrivateLink connection. + type: string + type: object + type: array + stateName: + description: |- + StateName is the current state of the cluster. + The possible states are: IDLE, CREATING, UPDATING, DELETING, DELETED, REPAIRING + type: string + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasfederatedauths.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasfederatedauths.yaml new file mode 100644 index 0000000000..ff270a0f6d --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasfederatedauths.yaml @@ -0,0 +1,201 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasfederatedauths.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasFederatedAuth + listKind: AtlasFederatedAuthList + plural: atlasfederatedauths + shortNames: + - afa + singular: atlasfederatedauth + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasFederatedAuth is the Schema for the Atlasfederatedauth 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: + properties: + connectionSecretRef: + description: |- + Connection secret with API credentials for configuring the federation. + These credentials must have OrganizationOwner permissions. + 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 + dataAccessIdentityProviders: + description: |- + The collection of unique ids representing the identity providers that can be used for data access in this organization. + Currently connected data access identity providers missing from the this field will be disconnected. + items: + type: string + type: array + domainAllowList: + description: Approved domains that restrict users who can join the + organization based on their email address. + items: + type: string + type: array + domainRestrictionEnabled: + default: false + description: |- + Prevent users in the federation from accessing organizations outside of the federation, and creating new organizations. + This option applies to the entire federation. + See more information at https://www.mongodb.com/docs/atlas/security/federation-advanced-options/#restrict-user-membership-to-the-federation + type: boolean + enabled: + default: false + type: boolean + postAuthRoleGrants: + description: Atlas roles that are granted to a user in this organization + after authenticating. + items: + type: string + type: array + roleMappings: + description: Map IDP groups to Atlas roles. + items: + description: RoleMapping maps an external group from an identity + provider to roles within Atlas. + properties: + externalGroupName: + description: ExternalGroupName is the name of the IDP group + to which this mapping applies. + maxLength: 200 + minLength: 1 + type: string + roleAssignments: + description: RoleAssignments define the roles within projects + that should be given to members of the group. + items: + properties: + projectName: + description: The Atlas project in the same org in which + the role should be given. + type: string + role: + description: The role in Atlas that should be given to + group members. + enum: + - ORG_MEMBER + - ORG_READ_ONLY + - ORG_BILLING_ADMIN + - ORG_GROUP_CREATOR + - ORG_OWNER + - ORG_BILLING_READ_ONLY + - ORG_TEAM_MEMBERS_ADMIN + - GROUP_AUTOMATION_ADMIN + - GROUP_BACKUP_ADMIN + - GROUP_MONITORING_ADMIN + - GROUP_OWNER + - GROUP_READ_ONLY + - GROUP_USER_ADMIN + - GROUP_BILLING_ADMIN + - GROUP_DATA_ACCESS_ADMIN + - GROUP_DATA_ACCESS_READ_ONLY + - GROUP_DATA_ACCESS_READ_WRITE + - GROUP_CHARTS_ADMIN + - GROUP_CLUSTER_MANAGER + - GROUP_SEARCH_INDEX_EDITOR + type: string + type: object + type: array + type: object + type: array + ssoDebugEnabled: + default: false + type: boolean + type: object + status: + 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 + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasipaccesslists.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasipaccesslists.yaml new file mode 100644 index 0000000000..13845b00cf --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasipaccesslists.yaml @@ -0,0 +1,202 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasipaccesslists.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasIPAccessList + listKind: AtlasIPAccessListList + plural: atlasipaccesslists + shortNames: + - aip + singular: atlasipaccesslist + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasIPAccessList is the Schema for the atlasipaccesslists 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: AtlasIPAccessListSpec defines the desired state of AtlasIPAccessList. + properties: + 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 + entries: + description: Entries is the list of IP Access to be managed + items: + properties: + awsSecurityGroup: + description: Unique identifier of AWS security group in this + access list entry. + type: string + cidrBlock: + description: Range of IP addresses in CIDR notation in this + access list entry. + type: string + comment: + description: Comment associated with this access list entry. + type: string + deleteAfterDate: + description: Date and time after which Atlas deletes the temporary + access list entry. + format: date-time + type: string + ipAddress: + description: Entry using an IP address in this access list entry. + type: string + type: object + x-kubernetes-validations: + - message: Only one of ipAddress, cidrBlock, or awsSecurityGroup + may be set. + rule: '!(has(self.ipAddress) && (has(self.cidrBlock) || has(self.awsSecurityGroup))) + && !(has(self.cidrBlock) && has(self.awsSecurityGroup))' + minItems: 1 + type: array + 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 + required: + - entries + 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) + status: + description: AtlasIPAccessListStatus is the most recent observed status + of the AtlasIPAccessList cluster. Read-only. + 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 + entries: + description: Status is the state of the ip access list + items: + properties: + entry: + description: Entry is the ip access Atlas is managing + type: string + status: + description: Status is the correspondent state of the entry + type: string + required: + - entry + - status + type: object + type: array + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasnetworkcontainers.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasnetworkcontainers.yaml new file mode 100644 index 0000000000..ead7c2aee0 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasnetworkcontainers.yaml @@ -0,0 +1,207 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + 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 + 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 + id: + description: |- + ID is the container identifier for an already existent network container to be managed by the operator. + This field can be used in conjunction with cidrBlock to update the cidrBlock of an existing container. + This field is immutable. + type: string + 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. + This field is immutable, Atlas does not admit network container changes. + type: string + required: + - 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') + - message: id is immutable + rule: (self.id == oldSelf.id) || (!has(self.id) && !has(oldSelf.id)) + - message: region is immutable + rule: (self.region == oldSelf.region) || (!has(self.region) && !has(oldSelf.region)) + 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 + 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 + provisioned: + description: |- + Provisioned is true when clusters have been deployed to the container before + the last reconciliation + type: boolean + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasnetworkpeerings.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasnetworkpeerings.yaml new file mode 100644 index 0000000000..c101461349 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasnetworkpeerings.yaml @@ -0,0 +1,309 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasnetworkpeerings.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasNetworkPeering + listKind: AtlasNetworkPeeringList + plural: atlasnetworkpeerings + shortNames: + - anp + singular: atlasnetworkpeering + 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.status + name: Status + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasNetworkPeering is the Schema for the AtlasNetworkPeering + 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: AtlasNetworkPeeringSpec defines the desired state of AtlasNetworkPeering + properties: + awsConfiguration: + description: AWSConfiguration is the specific AWS settings for network + peering + properties: + accepterRegionName: + description: AccepterRegionName is the provider region name of + user's vpc in AWS native region format + type: string + awsAccountId: + description: AccountID of the user's vpc. + type: string + routeTableCidrBlock: + description: User VPC CIDR. + type: string + vpcId: + description: AWS VPC ID. + type: string + required: + - accepterRegionName + - awsAccountId + - routeTableCidrBlock + - vpcId + type: object + azureConfiguration: + description: AzureConfiguration is the specific Azure settings for + network peering + properties: + azureDirectoryId: + description: AzureDirectoryID is the unique identifier for an + Azure AD directory. + type: string + azureSubscriptionId: + description: AzureSubscriptionID is the unique identifier of the + Azure subscription in which the VNet resides. + type: string + resourceGroupName: + description: ResourceGroupName is the name of your Azure resource + group. + type: string + vNetName: + description: VNetName is name of your Azure VNet. Its applicable + only for Azure. + type: string + required: + - azureDirectoryId + - azureSubscriptionId + - resourceGroupName + - vNetName + type: object + 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 + containerRef: + description: ContainerDualReference refers to an Network Container + either by Kubernetes name or Atlas ID + properties: + id: + description: |- + ID is the Atlas identifier of the Network Container Atlas resource this Peering Connection relies on + Use either name or ID, not both. + type: string + name: + description: |- + Name of the container Kubernetes resource, must be present in the same namespace + Use either name or ID, not both. + type: string + 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 + gcpConfiguration: + description: GCPConfiguration is the specific Google Cloud settings + for network peering + properties: + gcpProjectId: + description: User GCP Project ID. Its applicable only for GCP. + type: string + networkName: + description: GCP Network Peer Name. Its applicable only for GCP. + type: string + required: + - gcpProjectId + - networkName + type: object + id: + description: |- + ID is the peering identifier for an already existent network peering to be managed by the operator. + This field is immutable. + type: string + 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: Name of the cloud service provider for which you want + to create the network peering service. + enum: + - AWS + - GCP + - AZURE + type: string + required: + - containerRef + - 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 either have a container Atlas id or Kubernetes name, but + not both (or neither) + rule: (has(self.containerRef.name) && !has(self.containerRef.id)) || + (!has(self.containerRef.name) && has(self.containerRef.id)) + - message: container ref name is immutable + rule: (self.containerRef.name == oldSelf.containerRef.name) || (!has(self.containerRef.name) + && !has(oldSelf.containerRef.name)) + - message: container ref id is immutable + rule: (self.containerRef.id == oldSelf.containerRef.id) || (!has(self.containerRef.id) + && !has(oldSelf.containerRef.id)) + - message: id is immutable + rule: (self.id == oldSelf.id) || (!has(self.id) && !has(oldSelf.id)) + status: + description: |- + AtlasNetworkPeeringStatus is a status for the AtlasNetworkPeering Custom resource. + Not the one included in the AtlasProject + properties: + awsStatus: + description: AWSStatus contains AWS only related status information + properties: + connectionId: + description: ConnectionID is the AWS VPC peering connection ID + type: string + vpcId: + description: VpcID is AWS VPC id on the Atlas side + type: string + type: object + azureStatus: + description: AzureStatus contains Azure only related status information + properties: + azureSubscriptionIDpcId: + description: AzureSubscriptionID is Azure Subscription id on the + Atlas side + type: string + vNetName: + description: VnetName is Azure network on the Atlas side + type: string + type: object + 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 + gcpStatus: + description: GCPStatus contains GCP only related status information + properties: + gcpProjectID: + description: GCPProjectID is GCP project on the Atlas side + type: string + networkName: + description: NetworkName is GCP network on the Atlas side + type: string + type: object + id: + description: ID recrods the identified of the peer created by 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 + status: + description: Status describes the last status seen for the network + peering setup + type: string + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasprivateendpoints.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasprivateendpoints.yaml new file mode 100644 index 0000000000..2fa68c7c2e --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasprivateendpoints.yaml @@ -0,0 +1,331 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasprivateendpoints.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasPrivateEndpoint + listKind: AtlasPrivateEndpointList + plural: atlasprivateendpoints + shortNames: + - ape + singular: atlasprivateendpoint + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.provider + name: Provider + type: string + - jsonPath: .spec.region + name: Region + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: |- + The AtlasPrivateEndpoint custom resource definition (CRD) defines a desired [Private Endpoint](https://www.mongodb.com/docs/atlas/security-private-endpoint/#std-label-private-endpoint-overview) configuration for an Atlas project. + It allows a private connection between your cloud provider and Atlas that doesn't send information through a public network. + + You can use private endpoints to create a unidirectional connection to Atlas clusters from your virtual network. + 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: AtlasPrivateEndpointSpec is the specification of the desired + configuration of a project private endpoint + properties: + awsConfiguration: + description: AWSConfiguration is the specific AWS settings for the + private endpoint + items: + description: AWSPrivateEndpointConfiguration holds the AWS configuration + done on customer network + properties: + id: + description: ID that identifies the private endpoint's network + interface that someone added to this private endpoint service. + type: string + required: + - id + type: object + type: array + x-kubernetes-list-map-keys: + - id + x-kubernetes-list-type: map + azureConfiguration: + description: AzureConfiguration is the specific Azure settings for + the private endpoint + items: + description: AzurePrivateEndpointConfiguration holds the Azure configuration + done on customer network + properties: + id: + description: ID that identifies the private endpoint's network + interface that someone added to this private endpoint service. + type: string + ipAddress: + description: IP address of the private endpoint in your Azure + VNet that someone added to this private endpoint service. + type: string + required: + - id + - ipAddress + type: object + type: array + x-kubernetes-list-map-keys: + - id + x-kubernetes-list-type: map + 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 + gcpConfiguration: + description: GCPConfiguration is the specific Google Cloud settings + for the private endpoint + items: + description: GCPPrivateEndpointConfiguration holds the GCP configuration + done on customer network + properties: + endpoints: + description: Endpoints is the list of individual private endpoints + that comprise this endpoint group. + items: + description: GCPPrivateEndpoint holds the GCP forwarding rules + configured on customer network + properties: + ipAddress: + description: IP address to which this Google Cloud consumer + forwarding rule resolves. + type: string + name: + description: Name that identifies the Google Cloud consumer + forwarding rule that you created. + type: string + required: + - ipAddress + - name + type: object + type: array + groupName: + description: GroupName is the label that identifies a set of + endpoints. + type: string + projectId: + description: ProjectID that identifies the Google Cloud project + in which you created the endpoints. + type: string + required: + - endpoints + - groupName + - projectId + type: object + type: array + x-kubernetes-list-map-keys: + - groupName + x-kubernetes-list-type: map + 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: Name of the cloud service provider for which you want + to create the private endpoint service. + enum: + - AWS + - GCP + - AZURE + type: string + region: + description: Region of the chosen cloud provider in which you want + to create the private endpoint service. + type: string + required: + - provider + - region + 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) + status: + description: AtlasPrivateEndpointStatus is the most recent observed status + of the AtlasPrivateEndpoint cluster. Read-only. + 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 + endpoints: + description: Endpoints are the status of the endpoints connected to + the service + items: + description: EndpointInterfaceStatus is the most recent observed + status the interfaces attached to the configured service. Read-only. + properties: + ID: + description: ID is the external identifier set on the specification + to configure the interface + type: string + InterfaceStatus: + description: InterfaceStatus is the state of the private endpoint + interface + type: string + connectionName: + description: ConnectionName is the label that Atlas generates + that identifies the Azure private endpoint connection + type: string + error: + description: Error is the description of the failure occurred + when configuring the private endpoint + type: string + gcpForwardingRules: + description: GCPForwardingRules is the status of the customer + GCP private endpoint(forwarding rules) + items: + description: GCPForwardingRule is the most recent observed + status the GCP forwarding rules configured for an interface. + Read-only. + properties: + name: + type: string + status: + type: string + type: object + type: array + type: object + type: array + error: + description: Error is the description of the failure occurred when + configuring the private endpoint + 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 + resourceId: + description: ResourceID is the root-relative path that identifies + of the Atlas Azure Private Link Service + type: string + serviceAttachmentNames: + description: ServiceAttachmentNames is the list of URLs that identifies + endpoints that Atlas can use to access one service across the private + connection + items: + type: string + type: array + serviceId: + description: ServiceID is the unique identifier of the private endpoint + service in Atlas + type: string + serviceName: + description: ServiceName is the unique identifier of the Amazon Web + Services (AWS) PrivateLink endpoint service or Azure Private Link + Service managed by Atlas + type: string + serviceStatus: + description: ServiceStatus is the state of the private endpoint service + type: string + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasprojects.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasprojects.yaml new file mode 100644 index 0000000000..142cd75dca --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasprojects.yaml @@ -0,0 +1,1558 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasprojects.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasProject + listKind: AtlasProjectList + plural: atlasprojects + shortNames: + - ap + singular: atlasproject + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .spec.name + name: Atlas Name + type: string + - jsonPath: .status.id + name: Atlas ID + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasProject is the Schema for the atlasprojects 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: AtlasProjectSpec defines the desired state of Project in + Atlas + properties: + alertConfigurationSyncEnabled: + description: |- + AlertConfigurationSyncEnabled is a flag that enables/disables Alert Configurations sync for the current Project. + If true - project alert configurations will be synced according to AlertConfigurations. + If not - alert configurations will not be modified by the operator. They can be managed through API, cli, UI. + type: boolean + alertConfigurations: + description: AlertConfiguration is a list of Alert Configurations + configured for the current Project. + items: + properties: + enabled: + description: If omitted, the configuration is disabled. + type: boolean + eventTypeName: + description: The type of event that will trigger an alert. + type: string + matchers: + description: You can filter using the matchers array only when + the EventTypeName specifies an event for a host, replica set, + or sharded cluster. + items: + properties: + fieldName: + description: Name of the field in the target object to + match on. + type: string + operator: + description: The operator to test the field’s value. + type: string + value: + description: Value to test with the specified operator. + type: string + type: object + type: array + metricThreshold: + description: MetricThreshold causes an alert to be triggered. + properties: + metricName: + description: Name of the metric to check. + type: string + mode: + description: This must be set to AVERAGE. Atlas computes + the current metric value as an average. + type: string + operator: + description: Operator to apply when checking the current + metric value against the threshold value. + type: string + threshold: + description: Threshold value outside which an alert will + be triggered. + type: string + units: + description: The units for the threshold value. + type: string + required: + - threshold + type: object + notifications: + description: Notifications are sending when an alert condition + is detected. + items: + properties: + apiTokenRef: + description: Secret containing a Slack API token or Bot + token. Populated for the SLACK notifications type. If + the token later becomes invalid, Atlas sends an email + to the project owner and eventually removes the token. + 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 + channelName: + description: Slack channel name. Populated for the SLACK + notifications type. + type: string + datadogAPIKeyRef: + description: Secret containing a Datadog API Key. Found + in the Datadog dashboard. Populated for the DATADOG + notifications type. + 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 + datadogRegion: + description: Region that indicates which API URL to use + type: string + delayMin: + description: Number of minutes to wait after an alert + condition is detected before sending out the first notification. + type: integer + emailAddress: + description: Email address to which alert notifications + are sent. Populated for the EMAIL notifications type. + type: string + emailEnabled: + description: Flag indicating if email notifications should + be sent. Populated for ORG, GROUP, and USER notifications + types. + type: boolean + flowName: + description: Flowdock flow name in lower-case letters. + type: string + flowdockApiTokenRef: + description: The Flowdock personal API token. Populated + for the FLOWDOCK notifications type. If the token later + becomes invalid, Atlas sends an email to the project + owner and eventually removes the token. + 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 + intervalMin: + description: Number of minutes to wait between successive + notifications for unacknowledged alerts that are not + resolved. + type: integer + mobileNumber: + description: Mobile number to which alert notifications + are sent. Populated for the SMS notifications type. + type: string + opsGenieApiKeyRef: + description: OpsGenie API Key. Populated for the OPS_GENIE + notifications type. If the key later becomes invalid, + Atlas sends an email to the project owner and eventually + removes the token. + 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 + opsGenieRegion: + description: Region that indicates which API URL to use. + type: string + orgName: + description: Flowdock organization name in lower-case + letters. This is the name that appears after www.flowdock.com/app/ + in the URL string. Populated for the FLOWDOCK notifications + type. + type: string + roles: + description: The following roles grant privileges within + a project. + items: + type: string + type: array + serviceKeyRef: + description: PagerDuty service key. Populated for the + PAGER_DUTY notifications type. If the key later becomes + invalid, Atlas sends an email to the project owner and + eventually removes the key. + 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 + smsEnabled: + description: Flag indicating if text message notifications + should be sent. Populated for ORG, GROUP, and USER notifications + types. + type: boolean + teamId: + description: Unique identifier of a team. + type: string + teamName: + description: Label for the team that receives this notification. + type: string + typeName: + description: Type of alert notification. + type: string + username: + description: Name of the Atlas user to which to send notifications. + Only a user in the project that owns the alert configuration + is allowed here. Populated for the USER notifications + type. + type: string + victorOpsSecretRef: + description: Secret containing a VictorOps API key and + Routing key. Populated for the VICTOR_OPS notifications + type. If the key later becomes invalid, Atlas sends + an email to the project owner and eventually removes + the key. + 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 + type: object + type: array + threshold: + description: Threshold causes an alert to be triggered. + properties: + operator: + description: 'Operator to apply when checking the current + metric value against the threshold value. it accepts the + following values: GREATER_THAN, LESS_THAN' + type: string + threshold: + description: Threshold value outside which an alert will + be triggered. + type: string + units: + description: The units for the threshold value + type: string + type: object + type: object + type: array + auditing: + description: Auditing represents MongoDB Maintenance Windows + properties: + auditAuthorizationSuccess: + description: 'Indicates whether the auditing system captures successful + authentication attempts for audit filters using the "atype" + : "authCheck" auditing event. For more information, see auditAuthorizationSuccess' + type: boolean + auditFilter: + description: JSON-formatted audit filter used by the project + type: string + enabled: + description: Denotes whether or not the project associated with + the {GROUP-ID} has database auditing enabled. + type: boolean + type: object + backupCompliancePolicyRef: + description: BackupCompliancePolicyRef is a reference to the backup + compliance CR. + 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 + cloudProviderAccessRoles: + description: |- + CloudProviderAccessRoles is a list of Cloud Provider Access Roles configured for the current Project. + Deprecated: This configuration was deprecated in favor of CloudProviderIntegrations + items: + description: |- + CloudProviderAccessRole define an integration to a cloud provider + Deprecated: This type is deprecated in favor of CloudProviderIntegration + properties: + iamAssumedRoleArn: + description: IamAssumedRoleArn is the ARN of the IAM role that + is assumed by the Atlas cluster. + type: string + providerName: + description: ProviderName is the name of the cloud provider. + Currently only AWS is supported. + type: string + required: + - providerName + type: object + type: array + cloudProviderIntegrations: + description: CloudProviderIntegrations is a list of Cloud Provider + Integration configured for the current Project. + items: + description: CloudProviderIntegration define an integration to a + cloud provider + properties: + iamAssumedRoleArn: + description: IamAssumedRoleArn is the ARN of the IAM role that + is assumed by the Atlas cluster. + type: string + providerName: + description: ProviderName is the name of the cloud provider. + Currently only AWS is supported. + type: string + required: + - providerName + type: object + type: array + connectionSecretRef: + description: |- + ConnectionSecret is the name of the Kubernetes Secret which contains the information about the way to connect to + Atlas (organization ID, API keys). The default Operator connection configuration will be used if not provided. + 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 + customRoles: + description: The customRoles lets you create, and change custom roles + in your cluster. Use custom roles to specify custom sets of actions + that the Atlas built-in roles can't describe. + items: + properties: + actions: + description: List of the individual privilege actions that the + role grants. + items: + properties: + name: + description: Human-readable label that identifies the + privilege action. + type: string + resources: + description: List of resources on which you grant the + action. + items: + properties: + cluster: + description: Flag that indicates whether to grant + the action on the cluster resource. If true, MongoDB + Cloud ignores Database and Collection parameters. + type: boolean + collection: + description: Human-readable label that identifies + the collection on which you grant the action to + one MongoDB user. + type: string + database: + description: Human-readable label that identifies + the database on which you grant the action to + one MongoDB user. + type: string + type: object + type: array + required: + - name + - resources + type: object + type: array + inheritedRoles: + description: List of the built-in roles that this custom role + inherits. + items: + properties: + database: + description: Human-readable label that identifies the + database on which someone grants the action to one MongoDB + user. + type: string + name: + description: Human-readable label that identifies the + role inherited. + type: string + required: + - database + - name + type: object + type: array + name: + description: Human-readable label that identifies the role. + This name must be unique for this custom role in this project. + type: string + required: + - name + type: object + type: array + encryptionAtRest: + description: EncryptionAtRest allows to set encryption for AWS, Azure + and GCP providers + properties: + awsKms: + description: AwsKms specifies AWS KMS configuration details and + whether Encryption at Rest is enabled for an Atlas project. + properties: + enabled: + type: boolean + region: + type: string + secretRef: + description: A reference to as Secret containing the AccessKeyID, + SecretAccessKey, CustomerMasterKeyID and RoleID fields + 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 + valid: + type: boolean + type: object + azureKeyVault: + description: AzureKeyVault specifies Azure Key Vault configuration + details and whether Encryption at Rest is enabled for an Atlas + project. + properties: + azureEnvironment: + type: string + clientID: + type: string + enabled: + type: boolean + resourceGroupName: + type: string + secretRef: + description: A reference to as Secret containing the SubscriptionID, + KeyVaultName, KeyIdentifier, Secret fields + 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 + tenantID: + type: string + type: object + googleCloudKms: + description: GoogleCloudKms specifies GCP KMS configuration details + and whether Encryption at Rest is enabled for an Atlas project. + properties: + enabled: + type: boolean + secretRef: + description: A reference to as Secret containing the ServiceAccountKey, + KeyVersionResourceID fields + 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 + type: object + type: object + integrations: + description: Integrations is a list of MongoDB Atlas integrations + for the project + items: + properties: + accountId: + type: string + apiKeyRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + apiTokenRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + channelName: + type: string + enabled: + type: boolean + flowName: + type: string + licenseKeyRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + microsoftTeamsWebhookUrl: + type: string + name: + type: string + orgName: + type: string + passwordRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + readTokenRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + region: + type: string + routingKeyRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + scheme: + type: string + secretRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + serviceDiscovery: + type: string + serviceKeyRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + teamName: + type: string + type: + description: Third Party Integration type such as Slack, New + Relic, etc + enum: + - PAGER_DUTY + - SLACK + - DATADOG + - NEW_RELIC + - OPS_GENIE + - VICTOR_OPS + - FLOWDOCK + - WEBHOOK + - MICROSOFT_TEAMS + - PROMETHEUS + type: string + url: + type: string + username: + type: string + writeTokenRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + type: object + type: array + maintenanceWindow: + description: |- + MaintenanceWindow allows to specify a preferred time in the week to run maintenance operations. See more + information at https://www.mongodb.com/docs/atlas/reference/api/maintenance-windows/ + properties: + autoDefer: + description: Flag indicating whether any scheduled project maintenance + should be deferred automatically for one week. + type: boolean + dayOfWeek: + description: |- + Day of the week when you would like the maintenance window to start as a 1-based integer. + Sunday 1, Monday 2, Tuesday 3, Wednesday 4, Thursday 5, Friday 6, Saturday 7 + maximum: 7 + minimum: 1 + type: integer + defer: + description: |- + Flag indicating whether the next scheduled project maintenance should be deferred for one week. + Cannot be specified if startASAP is true + type: boolean + hourOfDay: + description: |- + Hour of the day when you would like the maintenance window to start. + This parameter uses the 24-hour clock, where midnight is 0, noon is 12. + maximum: 23 + minimum: 0 + type: integer + startASAP: + description: |- + Flag indicating whether project maintenance has been directed to start immediately. + Cannot be specified if defer is true + type: boolean + type: object + name: + description: Name is the name of the Project that is created in Atlas + by the Operator if it doesn't exist yet. + type: string + networkPeers: + description: NetworkPeers is a list of Network Peers configured for + the current Project. + items: + properties: + accepterRegionName: + description: AccepterRegionName is the provider region name + of user's vpc. + type: string + atlasCidrBlock: + description: Atlas CIDR. It needs to be set if ContainerID is + not set. + type: string + awsAccountId: + description: AccountID of the user's vpc. + type: string + azureDirectoryId: + description: AzureDirectoryID is the unique identifier for an + Azure AD directory. + type: string + azureSubscriptionId: + description: AzureSubscriptionID is the unique identifier of + the Azure subscription in which the VNet resides. + type: string + containerId: + description: ID of the network peer container. If not set, operator + will create a new container with ContainerRegion and AtlasCIDRBlock + input. + type: string + containerRegion: + description: ContainerRegion is the provider region name of + Atlas network peer container. If not set, AccepterRegionName + is used. + type: string + gcpProjectId: + description: User GCP Project ID. Its applicable only for GCP. + type: string + networkName: + description: GCP Network Peer Name. Its applicable only for + GCP. + type: string + providerName: + description: ProviderName is the name of the provider. If not + set, it will be set to "AWS". + type: string + resourceGroupName: + description: ResourceGroupName is the name of your Azure resource + group. + type: string + routeTableCidrBlock: + description: User VPC CIDR. + type: string + vnetName: + description: VNetName is name of your Azure VNet. Its applicable + only for Azure. + type: string + vpcId: + description: AWS VPC ID. + type: string + type: object + type: array + privateEndpoints: + description: PrivateEndpoints is a list of Private Endpoints configured + for the current Project. + items: + properties: + endpointGroupName: + description: Unique identifier of the endpoint group. The endpoint + group encompasses all of the endpoints that you created in + Google Cloud. + type: string + endpoints: + description: Collection of individual private endpoints that + comprise your endpoint group. + items: + properties: + endpointName: + description: Forwarding rule that corresponds to the endpoint + you created in Google Cloud. + type: string + ipAddress: + description: Private IP address of the endpoint you created + in Google Cloud. + type: string + type: object + type: array + gcpProjectId: + description: Unique identifier of the Google Cloud project in + which you created your endpoints. + type: string + id: + description: Unique identifier of the private endpoint you created + in your AWS VPC or Azure Vnet. + type: string + ip: + description: Private IP address of the private endpoint network + interface you created in your Azure VNet. + type: string + provider: + description: Cloud provider for which you want to retrieve a + private endpoint service. Atlas accepts AWS or AZURE. + enum: + - AWS + - GCP + - AZURE + - TENANT + type: string + region: + description: Cloud provider region for which you want to create + the private endpoint service. + type: string + required: + - provider + - region + type: object + type: array + projectIpAccessList: + description: |- + ProjectIPAccessList allows to enable the IP Access List for the Project. See more information at + https://docs.atlas.mongodb.com/reference/api/ip-access-list/add-entries-to-access-list/ + items: + properties: + awsSecurityGroup: + description: Unique identifier of AWS security group in this + access list entry. + type: string + cidrBlock: + description: Range of IP addresses in CIDR notation in this + access list entry. + type: string + comment: + description: Comment associated with this access list entry. + type: string + deleteAfterDate: + description: Timestamp in ISO 8601 date and time format in UTC + after which Atlas deletes the temporary access list entry. + type: string + ipAddress: + description: Entry using an IP address in this access list entry. + type: string + type: object + type: array + regionUsageRestrictions: + default: NONE + description: |- + RegionUsageRestrictions designate the project's AWS region when using Atlas for Government. + This parameter should not be used with commercial Atlas. + In Atlas for Government, not setting this field (defaulting to NONE) means the project is restricted to COMMERCIAL_FEDRAMP_REGIONS_ONLY + enum: + - NONE + - GOV_REGIONS_ONLY + - COMMERCIAL_FEDRAMP_REGIONS_ONLY + type: string + settings: + description: Settings allow to set Project Settings for the project + properties: + isCollectDatabaseSpecificsStatisticsEnabled: + type: boolean + isDataExplorerEnabled: + type: boolean + isExtendedStorageSizesEnabled: + type: boolean + isPerformanceAdvisorEnabled: + type: boolean + isRealtimePerformancePanelEnabled: + type: boolean + isSchemaAdvisorEnabled: + type: boolean + type: object + teams: + description: Teams enable you to grant project access roles to multiple + users. + items: + properties: + roles: + description: Roles the users of the team has over the project + items: + enum: + - GROUP_OWNER + - GROUP_CLUSTER_MANAGER + - GROUP_DATA_ACCESS_ADMIN + - GROUP_DATA_ACCESS_READ_WRITE + - GROUP_DATA_ACCESS_READ_ONLY + - GROUP_READ_ONLY + type: string + minItems: 1 + type: array + teamRef: + description: Reference to the team which will assigned to the + project + 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 + required: + - roles + - teamRef + type: object + type: array + withDefaultAlertsSettings: + default: true + description: Flag that indicates whether to create the new project + with the default alert settings enabled. This parameter defaults + to true + type: boolean + x509CertRef: + description: X509CertRef is the name of the Kubernetes Secret which + contains PEM-encoded CA certificate + 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 + required: + - name + type: object + status: + description: AtlasProjectStatus defines the observed state of AtlasProject + properties: + alertConfigurations: + description: AlertConfigurations contains a list of alert configuration + statuses + items: + properties: + acknowledgedUntil: + description: The date through which the alert has been acknowledged. + Will not be present if the alert has never been acknowledged. + type: string + acknowledgementComment: + description: The comment left by the user who acknowledged the + alert. Will not be present if the alert has never been acknowledged. + type: string + acknowledgingUsername: + description: The username of the user who acknowledged the alert. + Will not be present if the alert has never been acknowledged. + type: string + alertConfigId: + description: ID of the alert configuration that triggered this + alert. + type: string + clusterId: + description: The ID of the cluster to which this alert applies. + Only present for alerts of type BACKUP, REPLICA_SET, and CLUSTER. + type: string + clusterName: + description: The name the cluster to which this alert applies. + Only present for alerts of type BACKUP, REPLICA_SET, and CLUSTER. + type: string + created: + description: Timestamp in ISO 8601 date and time format in UTC + when this alert configuration was created. + type: string + currentValue: + description: CurrentValue represents current value of the metric + that triggered the alert. Only present for alerts of type + HOST_METRIC. + properties: + number: + description: The value of the metric. + type: string + units: + description: The units for the value. Depends on the type + of metric. + type: string + type: object + enabled: + description: If omitted, the configuration is disabled. + type: boolean + errorMessage: + description: ErrorMessage is massage if the alert configuration + is in an incorrect state. + type: string + eventTypeName: + description: The type of event that will trigger an alert. + type: string + groupId: + description: Unique identifier of the project that owns this + alert configuration. + type: string + hostId: + description: ID of the host to which the metric pertains. Only + present for alerts of type HOST, HOST_METRIC, and REPLICA_SET. + type: string + hostnameAndPort: + description: The hostname and port of each host to which the + alert applies. Only present for alerts of type HOST, HOST_METRIC, + and REPLICA_SET. + type: string + id: + description: Unique identifier. + type: string + lastNotified: + description: When the last notification was sent for this alert. + Only present if notifications have been sent. + type: string + matchers: + description: You can filter using the matchers array only when + the EventTypeName specifies an event for a host, replica set, + or sharded cluster. + items: + properties: + fieldName: + description: Name of the field in the target object to + match on. + type: string + operator: + description: The operator to test the field’s value. + type: string + value: + description: Value to test with the specified operator. + type: string + type: object + type: array + metricName: + description: The name of the measurement whose value went outside + the threshold. Only present if eventTypeName is set to OUTSIDE_METRIC_THRESHOLD. + type: string + metricThreshold: + description: MetricThreshold causes an alert to be triggered. + properties: + metricName: + description: Name of the metric to check. + type: string + mode: + description: This must be set to AVERAGE. Atlas computes + the current metric value as an average. + type: string + operator: + description: Operator to apply when checking the current + metric value against the threshold value. + type: string + threshold: + description: Threshold value outside which an alert will + be triggered. + type: string + units: + description: The units for the threshold value. + type: string + required: + - threshold + type: object + notifications: + description: Notifications are sending when an alert condition + is detected. + items: + properties: + apiToken: + description: Slack API token or Bot token. Populated for + the SLACK notifications type. If the token later becomes + invalid, Atlas sends an email to the project owner and + eventually removes the token. + type: string + channelName: + description: Slack channel name. Populated for the SLACK + notifications type. + type: string + datadogApiKey: + description: Datadog API Key. Found in the Datadog dashboard. + Populated for the DATADOG notifications type. + type: string + datadogRegion: + description: Region that indicates which API URL to use + type: string + delayMin: + description: Number of minutes to wait after an alert + condition is detected before sending out the first notification. + type: integer + emailAddress: + description: Email address to which alert notifications + are sent. Populated for the EMAIL notifications type. + type: string + emailEnabled: + description: Flag indicating if email notifications should + be sent. Populated for ORG, GROUP, and USER notifications + types. + type: boolean + flowName: + description: Flowdock flow namse in lower-case letters. + type: string + flowdockApiToken: + description: The Flowdock personal API token. Populated + for the FLOWDOCK notifications type. If the token later + becomes invalid, Atlas sends an email to the project + owner and eventually removes the token. + type: string + intervalMin: + description: Number of minutes to wait between successive + notifications for unacknowledged alerts that are not + resolved. + type: integer + mobileNumber: + description: Mobile number to which alert notifications + are sent. Populated for the SMS notifications type. + type: string + opsGenieApiKey: + description: Opsgenie API Key. Populated for the OPS_GENIE + notifications type. If the key later becomes invalid, + Atlas sends an email to the project owner and eventually + removes the token. + type: string + opsGenieRegion: + description: Region that indicates which API URL to use. + type: string + orgName: + description: Flowdock organization name in lower-case + letters. This is the name that appears after www.flowdock.com/app/ + in the URL string. Populated for the FLOWDOCK notifications + type. + type: string + roles: + description: The following roles grant privileges within + a project. + items: + type: string + type: array + serviceKey: + description: PagerDuty service key. Populated for the + PAGER_DUTY notifications type. If the key later becomes + invalid, Atlas sends an email to the project owner and + eventually removes the key. + type: string + smsEnabled: + description: Flag indicating if text message notifications + should be sent. Populated for ORG, GROUP, and USER notifications + types. + type: boolean + teamId: + description: Unique identifier of a team. + type: string + teamName: + description: Label for the team that receives this notification. + type: string + typeName: + description: Type of alert notification. + type: string + username: + description: Name of the Atlas user to which to send notifications. + Only a user in the project that owns the alert configuration + is allowed here. Populated for the USER notifications + type. + type: string + victorOpsApiKey: + description: VictorOps API key. Populated for the VICTOR_OPS + notifications type. If the key later becomes invalid, + Atlas sends an email to the project owner and eventually + removes the key. + type: string + victorOpsRoutingKey: + description: VictorOps routing key. Populated for the + VICTOR_OPS notifications type. If the key later becomes + invalid, Atlas sends an email to the project owner and + eventually removes the key. + type: string + type: object + type: array + replicaSetName: + description: Name of the replica set. Only present for alerts + of type HOST, HOST_METRIC, BACKUP, and REPLICA_SET. + type: string + resolved: + description: When the alert was closed. Only present if the + status is CLOSED. + type: string + sourceTypeName: + description: For alerts of the type BACKUP, the type of server + being backed up. + type: string + status: + description: 'The current state of the alert. Possible values + are: TRACKING, OPEN, CLOSED, CANCELED' + type: string + threshold: + description: Threshold causes an alert to be triggered. + properties: + operator: + description: 'Operator to apply when checking the current + metric value against the threshold value. it accepts the + following values: GREATER_THAN, LESS_THAN' + type: string + threshold: + description: Threshold value outside which an alert will + be triggered. + type: string + units: + description: The units for the threshold value + type: string + type: object + updated: + description: Timestamp in ISO 8601 date and time format in UTC + when this alert configuration was last updated. + type: string + type: object + type: array + authModes: + description: |- + AuthModes contains a list of configured authentication modes + "SCRAM" is default authentication method and requires a password for each user + "X509" signifies that self-managed X.509 authentication is configured + items: + type: string + type: array + cloudProviderIntegrations: + description: CloudProviderIntegrations contains a list of configured + cloud provider access roles. AWS support only + items: + properties: + atlasAWSAccountArn: + type: string + atlasAssumedRoleExternalId: + type: string + authorizedDate: + type: string + createdDate: + type: string + errorMessage: + type: string + featureUsages: + items: + properties: + featureId: + type: string + featureType: + type: string + type: object + type: array + iamAssumedRoleArn: + type: string + providerName: + type: string + roleId: + type: string + status: + type: string + required: + - atlasAssumedRoleExternalId + - providerName + type: object + type: array + 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 + customRoles: + description: CustomRoles contains a list of custom roles statuses + items: + properties: + error: + description: The message when the custom role is in the FAILED + status + type: string + name: + description: Role name which is unique + type: string + status: + description: The status of the given custom role (OK or FAILED) + type: string + required: + - name + - status + type: object + type: array + expiredIpAccessList: + description: |- + The list of IP Access List entries that are expired due to 'deleteAfterDate' being less than the current date. + Note, that this field is updated by the Atlas Operator only after specification changes + items: + properties: + awsSecurityGroup: + description: Unique identifier of AWS security group in this + access list entry. + type: string + cidrBlock: + description: Range of IP addresses in CIDR notation in this + access list entry. + type: string + comment: + description: Comment associated with this access list entry. + type: string + deleteAfterDate: + description: Timestamp in ISO 8601 date and time format in UTC + after which Atlas deletes the temporary access list entry. + type: string + ipAddress: + description: Entry using an IP address in this access list entry. + type: string + type: object + type: array + id: + description: The ID of the Atlas Project + type: string + networkPeers: + description: The list of network peers that are configured for current + project + items: + properties: + atlasGcpProjectId: + description: ProjectID of Atlas container. Applicable only for + GCP. It's needed to add network peer connection. + type: string + atlasNetworkName: + description: Atlas Network Name. Applicable only for GCP. It's + needed to add network peer connection. + type: string + connectionId: + description: Unique identifier of the network peer connection. + Applicable only for AWS. + type: string + containerId: + description: ContainerID of Atlas network peer container. + type: string + errorMessage: + description: Error state of the network peer. Applicable only + for GCP. + type: string + errorState: + description: Error state of the network peer. Applicable only + for Azure. + type: string + errorStateName: + description: Error state of the network peer. Applicable only + for AWS. + type: string + gcpProjectId: + description: ProjectID of the user's vpc. Applicable only for + GCP. + type: string + id: + description: Unique identifier for NetworkPeer. + type: string + providerName: + description: Cloud provider for which you want to retrieve a + network peer. + type: string + region: + description: Region for which you want to create the network + peer. It isn't needed for GCP + type: string + status: + description: Status of the network peer. Applicable only for + GCP and Azure. + type: string + statusName: + description: Status of the network peer. Applicable only for + AWS. + type: string + vpc: + description: |- + VPC is general purpose field for storing the name of the VPC. + VPC is vpcID for AWS, user networkName for GCP, and vnetName for Azure. + type: string + required: + - id + - providerName + - region + type: object + type: array + 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 + privateEndpoints: + description: The list of private endpoints configured for current + project + items: + properties: + endpoints: + description: Collection of individual GCP private endpoints + that comprise your network endpoint group. + items: + properties: + endpointName: + type: string + ipAddress: + type: string + status: + type: string + required: + - endpointName + - ipAddress + - status + type: object + type: array + id: + description: Unique identifier for AWS or AZURE Private Link + Connection. + type: string + interfaceEndpointId: + description: Unique identifier of the AWS or Azure Private Link + Interface Endpoint. + type: string + provider: + description: Cloud provider for which you want to retrieve a + private endpoint service. Atlas accepts AWS or AZURE. + type: string + region: + description: Cloud provider region for which you want to create + the private endpoint service. + type: string + serviceAttachmentNames: + description: Unique alphanumeric and special character strings + that identify the service attachments associated with the + GCP Private Service Connect endpoint service. + items: + type: string + type: array + serviceName: + description: Name of the AWS or Azure Private Link Service that + Atlas manages. + type: string + serviceResourceId: + description: Unique identifier of the Azure Private Link Service + (for AWS the same as ID). + type: string + required: + - provider + - region + type: object + type: array + prometheus: + description: |- + Prometheus contains the status for Prometheus integration + including the prometheusDiscoveryURL + properties: + prometheusDiscoveryURL: + type: string + scheme: + type: string + type: object + teams: + description: Teams contains a list of teams assignment statuses + items: + properties: + id: + type: string + teamRef: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + required: + - teamRef + type: object + type: array + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlassearchindexconfigs.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlassearchindexconfigs.yaml new file mode 100644 index 0000000000..3bb0d014c4 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlassearchindexconfigs.yaml @@ -0,0 +1,287 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlassearchindexconfigs.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasSearchIndexConfig + listKind: AtlasSearchIndexConfigList + plural: atlassearchindexconfigs + shortNames: + - asic + singular: atlassearchindexconfig + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasSearchIndexConfig is the Schema for the AtlasSearchIndexConfig + 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: + properties: + analyzer: + description: |- + Specific pre-defined method chosen to convert database field text into searchable words. This conversion reduces the text of fields into the smallest units of text. These units are called a term or token. This process, known as tokenization, involves a variety of changes made to the text in fields: + - extracting words + - removing punctuation + - removing accents + - hanging to lowercase + - removing common words + - reducing words to their root form (stemming) + - changing words to their base form (lemmatization) MongoDB Cloud uses the selected process to build the Atlas Search index + enum: + - lucene.standard + - lucene.simple + - lucene.whitespace + - lucene.keyword + - lucene.arabic + - lucene.armenian + - lucene.basque + - lucene.bengali + - lucene.brazilian + - lucene.bulgarian + - lucene.catalan + - lucene.chinese + - lucene.cjk + - lucene.czech + - lucene.danish + - lucene.dutch + - lucene.english + - lucene.finnish + - lucene.french + - lucene.galician + - lucene.german + - lucene.greek + - lucene.hindi + - lucene.hungarian + - lucene.indonesian + - lucene.irish + - lucene.italian + - lucene.japanese + - lucene.korean + - lucene.kuromoji + - lucene.latvian + - lucene.lithuanian + - lucene.morfologik + - lucene.nori + - lucene.norwegian + - lucene.persian + - lucene.portuguese + - lucene.romanian + - lucene.russian + - lucene.smartcn + - lucene.sorani + - lucene.spanish + - lucene.swedish + - lucene.thai + - lucene.turkish + - lucene.ukrainian + type: string + analyzers: + description: List of user-defined methods to convert database field + text into searchable words + items: + properties: + charFilters: + description: Filters that examine text one character at a time + and perform filtering operations + x-kubernetes-preserve-unknown-fields: true + name: + description: |- + Human-readable name that identifies the custom analyzer. Names must be unique within an index, and must not start with any of the following strings: + "lucene.", "builtin.", "mongodb." + type: string + tokenFilters: + description: |- + Filter that performs operations such as: + - Stemming, which reduces related words, such as "talking", "talked", and "talks" to their root word "talk". + - Redaction, the removal of sensitive information from public documents + x-kubernetes-preserve-unknown-fields: true + tokenizer: + description: Tokenizer that you want to use to create tokens. + Tokens determine how Atlas Search splits up text into discrete + chunks for indexing + properties: + group: + description: Index of the character group within the matching + expression to extract into tokens. Use `0` to extract + all character groups. + type: integer + maxGram: + description: Characters to include in the longest token + that Atlas Search creates. + type: integer + maxTokenLength: + description: Maximum number of characters in a single token. + Tokens greater than this length are split at this length + into multiple tokens. + type: integer + minGram: + description: Characters to include in the shortest token + that Atlas Search creates. + type: integer + pattern: + description: Regular expression to match against. + type: string + type: + description: Human-readable label that identifies this tokenizer + type. + enum: + - whitespace + - uaxUrlEmail + - standard + - regexSplit + - regexCaptureGroup + - nGram + - keyword + - edgeGram + type: string + required: + - type + type: object + required: + - name + - tokenizer + type: object + type: array + searchAnalyzer: + description: Method applied to identify words when searching this + index + enum: + - lucene.standard + - lucene.simple + - lucene.whitespace + - lucene.keyword + - lucene.arabic + - lucene.armenian + - lucene.basque + - lucene.bengali + - lucene.brazilian + - lucene.bulgarian + - lucene.catalan + - lucene.chinese + - lucene.cjk + - lucene.czech + - lucene.danish + - lucene.dutch + - lucene.english + - lucene.finnish + - lucene.french + - lucene.galician + - lucene.german + - lucene.greek + - lucene.hindi + - lucene.hungarian + - lucene.indonesian + - lucene.irish + - lucene.italian + - lucene.japanese + - lucene.korean + - lucene.kuromoji + - lucene.latvian + - lucene.lithuanian + - lucene.morfologik + - lucene.nori + - lucene.norwegian + - lucene.persian + - lucene.portuguese + - lucene.romanian + - lucene.russian + - lucene.smartcn + - lucene.sorani + - lucene.spanish + - lucene.swedish + - lucene.thai + - lucene.turkish + - lucene.ukrainian + type: string + storedSource: + description: |- + Flag that indicates whether to store all fields (true) on Atlas Search. By default, Atlas doesn't store (false) the fields on Atlas Search. Alternatively, you can specify an object that only contains the list of fields to store (include) or not store (exclude) on Atlas Search. To learn more, see documentation: + https://www.mongodb.com/docs/atlas/atlas-search/stored-source-definition/ + x-kubernetes-preserve-unknown-fields: true + type: object + status: + 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 + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasstreamconnections.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasstreamconnections.yaml new file mode 100644 index 0000000000..44d372949b --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasstreamconnections.yaml @@ -0,0 +1,242 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasstreamconnections.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasStreamConnection + listKind: AtlasStreamConnectionList + plural: atlasstreamconnections + shortNames: + - asc + singular: atlasstreamconnection + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasStreamConnection is the Schema for the atlasstreamconnections + 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: + properties: + clusterConfig: + description: The configuration to be used to connect to a Atlas Cluster + properties: + name: + description: Name of the cluster configured for this connection + type: string + role: + description: The name of a Built in or Custom DB Role to connect + to an Atlas Cluster + properties: + name: + description: The name of the role to use. Can be a built in + role or a custom role + type: string + type: + description: Type of the DB role. Can be either BuiltIn or + Custom + enum: + - BUILT_IN + - CUSTOM + type: string + required: + - name + - type + type: object + required: + - name + - role + type: object + kafkaConfig: + description: The configuration to be used to connect to a Kafka Cluster + properties: + authentication: + description: User credentials required to connect to a Kafka Cluster. + Includes the authentication type, as well as the parameters + for that authentication mode + properties: + credentials: + description: Reference to the secret containing th Username + and Password of the account to connect to the Kafka cluster. + 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 + mechanism: + description: Style of authentication. Can be one of PLAIN, + SCRAM-256, or SCRAM-512 + enum: + - PLAIN + - SCRAM-256 + - SCRAM-512 + type: string + required: + - credentials + - mechanism + type: object + bootstrapServers: + description: Comma separated list of server addresses + type: string + config: + additionalProperties: + type: string + description: A map of Kafka key-value pairs for optional configuration. + This is a flat object, and keys can have '.' characters + type: object + security: + description: Properties for the secure transport connection to + Kafka. For SSL, this can include the trusted certificate to + use + properties: + certificate: + description: A trusted, public x509 certificate for connecting + to Kafka over SSL + 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 + protocol: + description: Describes the transport type. Can be either PLAINTEXT + or SSL + enum: + - PLAINTEXT + - SSL + type: string + required: + - protocol + type: object + required: + - authentication + - bootstrapServers + - security + type: object + name: + description: Human-readable label that uniquely identifies the stream + connection + type: string + type: + description: Type of the connection. Can be either Cluster or Kafka + enum: + - Kafka + - Cluster + - Sample + type: string + required: + - name + - type + type: object + status: + 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 + instances: + description: List of instances using the connection configuration + items: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + type: array + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasstreaminstances.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasstreaminstances.yaml new file mode 100644 index 0000000000..12d69f2f48 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasstreaminstances.yaml @@ -0,0 +1,213 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasstreaminstances.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasStreamInstance + listKind: AtlasStreamInstanceList + plural: atlasstreaminstances + shortNames: + - asi + singular: atlasstreaminstance + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.name + name: Name + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.id + name: Atlas ID + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasStreamInstance is the Schema for the atlasstreaminstances + 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: + properties: + clusterConfig: + description: The configuration to be used to connect to a Atlas Cluster + properties: + provider: + default: AWS + description: Name of the cluster configured for this connection + enum: + - AWS + - GCP + - AZURE + - TENANT + - SERVERLESS + type: string + region: + description: Name of the cloud provider region hosting Atlas Stream + Processing. + type: string + tier: + default: SP10 + description: Selected tier for the Stream Instance. Configures + Memory / VCPU allowances. + enum: + - SP10 + - SP30 + - SP50 + type: string + required: + - provider + - region + - tier + type: object + connectionRegistry: + description: List of connections of the stream instance for the specified + project + items: + description: ResourceRefNamespaced is a reference to a Kubernetes + Resource that allows to configure the namespace + 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 + type: array + name: + description: Human-readable label that identifies the stream connection + type: string + projectRef: + description: Project which the instance belongs to + 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 + required: + - clusterConfig + - name + - projectRef + type: object + status: + 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 + connections: + description: List of connections configured in the stream instance. + items: + properties: + name: + description: Human-readable label that uniquely identifies the + stream connection + type: string + resourceRef: + description: Reference for the resource that contains connection + configuration + 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 + type: object + type: array + hostnames: + description: List that contains the hostnames assigned to the stream + instance. + items: + type: string + type: array + id: + description: Unique 24-hexadecimal character string that identifies + the instance + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasteams.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasteams.yaml new file mode 100644 index 0000000000..aafa9bdf98 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasteams.yaml @@ -0,0 +1,144 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasteams.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasTeam + listKind: AtlasTeamList + plural: atlasteams + shortNames: + - at + singular: atlasteam + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.name + name: Name + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.id + name: Atlas ID + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasTeam is the Schema for the Atlas Teams 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: TeamSpec defines the desired state of a Team in Atlas + properties: + name: + description: The name of the team you want to create. + type: string + usernames: + description: Valid email addresses of users to add to the new team + items: + format: email + type: string + type: array + required: + - name + - usernames + type: object + status: + 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 + id: + description: ID of the team + 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 + projects: + description: List of projects which the team is assigned + items: + properties: + id: + description: Unique identifier of the project inside atlas + type: string + name: + description: Name given to the project + type: string + required: + - id + - name + type: object + type: array + required: + - conditions + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasthirdpartyintegrations.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasthirdpartyintegrations.yaml new file mode 100644 index 0000000000..edc417d578 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/templates/atlas.mongodb.com_atlasthirdpartyintegrations.yaml @@ -0,0 +1,435 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.2 + creationTimestamp: null + labels: + app.kubernetes.io/component: controller + app.kubernetes.io/instance: mongodb-atlas-kubernetes-operator + app.kubernetes.io/name: mongodb-atlas-kubernetes-operator + name: atlasthirdpartyintegrations.atlas.mongodb.com +spec: + group: atlas.mongodb.com + names: + categories: + - atlas + kind: AtlasThirdPartyIntegration + listKind: AtlasThirdPartyIntegrationList + plural: atlasthirdpartyintegrations + shortNames: + - atpi + singular: atlasthirdpartyintegration + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + name: v1 + schema: + openAPIV3Schema: + description: AtlasThirdPartyIntegration is the Schema for the atlas 3rd party + integrations 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: AtlasThirdPartyIntegrationSpec contains the expected configuration + for an integration + properties: + 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 + datadog: + description: Datadog contains the config fields for Datadog's Integration + properties: + apiKeySecretRef: + description: APIKeySecretRef holds the name of a secret containing + the datadog api key + 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 + region: + description: Region is the Datadog region + type: string + sendCollectionLatencyMetrics: + default: disabled + description: SendCollectionLatencyMetrics toggles sending collection + latency metrics + enum: + - enabled + - disabled + type: string + sendDatabaseMetrics: + default: disabled + description: |- + SendDatabaseMetrics toggles sending database metrics, + including database and collection names + enum: + - enabled + - disabled + type: string + required: + - apiKeySecretRef + - region + 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 + microsoftTeams: + description: MicrosoftTeams contains the config fields for Microsoft + Teams's Integration + properties: + urlSecretRef: + description: URLSecretRef holds the name of a secret containing + the microsoft teams secret URL + 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 + required: + - urlSecretRef + type: object + newRelic: + description: NewRelic contains the config fields for New Relic's Integration + properties: + credentialsSecretRef: + description: |- + CredentialsSecretRef holds the name of a secret containing new relic's credentials: + account id, license key, read and write tokens + 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 + required: + - credentialsSecretRef + type: object + opsGenie: + description: OpsGenie contains the config fields for Ops Genie's Integration + properties: + apiKeySecretRef: + description: APIKeySecretRef holds the name of a secret containing + Ops Genie's API key + 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 + region: + description: Region is the Ops Genie region + type: string + required: + - apiKeySecretRef + - region + type: object + pagerDuty: + description: PagerDuty contains the config fields for PagerDuty's + Integration + properties: + region: + description: Region is the Pager Duty region + type: string + serviceKeySecretRef: + description: ServiceKeySecretRef holds the name of a secret containing + Pager Duty service key + 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 + required: + - region + - serviceKeySecretRef + 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 + prometheus: + description: Prometheus contains the config fields for Prometheus's + Integration + properties: + enabled: + description: Enabled is true when Prometheus integration is enabled + type: string + prometheusCredentialsSecretRef: + description: |- + PrometheusCredentialsSecretRef holds the name of a secret containing the Prometheus + username & password + 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 + serviceDiscovery: + description: ServiceDiscovery to be used by Prometheus + enum: + - file + - http + type: string + required: + - enabled + - prometheusCredentialsSecretRef + - serviceDiscovery + type: object + slack: + description: Slack contains the config fields for Slack's Integration + properties: + apiTokenSecretRef: + description: APITokenSecretRef holds the name of a secret containing + the Slack API token + 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 + channelName: + description: ChannelName to be used by Prometheus + type: string + teamName: + description: TeamName flags whether or not Prometheus integration + is enabled + type: string + required: + - apiTokenSecretRef + - channelName + - teamName + type: object + type: + description: Type of the integration + enum: + - DATADOG + - MICROSOFT_TEAMS + - NEW_RELIC + - OPS_GENIE + - PAGER_DUTY + - PROMETHEUS + - SLACK + - VICTOR_OPS + - WEBHOOK + type: string + victorOps: + description: VictorOps contains the config fields for VictorOps's + Integration + properties: + apiKeySecretRef: + description: APIKeySecretRef is the name of a secret containing + Victor Ops API key + 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 + routingKey: + description: RoutingKey holds VictorOps routing key + type: string + required: + - apiKeySecretRef + - routingKey + type: object + webhook: + description: Webhook contains the config fields for Webhook's Integration + properties: + urlSecretRef: + description: URLSecretRef holds the name of a secret containing + Webhook URL and secret + 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 + required: + - urlSecretRef + type: object + required: + - type + 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 define a type of integration + rule: has(self.type) && self.type.size() != 0 + - message: only DATADOG type may set datadog fields + rule: '!has(self.datadog) || (self.type == ''DATADOG'' && has(self.datadog))' + - message: only MICROSOFT_TEAMS type may set microsoftTeams fields + rule: '!has(self.microsoftTeams) || (self.type == ''MICROSOFT_TEAMS'' + && has(self.microsoftTeams))' + - message: only NEW_RELIC type may set newRelic fields + rule: '!has(self.newRelic) || (self.type == ''NEW_RELIC'' && has(self.newRelic))' + - message: only OPS_GENIE type may set opsGenie fields + rule: '!has(self.opsGenie) || (self.type == ''OPS_GENIE'' && has(self.opsGenie))' + - message: only PROMETHEUS type may set prometheus fields + rule: '!has(self.prometheus) || (self.type == ''PROMETHEUS'' && has(self.prometheus))' + - message: only PAGER_DUTY type may set pagerDuty fields + rule: '!has(self.pagerDuty) || (self.type == ''PAGER_DUTY'' && has(self.pagerDuty))' + - message: only SLACK type may set slack fields + rule: '!has(self.slack) || (self.type == ''SLACK'' && has(self.slack))' + - message: only VICTOR_OPS type may set victorOps fields + rule: '!has(self.victorOps) || (self.type == ''VICTOR_OPS'' && has(self.victorOps))' + - message: only WEBHOOK type may set webhook fields + rule: '!has(self.webhook) || (self.type == ''WEBHOOK'' && has(self.webhook))' + status: + description: AtlasThirdPartyIntegrationStatus holds the status of an integration + properties: + conditions: + description: Conditions holding the status details + items: + description: Condition contains details for one aspect of the current + state of this API Resource. + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. + 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 + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + id: + description: ID of the third party integration resource in Atlas + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/values.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/values.yaml new file mode 100644 index 0000000000..82d2a24843 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator-crds/values.yaml @@ -0,0 +1,2 @@ +# Resources additional labels +extraLabels: {} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/.helmignore b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/.helmignore new file mode 100644 index 0000000000..0e8a0eb36f --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/Chart.lock b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/Chart.lock new file mode 100644 index 0000000000..b834ed671a --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: mongodb-atlas-operator-crds + repository: https://mongodb.github.io/helm-charts + version: 2.4.1 +digest: sha256:4ae6643aae938eecdf6ee5ca73228da694bcbb9bcfff1b8b5e6f33e0940d8d9f +generated: "2024-10-09T21:04:17.267528+02:00" diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/Chart.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/Chart.yaml new file mode 100644 index 0000000000..276975f7c8 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +name: mongodb-atlas-operator +description: |- + MongoDB Atlas Operator - a Helm chart for installing and upgrading Atlas Operator: the official Kubernetes operator allowing to manage MongoDB Atlas resources from Kubernetes +type: application +version: test-0.0.0-dev +appVersion: test-0.0.0-dev +kubeVersion: ">=1.15.0-0" +keywords: + - mongodb + - atlas + - database + - cluster + - nosql +home: https://github.com/mongodb/mongodb-atlas-kubernetes +icon: https://webimages.mongodb.com/_com_assets/cms/kuyjf3vea2hg34taa-horizontal_default_slate_blue.svg +maintainers: + - name: MongoDB + email: support@mongodb.com +dependencies: + - name: mongodb-atlas-operator-crds + version: "test-0.0.0-dev" + repository: "file://../../helm-charts/atlas-operator-crds" + condition: mongodb-atlas-operator-crds.enabled diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/README.md b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/README.md new file mode 100644 index 0000000000..0895ee1623 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/README.md @@ -0,0 +1,82 @@ +# MongoDB Atlas Operator Helm Chart + +A Helm chart for installing and upgrading the [MongoDB Atlas +Operator](https://github.com/mongodb/mongodb-atlas-kubernetes). + +## Prerequisites + +If required, you can install the Atlas Custom Resource Definitions [Helm +Chart](../atlas-operator-crds/) separately or as a dependency of this Chart. + +If the `atlas-operator-crds` Helm chart has been installed already, or if you +don't want to install the CRDs (because you have already installed them), then +you need to pass `--set mongodb-atlas-operator-crds.enabled=false`, when +installing the Operator. + +### Watching over all Namespaces + +This will install the Operator in _Cluster wide mode_. The Operator will watch +over all the namespaces in the Kubernetes cluster. + +```shell +helm install atlas-operator mongodb/mongodb-atlas-operator \ + --namespace=atlas-operator \ + --create-namespace +``` + +### Watching over same Namespace + +This installation mode will restrict the Operator to watch over resources created +in the same namespace the Operator is installed. + +```shell +helm install atlas-operator mongodb/mongodb-atlas-operator \ + --namespace=atlas-operator \ + --set watchNamespaces=atlas-operator \ + --create-namespace +``` + +### Watching over multiple Namespaces + +This installation mode will allow the Operator to watch over resources created in the +namespaces specified by the watchNamespaces parameter. + +```shell +helm install atlas-operator mongodb/mongodb-atlas-operator \ + --namespace=atlas-operator \ + --set watchNamespaces="{ns1,ns2}" \ + --create-namespace +``` + +Note: Same thing can be achieved via _values.yaml_ as well. +```shell +watchNamespaces: + - ns1 + - ns2 +``` + +### Watching over all Namespaces with Global Atlas configuration + +In this mode the Operator will be installed in _Cluster wide mode_ with [Global +Atlas configuration](https://docs.atlas.mongodb.com/reference/atlas-operator/configure-ak8so-access-to-atlas/). + +```shell +helm install atlas-operator mongodb/mongodb-atlas-operator \ + --namespace=atlas-operator \ + --create-namespace \ + --set globalConnectionSecret.publicApiKey= \ + --set globalConnectionSecret.privateApiKey= \ + --set globalConnectionSecret.orgId= +``` + +### Upgrading the Operator: + +``` +helm upgrade atlas-operator mongodb/mongodb-atlas-operator +``` + +## Creating Atlas Resources + +After the `atlas-operator` Helm Chart has been installed, you can proceed to +[Atlas Cluster](../atlas-deployment) Helm Chart to create your first Atlas +database. diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/rbac.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/rbac.yaml new file mode 100644 index 0000000000..6deda9b3a0 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/rbac.yaml @@ -0,0 +1,82 @@ +- apiGroups: + - "" + resources: + - events + verbs: + - create + - patch +- apiGroups: + - "" + resources: + - secrets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - atlas.mongodb.com + resources: + - atlasbackupcompliancepolicies + - atlasbackuppolicies + - atlasbackupschedules + - atlascustomroles + - atlasdatabaseusers + - atlasdatafederations + - atlasdeployments + - atlasfederatedauths + - atlasipaccesslists + - atlasnetworkcontainers + - atlasnetworkpeerings + - atlasprivateendpoints + - atlasprojects + - atlassearchindexconfigs + - atlasstreamconnections + - atlasstreaminstances + - atlasteams + - atlasthirdpartyintegrations + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - atlas.mongodb.com + resources: + - atlasbackupcompliancepolicies/status + - atlasbackuppolicies/status + - atlasbackupschedules/status + - atlascustomroles/status + - atlasdatabaseusers/status + - atlasdatafederations/status + - atlasdeployments/status + - atlasfederatedauths/status + - atlasipaccesslists/status + - atlasnetworkcontainers/status + - atlasnetworkpeerings/status + - atlasprivateendpoints/status + - atlasprojects/status + - atlassearchindexconfigs/status + - atlasstreamconnections/status + - atlasstreaminstances/status + - atlasteams/status + - atlasthirdpartyintegrations/status + verbs: + - get + - patch + - update +- apiGroups: + - atlas.mongodb.com + resources: + - atlasipaccesslists/finalizers + - atlasnetworkcontainers/finalizers + - atlasnetworkpeerings/finalizers + - atlasthirdpartyintegrations/finalizers + verbs: + - update diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/NOTES.txt b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/NOTES.txt new file mode 100644 index 0000000000..5563e76b94 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/NOTES.txt @@ -0,0 +1 @@ +Thank you for installing {{ .Chart.Name }}. \ No newline at end of file diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/_helpers.tpl b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/_helpers.tpl new file mode 100644 index 0000000000..a1ab7a7342 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/_helpers.tpl @@ -0,0 +1,65 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "mongodb-atlas-operator.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "mongodb-atlas-operator.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "mongodb-atlas-operator.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "mongodb-atlas-operator.labels" -}} +helm.sh/chart: {{ include "mongodb-atlas-operator.chart" . }} +{{ include "mongodb-atlas-operator.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- range $key, $value := .Values.extraLabels }} +{{ $key }}: {{ $value }} +{{- end }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "mongodb-atlas-operator.selectorLabels" -}} +app.kubernetes.io/name: {{ include "mongodb-atlas-operator.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "mongodb-atlas-operator.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "mongodb-atlas-operator.name" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/cluster-roles.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/cluster-roles.yaml new file mode 100644 index 0000000000..c74ba0354d --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/cluster-roles.yaml @@ -0,0 +1,32 @@ +{{- $operatorName := include "mongodb-atlas-operator.name" . -}} + +{{- if not .Values.watchNamespaces }} + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: "{{ $operatorName }}" + labels: + {{- include "mongodb-atlas-operator.labels" $ | nindent 4 }} +rules: +{{- range (.Files.Lines "rbac.yaml") }} + {{ . -}} +{{- end }} + +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ $operatorName }} + labels: + {{- include "mongodb-atlas-operator.labels" $ | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ $operatorName }} +subjects: + - kind: ServiceAccount + name: {{ include "mongodb-atlas-operator.serviceAccountName" . }} + namespace: {{ $.Release.Namespace }} + +{{- end }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/deployment.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/deployment.yaml new file mode 100644 index 0000000000..72c35d5772 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/deployment.yaml @@ -0,0 +1,92 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "mongodb-atlas-operator.name" . }} + labels: + {{- include "mongodb-atlas-operator.labels" . | nindent 4 }} +spec: + selector: + matchLabels: + {{- include "mongodb-atlas-operator.selectorLabels" . | nindent 6 }} + replicas: 1 + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "mongodb-atlas-operator.selectorLabels" . | nindent 8 }} + {{- with .Values.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "mongodb-atlas-operator.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + terminationGracePeriodSeconds: 10 + containers: + - name: manager + args: + - --atlas-domain={{ .Values.atlasURI }} + - "--health-probe-bind-address=:8081" + - "--metrics-bind-address=:8080" + - --object-deletion-protection={{ .Values.objectDeletionProtection }} + - --subobject-deletion-protection={{ .Values.subobjectDeletionProtection }} + - "--leader-elect" + command: + - /manager + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + env: + {{- if .Values.watchNamespaces }} + - name: WATCH_NAMESPACE + value: "{{ join "," .Values.watchNamespaces }}" + {{- end }} + - name: OPERATOR_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OPERATOR_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + {{- with .Values.extraEnvs }} +{{- toYaml . | nindent 10 }} + {{- end }} + ports: + - name: http + containerPort: 80 + protocol: TCP + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/global-secret.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/global-secret.yaml new file mode 100644 index 0000000000..3afa9086f4 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/global-secret.yaml @@ -0,0 +1,14 @@ +{{- if .Values.globalConnectionSecret.publicApiKey}} +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: "{{ include "mongodb-atlas-operator.name" . }}-api-key" + labels: + atlas.mongodb.com/type: "credentials" + {{- include "mongodb-atlas-operator.labels" . | nindent 4 }} +data: + orgId: {{ .Values.globalConnectionSecret.orgId| b64enc }} + publicApiKey: {{ .Values.globalConnectionSecret.publicApiKey| b64enc }} + privateApiKey: {{ .Values.globalConnectionSecret.privateApiKey| b64enc }} +{{- end }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/roles.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/roles.yaml new file mode 100644 index 0000000000..b808153c31 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/roles.yaml @@ -0,0 +1,123 @@ +{{- $operatorName := include "mongodb-atlas-operator.name" . -}} +{{- $serviceAccountName := include "mongodb-atlas-operator.serviceAccountName" . -}} +{{- $operatorNamespaceManaged := has .Release.Namespace .Values.watchNamespaces -}} + +{{- /* so far we support only a single namespace but otherwise should iterate over the watchNamespaces */}} +{{- if and (.Values.watchNamespaces) (.Values.crossNamespaceRoles) }} +{{- range $namespace := .Values.watchNamespaces }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: "{{ $operatorName }}" + namespace: {{ $namespace }} + labels: + {{- include "mongodb-atlas-operator.labels" $ | nindent 4 }} +rules: +{{- range ($.Files.Lines "rbac.yaml") }} + {{ . -}} +{{- end }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: "{{ $operatorName }}" + namespace: {{ $namespace }} + labels: + {{- include "mongodb-atlas-operator.labels" $ | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: "{{ $operatorName }}" +subjects: + - kind: ServiceAccount + name: "{{ $serviceAccountName }}" + namespace: {{ $.Release.Namespace }} + +{{- end }} +{{- end }} + +{{- /* If operator namespace is not in the managed namespaces list, we need to give the same permissions to it in adition to above */}} +{{- if or (not $operatorNamespaceManaged) (not .Values.crossNamespaceRoles) }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: "{{ $operatorName }}" + labels: + {{- include "mongodb-atlas-operator.labels" $ | nindent 4 }} +rules: +{{- range (.Files.Lines "rbac.yaml") }} + {{ . -}} +{{- end }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: "{{ $operatorName }}" + labels: + {{- include "mongodb-atlas-operator.labels" $ | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: "{{ $operatorName }}" +subjects: + - kind: ServiceAccount + name: "{{ $serviceAccountName }}" + namespace: {{ $.Release.Namespace }} +{{- end }} + + +{{- /* we always create the leader election role - it doesn't need to be clusterwide */}} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: "{{ $operatorName }}-leader-election-role" +rules: + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: "{{ $operatorName }}-leader-election-rolebinding" + labels: + {{- include "mongodb-atlas-operator.labels" $ | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: "{{ $operatorName }}-leader-election-role" +subjects: + - kind: ServiceAccount + name: {{ $serviceAccountName }} + namespace: {{ $.Release.Namespace }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/serviceaccount.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/serviceaccount.yaml new file mode 100644 index 0000000000..1903877a49 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/templates/serviceaccount.yaml @@ -0,0 +1,12 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "mongodb-atlas-operator.serviceAccountName" . }} + labels: + {{- include "mongodb-atlas-operator.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end }} diff --git a/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/values.yaml b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/values.yaml new file mode 100644 index 0000000000..87e53ae40a --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/helm-charts/atlas-operator/values.yaml @@ -0,0 +1,126 @@ +# `mongodb/mongodb-atlas-operator` depends on a series of Custom Resource +# Definitions and they need to exist in the Kubernetes cluster in order for the +# Operator to work. They are provided by the +# `mongodb/mongodb-atlas-operator-crds` Helm chart. +# +# When installing `mongodb/mongodb-atlas-operator`, by default, the `-crds` +# Chart will also be installed. This might not be what you want, specially if +# you are installing the Operator in a constrained environment, where you can't +# create a clusterwide resource, for instance. +# +# If the `mongodb/mongodb-atlas-operator-crds` is already installed, its +# installation can be disabled by changing this value to `false`. +mongodb-atlas-operator-crds: + # Make this disabled if you don't want to install + # the CRD dependency automatically. + enabled: true + +# atlasURI is the URI of the MongoDB Atlas. You should not change this value. +atlasURI: https://cloud.mongodb.com/ + +# objectDeletionProtection defines the operator will not delete Atlas resource when a Custom Resource is deleted +objectDeletionProtection: true +# subobjectDeletionProtection defines that the operator will not overwrite (and consequently delete) subresources that were not previously created by the operator +subobjectDeletionProtection: true + +# globalConnectionSecret is a default "global" Secret containing Atlas +# authentication information. +# +# It is used if the project-level connection Secret is not provided. +# +# You should never check-in these values as part of values.yaml file on your +# CVS. Instead set these values with `--set`. +globalConnectionSecret: + orgId: "" + publicApiKey: "" + privateApiKey: "" + +# Determines whether RBAC resources should be created across namespaces. +# If set to true, RBAC resources will be created across all namespaces specified in watchNamespaces. +# If set to false, RBAC resources will be created only within the namespace of the release. +crossNamespaceRoles: true + +# watchNamespaces is the set of namespaces that are watched by the Operator. +# +# The only possible values are: +# - empty (watch all namespaces) or +# - the name of the same namespace where the Operator is installed to. +watchNamespaces: [] + +# Use these values to use a different Operator image. +image: + repository: mongodb/mongodb-atlas-kubernetes-operator + pullPolicy: Always + # Overrides the image tag whose default is the chart appVersion. + tag: "" + +# imagePullSecret configuration for the Operator Pod. +# More information: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ +imagePullSecrets: [] + +# Overrides name and fullname +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + # Specifies whether a service account should be created + create: true + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: "" + +# podAnnotations and podLabels can be defined to be set for the Operator Pod. +podLabels: {} +podAnnotations: {} + +# podSecurityContext sets the SecurityContext for the Operator Pod. +# More information: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ +podSecurityContext: + runAsNonRoot: true + runAsUser: 2000 + +# securityContext allows you to configure the SecurityContext for the Operator container. +# More information: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ +securityContext: + allowPrivilegeEscalation: false + + +# configure extra environment variables +# Extra environment variables are writen in kubernetes format and added "as is" to the pod's env variables +# https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/ +# https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#environment-variables +extraEnvs: + [] + # Exemple of setting environment variables + # - name: MY_VAR + # value: my-value + # - name: GOMEMLIMIT + # valueFrom: + # resourceFieldRef: + # resource: limits.memory + +# resources sets resources for the Operator container. +# More information: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ +resources: + limits: + memory: 1Gi + requests: + cpu: 100m + memory: 256Mi + +# Assigns the Operator Pod to a specific Node. +# More information: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ +nodeSelector: {} + +# Tolerations for the Operator Pod. +# More information: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ +tolerations: [] + +# Operator Pod Affinity. +# More information: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity +affinity: {} + +# Resources additional labels +extraLabels: {} diff --git a/docs/releases/vtest-0.0.0-dev/sdlc-compliance.md b/docs/releases/vtest-0.0.0-dev/sdlc-compliance.md new file mode 100644 index 0000000000..fe45430ca0 --- /dev/null +++ b/docs/releases/vtest-0.0.0-dev/sdlc-compliance.md @@ -0,0 +1,45 @@ +SSDLC Compliance Report: Atlas Kubernetes Operator Manager vtest-0.0.0-dev +================================================================= + +- Release Creators: unknown +- Created On: 2025-07-15 + +Overview: + +- **Product and Release Name** + + - Atlas Kubernetes Operator vtest-0.0.0-dev, 2025-07-15. + +- **Process Document** + - http://go/how-we-develop-software-doc + +- **Tool used to track third party vulnerabilities** + - [Kondukto](https://arcticglow.kondukto.io/) + +- **Dependency Information** + - See SBOMS Lite manifests (CycloneDX in JSON format) for `Intel` and `ARM` are to be found [here](.) + - See [instructions on how the SBOMs are generated or how to generate them manually](../../dev/image-sboms.md) + +- **Static Analysis Report** + - No SAST findings. Our CI system blocks merges on any SAST findings. + - No vulnerabilities were ignored for this release. + +- **Release Signature Report** + - Image signatures enforced by CI pipeline. + - See [Signature verification instructions here](../../dev/signed-images.md) + - Self-verification shortcut: + ```shell + make verify IMG=mongodb/mongodb-atlas-kubernetes-operator:test-0.0.0-dev SIGNATURE_REPO=mongodb/signatures + ``` + +- **Security Testing Report** + - Available as needed from Cloud Security. + +- **Security Assessment Report** + - Available as needed from Cloud Security. + +Assumptions and attestations: + +- Internal processes are used to ensure CVEs are identified and mitigated within SLAs. + +- All Operator images are signed by MongoDB, with signatures stored at `docker.io/mongodb/signatures`.