Skip to content

Commit 6516866

Browse files
Update operator proposal
1 parent d2a110e commit 6516866

File tree

1 file changed

+29
-20
lines changed

1 file changed

+29
-20
lines changed

docs/proposals/20201020-capi-provider-operator.md

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ This proposal provides a solution that leverages a declarative API and an
7474
operator to empower admins to handle the lifecycle of providers within the
7575
management cluster.
7676

77+
The operator is developed in a separate repository [TBD] and will have its own release cycle.
78+
7779
## Motivation
7880

7981
In its current form clusterctl is designed to provide a simple user experience
@@ -113,6 +115,8 @@ management cluster based on a declarative API.
113115

114116
### Non-Goals/Future Work
115117

118+
- `clusterctl` related changes will be implemented after core operator functionality
119+
is complete. For example, deprecating `Provider` type and migrating to new ones.
116120
- `clusterctl` will not be deprecated or replaced with another CLI.
117121
- Implement an operator driven version of `clusterctl move`.
118122
- Manage cert-manager using the operator.
@@ -145,7 +149,8 @@ The `clusterctl` CLI will provide a similar UX to the users whilst leveraging
145149
the operator for the functions it can. As stated in the Goals/Non-Goals, the
146150
move operation will not be driven by the operator but rather remain within the
147151
CLI for now. However, this is an implementation detail and will not affect the
148-
users.
152+
users. The move operation and all other `clusterctl` refactoring will be
153+
done after core operator functionality is implemented.
149154

150155
#### Existing API Types Changes
151156

@@ -754,36 +759,40 @@ will look like.
754759

755760
##### Operator Installation
756761

757-
- `clusterctl init` will install the operator and its corresponding CRDs as a
758-
pre-requisite if the operator doesn’t already exist. Please note that this
762+
- During the first phase of implementation `clusterctl` won't provide support
763+
for managing the operator, so the admin will have to install it manually using
764+
`kubectl apply` (or similar solutions), the operator yaml that will be published in the
765+
operator subproject release artifacts.
766+
- In future `clusterctl init` will install the operator and its corresponding CRDs
767+
as a pre-requisite if the operator doesn’t already exist. Please note that this
759768
command will consider image overrides defined in the local clusterctl config
760769
file.
761-
- If the admin does not want to use clusterctl to install the operator, it is
762-
possible to `kubectl apply` the operator yaml that will be published in the
763-
cluster-api release artifacts.
764770

765771
##### Operator Upgrade
766-
767-
- The admin can use `clusterctl upgrade operator` to upgrade the operator
768-
components. Please note that this command will consider image overrides
769-
defined in the local clusterctl config file. Other commands such as
770-
`clusterctl upgrade apply` will also allow to upgrade the operator.
772+
- During the first phase of implementation `clusterctl` operations will not be
773+
supported and admin will have to install the operator manually, or in case if
774+
the admin doesn’t want to use clusterctl, they can use `kubectl apply`(or similar solutions)
775+
with the latest version of the operator yaml that will be published in the
776+
operator subproject release artifacts.
777+
- The transition between manually managed operator and clusterctl managed
778+
operator will be documented later as we progress with the implementation.
779+
- In future the admin will be able to use `clusterctl upgrade operator` to
780+
upgrade the operator components. Please note that this command will consider
781+
image overrides defined in the local clusterctl config file. Other commands
782+
such as `clusterctl upgrade apply` will also allow to upgrade the operator.
771783
- `clusterctl upgrade plan` will identify when the operator can be upgraded by
772784
checking the cluster-api release artifacts.
773-
- If the admin doesn’t want to use clusterctl, they can use kubectl apply with
774-
the latest version of the operator yaml that will be published in the
775-
cluster-api release artifacts.
776785
- clusterctl will require a matching operator version. In the future, when
777786
clusterctl move to beta/GA, we will reconsider supporting version skew
778787
between clusterctl and the operator.
779788

780789
##### Operator Delete
781-
782-
- clusterctl will delete the operator as part of the `clusterctl delete --all`
783-
command.
784-
- If the admin doesn’t want to use clusterctl, they can use kubectl delete.
785-
However, it’s the admin’s responsibility to verify that there are no
786-
providers running in the management cluster.
790+
- During the first phase of implementation `clusterctl` operations will not be
791+
supported and admin will have to delete the operator manually using `kubectl delete`
792+
(or similar solutions). However, it’s the admin’s responsibility to verify that there
793+
are no providers running in the management cluster.
794+
- In future the clusterctl will delete the operator as part of
795+
the `clusterctl delete --all` command.
787796

788797
#### Air gapped environment
789798

0 commit comments

Comments
 (0)