Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

🧹 Rebrand from Terraform Cloud Operator to HCP Terraform Operator #393

Merged
merged 3 commits into from
May 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .changes/unreleased/NOTES-393-20240507-094432.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
kind: NOTES
body: In upcoming releases, we shall proceed with renaming this project to HCP Terraform
Operator for Kubernetes or simply HCP Terraform Operator. This measure is necessary
in response to the recent announcement of [The Infrastructure Cloud](https://www.hashicorp.com/blog/introducing-the-infrastructure-cloud).
The most noticeable change you can expect in version 2.6.0 is the renaming of this
repository and related resources, such as the Helm chart and Docker Hub names. Please
follow the changelogs for updates.
time: 2024-05-07T09:44:32.339022+02:00
custom:
PR: "393"
3 changes: 2 additions & 1 deletion .github/workflows/end-to-end-tfc.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: E2E on Terraform Cloud
name: E2E on HCP Terraform Operator


on:
schedule:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/helm-end-to-end-tfc.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: E2E on Terraform Cloud [Helm]
name: E2E on HCP Terraform Operator [Helm]

on:
schedule:
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributor Guide

We appreciate your enthusiasm for participating in the development of the Terraform Cloud Operator. Your contributions are warmly welcomed. Here you will find instructions on how to contribute to the Terraform Cloud Operator.
We appreciate your enthusiasm for participating in the development of the HCP Terraform Operator. Your contributions are warmly welcomed. Here you will find instructions on how to contribute to the HCP Terraform Operator.

If you're a newcomer to the realm of Kubernetes Operators and are eager to expand your knowledge, a great place to begin your journey is by exploring the [Kubebuilder Book](https://book.kubebuilder.io/).

Expand Down Expand Up @@ -64,7 +64,7 @@ We value your desire to contribute by introducing new features or enhancing exis

1. Create an API token that you are going to use for development

We strongly advise creating a separate account, organization, and API token for development purposes. A free [Terraform Cloud](https://app.terraform.io/) account is more than enough for that purpose. Follow the steps in the [Usage guide](./docs/usage.md#prerequisites) to get more information on how to generate a token and keep it in the Kubernetes Secret.
We strongly advise creating a separate account, organization, and API token for development purposes. A free [HCP Terraform](https://app.terraform.io/) account is more than enough for that purpose. Follow the steps in the [Usage guide](./docs/usage.md#prerequisites) to get more information on how to generate a token and keep it in the Kubernetes Secret.

1. Install Go

Expand Down
2 changes: 1 addition & 1 deletion META.d/_summary.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ partition: tf-ecosystem
summary:
owner: team-tf-hybrid-cloud
description: |
The Kubernetes Operator allows managing Terraform Cloud / Enterprise resources via Kubernetes Custom Resources.
The HCP Terraform Operator for Kubernetes allows managing HCP Terraform / Terraform Enterprise resources via Kubernetes Custom Resources.

visibility: external
37 changes: 22 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,46 @@
<a href="https://cloud.hashicorp.com/products/terraform">
<img src=".github/tf_logo.png" alt="Terraform logo" title="Terraform Cloud" align="left" height="50" />
<img src=".github/tf_logo.png" alt="Terraform logo" title="HCP Terraform" align="left" height="50" />
</a>

# Terraform Cloud Operator v2 for Kubernetes
# HCP Terraform Operator for Kubernetes

[![GitHub release (with filter)](https://img.shields.io/github/v/release/hashicorp/terraform-cloud-operator)](https://github.com/hashicorp/terraform-cloud-operator/releases)
[![Docker Pulls](https://img.shields.io/docker/pulls/hashicorp/terraform-cloud-operator)](https://hub.docker.com/r/hashicorp/terraform-cloud-operator)
[![GitHub](https://img.shields.io/github/license/hashicorp/terraform-cloud-operator)](https://github.com/hashicorp/terraform-cloud-operator/blob/main/LICENSE)

Kubernetes Operator allows managing Terraform Cloud / Enterprise resources via Kubernetes Custom Resources.
> **Warning**
> In upcoming releases, we shall proceed with renaming this project to HCP Terraform Operator for Kubernetes or simply HCP Terraform Operator. This measure is necessary in response to the recent announcement of [The Infrastructure Cloud](https://www.hashicorp.com/blog/introducing-the-infrastructure-cloud).
>
> The most noticeable change you can expect in version 2.6.0 is the renaming of this repository and related resources, such as the Helm chart and Docker Hub names.
>
> Please follow the changelogs for updates.

Kubernetes Operator allows managing HCP Terraform / Terraform Enterprise resources via Kubernetes Custom Resources.

> **Note**
> _From this point forward, the terms Terraform Cloud or TFC can be used interchangeably with Terraform Enterprise or TFE in all documents, provided that the contrary is indicated._
> _From this point forward, the terms HCP Terraform can be used interchangeably with Terraform Enterprise in all documents, provided that the contrary is indicated._

The Operator can manage the following types of resources:

- `AgentPool` manages [Terraform Cloud Agent Pools](https://developer.hashicorp.com/terraform/cloud-docs/agents/agent-pools), [Terraform Cloud Agent Tokens](https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/api-tokens#agent-api-tokens) and can perform TFC agent scaling
- `AgentPool` manages [HCP Terraform Agent Pools](https://developer.hashicorp.com/terraform/cloud-docs/agents/agent-pools), [HCP Terraform Agent Tokens](https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/api-tokens#agent-api-tokens) and can perform TFC agent scaling
- `Module` implements [API-driven Run Workflows](https://developer.hashicorp.com/terraform/cloud-docs/run/api)
- `Project` manages [Terraform Cloud Projects](https://developer.hashicorp.com/terraform/cloud-docs/workspaces/organize-workspaces-with-projects)
- `Workspace` manages [Terraform Cloud Workspaces](https://developer.hashicorp.com/terraform/cloud-docs/workspaces)
- `Project` manages [HCP Terraform Projects](https://developer.hashicorp.com/terraform/cloud-docs/workspaces/organize-workspaces-with-projects)
- `Workspace` manages [HCP Terraform Workspaces](https://developer.hashicorp.com/terraform/cloud-docs/workspaces)

## Getting started

To get started see our tutorials on the HashiCorp Developer Portal:

- [Terraform Cloud Operator for Kubernetes overview](https://developer.hashicorp.com/terraform/cloud-docs/integrations/kubernetes)
- [Deploy infrastructure with the Terraform Cloud Kubernetes Operator v2](https://developer.hashicorp.com/terraform/tutorials/kubernetes/kubernetes-operator-v2)
- [Manage agent pools with the Terraform Cloud Kubernetes Operator v2](https://developer.hashicorp.com/terraform/tutorials/kubernetes/kubernetes-operator-v2-agentpool)
- [Terraform Cloud Kubernetes Operator v2 Migration Guide](https://developer.hashicorp.com/terraform/cloud-docs/integrations/kubernetes/ops-v2-migration)
- [HCP Terraform Operator for Kubernetes overview](https://developer.hashicorp.com/terraform/cloud-docs/integrations/kubernetes)
- [Deploy infrastructure with the HCP Terraform Operator for Kubernetes](https://developer.hashicorp.com/terraform/tutorials/kubernetes/kubernetes-operator-v2)
- [Manage agent pools with the HCP Terraform Operator for Kubernetes](https://developer.hashicorp.com/terraform/tutorials/kubernetes/kubernetes-operator-v2-agentpool)
- [HCP Terraform Operator for Kubernetes Migration Guide](https://developer.hashicorp.com/terraform/cloud-docs/integrations/kubernetes/ops-v2-migration)

## Documentation

### Supported Features

The full list of supported Terraform Cloud features can be found on our [Developer portal](https://developer.hashicorp.com/terraform/cloud-docs/integrations/kubernetes#supported-terraform-cloud-features).
The full list of supported HCP Terraform Operator features can be found on our [Developer portal](https://developer.hashicorp.com/terraform/cloud-docs/integrations/kubernetes#supported-terraform-cloud-features).

### Installation

Expand All @@ -44,7 +51,7 @@ Three simple commands to install the Operator:
```console
$ helm repo add hashicorp https://helm.releases.hashicorp.com
$ helm repo update
$ helm install demo hashicorp/terraform-cloud-operator --wait --version 2.1.0
$ helm install demo hashicorp/terraform-cloud-operator --wait --version 2.3.0
```

More detailed information about the installation and available values can be found [here](./charts/terraform-cloud-operator/README.md).
Expand All @@ -60,7 +67,7 @@ Controllers usage guides:
- [Project](./docs/project.md)
- [Workspace](./docs/workspace.md)

Annotations and Labels used by Terraform Cloud Operator can be found [here](./docs/annotations-and-labels.md).
Annotations and Labels used by HCP Terraform Operator can be found [here](./docs/annotations-and-labels.md).

### Metrics

Expand Down Expand Up @@ -128,7 +135,7 @@ If you believe you've found a bug and cannot find an existing issue, feel free t

## Contributing to the Operator

We appreciate your enthusiasm for participating in the development of the Terraform Cloud Operator. To contribute, please read the [contribution guidelines](./CONTRIBUTING.md).
We appreciate your enthusiasm for participating in the development of the HCP Terraform Operator. To contribute, please read the [contribution guidelines](./CONTRIBUTING.md).

## Security Reporting

Expand Down
2 changes: 1 addition & 1 deletion RELEASING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Releasing

The purpose of this document is to outline the release process for the Terraform Cloud Operator.
The purpose of this document is to outline the release process for the HCP Terraform Operator.

The Semantic Versioning agreement is being followed by this project. Further details can be found [here](https://semver.org/). During the alpha or beta stages, the pre-release versions are not separated by dots. For example, `2.0.0-alpha1` or `2.0.0-beta5`.

Expand Down
4 changes: 2 additions & 2 deletions api/v1alpha2/agentpool_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

// Agent Token is a secret token that a Terraform Cloud Agent is used to connect to the Terraform Cloud Agent Pool.
// Agent Token is a secret token that a HCP Terraform Agent is used to connect to the HCP Terraform Agent Pool.
// In `spec` only the field `Name` is allowed, the rest are used in `status`.
// More infromation:
// - https://developer.hashicorp.com/terraform/cloud-docs/agents
Expand Down Expand Up @@ -60,7 +60,7 @@ type AgentDeploymentAutoscaling struct {
// MinReplicas is the minimum number of replicas for the Agent deployment.
MinReplicas *int32 `json:"minReplicas"`

// TargetWorkspaces is a list of Terraform Cloud Workspaces which
// TargetWorkspaces is a list of HCP Terraform Workspaces which
// the agent pool should scale up to meet demand. When this field
// is ommited the autoscaler will target all workspaces that are
// associated with the AgentPool.
Expand Down
4 changes: 2 additions & 2 deletions api/v1alpha2/project_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ type CustomProjectPermissions struct {
Variables tfc.WorkspaceVariablesPermissionType `json:"variables,omitempty"`
}

// Terraform Cloud's access model is team-based. In order to perform an action within a Terraform Cloud organization,
// HCP Terraform's access model is team-based. In order to perform an action within a HCP Terraform organization,
// users must belong to a team that has been granted the appropriate permissions.
// You can assign project-specific permissions to teams.
// More information:
Expand Down Expand Up @@ -140,7 +140,7 @@ type ProjectSpec struct {
//+kubebuilder:validation:MinLength:=1
Name string `json:"name"`

// Terraform Cloud's access model is team-based. In order to perform an action within a Terraform Cloud organization,
// HCP Terraform's access model is team-based. In order to perform an action within a HCP Terraform organization,
// users must belong to a team that has been granted the appropriate permissions.
// You can assign project-specific permissions to teams.
// More information:
Expand Down
28 changes: 14 additions & 14 deletions api/v1alpha2/workspace_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

// AgentPool allows Terraform Cloud to communicate with isolated, private, or on-premises infrastructure.
// AgentPool allows HCP Terraform to communicate with isolated, private, or on-premises infrastructure.
// Only one of the fields `ID` or `Name` is allowed.
// At least one of the fields `ID` or `Name` is mandatory.
// More information:
Expand Down Expand Up @@ -48,7 +48,7 @@ type ConsumerWorkspace struct {
}

// RemoteStateSharing allows remote state access between workspaces.
// By default, new workspaces in Terraform Cloud do not allow other workspaces to access their state.
// By default, new workspaces in HCP Terraform do not allow other workspaces to access their state.
// More information:
// - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/state#accessing-state-from-other-workspaces
type RemoteStateSharing struct {
Expand All @@ -65,7 +65,7 @@ type RemoteStateSharing struct {
Workspaces []*ConsumerWorkspace `json:"workspaces,omitempty"`
}

// Run tasks allow Terraform Cloud to interact with external systems at specific points in the Terraform Cloud run lifecycle.
// Run tasks allow HCP Terraform to interact with external systems at specific points in the HCP Terraform run lifecycle.
// Only one of the fields `ID` or `Name` is allowed.
// At least one of the fields `ID` or `Name` is mandatory.
// More information:
Expand Down Expand Up @@ -120,7 +120,7 @@ type RunTrigger struct {
Name string `json:"name,omitempty"`
}

// Teams are groups of Terraform Cloud users within an organization.
// Teams are groups of HCP Terraform users within an organization.
// If a user belongs to at least one team in an organization, they are considered a member of that organization.
// Only one of the fields `ID` or `Name` is allowed.
// At least one of the fields `ID` or `Name` is mandatory.
Expand Down Expand Up @@ -190,7 +190,7 @@ type CustomPermissions struct {
WorkspaceLocking bool `json:"workspaceLocking,omitempty"`
}

// Terraform Cloud workspaces can only be accessed by users with the correct permissions.
// HCP Terraform workspaces can only be accessed by users with the correct permissions.
// You can manage permissions for a workspace on a per-team basis.
// When a workspace is created, only the owners team and teams with the "manage workspaces" permission can access it,
// with full admin permissions. These teams' access can't be removed from a workspace.
Expand Down Expand Up @@ -376,7 +376,7 @@ type Notification struct {
//+optional
URL string `json:"url,omitempty"`
// The list of email addresses that will receive notification emails.
// It is only available for Terraform Enterprise users. It is not available in Terraform Cloud.
// It is only available for Terraform Enterprise users. It is not available in HCP Terraform.
//
//+kubebuilder:validation:MinItems:=1
//+optional
Expand Down Expand Up @@ -445,7 +445,7 @@ type WorkspaceSpec struct {
//+kubebuilder:validation:MinLength:=1
//+optional
Description string `json:"description,omitempty"`
// Terraform Cloud Agents allow Terraform Cloud to communicate with isolated, private, or on-premises infrastructure.
// HCP Terraform Agents allow HCP Terraform to communicate with isolated, private, or on-premises infrastructure.
// More information:
// - https://developer.hashicorp.com/terraform/cloud-docs/agents
//
Expand All @@ -461,7 +461,7 @@ type WorkspaceSpec struct {
//+kubebuilder:default=remote
//+optional
ExecutionMode string `json:"executionMode,omitempty"`
// Run tasks allow Terraform Cloud to interact with external systems at specific points in the Terraform Cloud run lifecycle.
// Run tasks allow HCP Terraform to interact with external systems at specific points in the HCP Terraform run lifecycle.
// More information:
// - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/settings/run-tasks
//
Expand All @@ -474,7 +474,7 @@ type WorkspaceSpec struct {
//+kubebuilder:validation:MinItems:=1
//+optional
Tags []Tag `json:"tags,omitempty"`
// Terraform Cloud workspaces can only be accessed by users with the correct permissions.
// HCP Terraform workspaces can only be accessed by users with the correct permissions.
// You can manage permissions for a workspace on a per-team basis.
// When a workspace is created, only the owners team and teams with the "manage workspaces" permission can access it,
// with full admin permissions. These teams' access can't be removed from a workspace.
Expand Down Expand Up @@ -519,7 +519,7 @@ type WorkspaceSpec struct {
//+optional
TerraformVariables []Variable `json:"terraformVariables,omitempty"`
// Remote state access between workspaces.
// By default, new workspaces in Terraform Cloud do not allow other workspaces to access their state.
// By default, new workspaces in HCP Terraform do not allow other workspaces to access their state.
// More information:
// - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/state#accessing-state-from-other-workspaces
//
Expand Down Expand Up @@ -564,11 +564,11 @@ type WorkspaceSpec struct {
}

type PlanStatus struct {
// Latest plan-only/speculative plan Terraform Cloud run ID.
// Latest plan-only/speculative plan HCP Terraform run ID.
//
//+optional
ID string `json:"id,omitempty"`
// Latest plan-only/speculative plan Terraform Cloud run status.
// Latest plan-only/speculative plan HCP Terraform run status.
//
//+optional
Status string `json:"status,omitempty"`
Expand All @@ -580,11 +580,11 @@ type PlanStatus struct {
}

type RunStatus struct {
// Current(both active and finished) Terraform Cloud run ID.
// Current(both active and finished) HCP Terraform run ID.
//
//+optional
ID string `json:"id,omitempty"`
// Current(both active and finished) Terraform Cloud run status.
// Current(both active and finished) HCP Terraform run status.
//
//+optional
Status string `json:"status,omitempty"`
Expand Down
2 changes: 1 addition & 1 deletion charts/terraform-cloud-operator/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

apiVersion: v2
name: terraform-cloud-operator
description: Official Helm chart for HashiCorp Terraform Cloud Kubernetes Operator.
description: Official Helm chart for HCP Terraform Operator for Kubernetes.
type: application
version: "2.3.0"
appVersion: "2.3.0"
11 changes: 9 additions & 2 deletions charts/terraform-cloud-operator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
Make changes _only_ in the README.md.gotmpl file and then run `make helm-docs` to generate the README.md file.
-->

> **Warning**
> In upcoming releases, we shall proceed with renaming this project to HCP Terraform Operator for Kubernetes or simply HCP Terraform Operator. This measure is necessary in response to the recent announcement of [The Infrastructure Cloud](https://www.hashicorp.com/blog/introducing-the-infrastructure-cloud).
>
> The most noticeable change you can expect in version 2.6.0 is the renaming of this repository and related resources, such as the Helm chart and Docker Hub names.
>
> Please follow the changelogs for updates.

# Installation

Use the option `--version VERSION` with `helm install` and `helm upgrade` commands to specify the version you want to install.
Expand Down Expand Up @@ -51,7 +58,7 @@ In the above example, the Operator will watch 3 namespaces in the Kubernetes clu

### Install to work with Terraform Enterprise

If targeting a Terraform Enterprise instance rather than Terraform Cloud, set the API endpoint URL using the `operator.tfeAddress` value:
If targeting a Terraform Enterprise instance rather than HCP Terraform, set the API endpoint URL using the `operator.tfeAddress` value:

```console
$ helm install demo hashicorp/terraform-cloud-operator \
Expand Down Expand Up @@ -153,4 +160,4 @@ For a more detailed explanation, please refer to the [FAQ](../../docs/faq.md#gen
| operator.syncPeriod | string | `"5m"` | The minimum frequency at which watched resources are reconciled. Format: `5s`, `1m`, etc. |
| operator.tfeAddress | string | `""` | The API URL of a Terraform Enterprise instance. |
| operator.watchedNamespaces | list | `[]` | List of namespaces the controllers should watch. |
| replicaCount | int | `2` | The number of Terraform Cloud Operator replicas. |
| replicaCount | int | `2` | The number of Operator replicas. |
Loading
Loading